|
ЕАН13 | ☑ | ||
---|---|---|---|---|
0
first_may
27.10.22
✎
16:50
|
Добрый день.
Подскажите пож, как вывести штрих код в формате еан13? Пишу вот так, как в типовой Эталон = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("Эталон"); КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100; Ширина = Окр(ОбластьШтрихКод.Рисунки.КартинкаШтрихкода.Ширина / КоличествоМиллиметровВПикселе); Высота = Окр(ОбластьШтрихКод.Рисунки.КартинкаШтрихкода.Высота / КоличествоМиллиметровВПикселе); ПараметрыШтрихкода = Новый Структура; ПараметрыШтрихкода.Вставить("Ширина", Высота); ПараметрыШтрихкода.Вставить("Высота", Высота); ПараметрыШтрихкода.Вставить("Штрихкод", EAN13); ПараметрыШтрихкода.Вставить("ТипВходныхДанных", 0); // Штрихкод - это строка ПараметрыШтрихкода.Вставить("ТипКода", 4); // Code128 ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина); ПараметрыШтрихкода.Вставить("РазмерШрифта", 6); ОбластьШтрихКод.Рисунки.КартинкаШтрихкода.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода); где EAN13 = "0102032212740" (строка). Но это выводится Code128, а если ставлю 1 - EAN13, то выдается ошибка. Как правильно получить штрихкод? |
|||
1
Philix
27.10.22
✎
16:55
|
(0) В "0102032212740" ошибка. Последняя цифра есть контрольная сумма. "0102032212748" пойдет в EAN-13
|
|||
2
first_may
27.10.22
✎
17:22
|
(1) штрих формируется по определенной схеме..
что то вот так 01 + 02 + 03 + 22 + 12740 01 + 02 + 03 - это служебные 22 - это год документа 12740 - это номер документа поэтому 12740 никак нельзя менять, а вот 01 можно изменить на 1.. тогда будет 1 + 02 + 03 + 22 + 12740 + контрольная сумма так? а как получить контрольную сумму? |
|||
3
Йохохо
27.10.22
✎
17:28
|
(2) у тебя в конфигурации уже есть код считающий контрольную, поиск по штрихкод или ean13
|
|||
4
Philix
27.10.22
✎
17:34
|
(2) Тогда у тебя заняты все 13 разрядов осмысленными данными. Места для контрольной суммы не осталось и EAN-13 тут нельзя использовать.
|
|||
5
DJ Anthon
27.10.22
✎
17:37
|
сократи год до одного символа )
|
|||
6
first_may
27.10.22
✎
17:39
|
(4) почему заняты?
1 + 02 + 03 + 22 + 12740 - 12 символов |
|||
7
Philix
27.10.22
✎
17:42
|
(6) Мои извинения, не дочитал... Можно просто передать 12 цифр в компоненту, она сама просчитает. Или Вот: https://roskod.ru/info-articles/raschet-kontrolnoj-tsifry-ean-13/
|
|||
8
Chai Nic
27.10.22
✎
18:10
|
Используйте разные типы штрихкодов по назначению. Для кодификации осмысленных данных лучше использовать EAN-128, в нём возможна любая длина сообщения (главное чтобы сканер брал), в том числе кроме цифр там можно закодировать латинские буквы.
|
|||
9
first_may
27.10.22
✎
18:16
|
(7) спасибо
(8) согласен вообщем получилось.. нашел Функция КонтрольныйСимволEAN(ШтрКод, Тип) Четн = 0; Нечетн = 0; Если Тип = 13 Тогда КолвоИтераций = 6; Иначе КолвоИтераций = 4; КонецЕсли; Для Индекс = 1 По КолвоИтераций Цикл Четн = Четн + Сред(ШтрКод, 2 * Индекс, 1); Нечетн = Нечетн + Сред(ШтрКод, 2 * Индекс - 1, 1); КонецЦикла; Если Тип = 13 Тогда Четн = Четн * 3; Иначе Нечетн = Нечетн * 3; КонецЕсли; КонтЦифра = 10 - (Четн + Нечетн) % 10; Возврат ?(КонтЦифра = 10, "0", Строка(КонтЦифра)); КонецФункции и в итоге EAN13 = "010203221274" EAN13 = EAN13 + КонтрольныйСимволEAN(EAN13, 13); |
|||
10
first_may
27.10.22
✎
18:16
|
Спасибо всем..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |