При ведении розничной и оптовой торговли пользователи часто сталкиваются с ситуацией, когда одному и тому же штрихкоду EAN-13 соответствуют несколько позиций. Классический пример — продажа табачной продукции с различными значениями максимальной розничной цены (МРЦ), одежда разных размеров и расцветок в рамках одной модели или пересортица от поставщиков. В конфигурации «1С:Розница» возможность привязки одного штрихкода к разным номенклатурным позициям или характеристикам предусмотрена давно, однако при обмене с «1С:Управление торговлей 11» (УТ 11) многие сталкиваются с тем, что новая запись затирает предыдущую. Разберем архитектурные причины такого поведения платформы, проанализируем структуру данных и рассмотрим доступные варианты решения проблемы.
Для того чтобы понять, почему при записи нового товара или характеристики перезаписывается старая привязка, обратимся к структуре метаданных. Вся информация о штрихкодах хранится в регистре сведений ШтрихкодыНоменклатуры.
В ранних редакциях УТ (в частности, 11.1 и 11.2) разработчики конфигурации применили следующую структуру:
Штрихкод (тип Строка).Номенклатура, Характеристика, Упаковка, ТипШтрихкода.По правилам платформы 1С:Предприятие уникальность записи в непериодическом регистре сведений определяется исключительно составом его измерений. Поскольку поле Штрихкод является единственным измерением, регистр может содержать ровно одну запись для каждого конкретного значения штрихкода. При попытке записать тот же штрихкод для другой характеристики или другой номенклатуры СУБД выполняет операцию обновления (UPDATE), тем самым затирая прежнюю ссылку.
В актуальных версиях конфигурации типовой механизм штрихкодирования был переработан. Если вы работаете в современных релизах, разберем по шагам, как включить поддержку неуникальных штрихкодов штатным способом:
При включении данной опции типовой механизм подбора в документах продажи и в Рабочем месте кассира (РМК) начинает работать иначе: если при сканировании штрихкода найдено несколько соответствий, система не подставляет первую попавшуюся позицию автоматически, а открывает диалоговое окно со списком совпадений, где кассир или менеджер может выбрать нужную характеристику, упаковку или товар.
Если обновление конфигурации до актуального релиза невозможно, а вести учет товаров с одинаковыми штрихкодами необходимо, рассмотрим технические варианты адаптации системы.
Наиболее корректный способ доработки — изменение состава измерений регистра сведений ШтрихкодыНоменклатуры с помощью механизма расширений (без снятия конфигурации с поддержки):
ШтрихкодыНоменклатуры.Номенклатура, Характеристика и Упаковка в состав измерений регистра. Теперь ключом уникальности станет комбинация полей «Штрихкод + Номенклатура + Характеристика + Упаковка».ШтрихкодированиеСервер / МенеджерОборудованияСервер). В процедурах поиска номенклатуры по штрихкоду изменим логику: если запрос к регистру возвращает более одной строки, вызываем модальное окно выбора или возвращаем массив найденных ссылок в форму документа для уточнения пользователем.Если задача заключается в фиксации изменяющейся цены (например, партия товара с определенной стоимостью или партия табака с конкретной МРЦ), рассмотрим применение механизма серий:
Проанализируем задачу продажи табачной продукции с различными МРЦ в современных реалиях. Ранее разделение цен решалось созданием множества характеристик с одинаковым кодом EAN-13. На сегодняшний день вся табачная продукция подлежит обязательной маркировке средствами идентификации Честный ЗНАК.
При реализации табака применяются следующие правила: