Как решить проблемы при запуске маркировки обуви в 1С и настроить работу с Честным ЗНАКом

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Интеграция учетных систем 1С с государственной информационной системой маркировки товаров (ГИС МТ) «Честный ЗНАК» часто сопровождается техническими трудностями. Пользователи и разработчики регулярно сталкиваются с ошибками разбора кодов DataMatrix, некорректной работой сканеров штрихкодов, сложностями при вводе остатков в оборот и сбоями при печати чеков ККМ. В этой статье мы подробно разберем, как преодолеть эти препятствия, правильно настроить торговое оборудование и оптимизировать логику работы программ 1С.

Методика описания и ввода остатков обуви в оборот

Для успешного запуска процесса маркировки остатков нам необходимо четко понимать последовательность действий. Ранее в системе «Честный ЗНАК» допускалось описание по упрощенному атрибутивному составу. Рассмотрим стандартный пошаговый алгоритм, который применяется для подготовки товарной базы:

  1. Проведение инвентаризации. Подсчитываем точное количество обуви на складах и в торговых точках. Разделяем остатки по базовым категориям: мужская, женская, детская или унисекс, а также по признаку происхождения — произведено в РФ или ввезено в РФ.
  2. Регистрация сведений в личном кабинете. Заходим в личный кабинет «Честного ЗНАКа» и переходим в раздел работы с документами. Создаем новый документ описания остатков, указывая агрегированные группы.
  3. Получение кодов GTIN. После подписания документа описания остатков электронной цифровой подписью (ЭЦП) система присваивает товарам технические коды GTIN (начинающиеся, как правило, на 029).
  4. Заказ кодов маркировки. В Станции управления заказами (СУЗ) создаем заказ на эмиссию кодов маркировки (КМ), привязанный к полученным GTIN, и указываем необходимое количество.
  5. Печать и нанесение. Скачиваем полученные коды в формате CSV или PDF, распечатываем их на принтере этикеток и наносим на потребительские упаковки.
  6. Ввод в оборот. После физического нанесения марок обязательно отправляем в ГИС МТ документ «Ввод в оборот», иначе коды останутся в статусе «Эмитирован» или «Нанесен», и их продажа через кассу будет невозможной.

Проанализируем ситуацию, когда пользователи пытаются загрузить описание остатков через файлы CSV напрямую в «Честный ЗНАК» и получают ошибку формата. Часто это происходит из-за несовпадения структуры колонок или кодировки файла. Если автоматическая загрузка файла дает сбой, рекомендуется использовать ручной ввод в ЛК или воспользоваться механизмами интеграции в типовых конфигурациях 1С, где отправка данных происходит через структурированные API-запросы.

Настройка 2D-сканеров для корректного чтения GS1 DataMatrix

Одной из наиболее частых причин возникновения ошибки «Недопустимый формат штрихкода» при сканировании марки в 1С является некорректная настройка сканера. Маркировочный код формата DataMatrix содержит специальные непечатные управляющие символы-разделители групп данных, в частности символ GS (код ASCII 29). Если сканер настроен некорректно, он либо вырезает эти символы, либо заменяет их, что делает код нечитаемым для алгоритмов 1С.

Выясним причину этой проблемы и разберем по шагам методы ее решения:

  1. Режим работы сканера. Избегаем использования сканера в режиме эмуляции клавиатуры (Keyboard Wedge). В этом режиме сканер передает данные как последовательность нажатий клавиш, при этом управляющие символы физически теряются на уровне операционной системы.
  2. Перевод в режим эмуляции COM-порта. Необходимо перевести сканер в режим виртуального COM-порта (USB-COM / Serial Emulation). Для этого сканируем специальный управляющий штрихкод из руководства пользователя конкретной модели сканера (например, Honeywell 1450g или Zebra). Для работы этого режима в операционной системе Windows должен быть установлен соответствующий драйвер виртуального COM-порта от производителя торгового оборудования.
  3. Настройка драйвера в 1С. В настройках подключаемого оборудования в 1С выбираем обработчик драйвера «1С:Сканеры штрихкода (NativeApi)». В параметрах подключения указываем конкретный номер виртуального COM-порта, выделенный операционной системой для нашего сканера. Скорость и другие параметры обычно определяются автоматически, но суффикс обязательно должен быть установлен как CR (возврат каретки, код 13).
  4. Проверка передачи GS. Для контроля корректности считывания можно воспользоваться специализированными утилитами тестирования или отсканировать код в текстовый редактор, поддерживающий отображение скрытых символов (например, Notepad++). Наша задача — убедиться, что код передается в формате GS1 с разделителями, а не сплошной строкой без спецсимволов.

Управление привязкой кодов маркировки к номенклатуре в 1С

В типовых конфигурациях 1С (таких как «Управление торговлей», «Розница», «Комплексная автоматизация») при сканировании кодов маркировки в документах закупки или продаж система пытается выполнить сопоставление со справочником номенклатуры. Просканированные коды сохраняются в специализированном справочнике ШтрихкодыУпаковокТоваров.

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

Для исправления неверно сопоставленных связей или для сброса привязки марок к номенклатуре мы можем программно «экранировать» или очистить значения в справочнике ШтрихкодыУпаковокТоваров. Посмотрим на практический пример кода внешней обработки, которая находит записи по определенному документу эмиссии кодов маркировки и отвязывает их путем изменения символа в начале значения штрихкода:


&НаСервере
Процедура ЭкранироватьПривязкуМарокНаОстаткиНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ШтрихкодыУпаковокТоваров.Ссылка КАК Ссылка,
        |    ШтрихкодыУпаковокТоваров.ЗначениеШтрихкода КАК ЗначениеШтрихкода,
        |    ПулКодовМаркировкиСУЗ.GTIN КАК GTIN
        |ИЗ
        |    РегистрСведений.ПулКодовМаркировкиСУЗ КАК ПулКодовМаркировкиСУЗ
        |    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ШтрихкодыУпаковокТоваров КАК ШтрихкодыУпаковокТоваров
        |    ПО ПулКодовМаркировкиСУЗ.КодМаркировки = ШтрихкодыУпаковокТоваров.ЗначениеШтрихкода
        |ГДЕ
        |    ПулКодовМаркировкиСУЗ.ЗаказНаЭмиссию = &ЗаказНаЭмиссию
        |    И ШтрихкодыУпаковокТоваров.ЗначениеШтрихкода ПОДОБНО ""(01)%""";
    
    Запрос.УстановитьПараметр("ЗаказНаЭмиссию", ВыбДокументЭмиссии);
    
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    КоличествоИзмененных = 0;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Попытка
            ОбъектШтрихкода = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
            // Добавляем префикс подчеркивания, чтобы разорвать жесткую связь с текущей номенклатурой
            ОбъектШтрихкода.ЗначениеШтрихкода = "_" + ОбъектШтрихкода.ЗначениеШтрихкода;
            ОбъектШтрихкода.Записать();
            КоличествоИзмененных = КоличествоИзмененных + 1;
        Исключение
            ЗаписьЖурналаРегистрации("Маркировка.ОшибкаОчистки",
                УровеньЖурналаРегистрации.Ошибка, , ,
                ОписаниеОшибки());
        КонецПопытки;
    КонецЦикла;
    
    Сообщить("Успешно экранировано штрихкодов: " + КоличествоИзмененных);
КонецПроцедуры

Использование этого метода позволяет кассирам повторно сопоставить отсканированную марку с корректной позицией номенклатуры при оформлении чека в интерфейсе РМК (Рабочее место кассира).

Решение распространенных технических ошибок интеграции с ГИС МТ

Проанализируем природу ключевых технических ошибок, с которыми часто сталкиваются системные администраторы и программисты 1С при взаимодействии со Станцией управления заказами (СУЗ) и ЛК «Честный ЗНАК».

1. Ошибка обязательности заполнения поля remainsImport

Данная ошибка возникает при попытке отправить заказ на эмиссию кодов маркировки для остатков обуви. Начиная с определенных обновлений API ГИС МТ, поле, определяющее статус импортного происхождения остатков, стало обязательным для заполнения на стороне серверов маркировки. Если конфигурация 1С не обновлена до актуального релиза, в структуре XML/JSON-запроса это поле отсутствует. Для решения этой проблемы необходимо либо обновить конфигурацию до релиза, поддерживающего актуальные форматы обмена, либо использовать расширение конфигурации, принудительно добавляющее в структуру запроса к СУЗ необходимые параметры:


// Пример принудительного добавления параметров в структуру запроса СУЗ
ПараметрыЗапроса.Вставить("remainsImport", Истина);
ПараметрыЗапроса.Вставить("remainsAvailable", Истина);

2. Ошибка 06: «Значение поля КИ ... не найдено в базе данных»

Эта ошибка возникает в процессе отправки документов ввода в оборот или документов вывода из оборота. Она означает, что запрашиваемый код маркировки отсутствует в реестрах ГИС МТ под текущим владельцем (ИНН организации) либо вообще не зарегистрирован в системе. Основные причины:

3. Проблема вывода признака маркировки [М] в печатной форме чека

Если при продаже маркированного товара на кассе в бумажном чеке отсутствует символ [М] (или соответствующий статус проверки [М+] при ФФД 1.2), необходимо проверить всю цепочку передачи данных:

Таким образом, для стабильной работы системы маркировки обуви требуется комплексный подход: своевременное обновление конфигураций 1С, перевод сканирующего оборудования в режим эмуляции COM-порта с использованием актуальных драйверов NativeApi, контроль корректности статусов кодов в личном кабинете «Честного ЗНАКа» и регулярное обновление встроенного ПО (прошивок) онлайн-касс.

← На главную