[Из песочницы] Маркировка сигарет. Хотели как лучше, а получилось как всегда

Этот лозунг лучше всего подходит для внедряемого в России проекта маркировки.

Сразу договоримся, что я не буду писать о банальных вещах, о которых рассказывают на всякого рода конференциях, официально проводимых ЦРПТ, производителями ККМ или операторами ЭДО. Об этом вы и сами можете посмотреть на сайте Честный знак.

На всех форумах говорят одну и туже мантру: «Внедрение маркировки проходит легко и сама маркировка защитит покупателя от контрафакта».

Но это, мягко говоря, неправда.

Я расскажу о том, о чем вам никогда не расскажут на официальных мероприятиях. О проблемах, возникающих при внедрении маркировки.

Введение


Я работаю руководителем отдела ИТ и отвечаю за внедрение маркировки в учетных системах 1С в группе табачных компаний (от производителя до розничной торговли).

Сегодня я хочу поделиться опытом моей команды и особенностями внедрения маркировки сигарет.

Всё, что я буду писать ниже, относится только к табачной продукции. Опыта для обувной продукции у меня нет, но, возможно, там аналогичные проблемы.

Для дальнейшего понимания вас нужно погрузить в некоторую техническую часть


Маркированными являются те сигареты, на потребительской упаковке которой нанесен код в соответствии с требованиями оператора (эмитента) кодов маркировки.

Надо помнить, что в течение переходного периода для производителей (2018–07.2019) состав маркировки менялся. Производители сигарет совместно с оператором ЦРПТ пытались найти приемлемые решения. Выявляли ошибки работы оборудования, как при нанесении маркировки, так и при их регистрации в самом ЦРПТ. В это время производилась наладка оборудования, выявлялись ошибки в программных средствах производителя при бесконечно меняющихся правилах от ЦРПТ. Исправлялись ошибки в работе СУЗ от ЦРПТ, которых тоже было много.

Давайте быстро разберем строение кода маркировки сигарет, действующего сегодня.
Для кодирования серийного номера сигарет, МРЦ используется 80 символов:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”%&’*+-./_,:;=<>?


Алгоритм кодирования-декодирования МРЦ основан на переводе МРЦ в копейках в 80-чную систему счисления, используя следующий алфавит:

Alphabet for encoding

Кодирование

Процедура кодирования

  1. МРЦ преобразуем в копейки, например
  2. Находим целую часть и остаток от деления МРЦ на основание системы счисления (в нашем случае — 80)
  3. Берём символ из алфавита по индексу, равному остатку и записываем его в начало результирующей строки
  4. Повторяем шаги 2 и 3 пока целая часть не окажется равной 0
  5. Дополняем результирующую строку до 4 символов слева символом по индексу 0 из алфавита («A»)


Пусть МРЦ = 146р30к, тогда МРЦ в копейках = 14630к
Результирующая строка изначально пустая
  1. Находим целое и остаток от деления 14630 на 80: 182 и 70
  2. Находим символ по индексу 70 в алфавите и добавляем его в начало результирующей строки:».»
  3. Целое от деления больше 0, поэтому находим новые целое и остаток от деления 182 на 80: 2 и 22
  4. Находим символ по индексу 22 в алфавите и добавляем его в начало результирующей строки: «W.»
  5. Целое от деления больше 0, поэтому находим новые целое и остаток от деления 2 на 80: 0 и 2
  6. Находим символ по индексу 2 в алфавите и добавляем его в начало результирующей строки: «CW.»
  7. Целое равно 0, поэтому дополняем результирующую строку слева нулевым символом: «ACW.»


Декодирование

Процедура декодирования

  1. Для каждого символа из закодированного представления МРЦ повторяем следующие шаги
  2. Возводим длину алфавита, равную 80, в степень, равную позиции текущего символа МРЦ, считая с конца строки и начиная с 0, и умножаем на индекс текущего символа в алфавите
  3. Прибавляем полученное значение к результирующему


Пусть закодированное значение МРЦ равно «ACW.»
Результирующее значение изначально равно 0.

1. Берём первый символ МРЦ: «A»
2. Индекс символа «A»: 0
3. Возводим 80 в степень 3 (позиция текущего символа, считая от конца строки из 4 символов) и умножаем на 0, получаем 0
4. Прибавляем 0 к результирующему значению строке: 0
5. Берём второй символ МРЦ: «C»
6. Индекс символа «C»: 2
7. Возводим 80 в степень 2 и умножаем на 2, получаем 12800
8. Прибавляем 12800 к результирующей строке: 12800
9. Берём третий символ МРЦ: «W»
10. Индекс символа «W»: 22
11. Возводим 80 в степень 1 и умножаем на 22, получаем 1760
12. Прибавляем 1760 к результирующему значению: 14560
13. Берём четвёртый символ МРЦ:».»
14. Индекс символа ».»: 70
15. Возводим 80 в степень 0 и умножаем на 70, получаем 70
16. Прибавляем 70 к результирующему значению: 14630
17. Итоговое значение МРЦ = 14360к или 146р30к


Поскольку на практике МРЦ (максимальная розничная цена) округляется до рублей и имеет диапазон от 60 до 500 рублей, можно сделать вывод: МРЦ в 80-ричной кодировке всегда начинается с «A», а заканчивается на один из четырех символов «A», «U», «o,»8». Можно использовать это для проверки валидности МРЦ в коде маркировки пачки.

Таблица кодирования МРЦ.
Таблица МРЦ


Рассмотрим маркировку на примере Сигарет с фильтром «T&W» ОРИДЖИНАЛ КОМПАКТ МРЦ 106»

Вот как выглядит маркировка на пачках и блоках:

Маркировка сигарет на пачках и блоках
Извините, я не нашел блок с МРЦ 106, для фото брал 115.

Маркировка пачки:

DataMatrix пачки

0461003014152700000HdAB0oOnE1

Строка длиной 29 символов, содержит:

  • GTIN-14 (14 цифровых символов). Содержит лидирующие »0» и EAN-13 код для единицы измерения «пачка» прижаты к правому краю. Аналогичен обычному EAN-13, нанесенному на пачке.
  • Серийный номер (7 символов) . Идентификационный код, сгенерированный оператором эмиссии из набора 80 символов. Задумывался он как уникальный для указанного EAN.
  • МРЦ (4 символа)/ Максимальная розничная цена, указанная в копейках в 80-ричном исчислении.
  • Криптохвост (4 символа). Код создается на производстве в «черном ящике» при запросе очередного пула кодов у оператора эмиссии маркировки. Его запрещено накапливать в базах данных и передавать третьим лицам. На мой взгляд, это требование — самая большая ошибка ЦРПТ, потом вы поймете, почему я так считаю.


Маркировка блоков:

DataMatrix блокаЧеловекочитаемая копия кода маркировки
(01)04610030141534(21)00000!&(8005)106000(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.

Маркировка коробов:

Маркировка короба в виде GS1-CODE128

(01)14610030141524 (21)0011986(8005)106000(37)50

Строка длиной не менее 25 символов. Содержит обязательные коды 01 и 21 в формате GS1. Каждый производитель сам определяет состав кода маркировки для транспортной упаковки. Не имеет криптохвоста. Может быть нанесен как GS-1 DataMatrix код.

Часто производители дублируют GS-1 (CODE-128) и GS-1 DataMatrix, вот пример:

image

Другие производителя иногда не указывают МРЦ, а некоторые добавляют элемент 240 для указания внутреннего кода номенклатуры производителя.

Разберем наш пример кода маркировки транспортной упаковки «короб»:

  • (01) GTIN-14 (14 цифровых символов). Содержит IFT-14 код для единицы измерения «короб». Аналогичен обычному IFT-14, нанесенному на коробе в черной рамке.
  • (21) Серийный номер (7 цифр). Идентификационный код, сгенерированный производителем и обеспечивающий неповторимость в рамках одного IFT-14 кода.
  • (8005) МРЦ юнита (6 цифровых символов). Максимальная розничная цена, указанная в копейках для вложенного юнита — «блока».
  • (37) Количество вложенных юнитов  (2 и более цифровых символов). Количество вложенных в короб блоков сигарет.


В код могут быть включены дополнительные данные, но первыми должны идти коды 01 и 21.

Маркировка паллет:

Маркировка паллет

(00)946100301410004634

Строка длиной 20 символов. Содержит префикс 00 и обязательный логистический код паллеты (контейнера) SSCC.

На все упаковокb, кроме пачек, наносится как машиночитаемый код, так и его человекочитаемый эквивалент. Это позволяет набрать код маркировки вручную, если по какой-то причине код не сканируется сканером.

Агрегации и дезагрегации.

В маркировке от ЦРПТ заложены такие возможности как агрегация и дезагригация упаковок.
До недавнего времени агрегация производилась только на заводе изготовителе. С завода информация передается в ЦРПТ.  Не только о нанесенных кодах маркировки, но и об ее агрегации. JSON файл, передаваемый с завода в СУЗ ЦРПТ, содержит структуру, в которой нельзя отправить данные о маркировке без данных о заводской агрегации. На заводе, агрегация блоков/коробов/паллет производится при повторном сканировании маркировки с каждого вложенного элемента и кодов упаковки. Этим обеспечивается проверка читаемости кода и гарантия соответствия кодов, входящих в состав упаковки, коду самой упаковки.
Поэтому старайтесь сохранять заводскую упаковку до последнего момента. Вскрыв заводскую коробку, уже нельзя гарантировать, что все блоки относятся именно к этому коробу. Привет всем торговым сетям, которые проверяют вложенные блоки и вскрывают короба для этого ;)

Недавно функция агрегации сигарет появилась в API для торговых организаций. Видим большую перспективу здесь для отгрузки паллетами с логистических складов.

Дезагрегация производится автоматически, как только вложенная в упаковку единица была использована в документах выбытия или смены собственника. Другими словами, если продать пачку сигарет, то блок, в котором она находилась, автоматически дезагрегируется на пачки, а короб, в котором находился этот блок, дезагрегируется на блоки и т.д. Использовать в дальнейшем дезагрегированные коды блока, короба, паллет будет невозможно. Это, кстати, «ахиллесова пята» маркировки сигарет, создающая наибольшие проблемы в обороте сигарет. Но об этом ниже.

Теперь разберем проблемы, с которыми мы столкнулись при внедрении прослеживаемости движения сигарет


Криптохвост на сигаретах никому не нужен и нигде не проверяется


Некто Резав Юсупов писал:

»… фабрика наносит код, который генерирует единая система, а защищает его криптография, поэтому подделать или скопировать его невозможно… То есть система замкнутая и ни у кого нет возможности на каком-либо этапе добавить в партию нелегальный товар».


Вот только он забыл добавить, что на всех участках криптохвосты обрезаются, и никуда не передаются, и нигде не запоминаются. Криптохвост существует только на упаковке и в недрах баз данных органов власти (я на это искренне надеюсь).  Доказать задним числом,  что ты продал подделку или оригинал невозможно,  если ты ранее приобретал аналогичную продукцию.  

Нет, наверное, можно проверить криптохвост, пока сохранена сама упаковка у покупателя, но при продаже, узнать та ли конкретная упаковка продавалась или другая с подменным криптохвостом невозможно. Злоумышленнику все, что нужно, это попасть на существующий в природе серийный номер (благо он нумеруется по порядку у всех, кроме у ФилипМорис)

Ниже пример:

Обратите внимание на последние четыре символа — это для теста подмененный «криптохвост».

Копия экрана с приложения Честный Знак (1)

Когда мы эту картинку показали ЦРПТ, они признались, что у них нет технической возможности проверять криптохвосты. Более того, у них нет информации о том, по какому алгоритму генерируются криптохвосты.  И, что они сделали после нашего обращения? Они обновили приложение «честный знак»  и теперь обрезают криптохвосты и не показывают его на экране. Наверное, чтобы никто не мог тыкать их носом. Но мы-то снимок экрана сохранили :)

К чему приводит отказ от проверки криптохвостов ЦРПТ?

Первая и самая главная проблема, это возможность выводить из оборота сигарет продукцию, которая вам не принадлежит. Вы можете даже не иметь под рукой настоящую пачку сигарет. Для вывода из оборота сигарет вам нужны только ЕАН13 и серийный номер, который у большинства производителей идет по порядку в 80-ричном исчислении (см. выше).

В частности,  в ККМ и оператору ЭДО через УПД передается только первые 21 символ кода маркировки с пачек или 25 символов с блоков сигарет. И даже если вы каким-то чудом отправите более длинную строку, в ЦРПТ поступят исключительно первые 21/25 символов на выбытие сигарет или смены собственника.

Вы можете самостоятельно провести эксперимент: сосканируйте код с пачки сигарет в notepad, замените криптохвост (последние 4 символа) на любые другие 4 символа и из полученного результата обратно сгенерируйте DataMatrix. Программа для проверки подлинности продукции «честный знак» покажет, что этот код подлинный.

Другими словами, никто в цепочке от предпринимателя до оператора ЦРПТ, не проверяет соответствие серийного номера пачки сигарет его криптохвосту. Я даже больше скажу, ЦРПТ не проверяет даже соответствие серийного номера к указанному МРЦ в коде. Программа честный знак показывает размер МРЦ, динамически рассчитывая его из кода, ограничивая верхнюю и нижнюю планку, после которой МРЦ просто не выводится.

Вы можете сказать: «Ну и что, ну не проверяет криптохвост, нам же лучше». А вот и не лучше! Сейчас объясню почему в следующем пункте с проблемами.

Бесконтрольная дезагрегация транспортных упаковок


Впервые мы столкнулись с этой проблемой, когда ЦРПТ стал отказывать в отражении смены собственников по некоторым нашим ЭУПД.  Это было еще в 2019 году, когда использовать ЭДО обязаны  были только производители и первые покупатели.

Причина отказа — дезагрегация транспортной упаковки (короба).

На каждый такой случай ЦРПТ писал: «короб дезагрегирован, потому что из короба была продана одна пачка или блок».

ЦРПТ обвинял всех, кроме себя. Мы тоже полагали, что это внутренний пересорт. Но однажды подвернулся случай. В день, когда мы узнали об очередной такой дезагрегации, дезагрегированный короб еще не покинул наш склад. Конечно, мы его тут же вскрыли и увидели, что пачка, которая по данным ЦРПТ была выведена из оборота через розницу, лежит целая и нетронутая в коробке.

Посмотрели в личном кабинете, кто и когда продал эту пачку. Договорились с розничным продавцом и получили все его logи из 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С, СБИС и АТОЛ.

Ошибка кассы ATOL

Как всегда хорошие задумки этих компаний разбиваются об айсберг действительности.  

Особо пытливые умы могут проверить на примере:

Пример маркировки двух пачек из одного блока

Верхняя пачка в приложении «Честный знак» не проходит проверку (слева), а нижняя проходит (справа):

не проходит проверкупроходит проверку  

Что бы не дезинформировать потребителей в ЦРПТ обещали исправить свое приложение уже на следующей неделе. Но вот когда они поправят ГИС МТ для предпринимателей?  

Что касается проверки информации о текущем собственнике, в реальности, дела обстоят так: сегодня, когда я пишу эту статью 26.06.2020, в ЦРПТ отражена смена собственников только до 15.06.2020. Ни один документ после 15.06.2020 еще не отражен в базе данных ЦРПТ. У нас были случаи, когда ЭУПД появлялась в личном кабинете ЦРПТ спустя месяц, и только после обращения в службу поддержки ЦРПТ.

Как это обычно происходит.  Мы видим, что наши документы не появляются в ЦРПТ слишком долго (более недели). Пишем в поддержку ЦРПТ обращение. Поддержка ЦРПТ пишет, что они не получали наших ЭУПД. Пишем оператору ЭДО. Оператор ЭДО пишет, что все ЭУПД давно направлены в ЦРПТ. Вот так и бегаем от одних к другим.

А покупатели, наслушавшись невыполнимых рекомендаций ЦРПТ об обязательной проверке, бегают и мучают нас вопросами: «Почему у меня не отразилось в личном кабинете?»,  «Почему ваши сигареты не проходит проверку в ЭДО?», «Почему ККМ не дает продать ваши сигареты?»

На практике за один день собственник может смениться несколько раз (производитель-первый покупатель-торговая сеть).  

И не забываем, что маркированные сигареты вы могли совершенно законно приобрести на бумажном носителе до 01.07.2020. Но их собственник  в ГИС МТ будет отражен неверно. 

Помножим проблему несвоевременного отражения в ЦРПТ информации о смене собственников на проблему о бесконтрольной дезагрегации и получим недостоверность данных, отраженных в ГИС МТ.

Подытожим. Внедрение проверки статусов и собственников при приемке товаров и при продаже товаров пока дает лишь головную боль участникам оборота, а не защищает вас от штрафов.

отражен в личном кабинете

не опознан честным знаком

Согласие на передачу информации в ГИС МТ третьим лицам


ЦРПТ ввел сбор «согласия» тогда, когда мы продемонстрировали в поддержку ЦРПТ, как можно по кодам маркировки смотреть всю историю движения сигарет, в том числе, не принадлежавших нам, и скачивать все ЭУПД по всей цепочке продаж с вложенными кодами маркировки и ценами. 

Например: нашли на улице пачку от ФИЛИП МОРРИС и по коду маркировки пачки, используя специальный GET запрос, скачали для этой пачки цепочку всех продаж в виде документов  УПД -XML. В этих УПД видим цены и коды маркировки. По каждому коду смотрим дальнейшее движение… и так по кругу.

Вы не представляете, какое было желание продать все блоки конкурента по цене  0.01 коп. Это бы привело к выводу из оборота и дезагрегации всех заводских коробов конкурента. Однако удержались и написали об этой уязвимости в поддержку ЦРПТ.

Как справили эту уязвимость в ЦРПТ? Придумали брать согласие от поставщиков на передачу данных своим покупателям. Даешь согласие, снимаешь с ЦРПТ ответственность за утечку информации.

И в чем проблема? Да в том, что ЦРПТ, приучив всех участников рынка сигарет пользоваться TrueAPI, вдруг объявляет, что будет закрывать доступ к данным, если поставщик маркированной продукции не будет давать «согласие на предоставление данных из ГИС МТ». Соответственно все сети поголовно стали требовать от своих поставщиков такого «согласия». Но давая его, поставщик дарит покупателю возможность в личном кабинете скачать все свои ЭУПД  и смотреть, по каким ценам он покупает или продает сигареты конкурентам.

Мы уже написали об этой уязвимости в поддержку ЦРПТ, ждем их реакции.

Ниже приведен пример копии экрана из личного кабинета покупателя, отраженного заштрихованного в самой последней строке внизу. Как видите, он может просматривать ЭУПД  вышестоящих участников в цепочке продаж.

Как видит участник оборота сигарет цепочку продаж

Скачивать их и смотреть цены.

анализ XML ЭУПД

P.S.: В день, когда я закончил писать статью, ЦРПТ временно сделал запрет на скачивания всех документов и теперь показывает заглушку вместо списка документов. 

ЭДО, материальная ответственность и COVID-19


Для запуска ЭДО, все участники оборота должны иметь цифровую квалифицированную подпись для подписания ЭУПД.  На каждом собрании (семинаре) от ЦРПТ нам заявляют, что практически все предприниматели и организации уже имеют такой ключ ЭЦП, полученный на директора компании или на индивидуального предпринимателя. Также заявляется, что ЭДО позволит избавится от лишних бумаг.

Про бумаги мы сразу скажем: для перевозки сигарет автотранспортом все еще нужны бумажные ТТН. Но я не об этом.

Сигареты, это высоколиквидные материальные ценности, которые все время воруют из транспорта, со складов, магазинов. В случае обнаружения недостачи, с материально ответственных лиц нужно удержать выявленную недостачу, и не всегда добровольно — через в суд. Как раз суду-то и плевать на ваш электронный документооборот, он просит предоставить документы с личной подписью материально ответственного лица. Если у вас все отгрузки и поступления подписаны только цифровой подписью директора, то в суд вам нести нечего.

Сегодня есть два нормальных решения:

  • дублировать все ЭУПД на бумажном носителе и брать подписи с кладовщиков и продавцов или вводить у себя бумажную-ордерную систему;
  • получать квалифицированную подпись непосредственно на материально ответственных лиц (рекомендуется ЦРПТ).


Мы применяем первый вариант, так как он единственно рабочий.

В варианте, где всё подписывается директорской подписью есть проблемы: сложно доказать отсутствие фиктивности сделок перед налоговой инспекцией. Например, когда документы подписываются директорской цифровой подписью, а тот при этом он находился за границей.

И при такой схеме есть риск остановить все продажи, если вдруг подпись директора перестанет действовать. Дело в том, что новую ЭЦП не так быстро зарегистрировать, как показывают на презентациях. Например , если директор уволится или погибнет, со дня увольнения его подпись нельзя использовать без доверенности,  а пока проведут собрание и назначат нового директора и пока налоговая зарегистрирует этого нового директора пройдет 15 дней минимум.

Для другого варианта, нужно отправить всех материально ответственных лиц за квалифицированной электронной подписью. Каждая бабушка — продавец, из каждого магазина с сигаретами, должна ехать в период пандемии в город за ЭЦП? Минпромторг вы в своем уме?

Сейчас мы склоняемся к гибридному варианту, когда будет и на бумаге, и электронных подписей будет несколько — генерального директора и нескольких региональных руководителей.

Корректировочный ЭУКД


Даже не хочу об этом писать. Если вы не программист и не специалист в маркировке, вы вряд ли сможете оформить электронную корректировку.

Потому что коды маркировки там нужно указывать особым способом и вперемешку.

Да и заявленное ЦРПТ ранее уведомление об уточнении счет фактуры также не стандартизировано, и все претензии в нем пишут просто текстом, кто во что горазд.

Лучшее решение сегодня —  не подписывать покупателем входящий ЭУПД, если есть претензии.  А выслать ТОРГ-2 и коды маркировки поставщику, которые нужно убрать или добавить в УПД. На основании их поставщик аннулирует ЭУПД и выпишет новый, уже правильный. Но если покупатель успел продать дальше или дезагрегировать транспортные упаковки, ваша дорога только одна, через ЭУКД.

Учитывайте всегда, что могут быть ошибки в указании МРЦ в кодах маркировки


В код маркировки встроен параметр «МРЦ» и первое что приходит в голову разработчикам POS систем — будет классно, если POS система сама будет определять цену, по которой нужно продавать сигареты в рознице.

Так делают, например, кассы «ЭВАТОР».

Не буду расписывать — вот примеры:

заведомо неверный МРЦ в коде маркировке

ошибка при указании МРЦ в коде маркировке

Нам известна пока только одна POS система, которая правильно работает с такими ошибками.

Непечатаемые символы в маркировке


Позвонил клиент с жалобой, что 1С не пропускает наш код маркировки, так как он имеет нестандартные символы… сразу вспомнил о еще одной проблеме. Раз клиент не может загрузить такую маркировку в 1С, то видать компания 1С не в курсе.

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456­789!»%&»*±./_,:;=<>?» это не все символы, используемые в маркировке.
При выдачи кодов маркировки оператором эмиссии — ЦРПТ, коды могут содержат непечатаемые символы в криптохвосте.

Когда мы с этим столкнулись в начале 2020 года, мы добавили новый алгоритм в оборудование, работающее на производстве с СУЗ. Теперь мы получаем гораздо более большой пул кодов, чем нам нужно для производства, и отбрасываем те коды, которые имеют непечатаемые символы, чтобы защитить наших покупателей.

Конечно, это произошло не сразу и мы успели выпустить много продукции с такими криптохвостами. Такая продукция все еще ходит в обороте. Как решают этот вопрос другие производители мы не знаем.

Мифы о маркировке, которые мне приходится каждый день развеивать


  • если сигареты куплены по бумажному УПД, то 01.07.2020 придется их все сканировать и подавать остатки в ЦРПТ;
    Создает электронное УПД и прикрепляет к нему маркировку только поставщик. Покупатель может лишь подписать или не подписать документ в ЭДО. Желание сканировать товары при приходе — это личное желание покупателя сверится с поставщиком.
  • покупатель обязан сканировать маркировку при приемке табачных изделий;
  • поскольку немаркированные сигареты с 01.07.2020 уже нельзя продавать, то их можно только выбросить (утилизировать);
    До 01.12.2020 можно самостоятельно маркировать и наклеить стикеры с маркировкой на продукцию. Ждем информацию от ЦРПТ, как это сделать.
  • в каждом УПД содержится информация обо всех вложенных пачках сигарет  (информация об агрегации);
    В УПД содержится только тот код маркировки, в котором производится отгрузка. В коробах — значит код короба, в блоках — код блока. Информации о вложенности нет. Отсюда и проблема во многих учетных системах, которые пытаются проверить на совпадение EAN в коде маркировке и ЕАН внесенный в 1С (как правило вносят ЕАН только для пачек и проверка не работает).
  • если Честный знак показывает,  что такой пачки в ГИС МТ не числится или такой блок уже дезагрегирован, то продать эту пачку будет невозможно;
    Система маркировки от ЦРПТ является уведомительной системой, а не как в ЕГАИС — разрешительной. Задача покупателя, в соответствии с законом, оформить ЭУПД через своего оператора ЭДО, приложить к нему отгружаемые коды маркировки и подписать документ своим ЭЦП. Никакой проверки, ни поставщик и ни покупатель не обязаны проводить. Сегодня все проверки, это проверки, придуманные производителями ПО POS систем или 1С или операторами ЭДО, основанных на! РЕКОМЕНДАЦИЯХ!… Участник оборота так же не обязаны проверять работу ЦРПТ и следить за тем, что они у себя отражали все правильно. Следует отметить, что в личном кабинете ЦРПТ, проблемные ЭУПД имеют значёк «х», но привлечь к ответственности за это невозможно, так как нельзя доказать — это неверные коды или ошибка в ЦРПТ.
  • ЦРПТ ведет остатки табачной продукции за каждым предприятием также, как ЕГАИС;
    Учет построен по другому. Есть реестр всех эмитированных кодов маркировки. Для каждого кода маркировки, при появлении более позднего документа, устанавливается новый статус и новый владелец. (Аналог периодического регистра сведений в 1С). Легко можно пропустить несколько участников оборота и закончить выбытием в ККМ. Сами коды маркировки заказывают и вводят в оборот производители. Сейчас будут еще и те, кто будет маркировать не маркированные сигареты. Именно по причине, что остатки не проверяются возможна ситуация, когда сторонний розничный продавец продает сигареты, которые на самом деле ему не принадлежат, а лежат на вашем складе.
  • продать в розницу один и тот же код маркировки много раз невозможно;
    Можно, если вы не используете такую POS систему, которая сохраняет проданную маркировку и/или проверяют ее через ГИС МТ на предмет выбытия. Все запреты — это желание производителей ПО для POS помочь как-то своим клиентам «не залететь на штрафы». Таких запретов, как в ЕГАИС, нет.
    Могу привести свои случаи: POS система накапливает выбывшие коды и не дает их продавать повторно. Если дело доходит до пачки с уже выбывшем кодом, продавцы просто меняются проблемными пачками с продавцами из другого магазина. А если включить контроль по ГИС МТ, то в нем информация меняется с большим запозданием и это тоже не решение.
  • код маркировки не проходит проверку в Честном знаке, потому что он является контрафактным;
    Читайте статью, и поймете, что если что то не отражается в ГИС МТ — это еще не значит что продукция плохая. На практике, это почти всегда сбои в ЦРПТ.
  • на коробах/паллетах коды маркировки должны быть в виде datamatrix, как на блоках и пачках;
    Читайте правила нанесения маркировки. Любая маркировка на заводе проход

    © Habrahabr.ru