Как упростить ввод серийных номеров в документе Чек ККМ в 1С:Управление торговлей 11?

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

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

Почему типовой механизм требует отдельное окно для ввода серий

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

Так как в одной строке чека количество товара может быть больше единицы, типовой алгоритм рассчитывает статус заполнения через реквизит СтатусУказанияСерий. Чтобы распределить несколько серийных номеров на одну позицию или сверить количество, типовой интерфейс открывает специализированную форму регистрации серий. Штатными пользовательскими настройками формы переместить реквизит серии в основную таблицу товаров невозможно, так как это связь «один ко многим».

Способ 1. Настройка потокового сканирования в типовом окне серий

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

  1. В форме регистрации серий нажмем кнопку настройки режима ввода (пиктограмма шестеренки).
  2. Выберем режим потокового ввода: «Штрихкод товара — штрихкод серий этого товара — штрихкод следующего товара».
  3. Проверим настройки торгового оборудования: сканер должен передавать корректный суффикс перевода строки (CR/LF).

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

Способ 2. Использование строковых дополнительных реквизитов

Если учет остатков по серийным номерам на складе не ведется, а номер нужен только для печати в товарном чеке и последующего поиска в базе, применим механизм дополнительных реквизитов:

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

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

Способ 3. Перехват сканирования через расширение конфигурации

Для сохранения полноценного справочного механизма серий с заполнением типовых табличных частей наилучшим решением является разработка адаптации в виде расширения конфигурации (без изменения основной конфигурации поставщика).

Разберем логику программной доработки:

  1. В расширение подключается форма документа ЧекККМ или форма РМК.
  2. Переопределяется обработчик внешнего события торгового оборудования (БПО) ОбработкаОповещения или процедура обработки считанного штрихкода.
  3. Программный алгоритм анализирует входные данные: если текущая выбранная строка содержит номенклатуру со справочным учетом серий, а считанный код не найден в справочнике штрихкодов товаров, система интерпретирует его как серийный номер.
  4. Программно создается или подбирается элемент справочника серий, добавляется запись в табличную часть Серии с установкой соответствующего КлючСвязи, а строке товара присваивается признак успешно указанных серий без открытия модального окна.

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

Способ 4. Использование внешней обработки быстрого подбора

Если создание расширения ограничено требованиями к поддержке базы, рассмотрим вариант разработки внешней обработки подбора номенклатуры:

  1. Создается внешняя обработка, подключаемая через «Дополнительные отчеты и обработки».
  2. Обработка предоставляет упрощенный интерфейс: единую таблицу со столбцами Номенклатура, Количество, Цена и Серийный номер.
  3. Кассир выполняет быстрое сканирование позиций и серийных номеров в простом окне.
  4. По кнопке переноса в документ внешняя обработка программно генерирует строки табличной части Товары и заполняет подчиненную таблицу Серии чека с корректными ключами связей, после чего документ готов к расчету скидок и пробитию.
← На главную