В процессе работы с маркированной продукцией в программе 1С:Розница 2.3 (особенно на релизе 2.3.3.19) пользователи часто сталкиваются с крайне неприятной проблемой в Рабочем месте кассира (РМК). При сканировании кода маркировки DataMatrix система выводит предупреждение «уже добавлена в документ», после чего строка с добавленным товаром аварийно пропадает из чека. Продажа блокируется, а кассиры не могут оперативно обслуживать покупателей.
В этой статье мы подробно разберем причины возникновения этой ошибки и рассмотрим по шагам все возможные способы её устранения: от быстрой настройки торгового оборудования до программного решения проблемы.
---
Проанализируем логику работы Библиотеки интеграции с государственной информационной системой маркировки (ГосИС), встроенной в релиз 2.3.3.19. В этой версии разработчики допустили ошибку в алгоритме обработки последовательного сканирования. При необходимости отключить лишние проверки по GTIN можно использовать расширение для отключения уточнения упаковок по GTIN.
Выясним причину сбоя:
Как решить эту проблему без программирования и обновления баз:
Обучите кассиров сканировать только код DataMatrix напрямую, полностью минуя сканирование штрихкода EAN-13. Поскольку в коде маркировки уже зашит GTIN товара, система 1С сама мгновенно распознает номенклатурную позицию, найдет ее в базе данных и добавит в чек сразу в комплекте с маркой. При этом промежуточное окно запроса марки даже не появится, и баг не будет спровоцирован.
---
Рассмотрим ситуацию, когда код маркировки физически уже был задействован в системе, но визуально в текущем чеке кассир его не видит. Такое происходит из-за некорректного очищения кэша в старом движке РМК.
Если марка была отсканирована в чек, который впоследствии был отложен, аннулирован или из которого товар был удален вручную клавишей Del, код маркировки может остаться в оперативной памяти сессии или записаться во временный регистр сведений.
Разберем по шагам, как очистить зависшие данные:
// Пример поиска зависшей марки в регистре сведений
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ШтрихкодыУпаковок.Номенклатура КАК Номенклатура,
| ШтрихкодыУпаковок.ЗначениеШтрихкода КАК ЗначениеШтрихкода
|ИЗ
| РегистрСведений.ШтрихкодыУпаковок КАК ШтрихкодыУпаковок
|ГДЕ
| ШтрихкодыУпаковок.ЗначениеШтрихкода ПОДОБНО &СчитанныйКод";
Запрос.УстановитьПараметр("СчитанныйКод", "%" + СокрЛП(СчитанныйКодМаркировки) + "%");
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
// Запись найдена, её необходимо удалить или перепривязать
КонецЕсли;
Также рекомендуется воспользоваться встроенной обработкой «Групповое изменение реквизитов» для проверки документов вида ЧекККМ на предмет содержания дублирующейся марки в табличных частях отложенных чеков за текущую смену.
---
Проанализируем аппаратную сторону вопроса. Очень часто причиной дублирования сигналов становится работа сканера штрихкода в режиме эмуляции клавиатуры (KB-интерфейс).
Когда сканер настроен как клавиатурный ввод, передача данных в 1С происходит посимвольно на высокой скорости. Если в настройках самого сканера запрограммирован суффикс возврата каретки (клавиша Enter) или префикс вызова поиска (клавиша F7), то при сканировании DataMatrix в программу передаются два быстрых последовательных сигнала. Программа успевает открыть форму ввода по первому импульсу, обрабатывает код, и тут же «прилетает» второй импульс с клавиатуры, который воспринимается системой как повторный ввод этой же марки в ту же секунду.
Пошаговая инструкция по исправлению настроек сканера:
COM-порт (например, COM3) и выберите драйвер устройства "1С:Сканеры штрихкода".---
Если один и тот же штрихкод EAN-13 привязан к разным карточкам номенклатуры или к разным характеристикам одного и того же товара, алгоритм интеграции с ГосИС начинает сбоить. При сканировании кода маркировки система пытается сопоставить извлеченный из него GTIN с базой штрихкодов. Обнаружив несколько совпадений, программа инициирует внутренний конфликт уникальности табличной части и выдает ошибку о дублировании. Для предварительного сопоставления марок с позициями номенклатуры пригодится обработка для сопоставления кодов маркировки табачной продукции.
Для исправления ситуации выполните следующие действия:
ШтрихкодыНоменклатуры.---
Если все вышеперечисленные временные меры не приносят стабильного результата, необходимо устранить первопричину сбоя — программную ошибку релиза 2.3.3.19. Разработчики оперативно исправили некорректную обработку кодов маркировки в последующих обновлениях линейки 1С:Розница 2.3 (а также при переходе на актуальные версии линейки 2.2 и 3.0).
Рекомендуется обновить конфигурацию до актуального релиза. После обновления Библиотека интеграции с ГосИС начнет корректно разбирать структуру DataMatrix, и ошибка сопоставления дублей в РМК исчезнет навсегда. При обслуживании нескольких информационных баз процедуру можно упростить с помощью программы для автоматического обновления баз 1С.