|   |   | 
| 
 | 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 (и затем стандартного отбора в заказ) приходилось отбирать из готовой продукции примерно заказанное количество, и маркировать под каждую сеть отдельно. Да, АРМ перемаркировки как раз был с более простыми весами, и зЁброй.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |