Вход | Регистрация
 
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) когда вы сюда пришли, вы вообще понятия не имели что и как делать. Вам разжевали задачу, показали инструменты. Осталось только по готовому описанию, по шагам, сесть и сделать. За триста рублей тут никто не будет этим заниматься, потому что такая работа стоит дороже. За полторы-две тысячи еще может возьмется провинциал какой-нибудь, у которого работы мало в течение дня.


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