Имя: Пароль:
1C
1С v8
Печать кода маркировки своей обработкой (молочка, "Честный знак")
0 zelenprog
 
11.03.24
10:54
Добрый день!

Нужно распечатать этикетку со штрихкодом по своему шаблону.
За основу взял обработку с Инфостарта:
https://infostart.ru/1c/tools/1335145/
Эта обработка берет коды маркировки для печати из csv-файла.
По тексту обработки видно, что код маркировки, который она читает из csv-файла должен содержать 31 знак.

Однако, в нашем csv-файле код содержит только 24 знака, нету последних 7 символов кода маркировки.
Мы csv-файл получаем из личного кабинета "Честного знака".
Из описания структуры кода маркировки понятно, что тот код, который содержится в нашем csv-файле - это на самом деле "Код идентификации" (КИ), а не полноценный код маркировки (КМ).
В коде идентификации отсутствует код проверки - это как раз 7 символов: ASCII-29 (1 символ) + признак "93" (2 символа) + код-проверки (4 символа).

В итоге этикетка по нашему "урезанному" коду печатается неправильная.

Подскажите, как получить "полноценный" код маркировки, чтобы можно было распечатать этикетку?
1 lodger
 
11.03.24
11:08
(0) полный КМ выдается единожды, когда вы генерите новые марки. потом их взять больше негде.
2 lodger
 
11.03.24
11:09
в CSV для целей печати, надо сохранять когда происходит получение новых марок.
3 Builder
 
11.03.24
11:10
(0) Это называется криптохвост.
4 zelenprog
 
11.03.24
11:15
(1),(2)
А повторно Честный знак не может выдать полные коды маркировки?
Я читал, там у них есть API.
Может быть с помощью этого API можно повторно запросить коды?
5 Builder
 
11.03.24
11:16
(4) Ну как бы их у себя в базе даже хранить запрещено....
6 H A D G E H O G s
 
11.03.24
11:22
(5) где об этом написано?
7 Builder
 
11.03.24
11:42
(6) Помню обсуждали это тут, было в контуре.
https://kontur.ru/markirovka/news/6929
Но по факту в договоре не нашли и это были рекомендации.
8 ПросТак
 
11.03.24
12:44
(4) Повторно коды не даются, только выдача новых взамен старого.
9 timurhv
 
11.03.24
12:47
(4) По идентификаторам заказа в течение 24 часов после первичного получения (как понимаю, сделано если система сломалась или инет отвалился в момент получения), потом нет.
10 zelenprog
 
11.03.24
13:04
(1) >> полный КМ выдается единожды, когда вы генерите новые марки. потом их взять больше негде.

(2) >> в CSV для целей печати, надо сохранять когда происходит получение новых марок.

(8) >> Повторно коды не даются, только выдача новых ...

А как при получении новых кодов сохранить их в CSV-файл?
У нас возможно только сохранение в PDF.
Сохранение в CSV не нашли.
11 zelenprog
 
11.03.24
13:06
Нашел вот такое сообщение на сайте Честного знака:

--------------------------
Отключение формата * .csv
--------------------------
С 16.05.2023 будет недоступно получение кодов маркировки в файле формата * .csv.
Отключение связано с частым возникновением ошибок при самостоятельном преобразовании кодов маркировки из файла в Data Matrix.
Для получения останутся доступны форматы * .pdf и * .eps (готовые Data Matrix).
--------------------------

И что получается?
Что мы сами не сможем сформировать штрихкод по своему щаблону?
12 zelenprog
 
11.03.24
13:10
Получается, что мы как пользователи Честного знака вообще нигде и никогда не может увидеть полные коды маркировки, включающие "криптохвост"?
13 Builder
 
11.03.24
13:31
(11) Читаем внимательно - это только для воды.
В других разделах csv как качались с полной маркировкой так и качаются до сих пор.
14 timurhv
 
11.03.24
13:54
(12)
1. Используйте подсистему обмена с ЧЗ в типовых 1С
2. Сообществом уже написаны программы для разбора pdf и выгрузки в csv
3. Есть бесплатные программы на дельфях и тп (если вам все тянуть не нужно), которые умеют работать с СУЗ и выгружать в csv
15 H A D G E H O G s
 
11.03.24
14:29
(13) Пиво с НГ тоже не качается больше. Пришлось распознаватор datamatrix из пдф писать.
16 H A D G E H O G s
 
11.03.24
14:32
Причем эти уникумы сначало просто png изображения пихали в pdf, а потом стали рисовать datamatrix квадратиками в postscript языке pdf
17 zelenprog
 
11.03.24
15:30
(13) У нас для молочки тоже CSV не скачивается
18 zelenprog
 
11.03.24
15:44
(14) >> 1. Используйте подсистему обмена с ЧЗ в типовых 1С

Можешь подробнее объяснить как использовать эту подсистему для решения моей задачи?
То есть для печати этикетки со штрихкодом по нашему шаблону. По сути там ничего особенного: печатается стандартный DataMatrix + наш текст.

>> 2. Сообществом уже написаны программы для разбора pdf и выгрузки в csv

Где это можно найти?
На Инфостарте я нашел три очень похожих обработки, но они на вход требуют полный код маркировки.
19 timurhv
 
11.03.24
16:28
(18) Полный код в любом случае нужен, я писал про новые заказы, либо если сохранился pdf, то скормить можно
shoesmark точка ru
20 timurhv
 
11.03.24
16:27
+(18)
>Можешь подробнее объяснить как использовать эту подсистему для решения моей задачи?

Но это все для новых заказов, либо если есть pdf из СУЗ, то (19) подойдет
https://its.1c.ru/db/marking#content:313:buh30
21 Смотрящий
 
11.03.24
16:43
Полный код хранится в самом датаматриксе (пара лет на зад, меха и одежда)
Сначала тоже парились с получением файлов csv от ЧЗ или от поставщика. Потом настроил чтение/распознавание датаматриксов с картинки. Ну и пихал данные в серию в документах УГ 11.4
и рисовал свои коды когда было надо
22 Builder
 
11.03.24
16:45
Кстати, а что мешает свой шаблон сделать на сайте ЧЗ и сразу получать готовые PDF?
Зачем вот это вот все?
23 Смотрящий
 
11.03.24
16:48
Они не предоставляют такой сервис, вроде
24 Chai Nic
 
11.03.24
16:49
(21) Помню, в лесной егаис как-то нам прислали бумажку с qr-кодом, размером с лист а4, где был закодирован весь документ. Хорошо, что там в колонтитуле был УИД документа, по которому можно было в лес-егаисе его подцепить, вбив его вручную посимвольно. А так, ни один смартфон такой 2д-код не брал, не хватало четкости фото. Если отсканировать на сканере и декодировать - то выдавалась какая-то непонятная многокилобайтная фигня, похожая на json. Я так и не понял, как с этим правильно полагалось работать.
25 timurhv
 
11.03.24
16:51
(22) (23) Можно подгружать шаблон JasperReports

https://triar.su/articles/kak_sozdat_i_zagruzit_sobstvennyy_shablon_markirovochnoy_etiketki/
26 Смотрящий
 
11.03.24
16:51
Датаматрикс - умеет корректно читаться даже если 30% кода отсутствует.
Когда демонстрировал чтение - залепил угол стикером - заказчик только пешки вылупил - очень актуально ему было, т.к. шмотье таскается, коды истираются ...
27 Builder
 
11.03.24
16:52
(23) Да ладно, а как же я свои делал? :)
Все там можно сделать, качаешь шаблон, есть отдельный редактор и делай что хочешь. Можно установить его основным и все этикетки по нему делаются.
28 Смотрящий
 
11.03.24
16:52
(25) ЧЗ не предоставляет - это прокладка какая то; сегодня есть, завтра нет - и остановился торговый процесс ...
29 Смотрящий
 
11.03.24
16:53
(27) Ну может и докрутили что за два года. Не принципиально уже
30 timurhv
 
11.03.24
16:55
(28) Это не прокладка, это шаблон, который загружается в профиле СУЗ.
С помощью JasperReports ЧЗ и генерирует этикетки, чтобы отдать их через веб
31 Builder
 
11.03.24
16:57
(28) https://markirovka.ru/video_instructions/sozdanie-i-zagruzka-polzovatelskikh-etiketok/
Нештатный только редактор шаблонов. Все остальное штатное.
32 agarych
 
11.03.24
19:24
(0)
В ЛП и обуви также нельзя просто так получить файлы с кодами маркировки. Я пользуюсь сторонним приложением (платное с годовой лицензией, если не забанят, то я напишу что это за приложение) для получения txt файла со списком КМов, дальше использую в своей обработке для формирования этикеток с DM.

csv они перестали присылать в том числе из-за того, что этот файл открывали экселем и там терялся символ [gs].
33 FirstLine Support
 
11.03.24
19:54
Слухайте сюда. Всё делается элементарно, без всяких pdf и прочих csv, на базе типовых.
Проводите эмиссию, коды падают в РС "Пул кодов маркировки". Рисуете свой шаблон, дата-матрикс внимание! ТИП штрихкода 24.
Пихаете из РС полный код маркировки в свой шаблон. Полный код маркировки вместе с криптохвостом хранится в РС закодированном виде base64.
На инфостарте ничего подходящего нет, есть обработки, которые дают информацию к размышлению. Мне лень заливать туда свою обработку печати.
34 H A D G E H O G s
 
11.03.24
20:39
(33) Это он там хранится после ввода в оборот. До ввода в оборот нет тамнифига.
35 FirstLine Support
 
11.03.24
21:04
(34) Всё верно, только с точностью наоборот. После эмиссии - он там хранится, в момент ввода в оборот - удаляется. Если точнее - удаляется криптохвост, а сам код-то конечно остаётся, только от него толку мало - для печати он не пригоден без криптохвоста
36 zelenprog
 
12.03.24
12:44
Пока сделали с помощью распознавания PDF.
Из этого PDF-а вытаскиваем полные коды маркировки, затем заполняем наш шаблон этикетки (вставляем туда наш текст, и картинку - формируем новый DataMatrix по коду с помощью внешней компоненты).

При формировании картинки DataMatrix-а возник такой вопрос.
Надо ли при этом в код маркировки добавлять первый символ согласно "Правил"?
В "правилах" написано:
----
46. Средство идентификации потребительской упаковки, групповой упаковки, набора товаров содержит код маркировки, включающий в себя 3 группы данных, идентифицирующихся атрибутами (идентификаторами применения - AI), предусмотренными стандартом GS1 Data Matrix. В начале строки кода маркировки должен присутствовать признак символики GS1 Data Matrix FNC1 (ASCII 232):
----

Если в начало кода маркировки добавить указанный признак FNC1 (ASCII 232), то сформированный по такому коду DataMatrix не распознается приложением "Честный знак". А если этот признак не добавлять в код маркировки, то сформированный DataMatrix распознается.

Для чего тогда нужен этот признак?
37 zelenprog
 
12.03.24
12:48
(36)+
Причем в "оригинальном" pdf-е от "Честного знака" при чтении сторонними читалками QR-кодов впереди кода маркировки какой-то символ есть.
Но это не символ с кодом 232 (ASCII 232).
А какой? Как это узнать? И почему там стоит не символ 232?
38 U4Me2
 
12.03.24
13:36
(36) А с помощью какой внешней компоненты генерируете, может у неё есть какие то параметры для вставки FNC1 комманды?
39 U4Me2
 
12.03.24
14:35
у 1с есть компонента печать штрихкодов. Не пробовали её?
40 Salimbek
 
12.03.24
14:22
(36) Значит вы "криво" добавляете этот самый FNC1
41 zelenprog
 
12.03.24
15:05
(38) >> А с помощью какой внешней компоненты генерируете

Скачал обработку с Инфостарта.
В первом сообщении давал ссылку. Вот в этой обработке вшита компонента, которая генерит.

(39) >> у 1с есть компонента печать штрихкодов не пробовали её

Эта компонента - это часть платформы? Или часть конфигурации?
Пробовал на демо-базе "Комплексная автоматизация".
Правда конфигурация не очень свежая - 2.5.13.82.
В печатаемом штрих-коде также нету "ведущего" FNC1-символа.
42 zelenprog
 
12.03.24
15:08
(40) >> Значит вы "криво" добавляете этот самый FNC1

Что значит "криво"? Просто добавляю символ в нужной кодировке.

В описании встроенной компоненты 1С вообще написано, что этот символ добавляет сама компонента:
https://its.1c.ru/db/metod8dev#content:5963:hdoc:specific
------------------
Особенности работы с GS1 кодами
К GS1 типам кодов относятся – EAN128, GS1 Datamatrix и GS1 Databar extended stacked. При задании ЗначенияКода GS1 кодов допускается две формы ввода:

В виде Строки. В этом случае ЗначениеКода должно содержать код GS1 в HRI (Human Readable Inеrpretation) виде, в котором коды групп применения заключены в круглые скобки, например, (01)04600822901507(11)161109(30)2434. В этом случае компонент интерпретирует строку как код GS1, раскрывает скобки, добавляет символ GS в конце каждой группы переменной длины и генерирует изображение, добавив графический символ начала кода FNC1.
В виде Строки Base64. В этом случае внешняя система передает в компонент двоичные данные, содержащие в соответствии со стандартом GS1 группы применения и символ GS завершения группы переменной длины. Компонент генерирует изображение полученных данных, добавляя в штрихкод лидирующий графический символ FMC1. Проверка данных на соответствие стандарту GS1 не производиться. Пример входного значения - MDEwMDg1MTc2ODAwMzAyMDIxPktvbzNLUkx0Z0YicB05M2RHVno=
-----------------

То есть в данном случае моя обработка не должна его добавлять. Его добавляет сама коспонента.
Но почему же тогда этот символ не "виден" в готовом штрих-коде?
43 FirstLine Support
 
12.03.24
17:05
(42) я же вам написал в (33), используйте вид штрихкода в компоненте 24. Это и есть FNC1
44 zelenprog
 
13.03.24
13:06
(43) Действительно! Надо указывать вид штрихкода 24.
Спасибо!

В скачанной обработке с Инфостарта почему-то был указан вид штрихкода 18.
После изменения на 24 все заработало: при считывании сформированного обработкой штрихкода в считанном коде "виден " первый символ FNC1.
45 GreenLab
 
13.03.24
15:29
Вот пожалуйста печать из Пула кодов маркировки СУЗ https://infostart.ru/1c/tools/1315841/ Делал для шин, но думаю для молочки не будет сильно проблемно доработать
46 GreenLab
 
13.03.24
15:30
Только желательно Zint обновить в макете
47 lodger
 
13.03.24
16:06
лютые изобретатели велосипедов.
судя по ответам автора - у него УТшка. так почему вы не пользуетесь подсистемой печати в УТ? она умеет в кастомные шаблоны этикеток.
48 FirstLine Support
 
13.03.24
17:34
(47) добавь в родной макет два штрихкода дата-матрикс и ean13, посмотрим
49 lodger
 
13.03.24
18:02
(48)
а занафига вам 2 раза ДМ?
б не пробовал, но осуждаю.
50 FirstLine Support
 
13.03.24
18:24
(49)ДМ - один раз
EAN13 - один раз
Всего два штрихкода, сверху квадратный, снизу длинненький.
Причем, тот который длинненький, должен начинаться не на 46, а на 20

Так надо.
51 vis
 
13.03.24
18:37
(45) Спасибо за "Печать (экспорт) кодов маркировки автошин"!
52 Смотрящий
 
13.03.24
19:23
(50) Этикетка заточена под один штрихкод в УГ - чтоб два выводить дм и еан - лютые пляски с бубном ...
53 FirstLine Support
 
13.03.24
19:52
(52) поэтому я сделал свою обработку печати этикетки, а за родную этикетку топил longer.
Там еще есть одна смешная проблема с родной этикеткой - её можно распечатать ТОЛЬКО ОДИН раз
54 Смотрящий
 
13.03.24
20:52
(53) Вроде декрейзить счетчик надо перед печатью, уж не помню
55 FirstLine Support
 
13.03.24
21:08
(54) там нет счетчика печати, потребуется написать обработку для очистки одного реквизита в регистре пула, там хранится дата печати. Написать обработку пять минут, но это же нужно нанимать программиста
56 zelenprog
 
14.03.24
08:28
(46) >> Только желательно Zint обновить в макете

А как это делается?
Можно чуть подробнее?
57 GreenLab
 
14.03.24
12:02
(56) Свежий забирает тут https://sourceforge.net/projects/zint и в макете zint загружаем из zint.exe
58 lodger
 
14.03.24
13:24
(55) в заказе, с которого печатается набор этикеток, под кнопкой "ещё" есть команда для разрешения повторной печати.
59 FirstLine Support
 
14.03.24
15:12
(58) сбросит признак печати у всех 1500 этикеток, а напечатать нужно одну
60 zelenprog
 
15.03.24
14:10
А интересно...
В 1С общий модуль "ГенерацияШтрихкодов" какую компоненту печати использует?
Это что-то типа Zint? Или какая-то собственная разработка 1С?
61 PORGY3000
 
12.04.24
16:28
Народ поделитесь как распознавать DataMatrix в pdf !!!
Заранее спасибо !