Продажа маркированной продукции, особенно табака, в программе 1С:Розница требует идеальной синхронизации торгового оборудования и настроек информационной базы. Довольно часто пользователи сталкиваются с неприятной ситуацией: кассир сканирует код DataMatrix в РМК (Рабочее место кассира), программа «задумывается» на секунду-другую, но товар в корзину не добавляется, а на экране не появляется никаких сообщений об ошибках. При этом другие пачки сигарет из той же самой поставки пробиваются без малейших проблем.
В этой статье мы подробно разберем, почему возникает такое «молчаливое» зависание системы, и пошагово проанализируем все способы решения этой технической проблемы — от тестирования сканера штрихкодов до тонкой настройки карточек номенклатуры.
Маркировка табачной продукции базируется на стандарте GS1 DataMatrix. Особенность этого штрихкода заключается в наличии внутри него скрытых служебных символов. К ним относятся признак символики FNC1 в начале кода и непечатные разделители групп данных GS (символ с ASCII-кодом 29).
Рассмотрим, что происходит, когда сканер штрихкодов работает в режиме эмуляции клавиатуры (USB-HID):
GS (ASCII 29) операционной системой часто просто игнорируется или вырезается.Как проверить сканер? Откроем обычный текстовый редактор (Блокнот) и отсканируем проблемную марку туда. Нормальный код должен содержать спецсимволы (или отрабатывать перенос строки в местах разделителей, если настроен суффикс). Если марка выводится сплошной строкой без спецсимволов, а «хорошая» марка содержит визуальные отличия, проблема кроется в настройках сканера.
Как решить проблему:
GS, и распознавание марки станет безошибочным.Если перевести сканер в режим COM-порта по каким-то причинам невозможно, критически важной становится текущая языковая раскладка на кассовом компьютере в момент сканирования.
Проанализируем ситуацию: если на ПК включена русская раскладка (RU), то при сканировании в режиме клавиатуры латинские буквы, содержащиеся в криптохвосте DataMatrix-кода, автоматически заменяются на кириллические (например, "A" превращается в "Ф", "B" в "И"). Часть пачек, в кодах которых содержатся только цифры, будет пробиваться успешно. Но как только кассир попытается отсканировать пачку, в коде которой присутствуют латинские буквы, 1С не сможет распознать марку из-за искажения символов.
Решение: Настроим в драйвере торгового оборудования 1С автоматическое преобразование раскладки или переключим раскладку клавиатуры компьютера на английскую (EN) перед началом продаж. Однако кардинальным решением остается перевод сканера в режим эмуляции COM-порта, так как в этом режиме передача данных не зависит от текущей раскладки клавиатуры.
После проведения обновлений конфигурации 1С:Розница пользователи часто сталкиваются с тем, что у некоторых позиций товаров сбиваются внутренние настройки учета.
Для корректной работы с табаком в карточке номенклатуры должен быть правильно заполнен реквизит Особенность учета. Если там пусто или выбрано иное значение, программа не понимает, что при сканировании штрихкода упаковки нужно запускать процедуру валидации марки.
Выясним, как проверить и исправить эту настройку:
ОсобенностьУчета в необходимое значение.Для разработчиков и администраторов приведем пример кода, как это свойство можно проверить или восстановить программно через внешнюю обработку:
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
// Проверяем, относится ли товар к табачной продукции по виду номенклатуры
Если Выборка.ВидНоменклатуры.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар
И Выборка.ВидНоменклатуры.ИспользоватьХарактеристики Тогда
ОбъектНоменклатуры = Выборка.ПолучитьОбъект();
// Устанавливаем верную особенность учета для маркировки
ОбъектНоменклатуры.ОсобенностьУчета = Перечисления.ОсобенностиУчетаНоменклатуры.МаркируемаяТабачнаяПродукция;
Попытка
ОбъектНоменклатуры.Записать();
Сообщить("Успешно обновлен товар: " + ОбъектНоменклатуры.Наименование);
Исключение
Сообщить("Ошибка записи товара: " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
В РМК настроено жесткое правило: товар не может быть добавлен в чек, если на него не установлена розничная цена. Если для обычной номенклатуры система может выдать предупреждение "Не задана цена товара", то при потоковом сканировании DataMatrix-кодов табачной продукции алгоритм обработки ошибок может отработать некорректно. Система пытается найти цену, не находит её, прерывает обработку марки и тихо закрывает форму подбора.
Что нужно сделать:
В процессе работы (например, при некорректном импорте накладных УПД или повторном сканировании блока сигарет) в базе данных могут задвоиться записи о штрихкодах упаковок.
Если один и тот же код маркировки или ассоциированный с ним потребительский штрихкод (EAN-13) привязан к нескольким разным карточкам номенклатуры (или разным характеристикам), система 1С сталкивается с логическим конфликтом. Программа "задумывается", пытаясь определить, какой именно товар добавить в чек, и в итоге сбрасывает транзакцию сканирования.
Как исправить:
ШтрихкодыУпаковокТоваров (в некоторых релизах — "Штрихкоды номенклатуры").В последних релизах 1С:Розница, начиная с версий 2.3.18 и ветки 3.0, разработчики активно развивают Новое РМК (управляемый интерфейс). В "Старом РМК" (обычные формы или старый вариант управляемого интерфейса) при интеграции с механизмами ГИС МТ "Честный Знак" и включении разрешительного режима могут возникать скрытые системные ошибки. Программа пытается в фоновом режиме инициализировать проверки, зависает из-за отсутствия ответа от внутренних библиотек и сбрасывает сканирование.
Решение: В настройках интеграции с ИС МП и настройках продаж рекомендуется переключиться на использование современного Нового РМК. Алгоритмы разбора кодов маркировки в нем оптимизированы, а обработка ошибок происходит корректно с выводом понятных пользователю диагностических сообщений на экран.
Если пачка сигарет не бьется на кассе, выполним следующие действия по шагам: