В процессе работы с маркированной продукцией (одежда, обувь, парфюмерия и др.) пользователи часто сталкиваются с ситуацией, когда в печатной форме чека отсутствует обязательный символ [М], а в Личный кабинет ОФД не передается тег 1162. Это является серьезным нарушением правил торговли маркированными товарами. Рассмотрим подробно, как диагностировать и решить эту проблему в конфигурации 1С:Розница 2.3.
Прежде чем приступать к правке кода или настроек, нам необходимо выяснить, на каком этапе «теряются» данные: в самой программе 1С или уже на уровне драйвера ККТ. Для этого проанализируем XML-пакет, который 1С отправляет на кассу. Выполним следующие шаги:
GoodCodeData. Если в нем отсутствует атрибут MarkingCode, значит, 1С не передает код маркировки в подключаемое оборудование.Как показывает практика, если в XML-чека отсутствует строка с кодом маркировки, то проблема кроется в логике определения типа продукции внутри конфигурации.
Одной из наиболее частых причин является то, что в модуле интеграции с ИС МП (Информационной системой маркировки продукции) не прописаны новые группы товаров. В частности, это касается легкой промышленности, упакованной воды или молочной продукции. Разберем ситуацию на примере модуля ИнтеграцияИСКлиентСервер.
Выясним причину: процедура ТипМаркировкиККТПоВидуПродукции может не возвращать правильный тип для новых категорий. Чтобы не изменять типовую конфигурацию, создадим расширение и воспользуемся аннотацией &Вместо для указанной функции.
Рассмотрим пример кода, который принудительно возвращает корректный тип маркировки для ККТ, если типовой алгоритм не справился:
&Вместо("ТипМаркировкиККТПоВидуПродукции")
Функция ИС_ТипМаркировкиККТПоВидуПродукции(ТипМаркировкиККТИлиВидПродукции)
Результат = ПродолжитьВызов(ТипМаркировкиККТИлиВидПродукции);
// Если типовой механизм вернул Неопределено, сопоставляем виды продукции вручную
Если Результат = Неопределено Тогда
Если ТипМаркировкиККТИлиВидПродукции = ПредопределенноеЗначение("Перечисление.ВидыПродукцииИС.ЛегкаяПромышленность") Тогда
Возврат ПредопределенноеЗначение("Перечисление.ТипыМаркировкиККТ.ОбувныеТовары");
ИначеЕсли ТипМаркировкиККТИлиВидПродукции = ПредопределенноеЗначение("Перечисление.ВидыПродукцииИС.УпакованнаяВода") Тогда
Возврат ПредопределенноеЗначение("Перечисление.ТипыМаркировкиККТ.ОбувныеТовары");
ИначеЕсли ТипМаркировкиККТИлиВидПродукции = ПредопределенноеЗначение("Перечисление.ВидыПродукцииИС.МолочнаяПродукция") Тогда
Возврат ПредопределенноеЗначение("Перечисление.ТипыМаркировкиККТ.ОбувныеТовары");
ИначеЕсли ТипМаркировкиККТИлиВидПродукции = ПредопределенноеЗначение("Перечисление.ВидыПродукцииИС.Велосипеды") Тогда
Возврат ПредопределенноеЗначение("Перечисление.ТипыМаркировкиККТ.ОбувныеТовары");
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
Обратим внимание, что во многих случаях 1С использует значение ОбувныеТовары как универсальный идентификатор для большинства групп маркировки при передаче в драйвер ККТ (в контексте ФФД 1.05). Это позволяет кассе корректно сформировать тег 1162.
Если программный код работает корректно, но признак [М] всё равно не появляется, проанализируем настройки справочников. В 1С:Розница важную роль играет справочник Признаки предметов расчета. Для маркируемых товаров должен быть правильно заполнен соответствующий элемент.
Выполним проверку по шагам:
Вид номенклатуры выбран правильный тип: "Товары, подлежащие маркировке".Важно помнить, что тег 1212 (Признак предмета расчета) тесно связан с тегом 1162. Если 1С отправляет на кассу признак «Товар», касса может проигнорировать переданный код маркировки.
Проанализируем ситуацию с точки зрения законодательных изменений. При переходе на ФФД 1.2 символ [М] в чеке дополняется результатами проверки:
Если вы используете ККТ АТОЛ на платформе 5.0 и драйвер версии 10.x, обязательно убедитесь, что в настройках оборудования в 1С выбран корректный способ обработки кодов маркировки. В параметрах драйвера (через тест драйвера) проверьте значение CisCheckMode. Для ФФД 1.2 касса должна сама выполнять запрос в ИС МП.
Также рекомендуем обновить компоненту AddIn.Atol_KKT_10. Часто бывает, что при обновлении драйвера в системе остаются старые версии библиотек в папке AppData пользователя. Полная очистка кэша и переустановка компоненты из актуальной поставки 1С часто решают проблему «невидимых» кодов маркировки.
Подводя итог, если вы столкнулись с отсутствием признака [М], проверьте цепочку данных в следующем порядке: Карточка номенклатуры -> Вид номенклатуры -> Признак предмета расчета -> Логика формирования XML в 1С -> Параметры драйвера ККТ. В большинстве случаев проблема решается либо обновлением расширения для поддержки новых групп товаров, либо заполнением типа признака в справочнике признаков предмета расчета.