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

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

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

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

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

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

СтрокаШК = "200"     // Первые три фиксированные цифры
+ ИнвентарныйНомер   // Инвентарник - 6 цифр
+ "000";             // Дополняем до 12 значащих цифр - их не может быть меньше 12;

// И добавляем контрольную цифру к 12 значащим
СтрокаШК = СтрокаШК + КонтрольныйСимволEAN (СтрокаШК, 13);

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

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