Как реализовать ввод одинаковых штрихкодов для разных товаров в 1С:Управление торговлей 11

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

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

Проанализируем причину ограничения

Для начала выясним, как технически реализовано хранение штрихкодов в системе. В УТ 11 данные о штрихкодах хранятся в регистре сведений ШтрихкодыНоменклатуры. Если мы откроем структуру этого регистра в конфигураторе, то увидим, что основным и единственным измерением является Штрихкод.

В архитектуре баз данных 1С это означает следующее: Штрихкод является уникальным ключом записи. Система физически не может хранить две разные строки с одинаковым значением в поле «Штрихкод». Именно поэтому никакие «галочки» в настройках создания номенклатуры (например, контроль уникальности по реквизитам или наименованию) не решают проблему. Эти настройки регулируют уникальность самих карточек в справочнике Номенклатура, но не влияют на логику работы регистра сведений. Разберем теперь доступные варианты решения.

Способ 1: Использование механизма расширений (Техническое решение)

Это наиболее корректный путь, если бизнес-процесс требует сохранения заводских кодов. С помощью механизма расширений мы можем изменить структуру данных, не снимая основную конфигурацию с поддержки. Проанализируем шаги, необходимые для реализации этого метода:

  1. Изменение структуры регистра: В расширении необходимо добавить в регистр сведений ШтрихкодыНоменклатуры новое измерение, например, Номенклатура или уникальный Идентификатор. Как только у регистра появляется второе измерение, уникальность начинает проверяться по совокупности всех измерений. Это позволит записать в базу несколько строк с одинаковым штрихкодом, если у них будут разные владельцы (товары).
  2. Корректировка программной логики: Просто добавить измерение недостаточно. Рассмотрим ситуацию: кассир сканирует код в документе «Реализация товаров и услуг». В типовом коде запрос к регистру написан так, что он ожидает получить строго одну запись. Если записей окажется несколько, система может выдать ошибку или выбрать первую попавшуюся.
  3. Доработка модуля поиска: Нам потребуется внести изменения в общий модуль, отвечающий за работу с торговым оборудованием (например, МенеджерОборудованияИсполнениеКлиент или специализированные модули подбора номенклатуры). Рассмотрим пример логики, которую необходимо внедрить:

// В процедуре обработки сканирования штрихкода
РезультатПоиска = РегистрыСведений.ШтрихкодыНоменклатуры.Выбрать(Новый Структура("Штрихкод", СканированныйКод));
Если РезультатПоиска.Количество() > 1 Тогда
    // Если найдено более одного товара, вызываем форму выбора для оператора
    ОткрытьФорму("ОбщаяФорма.ВыборНоменклатурыПоДублирующимсяШтрихкодам", ПараметрыВыбора);
Иначе
    // Стандартная обработка добавления в документ
КонецЕсли;

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

Способ 2: Метод перемаркировки (Методологическое решение)

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

Разберем алгоритм действий по шагам:

  1. Для товаров с дублирующимися кодами в 1С генерируется новый уникальный штрихкод в диапазоне 200-299 (этот диапазон зарезервирован для внутреннего использования предприятиями).
  2. На принтере этикеток распечатывается новая наклейка.
  3. Сотрудник склада заклеивает заводской код вендора новым внутренним кодом.

Это исключает человеческий фактор при подборе товара на кассе. Система мгновенно и однозначно определяет позицию, что критически важно для высоконагруженных точек продаж.

Способ 3: Использование характеристик (Компромиссный вариант)

Проанализируем ситуацию, упомянутую в обсуждении: можно ли использовать характеристики для разделения товаров с одним кодом? В УТ 11 штрихкод назначается связке Номенклатура + Характеристика + Упаковка.

Если товары по своей сути являются разными позициями, попытка объединить их в одну карточку номенклатуры с разными характеристиками (например, «Производитель А» и «Производитель Б») может привести к проблемам в отчетах. Однако, даже в этом случае стандартная УТ 11 не позволит завести одинаковый штрихкод для разных характеристик одного товара. Система выдаст ошибку: «Такой штрихкод уже назначен». Таким образом, этот путь без доработки программного кода также является тупиковым.

Сравнение «УТ 11» и «Розницы 2.3/3.0»

Стоит отметить, что в конфигурации 1С:Розница штатно предусмотрена настройка «Использовать неуникальные штрихкоды». При ее активации система сама меняет логику работы с регистром. К сожалению, разработчики фирмы 1С не перенесли этот функционал в УТ 11, мотивируя это тем, что Управление Торговлей — это система более высокого уровня, где порядок в НСИ (Нормативно-справочной информации) является приоритетным.

Выясним причину неэффективности настройки «Контроль уникальности»

Многие пользователи ошибочно пытаются снять флажки в разделе НСИ и администрирование -> Номенклатура -> Настройки создания. Важно понимать:

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

Итоги и рекомендации

Подводя итог, мы можем выделить две основные стратегии решения проблемы:

1. Если вы хотите сохранить типовую конфигурацию: Используйте перемаркировку. Это дисциплинирует складской учет и гарантирует отсутствие ошибок при продаже. Внутренний штрихкод — это стандарт индустрии для борьбы с некорректной маркировкой поставщика.

2. Если объем товаров с дублями слишком велик для перемаркировки: Привлекайте программиста для создания расширения. В расширении необходимо добавить измерение в регистр ШтрихкодыНоменклатуры и перехватить событие поиска штрихкода в формах документов, чтобы реализовать диалог выбора при обнаружении дублей.

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

← На главную