Это копия оригинальной версии поста https://habr.com/post/510996/, который был значительно сокращён по просьбе ЦРПТ.
Этот лозунг лучше всего подходит для внедряемого в России проекта маркировки.
Сразу договоримся, что я не буду писать о банальных вещах, о которых рассказывают на всякого рода конференциях, официально проводимых ЦРПТ, производителями ККМ или операторами ЭДО. Об этом вы и сами можете посмотреть на сайте Честный знак.
На всех форумах говорят одну и ту же мантру: «Внедрение маркировки проходит легко и сама маркировка защитит покупателя от контрафакта».
Но это, мягко говоря, неправда.
Я расскажу о том, о чем вам никогда не расскажут на официальных мероприятиях. О проблемах, возникающих при внедрении маркировки.
Введение
Я работаю руководителем отдела ИТ и отвечаю за внедрение маркировки в учётных системах 1С в группе табачных компаний (от производителя до розничной торговли).
Сегодня я хочу поделиться опытом моей команды и особенностями внедрения маркировки сигарет.
Всё, что я буду писать ниже, относится только к табачной продукции. Опыта для обувной продукции у меня нет, но, возможно, там аналогичные проблемы.
Для дальнейшего понимания вас нужно погрузить в некоторую техническую часть
Маркированными являются те сигареты, на потребительской упаковке которой нанесён код в соответствии с требованиями оператора (эмитента) кодов маркировки.
Надо помнить, что в течение переходного периода для производителей (2018—07.2019) состав маркировки менялся. Производители сигарет совместно с оператором ЦРПТ пытались найти приемлемые решения. Выявляли ошибки работы оборудования, как при нанесении маркировки, так и при их регистрации в самом ЦРПТ. В это время производилась наладка оборудования, выявлялись ошибки в программных средствах производителя при бесконечно меняющихся правилах от ЦРПТ. Исправлялись ошибки в работе СУЗ от ЦРПТ, которых тоже было много.
Давайте быстро разберём строение кода маркировки сигарет, действующего сегодня.
Для кодирования серийного номера сигарет, МРЦ (максимальная розничная цена) используется 80 символов:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”%&’*+-./_,:;=<>?
Алгоритм кодирования-декодирования МРЦ основан на переводе размера МРЦ в копейках в 80-чную систему счисления, используя следующий алфавит:
Кодирование
- МРЦ преобразуем в копейки, например
- Находим целую часть и остаток от деления МРЦ на основание системы счисления (в нашем случае – 80)
- Берём символ из алфавита по индексу, равному остатку и записываем его в начало результирующей строки
- Повторяем шаги 2 и 3 пока целая часть не окажется равной 0
- Дополняем результирующую строку до 4 символов слева символом по индексу 0 из алфавита (“A”)
Пусть МРЦ = 146р30к, тогда МРЦ в копейках = 14630к
Результирующая строка изначально пустая.
- Находим целое и остаток от деления 14630 на 80: 182 и 70
- Находим символ по индексу 70 в алфавите и добавляем его в начало результирующей строки: “.”
- Целое от деления больше 0, поэтому находим новые целое и остаток от деления 182 на 80: 2 и 22
- Находим символ по индексу 22 в алфавите и добавляем его в начало результирующей строки: “W.”
- Целое от деления больше 0, поэтому находим новые целое и остаток от деления 2 на 80: 0 и 2
- Находим символ по индексу 2 в алфавите и добавляем его в начало результирующей строки: “CW.”
- Целое равно 0, поэтому дополняем результирующую строку слева нулевым символом: “ACW.”
Декодирование
- Для каждого символа из закодированного представления МРЦ повторяем следующие шаги
- Возводим длину алфавита, равную 80, в степень, равную позиции текущего символа МРЦ, считая с конца строки и начиная с 0, и умножаем на индекс текущего символа в алфавите
- Прибавляем полученное значение к результирующему
Пусть закодированное значение МРЦ равно “ACW.”
Результирующее значение изначально равно 0.
- Берём первый символ МРЦ: “A”
- Индекс символа “A”: 0
- Возводим 80 в степень 3 (позиция текущего символа, считая от конца строки из 4 символов) и умножаем на 0, получаем 0
- Прибавляем 0 к результирующему значению строке: 0
- Берём второй символ МРЦ: “C”
- Индекс символа “C”: 2
- Возводим 80 в степень 2 и умножаем на 2, получаем 12800
- Прибавляем 12800 к результирующей строке: 12800
- Берём третий символ МРЦ: “W”
- Индекс символа “W”: 22
- Возводим 80 в степень 1 и умножаем на 22, получаем 1760
- Прибавляем 1760 к результирующему значению: 14560
- Берём четвёртый символ МРЦ: “.”
- Индекс символа “.”: 70
- Возводим 80 в степень 0 и умножаем на 70, получаем 70
- Прибавляем 70 к результирующему значению: 14630
- Итоговое значение МРЦ = 14360к или 146р30к
Поскольку на практике МРЦ (максимальная розничная цена) округляется до рублей и имеет диапазон от 60 до 500 рублей, можно сделать вывод: МРЦ в 80-ричной кодировке всегда начинается с “A”, а заканчивается на один из четырёх символов “A”,“U”,“o”,“8”. Можно использовать это для проверки валидности МРЦ в коде маркировки пачки.
Таблица кодирования МРЦ:
Рассмотрим маркировку на примере сигарет с фильтром «T&W» ОРИДЖИНАЛ КОМПАКТ МРЦ 106
Вот как выглядит маркировка на пачках и блоках:
Извините, я не нашёл блок с МРЦ 106, для фото брал 115.
Маркировка пачки:
0461003014152700000HdAB0oOnE1
Строка длиной 29 символов, содержит:
- GTIN-14 (14 цифровых символов). Содержит лидирующие “0” и EAN-13 код для единицы измерения «пачка» прижаты к правому краю. Аналогичен обычному EAN-13, нанесённому на пачке.
- Серийный номер (7 символов). Идентификационный код, сгенерированный оператором эмиссии из набора 80 символов. Задумывался он как уникальный для указанного EAN.
- МРЦ (4 символа). Максимальная розничная цена, указанная в копейках в 80-ричном исчислении.
- Криптохвост (4 символа). Код создаётся на производстве в «чёрном ящике» при запросе очередного пула кодов у оператора эмиссии маркировки. Его запрещено накапливать в базах данных и передавать третьим лицам. На мой взгляд, это требование — самая большая ошибка ЦРПТ, потом вы поймёте, почему я так считаю.
Маркировка блоков:
(01)04610030141534(21)00000!&<FNC1>(8005)106000<FNC1>(93)yikZ
Строка длиной не менее 41 символов и содержит код в формате GS1. Скобочки добавлены для наглядности. Содержит символы GS1
- (01) GTIN-14 (14 цифровых символов). Содержит лидирующие “0” и EAN-13 код для единицы измерения «блок». Аналогичен обычному EAN-13 нанесённому на блоке.
- (21) Серийный номер (7 символов). Идентификационный код, сгенерированный производителем из набора 80 символов. Задумывался как уникальный для указанного GTIN-14.
- (8005) МРЦ (6 цифровых символов). Максимальная розничная цена, указанная цифрами в копейках для блока. В нашем примере 1060.00 рублей для блока (106 для пачки)
- (93) Криптохвост (4 символа). Код создаётся на производстве в «чёрном ящике» при запросе очередного пула кодов у оператора эмиссии маркировки. Его запрещено накапливать в базах данных и передавать третьим лицам.
В код могут быть включены дополнительные данные, но первыми должны идти коды 01 и 21.
Маркировка коробов:
(01)14610030141524 (21)0011986
Строка длиной не менее 25 символов. Содержит обязательные коды 01 и 21 в формате GS1. Каждый производитель сам определяет состав кода маркировки для транспортной упаковки. Не имеет криптохвоста. Может быть нанесён как GS-1 DataMatrix код.
Часто производители дублируют GS-1 (CODE-128) и GS-1 DataMatrix, вот пример:
Другие производителя иногда не указывают МРЦ, а некоторые добавляют элемент 240 для указания внутреннего кода номенклатуры производителя.
Разберём наш пример кода маркировки транспортной упаковки «короб»:
- (01) GTIN-14 (14 цифровых символов). Содержит IFT-14 код для единицы измерения «короб». Аналогичен обычному IFT-14, нанесённому на коробе в чёрной рамке.
- (21) Серийный номер (7 цифр). Идентификационный код, сгенерированный производителем и обеспечивающий неповторимость в рамках одного IFT-14 кода.
- (8005) МРЦ юнита (6 цифровых символов). Максимальная розничная цена, указанная в копейках для вложенного юнита – «блока».
- (37) Количество вложенных юнитов (2 и более цифровых символов). Количество вложенных в короб блоков сигарет.
В код могут быть включены дополнительные данные, но первыми должны идти коды 01 и 21.
Маркировка паллет:
(00)946100301410004634
Строка длиной 20 символов. Содержит префикс 00 и обязательный логистический код паллеты (контейнера) SSCC.
На всех упаковках, кроме пачек, наносится как машиночитаемый код, так и его человекочитаемый эквивалент. Это позволяет набрать код маркировки вручную, если по какой-то причине код не сканируется сканером.
Агрегации и дезагрегации.
В маркировке от ЦРПТ заложены такие возможности как агрегация и дезагрегация упаковок. До недавнего времени агрегация производилась только на заводе изготовителе. С завода информация передаётся в ЦРПТ. Не только о нанесённых кодах маркировки, но и об её агрегации. JSON файл, передаваемый с завода в СУЗ ЦРПТ, содержит структуру, в которой нельзя отправить данные о маркировке без данных о заводской агрегации. На заводе, агрегация блоков/коробов/паллет производится при повторном сканировании маркировки с каждого вложенного элемента и кодов упаковки. Этим обеспечивается проверка читаемости кода и гарантия соответствия кодов, входящих в состав упаковки, коду самой упаковки. Поэтому старайтесь сохранять заводскую упаковку до последнего момента. Вскрыв заводскую коробку, уже нельзя гарантировать, что все блоки относятся именно к этому коробу. Привет всем торговым сетям, которые проверяют вложенные блоки и вскрывают короба для этого ;)
Недавно функция агрегации сигарет появилась в API для торговых организаций. Видим большую перспективу здесь для отгрузки паллетами с логистических складов.
Дезагрегация производится автоматически, как только вложенная в упаковку единица была использована в документах выбытия или смены собственника. Другими словами, если продать пачку сигарет, то блок, в котором она находилась, автоматически дезагрегируется на пачки, а короб, в котором находился этот блок, дезагрегируется на блоки и т.д. Использовать в дальнейшем дезагрегированные коды блока, короба, паллет будет невозможно. Это, кстати, «ахиллесова пята» маркировки сигарет, создающая наибольшие проблемы в обороте сигарет. Но об этом ниже.
Теперь разберём проблемы, с которыми мы столкнулись при внедрении прослеживаемости движения сигарет
Криптохвост на сигаретах никому не нужен и нигде не проверяется
… фабрика наносит код, который генерирует единая система, а защищает его криптография, поэтому подделать или скопировать его невозможно… То есть система замкнутая и ни у кого нет возможности на каком-либо этапе добавить в партию нелегальный товар.
Вот только он забыл добавить, что на всех участках криптохвосты обрезаются, и никуда не передаются, и нигде не запоминаются. Криптохвост существует только на упаковке и в недрах баз данных органов власти (я на это искренне надеюсь). Доказать задним числом, что ты продал подделку или оригинал невозможно, если ты ранее приобретал аналогичную продукцию.
Нет, наверное, можно проверить криптохвост, пока сохранена сама упаковка у покупателя, но при продаже, узнать та ли конкретная упаковка продавалась или другая с подменным криптохвостом невозможно. Злоумышленнику все, что нужно, это попасть на существующий в природе серийный номер (благо он нумеруется по порядку у всех, кроме как у ФилипМорис)
Ниже пример:
Обратите внимание на последние четыре символа — это для теста подменённый криптохвост.
Когда мы эту картинку показали ЦРПТ, они признались, что у них нет технической возможности проверять криптохвосты. Более того, у них нет информации о том, по какому алгоритму генерируются криптохвосты. И, что они сделали после нашего обращения? Они обновили приложение «Честный знак» и теперь обрезают криптохвосты и не показывают его на экране. Наверное, чтобы никто не мог тыкать их носом. Но мы-то снимок экрана сохранили :)
К чему приводит отказ от проверки криптохвостов ЦРПТ?
Первая и самая главная проблема, это возможность выводить из оборота сигарет продукцию, которая вам не принадлежит. Вы можете даже не иметь под рукой настоящую пачку сигарет. Для вывода из оборота сигарет вам нужны только ЕАН13 и серийный номер, который у большинства производителей идет по порядку в 80-ричном исчислении (см. выше).
В частности, в ККМ и оператору ЭДО через УПД передаётся только первые 21 символ кода маркировки с пачек или 25 символов с блоков сигарет. И даже если вы каким-то чудом отправите более длинную строку, в ЦРПТ поступят исключительно первые 21/25 символов на выбытие сигарет или смены собственника.
Вы можете самостоятельно провести эксперимент: сосканируйте код с пачки сигарет в notepad, замените криптохвост (последние 4 символа) на любые другие 4 символа и из полученного результата обратно сгенерируйте DataMatrix. Программа для проверки подлинности продукции «Честный знак» покажет, что этот код подлинный.
Другими словами, никто в цепочке от предпринимателя до оператора ЦРПТ, не проверяет соответствие серийного номера пачки сигарет его криптохвосту. Я даже больше скажу, ЦРПТ не проверяет даже соответствие серийного номера к указанному МРЦ в коде. Программа честный знак показывает размер МРЦ, динамически рассчитывая его из кода, ограничивая верхнюю и нижнюю планку, после которой МРЦ просто не выводится.
Вы можете сказать: «Ну и что, ну не проверяет криптохвост, нам же лучше». А вот и не лучше! Сейчас объясню почему в следующем пункте с проблемами.
Бесконтрольная дезагрегация транспортных упаковок
Впервые мы столкнулись с этой проблемой, когда ЦРПТ стал отказывать в отражении смены собственников по некоторым нашим ЭУПД. Это было еще в 2019 году, когда использовать ЭДО обязаны были только производители и первые покупатели.
Причина отказа — дезагрегация транспортной упаковки (короба).
На каждый такой случай ЦРПТ писал: «короб дезагрегирован, потому что из короба была продана одна пачка или блок».
ЦРПТ обвинял всех, кроме себя. Мы тоже полагали, что это внутренний пересорт. Но однажды подвернулся случай. В день, когда мы узнали об очередной такой дезагрегации, дезагрегированный короб ещё не покинул наш склад. Конечно, мы его тут же вскрыли и увидели, что пачка, которая по данным ЦРПТ была выведена из оборота через розницу, лежит целая и нетронутая в коробке.
Посмотрели в личном кабинете, кто и когда продал эту пачку. Договорились с розничным продавцом и получили все его логи из POS систем по нашим сигаретам.
Увидели, что была продажа пачки сигарет с совпадающим серийным номером, но с совершенно кривым МРЦ и другим криптохвостом. Связались с производителем POS, а он пояснил, что у этих продавцов 2D сканеры воткнуты «в разрыв клавиатуры» и на результат их сканирования влияют: текущий вид OS (там был линукс), кодировка раскладки клавиатуры, CapsLock и SHIFT.
Соответственно, код маркировки, приведённый в примере выше, 0461003014152700000HdAB0oOnE1 при включённом CapsLock превращается в 0461003014152700000hDab0OoNe1. Вспоминаем, что ЦРПТ не смотрит и не проверяет МРЦ и криптохвост. В результате получаем 0461003014152700000hD. А такая пачка есть, но в другом коробе. Кстати, если включена русская раскладка и в серийном номере нет букв, то можно попасть на подмену знака препинания с (01)04610030141534(21)00001.6 на (01)04610030141534(21)00001?6 и так далее.
Если ЦРПТ находил похожий серийный номер сигарет и вне зависимости от того, кто собственник, он проводил выбытие этой пачки/блока, попутно дезагрегировав все вышестоящие упаковки.
Когда стал доступен TrueAPI мы провели инвентаризацию на складах, и обнаружили еще не проданных от производителя, но уже дезагрегированных 63 короба на одном центральном складе и 23 короба на другом центральном складе.
И, отгружая через неделю из проверенных остатков, мы вдруг обнаруживаем, что появились ещё несколько дезагрегированных коробов по той же причине.
Пример такой дезагрегации
При просмотре состава дезагрегированного блока видно, что одна пачка продана неким индивидуальным предпринимателем, несмотря на то что все остальные пачки этого блока ещё не проданы от производителя ООО «УСМ»
По этому поводу мы написали в ЦРПТ официальную заявку. Более того, мы поднимали этот вопрос на собрании совместно с другими производителями и министром промышленности. Заявленная проблема была занесена в протокол собрания, но так и не была решена до сих пор. Любой участник оборота может продать ваши сигареты, просто случайно попав на ваш серийный номер.
Последнее заявление, которое мы получили от ЦРПТ примерно такое:
мы разработали систему маркировки для гос.органов, в которой у нас самих нет технической возможности проверять валидность эмитируемых нами кодов маркировки. Мы опознаем сигареты и отражаем их движение ориентируясь исключительно на серийные номера.
Трудно представить, как такая маркировка будет применяться на лекарствах?!?
И даже, если мы будем проверять статусы маркировки перед каждой отгрузкой, а мы это уже делаем, нет гарантии того, что пока машина едет до покупателя, все короба останутся недезагрегированными на момент приёмки.
Я уже молчу о том, что при продаже в рознице у вас будут пачки, которые по данным ЦРПТ уже выведены из оборота кем-то другим.
Напоминаю, что ЦРПТ говорит:
это не наши проблемы и ничего пока исправлять не будем.
Рекомендации ЦРПТ проверять статус и собственника маркированного товара перед подписанием документов о покупке или продаже
Действительно, с появлением TRUE_API.pdf, у участников оборота появилась возможность получить данные о кодах маркировки, их вложенность в агрегаты, текущих собственниках и др. информацию.
Многие сети решили с помощью данного API внедрить проверку собственника перед покупкой и сделали это одним из условий договоров.
Да что там греха таить, некоторые производители ККМ и операторы ЭДО решили обезопасить своих клиентов, и не дают им продавать или подписывать документы, пока данные о собственнике маркированного товара не будут соответствовать участникам сделки. Не будем во всех тыкать пальцем, но хочу передать привет особенно компании 1С, СБИС и АТОЛ.
Как всегда хорошие задумки этих компаний разбиваются об айсберг действительности.
Особо пытливые умы могут проверить на примере:
Верхняя пачка в приложении «Честный знак» не проходит проверку (слева), а нижняя проходит (справа):
Чтобы не дезинформировать потребителей в ЦРПТ обещали исправить своё приложение уже на следующей неделе. Но вот когда они поправят ГИС МТ для предпринимателей?
Что касается проверки информации о текущем собственнике, в реальности, дела обстоят так: сегодня, когда я пишу эту статью 26.06.2020, в ЦРПТ отражена смена собственников только до 15.06.2020. Ни один документ после 15.06.2020 ещё не отражён в базе данных ЦРПТ. У нас были случаи, когда ЭУПД появлялась в личном кабинете ЦРПТ спустя месяц, и только после обращения в службу поддержки ЦРПТ.
Как это обычно происходит. Мы видим, что наши документы не появляются в ЦРПТ слишком долго (более недели). Пишем в поддержку ЦРПТ обращение. Поддержка ЦРПТ пишет, что они не получали наших ЭУПД. Пишем оператору ЭДО. Оператор ЭДО пишет, что все ЭУПД давно направлены в ЦРПТ. Вот так и бегаем от одних к другим.
А покупатели, наслушавшись невыполнимых рекомендаций ЦРПТ об обязательной проверке, бегают и мучают нас вопросами: «Почему у меня не отразилось в личном кабинете?», «Почему ваши сигареты не проходит проверку в ЭДО?», «Почему ККМ не даёт продать ваши сигареты?»
На практике за один день собственник может смениться несколько раз (производитель-первый покупатель-торговая сеть).
И не забываем, что маркированные сигареты вы могли совершенно законно приобрести на бумажном носителе до 01.07.2020. Но их собственник в ГИС МТ будет отражён неверно.
Помножим проблему несвоевременного отражения в ЦРПТ информации о смене собственников на проблему о бесконтрольной дезагрегации и получим недостоверность данных, отражённых в ГИС МТ.
Подытожим. Внедрение проверки статусов и собственников при приёмке товаров и при продаже товаров пока даёт лишь головную боль участникам оборота, а не защищает вас от штрафов.
Согласие на передачу информации в ГИС МТ третьим лицам
ЦРПТ ввёл сбор «согласия» тогда, когда мы продемонстрировали в поддержку ЦРПТ, как можно по кодам маркировки смотреть всю историю движения сигарет, в том числе, не принадлежавших нам, и скачивать все ЭУПД по всей цепочке продаж с вложенными кодами маркировки и ценами.
Например: нашли на улице пачку от ФИЛИП МОРРИС и по коду маркировки пачки, используя специальный GET запрос, скачали для этой пачки цепочку всех продаж в виде документов УПД -XML. В этих УПД видим цены и коды маркировки. По каждому коду смотрим дальнейшее движение… и так по кругу.
Вы не представляете, какое было желание продать все блоки конкурента по цене 0.01 коп. Это бы привело к выводу из оборота и дезагрегации всех заводских коробов конкурента. Однако удержались и написали об этой уязвимости в поддержку ЦРПТ.
Как исправили эту уязвимость в ЦРПТ? Придумали брать согласие от поставщиков на передачу данных своим покупателям. Даёшь согласие, снимаешь с ЦРПТ ответственность за утечку информации.
И в чем проблема? Да в том, что ЦРПТ, приучив всех участников рынка сигарет пользоваться TrueAPI, вдруг объявляет, что будет закрывать доступ к данным, если поставщик маркированной продукции не будет давать «согласие на предоставление данных из ГИС МТ». Соответственно все сети поголовно стали требовать от своих поставщиков такого «согласия». Но давая его, поставщик дарит покупателю возможность в личном кабинете скачать все свои ЭУПД и смотреть, по каким ценам он покупает или продаёт сигареты конкурентам.
Мы уже написали об этой уязвимости в поддержку ЦРПТ, ждём их реакции.
Ниже приведён пример копии экрана из личного кабинета покупателя, отражённого заштрихованного в самой последней строке внизу. Как видите, он может просматривать ЭУПД вышестоящих участников в цепочке продаж.
Скачивать их и смотреть цены.
P.S.: В день, когда я закончил писать статью, ЦРПТ временно сделал запрет на скачивание всех документов и теперь показывает заглушку вместо списка документов.
ЭДО, материальная ответственность и COVID-19
Для запуска ЭДО, все участники оборота должны иметь цифровую квалифицированную подпись для подписания ЭУПД. На каждом собрании (семинаре) от ЦРПТ нам заявляют, что практически все предприниматели и организации уже имеют такой ключ ЭЦП, полученный на директора компании или на индивидуального предпринимателя. Также заявляется, что ЭДО позволит избавиться от лишних бумаг.
Про бумаги мы сразу скажем: для перевозки сигарет автотранспортом все ещё нужны бумажные ТТН. Но я не об этом.
Сигареты, это высоколиквидные материальные ценности, которые все время воруют из транспорта, со складов, магазинов. В случае обнаружения недостачи, с материально ответственных лиц нужно удержать выявленную недостачу, и не всегда добровольно — через в суд. Как раз суду-то и плевать на ваш электронный документооборот, он просит предоставить документы с личной подписью материально ответственного лица. Если у вас все отгрузки и поступления подписаны только цифровой подписью директора, то в суд вам нести нечего.
Сегодня есть два нормальных решения:
- дублировать все ЭУПД на бумажном носителе и брать подписи с кладовщиков и продавцов или вводить у себя бумажную-ордерную систему;
- получать квалифицированную подпись непосредственно на материально ответственных лиц (рекомендуется ЦРПТ).
Мы применяем первый вариант, так как он единственно рабочий.
В варианте, где всё подписывается директорской подписью есть проблемы: сложно доказать отсутствие фиктивности сделок перед налоговой инспекцией. Например, когда документы подписываются директорской цифровой подписью, а тот при этом он находился за границей.
И при такой схеме есть риск остановить все продажи, если вдруг подпись директора перестанет действовать. Дело в том, что новую ЭЦП не так быстро зарегистрировать, как показывают на презентациях. Например , если директор уволится или погибнет, со дня увольнения его подпись нельзя использовать без доверенности, а пока проведут собрание и назначат нового директора и пока налоговая зарегистрирует этого нового директора пройдёт 15 дней минимум.
Для другого варианта, нужно отправить всех материально ответственных лиц за квалифицированной электронной подписью. Каждая бабушка — продавец, из каждого магазина с сигаретами, должна ехать в период пандемии в город за ЭЦП? Минпромторг вы в своём уме?
Сейчас мы склоняемся к гибридному варианту, когда будет и на бумаге, и электронных подписей будет несколько — генерального директора и нескольких региональных руководителей.
Корректировочный ЭУКД
Даже не хочу об этом писать. Если вы не программист и не специалист в маркировке, вы вряд ли сможете оформить электронную корректировку.
Потому что коды маркировки там нужно указывать особым способом и вперемешку.
Да и заявленное ЦРПТ ранее уведомление об уточнении счёт-фактуры также не стандартизировано, и все претензии в нем пишут просто текстом, кто во что горазд.
Лучшее решение сегодня — не подписывать покупателем входящий ЭУПД, если есть претензии. А выслать ТОРГ-2 и коды маркировки поставщику, которые нужно убрать или добавить в УПД. На основании их поставщик аннулирует ЭУПД и выпишет новый, уже правильный. Но если покупатель успел продать дальше или дезагрегировать транспортные упаковки, ваша дорога только одна, через ЭУКД.
Учитывайте всегда, что могут быть ошибки в указании МРЦ в кодах маркировки
В код маркировки встроен параметр «МРЦ» и первое что приходит в голову разработчикам POS систем — будет классно, если POS система сама будет определять цену, по которой нужно продавать сигареты в рознице.
Так делают, например, кассы «ЭВАТОР».
Не буду расписывать — вот примеры:
Нам известна пока только одна POS система, которая правильно работает с такими ошибками.
Непечатаемые символы в маркировке
Позвонил клиент с жалобой, что 1С не пропускает наш код маркировки, так как он имеет нестандартные символы… сразу вспомнил о ещё одной проблеме. Раз клиент не может загрузить такую маркировку в 1С, то видать компания 1С не в курсе.
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”%&’*+-./_,:;=<>?
это не все символы, используемые в маркировке.
При выдаче кодов маркировки оператором эмиссии — ЦРПТ, коды могут содержат непечатаемые символы в криптохвосте.
Когда мы с этим столкнулись в начале 2020 года, мы добавили новый алгоритм в оборудование, работающее на производстве с СУЗ. Теперь мы получаем гораздо больший пул кодов, чем нам нужно для производства, и отбрасываем те коды, которые имеют непечатаемые символы, чтобы защитить наших покупателей.
Конечно, это произошло не сразу и мы успели выпустить много продукции с такими криптохвостами. Такая продукция все еще ходит в обороте. Как решают этот вопрос другие производители мы не знаем.
Мифы о маркировке, которые мне приходится каждый день развеивать
если сигареты куплены по бумажному УПД, то 01.07.2020 придётся их все сканировать и подавать остатки в ЦРПТ;
Это делать не нужно. Данные о маркировке уже есть в ЦРПТ от производителя, а новый собственник будет указан при следующей реализации.
покупатель обязан сканировать маркировку при приёмке табачных изделий;
Создаёт электронное УПД и прикрепляет к нему маркировку только поставщик. Покупатель может лишь подписать или не подписать документ в ЭДО. Желание сканировать товары при приходе — это личное желание покупателя свериться с поставщиком.
поскольку немаркированные сигареты с 01.07.2020 уже нельзя продавать, то их можно только выбросить (утилизировать);
До 01.12.2020 можно самостоятельно маркировать и наклеить стикеры с маркировкой на продукцию. Ждём информацию от ЦРПТ, как это сделать.
в каждом УПД содержится информация обо всех вложенных пачках сигарет (информация об агрегации);
В УПД содержится только тот код маркировки, в котором производится отгрузка. В коробах — значит код короба, в блоках — код блока. Информации о вложенности нет. Отсюда и проблема во многих учётных системах, которые пытаются проверить на совпадение EAN в коде маркировке и ЕАН внесённый в 1С (как правило вносят ЕАН только для пачек и проверка не работает).
если Честный знак показывает, что такой пачки в ГИС МТ не числится или такой блок уже дезагрегирован, то продать эту пачку будет невозможно;
Система маркировки от ЦРПТ является уведомительной системой, а не как в ЕГАИС — разрешительной. Задача покупателя, в соответствии с законом, оформить ЭУПД через своего оператора ЭДО, приложить к нему отгружаемые коды маркировки и подписать документ своим ЭЦП. Никакой проверки, ни поставщик и ни покупатель не обязаны проводить. Сегодня все проверки, это проверки, придуманные производителями ПО POS систем или 1С или операторами ЭДО, основанных на! РЕКОМЕНДАЦИЯХ!.. Участник оборота так же не обязаны проверять работу ЦРПТ и следить за тем, что они у себя отражали все правильно. Следует отметить, что в личном кабинете ЦРПТ, проблемные ЭУПД имеют значок «x», но привлечь к ответственности за это невозможно, так как нельзя доказать — это неверные коды или ошибка в ЦРПТ.
ЦРПТ ведёт остатки табачной продукции за каждым предприятием также, как ЕГАИС;
Учёт построен по-другому. Есть реестр всех эмитированных кодов маркировки. Для каждого кода маркировки, при появлении более позднего документа, устанавливается новый статус и новый владелец. (Аналог периодического регистра сведений в 1С). Легко можно пропустить несколько участников оборота и закончить выбытием в ККМ. Сами коды маркировки заказывают и вводят в оборот производители. Сейчас будут еще и те, кто будет маркировать не маркированные сигареты. Именно по причине, что остатки не проверяются возможна ситуация, когда сторонний розничный продавец продаёт сигареты, которые на самом деле ему не принадлежат, а лежат на вашем складе.
продать в розницу один и тот же код маркировки много раз невозможно;
Можно, если вы не используете такую POS систему, которая сохраняет проданную маркировку и/или проверяют её через ГИС МТ на предмет выбытия. Все запреты — это желание производителей ПО для POS помочь как-то своим клиентам «не залететь на штрафы». Таких запретов, как в ЕГАИС, нет. Могу привести свои случаи: POS система накапливает выбывшие коды и не даёт их продавать повторно. Если дело доходит до пачки с уже выбывшем кодом, продавцы просто меняются проблемными пачками с продавцами из другого магазина. А если включить контроль по ГИС МТ, то в нем информация меняется с большим запозданием и это тоже не решение.
код маркировки не проходит проверку в Честном знаке, потому что он является контрафактным;
Читайте статью, и поймёте, что если что то не отражается в ГИС МТ — это ещё не значит что продукция плохая. На практике, это почти всегда сбои в ЦРПТ.
на коробах/паллетах коды маркировки должны быть в виде datamatrix, как на блоках и пачках;
Читайте правила нанесения маркировки. Любая маркировка на заводе проходит согласование с ЦРПТ. Если завод её наносит на упаковку, значит она нанесена в соответствии с законом. На коробах маркировка может быть нанесена как при помощи GS-1 CODE128 так и при помощи GS-1 DataMatrix. Содержание кодов одинаково.
можно использовать бесплатный ЭДО Лайт от ЦРПТ для оптовой торговли с другими операторами, настроив роуминг (пока это неправда);
Пока это только реклама. Ещё ни один клиент не смог настроить роуминг с ЭДО Лайт. Надеемся что скоро изменится ситуация.
На остальные вопросы буду отвечать в комментариях.
Для тех кто дочитал до конца подарок:
XML. Образец ЭУПД от Мегаполис.
XML. Образец ЭУПД c разными видами упаковок.
XML. Образец уведомления об уточнении счёт-фактуры.