Имя: Пароль:
1C
 
УНФ 3.0 Где хранятся КИЗы с криптохвостами, сканированные в расходную накладную ?
0 bvb
 
27.02.26
14:27
Добрый день

Мне нужно сделать кастомизированную печатную форму (не путать с печатью этикеток) в которую будет выводиться сканированные КИЗы - полные (с криптохвостами)

Не могу понять где они хранятся (в этикетки же они как то печатаются)

В ТЧ "ШтрихкодыУпаковок" они в таком виде :  (01)04603744326014(21)5O3dLBfJaDIZ8
1 Джордж1
 
27.02.26
15:09
(0)нигде. их запрещено хранить

Это какие это вы этикетки печатаете с криптоховоствами интересно
2 torgm
 
27.02.26
16:07
(0) Хранить запрещено , но все делают, сделай свой регистр.
Для справки кизы эмитированные хранятся в отдельном регистре Пул маркировки кодов суз, 1С его обычно после ввода очищают, но многие этот момент правят и оставляют на память для перепечатки поврежденных этикеток.
3 Джордж1
 
27.02.26
16:09
(2)это наверное для производителей/импортеров только

А вот говорят что ЧЗ не выдает КИЗ с крипотохвостами, а отдает PDF (или что-то аналогичное) который только напечатать можно
4 bvb
 
27.02.26
16:19
К 1С восстанавливает исходный  QR при печати кодов маркировки из формы подбора расходной накладной ?

Значит они либо где то есть, либо есть алгоритм восстановления их по данным "Пул кодов маркировки СУЗ"

Вот распечатка из подбора расходной накладной (не вкладывается почемуто)

В ней коды (восстановленные по данным 1С)
Приложение ЧЗ читает - читает

Если считать QR сканером - он будет с криптохвостом :
0104603744326014215"4%5)&+!naP-91EE0692lTxQPD5B7w5TTsY5dPF5zZ97sYEX4MPpk4AqaghA9rQ=

Значит есть криптохвосты ?
5 Джордж1
 
27.02.26
16:27
(4)Криптохвост только в QR-коде есть, а больше его нигде и не должно быть
6 unenu
 
27.02.26
16:32
возможно это вам поможет
https://infostart.ru/1c/reports/2236499/
7 bvb
 
27.02.26
16:48
(5)
Несокрушимая логика подсказывает мне.
1 . Чтобы напечатать QR код - нужен криптохвост
2. Чтобы напечатать криптохвост из 1С в печатной форме 1С- криптохвост должен быть в 1С

ВЫвод : Криптохвост таки есть в 1С
8 Джордж1
 
27.02.26
16:53
(7)"Чтобы напечатать QR код - нужен криптохвост" - только это могут делать производители и импортеры.
И то не факт, что они сами могут формировать QR-код, а не получать готовую печатную форму

Вы производитель или импортер?
9 timurhv
 
27.02.26
17:02
(1) Хранить не запрещено в рамках бизнес-процесса и последующего удаления.
10 akronim
 
27.02.26
17:29
(7) Человек в (2) ответил подробно. Если ты эмитировал марку - криптохвост в пуле у тебя есть, чтобы ты смог напечатать. А  когда ввел марку в оборот - то криптохвост у тебя отбирают, чтобы ты не смог напечатать второй раз.
Джордж немного не в теме, видимо.
11 Джордж1
 
27.02.26
17:37
(10)"Если ты эмитировал марку - криптохвост в пуле у тебя есть, чтобы ты смог напечатать." - пул это что?

Я вот смотрю в ЛК ЧЗ - этикетки можно получить только готовые в формате pdf/eps

Через API эмитированные марки вытащить нельзя, по крайней мере я ничего подобного не нашел

Откуда же можно взять криптохвосты?
12 bvb
 
27.02.26
18:16
Я импортер
Сведений по Эмиссии кодов маркировки СУЗ у меня сейчас в программе нет (и речь не про то)

Я просто сосканировал КИЗы в подбор Расходной накладной

И потом печатаю оттуда этикетку на которой полноценный QR код КИЗа читающейся приложением ЧЗ (находится товар)

Вопрос : КАк 1С смогла напечатать QR если криптохвоста в программе после сканирования  нет ?


Я не говорю сейчас про печать кодов при эмиссии и вводе в оборот - это другая тема
Что непонятного ?
13 Джордж1
 
27.02.26
18:37
(12)а здесь ее случаем нет?

ШтрихкодыУпаковок.ШтрихКодУпаковки.ЗначениеШтрихкода

Насколько я понимаю в Расходной накладной нужна полная КИЗ с криптохвостом на случай печати чека
14 H A D G E H O G s
 
27.02.26
18:43
Всем привет.

Вот такой простой вопрос - если я, оптовик, купил коробку пива и упаковал ее в паллету - должен ли я передавать в ЧЗ данные об агрегации?
15 Джордж1
 
27.02.26
18:45
(14)упаковал в паллету и дальше что?
16 ejikbeznojek
 
27.02.26
18:56
(14) если продаете эту паллету и клиент хочет в упд увидеть код паллеты, то нужно.
17 Джордж1
 
27.02.26
18:59
(16)в печатной форме УПД он код не увидит
18 vis
 
27.02.26
19:31
(11) РС "Пул кодов маркировки СУЗ"
19 MWWRuza
 
гуру
27.02.26
19:39
(11) Я вот смотрю в ЛК ЧЗ - этикетки можно получить только готовые в формате pdf/eps

Ага. А этикетки - безобразные там... Ни туда, ни сюда.
На инфостарте лежит обработка, позволяющая распознать коды марок из пдф в нормальный текст.  Я пользуюсь, и печатаю потом своей обработкой, так, как мне нравится :-)
20 Джордж1
 
27.02.26
19:39
(18) как туда КИЗ попадают то?
21 Джордж1
 
27.02.26
19:41
(19) в вышеуказанный РС судя по наисанному КИЗ в сыром виде попадают. И вряд ли через распознавание
22 MWWRuza
 
гуру
27.02.26
19:43
(21) Ну, скорее всего. Но, это подходит только тем, кто СУЗ через API юзает... У кого обороты маленькие, и работает через ЛК  - такого РС не будет.
23 Джордж1
 
27.02.26
19:46
(22) в апи я такого не нашел. Придется в код лезть
24 ptiz
 
27.02.26
20:11
(14) Только если этого хочет покупатель.
25 ptiz
 
27.02.26
20:14
(20) Попадают после обработки заказа СУЗом.
А после печати - удаляются. Ну как удаляются - сначала ставится признак "напечатано", и 1С не дает повторно печатать. А через некоторое время удаляются.
Но иногда эти коды нужны - можно зафигачить какой-нибудь регистр-дубль и туда дублировать записи без удаления. Например, такое нужно, если коды заказывает тот, кто зареган в ЧЗ и является владельцем GTIN, а реально коды наносит производитель, и коды нужно в полном виде передать производителю по почте и т.п.
26 Джордж1
 
27.02.26
20:13
(25) обработка то их как получает?
Хоть название напишите я код гляну
27 H A D G E H O G s
 
27.02.26
20:21
&После("ПриЗаписи")
Процедура АЧЗПриЗаписи(Отказ, Замещение)
    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
    
    ТаблицаДанных=ЭтотОбъект.Выгрузить(,"ШтрихкодУпаковки,ПолныйКодМаркировки");
    АЧЗМаркировка.ЗаполнитьКриптохвостыМарокИзТаблицыПолныхКодов(ТаблицаДанных);
КонецПроцедуры

Процедура ЗаполнитьКриптохвостыМарокИзТаблицыПолныхКодов(ТаблицаДанных) Экспорт
    
    МассивШтрихкодов=ТаблицаДанных.ВыгрузитьКолонку("ШтрихкодУпаковки");
    
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    ШтрихкодыУпаковокТоваров.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.ШтрихкодыУпаковокТоваров КАК ШтрихкодыУпаковокТоваров
    |ГДЕ
    |    ШтрихкодыУпаковокТоваров.АЧЗКриптохвост = """"
    |    И ШтрихкодыУпаковокТоваров.Ссылка В(&МассивШтрихкодов)";
    Запрос.УстановитьПараметр("МассивШтрихкодов",МассивШтрихкодов);
    
    Разделитель = АЧЗОбщегоНазначенияКлиентСервер.ПолучитьРазделительКриптохвоста();
    БуферРазделитель=ПолучитьБуферДвоичныхДанныхИзСтроки(Разделитель);

    ТаблицаДанных.Индексы.Добавить("ШтрихкодУпаковки");
    Выборка=Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        СтрокаТаблицыДанных=ТаблицаДанных.Найти(Выборка.Ссылка,"ШтрихкодУпаковки");
        Если СтрокаТаблицыДанных=Неопределено Тогда
            Продолжить;
        КонецЕсли;
        ПолныйКодМаркировки=СтрокаТаблицыДанных.ПолныйКодМаркировки;
        Если ПолныйКодМаркировки="" Тогда
            Продолжить;
        КонецЕсли;
        
        Криптохвост=АЧЗМаркировкаКлиентСервер.ПолучитьКриптохвостИзПолногоКодаМаркировки(ПолныйКодМаркировки,БуферРазделитель);
        Если Не ЗначениеЗаполнено(Криптохвост) Тогда
            Продолжить;
        КонецЕсли;
        
        АЧЗОбщегоНазначения.УстановитьЗначениеРеквизитаОбъекта(Выборка.Ссылка,"АЧЗКриптохвост",Криптохвост,Истина,Истина);
        
    КонецЦикла;

КонецПроцедуры

Функция ПолучитьКриптохвостИзПолногоКодаМаркировки(ПолныйКодМаркировки, БуферРазделитель=Неопределено) Экспорт
    
    Если БуферРазделитель=Неопределено Тогда
        Разделитель = АЧЗОбщегоНазначенияКлиентСервер.ПолучитьРазделительКриптохвоста();
        БуферРазделитель=ПолучитьБуферДвоичныхДанныхИзСтроки(Разделитель);
    КонецЕсли;
    Результат="";
    
    Буфер=ПолучитьБуферДвоичныхДанныхИзBase64Строки(ПолныйКодМаркировки);
    МассивБуферов=Буфер.Разделить(БуферРазделитель);
    Если МассивБуферов.Количество()<=1 Тогда
        Возврат Результат;
    КонецЕсли;
    БуферКриптохвоста=МассивБуферов[МассивБуферов.ВГраница()];
    Результат=ПолучитьСтрокуИзБуфераДвоичныхДанных(БуферКриптохвоста);
    Возврат Результат;
    
КонецФункции
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.