При организации розничной торговли с использованием кассового программного обеспечения Frontol в режиме ККМ-Offline и конфигурации 1С:Управление торговлей 11 часто возникает ситуация: весовой товар успешно выгружается на весы с печатью этикеток и на кассу, без проблем взвешивается и пробивается в чеке, однако при формировании и загрузке документа Отчет о розничных продажах в табличную часть попадают только количество, цена и сумма, а поле Номенклатура остается пустым.
Разберем детально, как устроен механизм сопоставления весовых позиций в 1С, выясним причину сбоя и рассмотрим способы устранения неполадки.
Проанализируем алгоритм, который типовая конфигурация использует для распознавания весовых штрихкодов формата EAN-13 (например, 22ККККК0000000, где 22 — префикс, а ККККК — код номенклатуры). При чтении строк из файла отчета кассовой программы система выполняет запрос к регистрам сведений ШтрихкодыНоменклатуры и КодыТоваровПодключаемогоОборудованияOffline.
Посмотрим на пример типового запроса, выполняющего выборку номенклатуры:
ВЫБРАТЬ
ЕСТЬNULL(КодыТоваровПодключаемогоОборудованияOffline.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК Номенклатура,
ЕСТЬNULL(КодыТоваровПодключаемогоОборудованияOffline.Характеристика, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК Характеристика,
ЕСТЬNULL(КодыТоваровПодключаемогоОборудованияOffline.Упаковка, ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)) КАК Упаковка,
Товары.Количество КАК КоличествоУпаковок,
ЕСТЬNULL(КодыТоваровПодключаемогоОборудованияOffline.Упаковка.Коэффициент, 1) * Товары.Количество КАК Количество,
Товары.Цена КАК Цена,
Товары.Сумма КАК Сумма,
Товары.Скидка КАК ПроцентРучнойСкидки,
КодыТоваровПодключаемогоОборудованияOffline.Номенклатура.СтавкаНДС
ИЗ
Товары КАК Товары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК Штрихкоды
ПО ПОДСТРОКА(Товары.Штрихкод, 3, 5) = ПОДСТРОКА(Штрихкоды.Штрихкод, 3, 5)
И Штрихкоды.Штрихкод ПОДОБНО &ФорматШтрихкода
И Товары.Весовой
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КодыТоваровПодключаемогоОборудованияOffline КАК КодыТоваровПодключаемогоОборудованияOffline
ПО КодыТоваровПодключаемогоОборудованияOffline.ПравилоОбмена = &ПравилоОбмена
И Штрихкоды.Номенклатура = КодыТоваровПодключаемогоОборудованияOffline.Номенклатура
И Штрихкоды.Характеристика = КодыТоваровПодключаемогоОборудованияOffline.Характеристика
И Штрихкоды.Упаковка = КодыТоваровПодключаемогоОборудованияOffline.Упаковка
И Товары.Весовой
В этом запросе выполняется последовательное левое соединение:
&ФорматШтрихкода).КодыТоваровПодключаемогоОборудованияOffline.Рассмотрим основные факторы, из-за которых связь по таблицам не срабатывает:
ШтрихкодыНоменклатуры шаблон весового кода часто записывается со служебными символами-заполнителями (например, 2_005430000_), тогда как функция генерации маски по умолчанию формирует жесткий паттерн регулярного выражения 2[0-9][0-9][0-9][0-9][0-9][0-9]00000[0-9]. В результате условие Штрихкоды.Штрихкод ПОДОБНО &ФорматШтрихкода возвращает ЛОЖЬ, и номенклатура не определяется.КодыТоваровПодключаемогоОборудованияOffline содержит разные коды SKU/PLU для одной и той же номенклатуры. При загрузке отчета кассы сопоставление по ее правилу завершается неудачей.Разберем по шагам, как исправить проблему в зависимости от ее источника.
Если в кодовой базе конфигурации проверка маски штрихкода блокирует выборку данных из регистра, найдем в модуле менеджера оборудования вызов формирования параметра маски и скорректируем передаваемый флаг:
// Заменяем строгий формат маски на упрощенный вариант поиска
Запрос.УстановитьПараметр(
"ФорматШтрихкода",
РегистрыСведений.ШтрихкодыНоменклатуры.ФорматВесовогоШтрихкода("_", Ложь)
);
Установка значения Ложь отключает избыточную фильтрацию шаблона и позволяет соединению таблиц корректно связать пятизначный код весового товара.
Выполним административную настройку оборудования без изменения программного кода:
Обмен с подключаемым оборудованием Offline выполним команду полной очистки кодов и произведем повторную выгрузку базы товаров в кассу и весы. Это гарантирует совпадение PLU и внутренних идентификаторов в регистре КодыТоваровПодключаемогоОборудованияOffline.Проанализируем структуру штрихкода во всех звеньях цепочки:
22), код товара 5 знаков, масса 5 знаков.22NNNNNWWWWWE.