Почему в 1С:Розница 2.3 на кассу АТОЛ передаются не все коды маркировки и как это исправить?

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

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

Шаг 1. Локализация проблемы с помощью диагностики

Прежде чем приступать к изменению настроек оборудования, проанализируем ситуацию и определим, на каком именно этапе теряются или дублируются коды маркировки — в самой программе 1С или уже при передаче данных в драйвер кассы АТОЛ.

Для этого мы воспользуемся встроенными механизмами проверки фискальных операций:

  1. Откроем проблемный документ «Чек ККМ» в режиме просмотра.
  2. Перейдем на вкладку «Товары» и нажмем на кнопку «Марки» (или обратимся к скрытой табличной части документа). Проверим, все ли отсканированные уникальные коды отображаются в документе.
  3. В самом чеке перейдем по гиперссылке «Пробит чек...», которая ведет в регистр сведений РегистрСведений.ФискальныеОперации. Нам нужно проанализировать, какие именно коды маркировки зафиксированы в строках XML-пакета, отправленного на кассу.

Если в скрытой табличной части чека коды уникальны, а в регистре ФискальныеОперации или в логах драйвера ККТ АТОЛ фигурируют одинаковые (продублированные) коды маркировки, значит, сбой происходит в момент подготовки XML-пакета для отправки на ККТ средствами интеграционной библиотеки 1С. Для детальной проверки структуры записей мы можем воспользоваться следующей консолью запросов в режиме «1С:Предприятие»:


ВЫБРАТЬ
    ФискальныеОперации.Ссылка КАК ЧекККМ,
    ФискальныеОперации.Период КАК ДатаОперации,
    ФискальныеОперации.Товар КАК Номенклатура,
    ФискальныеОперации.КодМаркировки КАК ЗаписанныйКодМаркировки
ИЗ
    РегистрСведений.ФискальныеОперации КАК ФискальныеОперации
ГДЕ
    ФискальныеОперации.Период МЕЖДУ &НачалоПериода И &КонецПериода
    И ФискальныеОперации.КодМаркировки ПОДОБНО "%"

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

Решение 1. Перевод сканера штрихкодов из режима клавиатуры в режим COM-порта

Самая распространенная техническая причина искажения и дублирования кодов при быстром последовательном сканировании — работа сканера (например, АТОЛ SB2109) в режиме эмуляции клавиатуры (Keyboard Wedge / USB-HID).

При сканировании маркированного товара в режиме клавиатуры сканер передает символы кода в буфер операционной системы с огромной скоростью, имитируя нажатие клавиш. При этом операционная система или платформа 1С не всегда успевают обработать входящий поток данных без потерь. Теряются управляющие символы, в частности, обязательный символ-разделитель GS1 Group Separator (ASCII-код 29). Теряя разделитель, 1С не может корректно распарсить структуру криптохвоста новой марки. Программа считает, что сканирование прошло со сбоем, и берет из кэша памяти предыдущий успешно расшифрованный код маркировки, подставляя его в новую строку чека. Чтобы решить проблему без изменения режима работы сканера, можно использовать расширение для автоматического добавления символов GS1 в коды маркировки.

Рассмотрим, как правильно настроить сканер:

  1. Найдите инструкцию по настройке вашей модели сканера (АТОЛ SB2109 или аналогичного).
  2. Отсканируйте настроечный штрихкод для перевода устройства в режим USB-Virtual COM (эмуляция виртуального COM-порта).
  3. Установите в операционной системе Windows драйвер виртуального COM-порта от производителя сканера (если требуется). В диспетчере устройств должен появиться новый порт, например, COM3.
  4. Откройте 1С:Розницу, перейдите в раздел «Администрирование» — «Подключаемое оборудование» — «Сканеры штрихкода».
  5. Создайте или отредактируйте существующее устройство, выбрав драйвер «1С:Сканеры штрихкода (COM)». В настройках укажите созданный виртуальный COM-порт и проверьте считывание марки через тест устройства.

При работе через COM-порт данные передаются единым пакетом, что исключает потерю спецсимволов и гарантирует мгновенную и безошибочную обработку каждой уникальной марки.

Решение 2. Отключение группировки позиций в Рабочем месте кассира (РМК)

В настройках параметров работы кассира в конфигурациях 1С:Розница 2.3 прошлых релизов (таких как 2.3.7.22) содержался критический баг, связанный с опцией группировки строк.

Проанализируем ситуацию: в настройках РМК включен флаг «Объединять позиции с одинаковым товаром». Когда кассир сканирует 4 одинаковые шины, программа визуально объединяет их в одну строку на экране со значением количества «4 шт.». Однако в этот момент внутри платформы формируется массив кодов маркировки. Из-за ошибки в коде формирования XML-пакета для ККТ драйвер получал команду пробить 4 единицы товара, но сопоставление марок отрабатывало некорректно. В результате на кассу отправлялся пакет, где ко всем 4 единицам товара был прикреплен только первый отсканированный код маркировки.

Фискальный накопитель кассы ККТ АТОЛ, распознавая дублирующие коды в рамках одного чека, отбрасывал их в соответствии с требованиями ФФД 1.2. Из-за этого в систему «Честный Знак» уходили сведения только об одной марке из четырех.

Чтобы решить эту проблему, выполните следующие действия:

  1. Перейдите в раздел «Маркетинг» или «Продажи» (в зависимости от настроек панели навигации) и откройте «Настройки РМК».
  2. Найдите флаг «Объединять позиции с одинаковым товаром» и снимите его.
  3. Сохраните изменения.

Теперь при сканировании маркированной продукции каждая единица будет добавляться в чек ККМ отдельной строкой со своим индивидуальным кодом маркировки. Это гарантирует корректную генерацию XML-структуры чека и правильную отправку всех кодов в ОФД и «Честный Знак».

Решение 3. Переход на «Новое РМК»

В 1С:Розница 2.3 старый интерфейс кассира имеет архитектурные ограничения при работе с табличными частями документов и регистром РегистрСведений.ШтрихкодыУпаковокТоваров. Временные таблицы кэша марок в старом РМК при быстром сканировании могут очищаться некорректно, что и провоцирует «залипание» старых кодов.

Разработчики фирмы «1С» полностью переписали логику обработки маркированных товаров в «Новом РМК». В нем алгоритмы работы с кэшем оптимизированы под требования разрешительного режима и ФФД 1.2. Рекомендуется перевести торговую точку на работу в новом интерфейсе РМК, предварительно включив его использование в настройках интеграции в администрировании программы.

Решение 4. Обновление интеграционной компоненты ККТ и драйвера АТОЛ

Еще один важный аспект взаимодействия 1С и кассы — это версии драйверов. Проблема часто возникает, если на компьютере установлен современный драйвер АТОЛ ДТО 10 (например, версии 10.10.x.x), а внутри конфигурации 1С Розница используется старая интеграционная компонента.

При несовпадении версий драйвера и компоненты XML-схема передачи кодов маркировки обрабатывается некорректно, что приводит к утере тега 1162 (или тегов 2108 / 2007 для ФФД 1.2) для части позиций.

Рекомендуется выполнить комплексное обновление системы:

  1. Обновите платформу 1С до актуального релиза ветки 8.3.
  2. Обновите конфигурацию 1С:Розница до последней доступной версии (в актуальных релизах исправлены ошибки сериализации марок). Для автоматизации обслуживания и резервного копирования типовых баз можно использовать программу для автоматического обновления и архивирования 1С.
  3. Установите последнюю стабильную версию драйвера АТОЛ ДТО 10.
  4. В самой программе 1С зайдите в справочник «Подключаемое оборудование», выберите ККТ с передачей данных и нажмите кнопку «Обновить драйвер», чтобы перезаписать внутреннюю интеграционную компоненту актуальной версией.

Решение 5. Очистка кэша базы данных 1С

В редких случаях дублирование кодов при сканировании вызывается сбоями локального кэша платформы 1С на рабочем месте кассира (особенно при работе в файловом режиме). Чтобы исключить технические проблемы СУБД, закройте программу и полностью удалите временные папки кэша пользователя из директории %userprofile%\AppData\Local\1C\1Cv8 и %userprofile%\AppData\Roaming\1C\1Cv8, либо просто удалите базу из списка запуска 1С и добавьте ее заново под тем же путем.

← На главную