Как настроить появление окна «Уточнение данных» при сканировании кодов маркировки в 1С:Управление торговлей 11

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

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

Анализируем типовой алгоритм работы 1С с маркировкой

Для начала разберем внутреннюю логику конфигурации 1С:Управление торговлей 11. Процесс обработки сканированного кода в форме подбора и проверки маркируемой продукции подчиняется строгому правилу. Проанализируем его по этапам:

  1. Система получает строку данных от сканера.
  2. Происходит поиск полученного кода (GTIN + серийный номер) в регистре ШтрихкодыУпаковокТоваров или сопоставление через справочник ШтрихкодыНоменклатуры.
  3. Если код уже сопоставлен: система находит конкретную номенклатуру и характеристику. В этом случае 1С считает, что данные определены однозначно, и сразу добавляет позицию в список со статусом «В наличии». Окно уточнения при этом не вызывается.
  4. Если код не сопоставлен: открывается то самое окно «Уточнение данных», где система предлагает выбрать номенклатуру и характеристику вручную. После выбора создается запись о сопоставлении, и при следующем сканировании этого же кода окно уже не появится.

Выясним причину проблемы автора: при сканировании пачки уточнение не происходит, так как 1С «думает», что она уже знает, какой это товар. Часто это связано с тем, что для разных характеристик (например, разные МРЦ или партии) используется один и тот же GTIN, и система выбирает первый попавшийся вариант по алфавиту. Для массовой проверки и перезаписи привязок можно использовать обработку для сканирования и сопоставления марок табачной продукции.

Решение 1: Правильная настройка торгового оборудования

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

Когда сканер работает как клавиатура, 1С воспринимает ввод как быструю печать текста. Система не всегда успевает инициировать специализированные обработчики событий для маркировки. Разберем шаги по переводу сканера в правильный режим:

  1. Переведите сканер в режим Native Mode (эмуляция COM-порта). Для этого необходимо отсканировать специальный управляющий штрихкод из инструкции к вашему Honeywell.
  2. Установите драйвер 1С:Сканеры штрихкода (NativeApi) в разделе «НСИ и администрирование» — «Ремонт и обслуживание» — «Подключаемое оборудование».
  3. В настройках оборудования в 1С убедитесь, что установлен символ префикса и суффикса (обычно CR).

Именно работа через COM-порт позволяет системе 1С гарантированно перехватывать событие сканирования и корректно запускать процедуру ОбработкаОповещения, которая отвечает за вызов окон уточнения.

Решение 2: Работа с блоками и процедура «Распаковки»

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

При сканировании блока система может автоматически определить все вложенные пачки. Если вам нужно уточнить данные именно по пачкам, воспользуйтесь командой «Распаковать» в форме проверки. Проанализируем алгоритм:

Решение 3: Сброс ошибочного сопоставления

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

  1. В форме «Подбор и проверка маркируемой продукции» найдите строку с ошибочно добавленным товаром.
  2. Удалите эту строку или сам код маркировки из списка.
  3. Перейдите в справочник ШтрихкодыНоменклатуры и проверьте, нет ли там дублирующихся записей для одного GTIN на разные характеристики.
  4. После удаления позиции из формы проверки попробуйте отсканировать код заново. Если сканер настроен верно, и система не найдет однозначного соответствия в кэше текущей сессии, окно уточнения появится снова.

Решение 4: Программная доработка (для программистов)

Если типовое поведение (автоматический выбор по алфавиту) категорически не подходит, и требуется всегда вызывать окно уточнения для определенных категорий товаров, придется прибегнуть к расширению конфигурации. Проанализируем, в какую сторону смотреть:

Основная логика поиска номенклатуры при сканировании маркировки сосредоточена в модуле менеджера регистра ШтрихкодыУпаковокТоваров или в специализированных общих модулях интеграции с ИС МП (Честный ЗНАК). Рассмотрим примерный алгоритм изменения логики:


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

Использование флага НужноУточнение (название переменной может меняться в зависимости от версии УТ) заставляет систему всегда открывать диалоговое окно выбора, даже если формально 1С нашла подходящий штрихкод.

Важные замечания по версии платформы и релизам

Стоит обратить внимание, что версия 8.3.17.1496 и релизы УТ того периода содержат множество недоработок в части интеграции с ИС МП. Формат кодов DataMatrix для табака претерпевал изменения (сокращение криптохвоста и т.д.). Рекомендуем выполнить следующие действия:

Таким образом, мы выяснили, что основная причина отсутствия окна — это либо режим работы сканера как клавиатуры, либо уже существующее в базе сопоставление штрихкода с номенклатурой. Исправив настройки оборудования и очистив неверные привязки, вы сможете вернуть штатную работу окна уточнения данных. Для быстрого исправления и перепривязки кодов в базе подойдёт обработка для исправления и создания маркировки в 1С:УТ.

← На главную