Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Алгоритм генерации штрихкода

Алгоритм генерации штрихкода
Я
   PrimaGod
 
16.06.21 - 06:15
Здравствуйте! Дали задачу сделать через внешний обработчик генератор штрихкода с фиксированными 3 первыми цифрами, дальше 6 цифр это инвентарный номер, выбрал EAN-13.
https://ibb.co/0V7pkT1 - как думаю будет выглядеть, добавляешь пишешь ШК, нажимаешь и ШК формируется
https://ibb.co/Y20HVt9 - Код которые я нарыл

Помогите разобраться как его (код) можно использовать, с ШК никогда не занимался, да и не учили нас их создавать, а задачу дали и нет возможности её сменит а сдавать её сегодня.

И по возможности помогите это сделать работающим! Заранее Спасибо!
Ps- Искал по этой теме оооочень долго, неужели это так сложно?
   Irbis
 
1 - 16.06.21 - 06:20
Всё что нужно, если конечно требуется по заданию, добить строку ШК контрольным символом, чтобы соответствовал выбранному стандарту. Префикс (3 фиксированных цифры), инвентарный номер (6 цифр с лидирующими нулями)+ контрольная цифра.
   PrimaGod
 
2 - 16.06.21 - 06:28
(1) А как сам штрих код будет создаваться? Для этого же что-то нужно?
   ДенисЧ
 
3 - 16.06.21 - 06:29
(2) А что в твоём понимании "штрих-код"? Картинка? Так в любой конфигурации, где он используется - есть примеры кода.
   PrimaGod
 
4 - 16.06.21 - 06:36
(3) Да, нажимаешь Сформировать штрихкод и формируется картинка штрихкода с вставленными числами. Пример кода генерации картинки штрихкода не могу найти((
   Chameleon1980
 
5 - 16.06.21 - 06:38
(4)бедааа.трудно Вам будет
   PrimaGod
 
6 - 16.06.21 - 06:43
Так я с этой темой не знаком, думал что тут помогут, расскажут как сделать...
   Irbis
 
7 - 16.06.21 - 06:49
(6) Тады шукай в тырнете приблуду для генерации ШК из строки. В стародавние времена их там было как дерьма за баней у нерадивого хозяина. Она всё за тебя сделает.
   NorthWind
 
8 - 16.06.21 - 07:15
(0) > Помогите разобраться как его (код) можно использовать
Код (твердую копию) можно использовать для идентификации реальных объектов, на которые он помещен, внутри информационной системы. Например, в супермаркете кассир сканирует код и в кассовом приложении по нему автоматически ищется и подбирается товар. В вашем случае - с инвентарниками - код можно использовать, например, для инвентаризации основных средств. Бухгалтер пройдет с терминалом сбора данных по цеху, пропикает все коды, ОС по ним подберутся в список и можно будет сделать вывод, все ли они на месте или что-то пропало. Вы это хотели спросить? Или о чем речь?
   PrimaGod
 
9 - 16.06.21 - 07:49
(8) во 2 картинке код 1с который я нашёл, я хотел бы чтобы мне объяснили как его можно использовать в моей задаче. Задача вроде простая. картинка 1 - наживаешь "Добавить" в добавленную строку пишешь цифровой ШК, нажимаешь "Сформировать ШК" и формируется КАРТИНКА ШК. Искал в интернете по моей теме не смог найти.
   NorthWind
 
10 - 16.06.21 - 08:13
(9) непосредственно генерация штрихов делается внешней компонентой. Если у вас конфигурация пустая, то компоненту необходимо еще скачать, установить и подключить. Почитать можно, например, вот здесь 1С 8.3 УФ Вывести штрих-код на печатную форму
   NorthWind
 
11 - 16.06.21 - 08:13
   Sneer
 
12 - 16.06.21 - 08:14
(9) Этот код для формирования контрольной цифры (в EAN13 это последняя цифра в штрихкоде) и для весового штрихкода, второе тебе вообще не нужно.
Если тебе нужно получить картинку штрихкода, то тут зависит от того, где ты это делаешь - в типовых конфигурациях есть несколько механизмов формирования штрихкода.
Если это типовая конфигурация, то скорее всего сработает примерно такой вариант:

    ТабДок.АвтоМасштаб            = Истина;
    ТабДок.ИмяПараметровПечати    = "ПАРАМЕТРЫ_ПЕЧАТИ_ПечатьШККоманды";
    Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ШтрихкодКоманды");
    
    ОбластьМакета = Макет.ПолучитьОбласть("Карточка");
    
    КоличествоМиллиметровВПикселе = 0.1//Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;

    ПараметрыШтрихкода = Новый Структура;
    ПараметрыШтрихкода.Вставить("Ширина",          Окр(Макет.Рисунки.Штрихкод.Ширина / КоличествоМиллиметровВПикселе));
    ПараметрыШтрихкода.Вставить("Высота",          Окр(Макет.Рисунки.Штрихкод.Высота / КоличествоМиллиметровВПикселе));
    ПараметрыШтрихкода.Вставить("ТипКода",         4);// 4 - Code128, 1 - еан13

    ПараметрыШтрихкода.Вставить("ОтображатьТекст", Ложь);

    ПараметрыШтрихкода.Вставить("Штрихкод",        Штрихкод);
    ОбластьМакета.Рисунки.Штрихкод.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
        
    ОбластьМакета.Параметры.Название = ТекстКоманды;
    ТабДок.Вывести(ОбластьМакета);
    ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

Если по условиям МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода() недоступна, то можно формировать картинку через ActiveX компоненту "Печать штрихкодов", но для этого нужно ее установить и зарегистрировать, конечно.
Можно еще напечатать штрихкод с помощью специальных шрифтов.
Так что выбирай
   NorthWind
 
13 - 16.06.21 - 08:15
(12) вряд ли типовая, на картинке пустой конфигуратор без всего
   PrimaGod
 
14 - 16.06.21 - 08:21
Уточнил. Точнее задача звучит- из цифр формируется картинка. Вбиваешь цифры нажимаешь кнопку и из цифр формируется картинка.
   PrimaGod
 
15 - 16.06.21 - 08:22
Картинка ШК. (14)
   NorthWind
 
16 - 16.06.21 - 08:23
Сначала нужно подготовить строку кода. Если вы используете EAN13, то будет нечто вроде 

СтрокаШК = "200"    // Первые три фиксированные цифры

+ ИнвентарныйНомер  // Инвентарник - 6 цифр

+ "000";            // Дополняем до 12 значащих цифр - их не может быть меньше 12;


// И добавляем контрольную цифру к 12 значащим

СтрокаШК = СтрокаШК + КонтрольныйСимволEAN (СтрокаШК, 13); 

Далее эту строку нужно передать механизму, который будет формировать штрихи - это будет либо внешняя компонента, либо механизм библиотеки подключаемого оборудования, либо процедура печати ШК специальным шрифтом. Вам нужно решить что вам удобнее использовать (или спросить у преподавателя). Самостоятельно рисовалку кода вы все равно не напишете, опыта не хватит, так что тут только готовый механизм.
   PrimaGod
 
17 - 16.06.21 - 08:39
(16) А рисовалку кода можно как-то найти? Если поможете с задачей то могу и денег дать.
   ДенисЧ
 
18 - 16.06.21 - 08:40
(17) Подсистема ШтрихкодированиеДокументов в БСП - вполне себе рисовалка.
   PrimaGod
 
19 - 16.06.21 - 08:42
По словам того кто дал задачу, то это просто. Нужно чтобы цифры формировали ШК. Самый просто способ то это перевести число в двоичную систему
   ДенисЧ
 
20 - 16.06.21 - 08:43
(19) Мда... Лучше беги оттуда... Хорошего там точно не посоветуют...
   Sneer
 
21 - 16.06.21 - 08:45
(17) Сначала нужно определиться, что именно можно использовать. Если доступна библиотека подключаемого оборудования, то в (12) я привел рабочий код для рисования штрихкода.
(19) Думается, двоичная система из другого задания. Если "это просто", то возможно нужно просто сформировать сами цифры ШК, а не картинку, тогда решение в (16)
   NorthWind
 
22 - 16.06.21 - 08:50
(19) ну как сказать... Для неопытного человека не особо просто.
https://ru.wikipedia.org/wiki/Universal_Product_Code
   Sneer
 
23 - 16.06.21 - 09:03
(22) Судя по первоначальному описанию в (0) это должна быть вполне прикладная задача, а тут тогда как картинку средставми 1С рисовать? Руками BMP-шник формировать или в табличном документе клеточки закрашивать? Следующее задание тогда должно быть - написать в 1С свой архиватор ;)
   Mikeware
 
24 - 16.06.21 - 09:06
(20) "закон соответствия"
   PrimaGod
 
25 - 16.06.21 - 09:11
Ещё уточнил.
Нужно числу присвоить штрих, можно без цифр. Объяснили с двоичным кодом - берём число переводим в двоичный код, и 0 - белый штрих, 1- чёрный. делается в графическом поле
   PrimaGod
 
26 - 16.06.21 - 09:13
- можно без цифр
Имеется ввиду штрихкод

На выходе получится картинка со штрихами
   Mikeware
 
27 - 16.06.21 - 09:15
(25) "делай"©
хотя я б пропрсил предложившего "показать мастер-класс" (ибо (19)- "все просто"), и с удовольствием бы посмотрел...
на мой взгляд, это будет забавно...
   Mikeware
 
28 - 16.06.21 - 09:17
вообще, в былые стародавние времена, когда давали задачу - решение начинали не с форумов, а с базы: "что такое штрих-код", "какие бывают ШК", "какой ШК нужно применить из всего многообразия", "как формируется" ,"чем формируется", "какие механизмы в текущем программном продукте"...
   PrimaGod
 
29 - 16.06.21 - 09:19
сказали таким образом можно свой алгоритм сделать без EAN13
   Mikeware
 
30 - 16.06.21 - 09:20
(29) замечательно. а читать этот ШК по "своему алгоритму" кто будет?
 
 
   NorthWind
 
31 - 16.06.21 - 09:26
(25) ну вообще это собачья чушь так-то. То есть сделать так можно, конечно, но это будет что угодно, только не ШК EAN-13.
Ликбез по формированию ШК - в (22).
   NorthWind
 
32 - 16.06.21 - 09:27
если просто стоит задача чет нарисовать полосатое - можно, конечно, и так. Только результат будет другой. Не EAN-13.
   PrimaGod
 
33 - 16.06.21 - 09:29
(32) Да, мой косяк, думал что нужно выбрать тип ШК и от это отталкиваться, и только сейчас более подробно объяснили
   PrimaGod
 
34 - 16.06.21 - 09:31
Как оказалось, нужно просто чтоб штрихи делало, для простоты можно перевести в двоичный код (25), теперь зная что точно нужно можете помочь?
   Mikeware
 
35 - 16.06.21 - 09:31
(32) "чет полосатое" <> ктрих-код
   PrimaGod
 
36 - 16.06.21 - 09:31
Помочь как это сделать.
   Mikeware
 
37 - 16.06.21 - 09:32
(34) перевести число в двоичное, перебирать разряды, и присоединять секции в зависимости от символа - "черную" или "белую"
   Sneer
 
38 - 16.06.21 - 09:33
(34) А чем именно штрихи-то делать? А то тут тоже может не все так однозначно?
   Василий Алибабаевич
 
39 - 16.06.21 - 09:33
(17) Скачай отсюда http://sthinks.ru/faq/71-ov/110-shrift.html шрифт и рисуй любые штрихкоды.
ЗЫ. Жду денег.
   Mikeware
 
40 - 16.06.21 - 09:35
(39) любые не получится. и знать надо, как именно применять (ну или хотя бы посмотреть в типовых)
   PrimaGod
 
41 - 16.06.21 - 09:36
(39) Ничего стороннего не надо, если вы внешнюю обработку сделаете как я прошу, то дам денег
   PrimaGod
 
42 - 16.06.21 - 09:38
(37) Да
   PrimaGod
 
43 - 16.06.21 - 09:41
(37) Это сложно сделать? а То скоро сдавать уже
   Mikeware
 
44 - 16.06.21 - 09:43
(43) так я и написал, как сделать
   PrimaGod
 
45 - 16.06.21 - 09:48
(44) Можете внешнюю обработку сделать? я Вам 300р скину на карту или куда скажите времени уже почти нет, буду очень благодарен за помощь. Думаю у вас быстрее получится чем у меня
   Mikeware
 
46 - 16.06.21 - 09:55
(45) сделать-то я могу, но задание-то - ваше...
   PrimaGod
 
47 - 16.06.21 - 09:57
(46) Более подробно нужно?
   PrimaGod
 
48 - 16.06.21 - 09:58
Могу точно сформулировать задачу
   Mikeware
 
49 - 16.06.21 - 09:58
(47) нет, ваше задание нужно делать вам...
   МимохожийОднако
 
50 - 16.06.21 - 10:10
ОФФ. Боты-студенты полезли на форум (
   PrimaGod
 
51 - 16.06.21 - 10:11
(49) Это обработка идёт в отчёт, сделать её не успеваю сильно, я и прошу помощи. За вашу разработку я ничего не получу, но смогу сдать отчёт и начать подготовку к защите отчёта, после всего я обещаю во всём самому разобраться.
   Mikeware
 
52 - 16.06.21 - 10:12
(50) "госы". Мой тоже послезавтра сдает...
   Mikeware
 
53 - 16.06.21 - 10:13
(51) что сделано за 13 минут, с 09:58 до 10:11 ?
   hhhh
 
54 - 16.06.21 - 10:17
(51) вы не туда пришли. Есть же специализированные сайты, где помогают студентам за деньги, туда и обращайтесь.
   PrimaGod
 
55 - 16.06.21 - 10:18
(53) Ничего. Я не в ту степь шёл, то что сделал, и то что в итоге объяснили сделать не соответствует. осталось только практическая часть с обработкой
   PrimaGod
 
56 - 16.06.21 - 10:18
(54) Уже понимаю что вы правы
   Mikeware
 
57 - 16.06.21 - 10:26
(55) я не понял, кто на ком стоял, но:
1. переведите число в двоичную систему в виде строки (задача, в общем, из шктолького курса). "посимвольно"("поциферно") или "все число сразу" - решать вам. для решения безразлично
2. сделайте макет , в котором две секции, заштрихуеваная для "единицы", незаштрихуеванная для "нуля"
3. получая в цикле каждый символ этой строки из п.1, присоединяйте секцию из п.2. в зависимости от полученного символа.
4. выведите готовый табдок.
усё
   PrimaGod
 
58 - 16.06.21 - 10:28
Итог- помощи от сюда не видать. Спасибо тем кто отвечал. (
   PrimaGod
 
59 - 16.06.21 - 10:29
(57) Спасибо
   Mikeware
 
60 - 16.06.21 - 10:47
(58) помогли более чем. Остались мелочи - написать код. реально..
 
 
   Irbis
 
61 - 16.06.21 - 11:42
(45) За 300 рублей здесь даже чихать не станут. Пару нулей добавишь справа, может быть задумаются.
   Irbis
 
62 - 16.06.21 - 11:43
(51) Зарекалась свинья в грязь не лезть.
   NorthWind
 
63 - 16.06.21 - 12:04
(58) когда вы сюда пришли, вы вообще понятия не имели что и как делать. Вам разжевали задачу, показали инструменты. Осталось только по готовому описанию, по шагам, сесть и сделать. За триста рублей тут никто не будет этим заниматься, потому что такая работа стоит дороже. За полторы-две тысячи еще может возьмется провинциал какой-нибудь, у которого работы мало в течение дня.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.