|
v7: Вывод на печать ШК EAN13Addon5 (EAN13+5) | ☑ | ||
---|---|---|---|---|
0
kis111
07.08.24
✎
14:24
|
Добрый день. Озадачили меня сейчас печатью этикеток на коробки, с выводом в т.ч. данного ШК (раньше печатали кодами принтера, сейчас переходим на печать этикеток через USB).
ян13, ян8, даже GS1 - нашел, как вывести на печать. Как вывести ян13+5 - ХЗ. Последний Formex скачал, в документации есть только ян13. Есть еще StrokeScribe - но для нее не могу найти документации, а офсайт, чтобы эту документацию скачать, недоступен.. Второй день гуглю, ничего найти подходящего не могу...Застрял... |
|||
1
Garykom
07.08.24
✎
14:31
|
"Zint 1С 7.7"
https://www.activebarcode.com/codes/ean5_ean2 фактически два ШК, сначала EAN13 затем EAN5 |
|||
2
uno-group
07.08.24
✎
14:30
|
баркода 128 чем не устраивает?
Используешь столько символов сколько нужно |
|||
3
uno-group
07.08.24
✎
14:31
|
//*********формирование баркода 128**********
//Если параметр цифра возвращает 1 Функция ТипСимв(КодСмв) Если КодСмв < 32 Тогда Возврат(1); //Команда ИначеЕсли (48 <= КодСмв) и (КодСмв<=57) Тогда Возврат(3); //Цифра Иначе Возврат(2); //Буква, знак КонецЕсли; КонецФункции Функция Мод(Ч,З) Возврат(Ч-Цел(Ч/З)*З); КонецФункции Функция БарКод(Вход,БазаМодеС=6) АскиБар = // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 "155515551449485845458494854548584944056416452065425461560506542164524212245605641254614650"+ //29 "11919191108980988109881889018890898001:0928120290:18212211829021281:0122209281:01218290:10"+ //59 "2305<0;0004=0<540=4<1<05<4105<0=441<4=0<14<50=4050<320=04830047407443074434470344704740113"+ //89 "13131100;0838030380;0308380023032203302";//102 ВыхТ = СоздатьОбъект("ТаблицаЗначений"); ВыхТ.НоваяКолонка("А",,,,"Аск",4); //Аски код //Фильтр пустого входа Если Вход = "" Тогда Возврат(""); КонецЕсли; //Очищаем выход ВыхТ.УдалитьСтроки(); Дл = СтрДлина(СокрЛП(Вход)); //Разборки со стартовым кодом //Принимаем решение о смене подсистемы кодирования "моде" (А-1, В-2, С-3) //Анализируем тип двух первых символов ТекСимв = КодСимв(Сред(Вход,1,1)); ТипТекСимв = ТипСимв(ТекСимв); Если Дл > 1 тогда СлСимв = КодСимв(Сред(Вход,2,1)); ТипСлСимв = ТипСимв(СлСимв); Иначе ТипСлСимв = 2; КонецЕсли; Моде = ТипТекСимв; Если (ТипТекСимв = 3) и (ТипСлСимв = 3) тогда Моде = 3; КонецЕсли; //В выходную таблицу добавляем символ старта подсистемы ВыхТ.НоваяСтрока(); ВыхТ.А = 102 + Моде; Вых = Симв(64 + Моде); //Анализируем входные символы Для Сч = 1 по Дл Цикл ТекСимв = КодСимв(Сред(Вход,Сч,1)); Если ТекСимв > 127 тогда Сообщить("Символ № "+Сч+ " со значением="+ ТекСимв+" не разрешен в штрихкоде"); Продолжить; КонецЕсли; ТипТекСимв = ТипСимв(ТекСимв); //Принимаем решение о смене подсистемы кодирования (моде). Если ТипТекСимв <> Моде тогда Если ТипТекСимв < 3 Тогда //Нужно менять моде либо с А на В, либо с В на А ВыхТ.НоваяСтрока(); Если Моде = 1 тогда ВыхТ.А = 100; //Переключаемся из А в В Иначе ВыхТ.А = 101; //Переключаемся из В в А КонецЕсли; Моде = ТипТекСимв; Иначе //Находимся в моде А или В, встретили цифру. //Прикидываем, стоит ли переключаться в МодеС //Смотрим на БазаМодеС знаков вперед. //Оптимально, БазаМодеС = 6 (См. описание) ДлМ = ?(Дл < Сч+БазаМодеС-1, Дл, Сч+БазаМодеС-1); СчЦ = 0; Для СчМ = Сч по ДлМ Цикл МодМ = ТипСимв(КодСимв(Сред(Вход,СчМ,1))); //Если цифра - смотрим дальше Если МодМ = 3 тогда СчЦ = СчЦ+1; Продолжить; Иначе СчЦ = 0; Прервать; КонецЕсли; КонецЦикла; //Если нужно переключится в С Если СчЦ - БазаМодеС = 0 тогда Моде = 3; ВыхТ.НоваяСтрока(); ВыхТ.А = 99; //Переключаемся из А или В в С КонецЕсли; КонецЕсли; КонецЕсли; //Добавляем очередной символ //Если символ в МодеС Если Моде = 3 тогда СлСимв = КодСимв(Сред(Вход,Сч+1,1)); ТипСлСимв = ТипСимв(СлСимв); //Если входная строка кончается на первой цифре, или //конец входной строки цифра+не цифра Если (Сч = Дл) или (ТипТекСимв <> 3) или (ТипСлСимв <> 3) тогда //Переключаемся из режима С в режим В Моде = 2; ВыхТ.НоваяСтрока(); ВыхТ.А = 100; Иначе //Добавляем символ в МодеС Если (ТипТекСимв <> 3) или (ТипСлСимв <> 3) тогда Сообщить("Ош."+ Сч+" "+ ТекСимв+" "+СлСимв); Иначе ВыхТ.НоваяСтрока(); ВыхТ.А = Число(Симв(ТекСимв)+Симв(СлСимв)); Сч = Сч+1; Продолжить; КонецЕсли; КонецЕсли; КонецЕсли; //Добавляем символ в МодеА, или МодеВ ВыхТ.НоваяСтрока(); Если Моде = 1 тогда ВыхТ.А = ТекСимв+64; Иначе ВыхТ.А = ТекСимв-32; КонецЕсли; КонецЦикла; //Считаем контрольную сумму и формируем баркод ВыхТ.ВыбратьСтроки(); Сум = 0; Ном = 0; Пока ВыхТ.ПолучитьСтроку() = 1 Цикл Если Ном > 0 тогда Сум = Мод(Сум+ВыхТ.А*Ном,103); Вых = Вых+Сред(АскиБар,(ВыхТ.А+1)*3-2,3); Иначе Сум = Мод(ВыхТ.А,103); КонецЕсли; Ном = Ном+1; КонецЦикла; Возврат(Вых+Сред(АскиБар,(Сум+1)*3-2,3)+"@"); КонецФункции //******************************************* БарКодСтр=БарКод(СокрЛП(ШКод),6); |
|||
4
kis111
07.08.24
✎
14:40
|
(1) хм. А barcode.ocx - это не оно?
(2) тем, что клиентам надо ян13+5. |
|||
5
Garykom
07.08.24
✎
14:45
|
(4) barcode.ocx - это древняя штука
проверь умеет ли оно EAN5 и делай две картинки рядом |
|||
6
MWWRuza
07.08.24
✎
16:07
|
(0) Как вывести ян13+5 - ХЗ.
Пресса - ? В смысле, газеты-журналы? Там такое, тоже пришлось столкнуться... В ЕАН13 содержится ссылка на издание - например, "Газета "Спид-Инфо"", а в части ЕАН5 - конкретно "выпуск 7 за 2024 год"... Или у Вас что-то другое, похожее? |
|||
7
big
07.08.24
✎
16:11
|
(3) barcode.ocx делает это в штатном режиме. Отключить автоопределение и подобрать параметр для вывода конкретного вида штрихкода.
|
|||
8
big
07.08.24
✎
16:11
|
(5) Оооочень много видо ШК выводит. Как ни странно )))
|
|||
9
kis111
07.08.24
✎
16:59
|
(5) попробовал для начала ее. Скопировал объект из ТиС, из печати этикеток для номенклатуры.
Что странно, по пкм говорит, что это объект ActiveBarCode. Добавку 5 распечатать удалось. ХЗ, понимает ли вообще (настроен ли на это) ТСД одномерный (именно мой экземпляр), он не взял (точнее, прочитал только ян13. Но, скорее всего, он не был настроен. Уточню у админов). двумерный ТСД - прочитал сразу, причем пролностью. Вроде все ок. Но хотелось бы избежать именно barcode.ocx, читал, что с ней много глюков, да и начальник мой это подтвердил. Хотелось бы через strokeScribe сделать, или через formex, но в них не нашел варианта типа ШК ян5. Возможно, можно сделать какими-то настройками это? В том же объекте штрихкода StrokeScribe их столько!... но я хз что они значат... |
|||
10
kis111
07.08.24
✎
17:00
|
(6) у нас надо этикетки на батоны и на коробки. мясокомбинат.
|
|||
11
Arbuz
07.08.24
✎
17:49
|
В чём проблема? Вот формекс.
![]() |
|||
12
kis111
08.08.24
✎
09:34
|
(11) это какая версия? я скачал свежую 2.0.5.197, в als из комплекта написано
@Возможные типы кода: ... EXCODE39 9 EANX 13 EANX_CHK 14 EAN128 16 .... что за eanX я ХЗ. |
|||
13
kis111
08.08.24
✎
09:54
|
(11) попробовал. Не работает...
вот код в глМодуле глСервис = создатьобъект("Сервис"); в обработке печати Результат = глСервис.НарисоватьШтрихкод(Объект,ТипШК,ШК,,,,,,); Объект это картинка. ТипШК=13. сам ШК="251390003002523324" выводится пуская картинка, без ШК.... |
|||
14
vladmenleo
08.08.24
✎
12:50
|
(13) ШК="2513900030025+23324"
И будет тебе счастье |
|||
15
kis111
08.08.24
✎
13:15
|
(14) Урааа! Сработало! Спасибо тебе, добрый человек!
А где-то про это можно было прочитать? Или инфа тоже так передается - по форумам? |
|||
16
vladmenleo
08.08.24
✎
13:26
|
(15) На скриншоте из (11) видно :)
|
|||
17
serpentt
08.08.24
✎
13:26
|
(10) Странный у Вас комбинат, у нас все колбасники работают с GS1-128
|
|||
18
kis111
08.08.24
✎
13:49
|
(16) мне не очень :( Или вы посмотрели на ян8+5?
Но вообще откуда этот скриншот? при скачивании с офсайта получаем библиотеку и als файл, там никаких скриншотов :( (17) это требование сети. GS1 у нас, кстати, есть, но на коробке (там же и ян13+5 еще вдобавок). а на батон GS1 тупо не помещается, этикетка небольшая. |
|||
19
victuan1
12.08.24
✎
06:01
|
(15) В формекс для печати ШК встроена Zint.
Значит, нужно курить описание к Zint и пытаться его применить для формекс. |
|||
20
АгентБезопасной Нацио
12.08.24
✎
09:20
|
(0) а почему EAN (European Article Number) = "ян"?
(18) а что за сетка? Я лет 15 назад пытался в сети протолкнуть EAN13A5 - там в ужасе шарахались "от таких страшных слов"... |
|||
21
NorthWind
13.08.24
✎
17:32
|
(20) да все крупные хотят. Х5, Тандер. В хвосте (который +5) хранится конечная дата реализации в формате день года-год. Как раз 5 цифр. И в принципе, это очень разумный вариант: кто не умеет читать хвост, читает обычный EAN, который вообще никак не теряет читаемости из-за использования хвоста. А кто умеет - читает хвост и работает с датой. Вдобавок это очень компактный код в отличие от GS1-128 или Databar, не требуется конского места на этикетке.
|
|||
22
Garykom
13.08.24
✎
17:38
|
(21) QR компактней
Простых линейных сканеров уже почти нет |
|||
23
NorthWind
13.08.24
✎
19:44
|
(22) пока стандартом для идентификации является EAN13. Схватывается сканером моментально, а печатать можно практически на любом дерьме и любым оборудованием, хоть каплеструйным принтером, как вон на грани карандашей наносят.
|
|||
24
NorthWind
13.08.24
✎
19:50
|
(20) 15 лет назад это был 2009 год, что ли? Тогда еще EDI-то далеко не везде был, его массовое внедрение в крупных сетях произошло только спустя три года. Интерес к кодированию сложными кодами у сетей появился примерно со вводом в эксплуатацию Меркурия, это примерно 2015-2018 годы.
|
|||
25
АгентБезопасной Нацио
13.08.24
✎
20:27
|
(21) не видел ни в пятерке, ни в магните. Либо локальные, либо зарегистрированные в ГС/ЮНИСКАН. Я в конце нулевых пытался совместить зарегистрированный ШК+вес в граммах в аддоне
(24) 2008, скорее. EDI уже появлялся, в 2009 первое внедрение (вот в упор не помню, что за частично зарубежная сетка была, у нас было 3 магазина в городе). В 2010 уже был в одной из федеральных сетей. Ну а в 12-18 годах я не в дистрибуции работал |
|||
26
NorthWind
13.08.24
✎
22:06
|
(25) на мясопродуктах в пятерке у меня в городе уже почти на всех EAN13 addon 5 под дату реализации, они крайне настойчиво всех переводили на это дело в последние годы. В первую очередь это пачки, куда клеят стикер - сосиски, сардельки. Обычно практикуется следующее - на индивидуальной упаковке EAN13 addon 5, на групповой GS1-128, если место позволяет или GS1-Databar, если места меньше. Сети волнуют в первую очередь даты производства/реализации. Речь про мясопродукты и продукты его переработки, насчет всего остального не знаю, не интересовался.
// Я в конце нулевых пытался совместить зарегистрированный ШК+вес в граммах в аддоне Ну правильно, вы им голову хотели забить, а им это не надо. Обычно когда печатают юнискановский EAN13 на упаковке - это значит фиксированный вес. Зачем им с какими-то граммами голову себе греть? Это ваш вопрос сделать точный вес как вы сами зарегистрировали. Можете сделать чуть больше для надежности, скажем, по факту набить батон 410 г, а продавать его как 400 - они возражать не будут :) |
|||
27
АгентБезопасной Нацио
14.08.24
✎
09:44
|
(26) > Обычно когда печатают юнискановский EAN13 на упаковке - это значит фиксированный вес.
Строго говоря, это не регламентируется. Я тогда долго обзванивал этих, из GS1... А товар у меня был с сильно переменным весом, от 230до 370 граммов. Пришлось тогда делать рабочие места по перевешиванию, и маркировке локальным кодом под каждую сеть. |
|||
28
NorthWind
14.08.24
✎
12:30
|
(27) Да. Возможен вариант, когда вы ставите упаковке весовой тип в юнискане, я про это знаю. Но вариант с идентификацией по такому коду + чтение веса стало рассматриваться значительно позже, точно не в 2008-2009 годах, и потребовало использования GS1-кодов и идентификаторов применения (01, 310х). В основном же участники рынка до сих пор предпочитают в таких случае использовать внутренние EAN13-коды, которые начинаются с двойки, и вес в качестве последних 5 цифр перед контрольной. К чему вы в итоге и пришли... А addon5 оказался более нужным для хранения конечной даты реализации, хотя это тоже не стандарт. Да и потом, даже если бы они согласились на вес в addon - вам бы это жизнь никак не облегчило - все равно весовые посты и печать уникального аддона в конце каждого кода...
|
|||
29
АгентБезопасной Нацио
14.08.24
✎
13:07
|
(28) > В основном же участники рынка до сих пор предпочитают в таких случае использовать внутренние EAN13-коды, которые начинаются с двойки, и вес в качестве последних 5 цифр перед контрольной.
Это называется "локальный код", и тоже предусмотрен стандартом... >А addon5 оказался более нужным для хранения конечной даты реализации, хотя это тоже не стандарт. Угу. Но если для аддона упоминалось,"например, вес товара", то КСР вообще там не упоминался... >Да и потом, даже если бы они согласились на вес в addon - вам бы это жизнь никак не облегчило - все равно весовые посты и печать уникального аддона в конце каждого кода... нет, весы CAS (500 или 5000) прекрасно печатали вес в аддоне... |
|||
30
NorthWind
14.08.24
✎
14:08
|
(29) так их можно точно также настроить и на печать внутреннего кода с весом во второй половине. Я думаю, что весов, которые это умеют, гораздо больше чем тех что умеют вес в аддон пихать. Тут загвоздка может быть только в том, что вам на одно и то же изделие придется хранить/загружать количество PLU в весах по числу ваших получателей-сетей... Но это обычно тоже реализуемо. Мне было попроще, потому что у меня была BIZERBA.
|
|||
31
АгентБезопасной Нацио
14.08.24
✎
15:19
|
(30) ну в том и была проблема (точнее, геморрой), что локальные коды у каждой сети свои, а цех выпускает продукцию, не зная, куда она пойдет... поэтому вместо единообразной печати еан13а5 (и затем стандартного отбора в заказ) приходилось отбирать из готовой продукции примерно заказанное количество, и маркировать под каждую сеть отдельно. Да, АРМ перемаркировки как раз был с более простыми весами, и зЁброй.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |