Как в 1С:УТ 11.5 принять маркированный товар с разными сроками годности (сериями)?

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

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

В этой статье мы подробно разберем, почему так происходит, и рассмотрим несколько способов решения проблемы: от настройки системы до программной доработки.

Почему 1С «схлопывает» серии при подборе марок?

Проанализируем механику работы типового решения и особенности загрузки КИЗ из XML. Основная логика формы проверки и подбора в 1С построена на уникальности комбинации Номенклатура + Характеристика + GTIN. Серия для системы маркировки (ИС МП) часто является вторичным реквизитом. Если вы загружаете документ из ЭДО, система видит две строки с одинаковым товаром и пытается сопоставить марки. Однако при сканировании обработчик события часто не имеет контекста, к какой именно строке документа (с каким сроком годности) относится конкретная марка, пока не получит данные из ГИС МТ.

Разберем способы преодоления этой ситуации по шагам.

Способ 1: Настройка политики учета серий

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

  1. Перейдем в настройки Вида номенклатуры.
  2. Проверим раздел «Серии». Если установлена политика «Справочное указание серий», система будет считать серии информационным полем и не будет жестко разделять остатки по ним в форме проверки.
  3. Для полноценного разделения рекомендуется использовать тип политики «Учет остатков серий». В этом случае 1С будет требовать уточнения серии для каждой единицы товара, что заставит форму подбора работать более строго.

Способ 2: Использование режима «Сканировать в выделенную строку»

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

  1. Откройте форму «Проверка и подбор маркируемой продукции».
  2. Перейдите на вкладку с товарами (например, «Упакованная вода»).
  3. Найдите нужную строку с конкретной серией.
  4. Выделите эту строку курсором.
  5. Начинайте сканирование марок именно этой партии.

В большинстве релизов УТ 11.5 такой подход принудительно привязывает отсканированные коды маркировки (КМ) к текущей выделенной строке, не позволяя им «улетать» в общую кучу. После смены партии (срока годности) выделите следующую строку в списке и продолжите процесс.

Способ 3: Получение сроков годности из ГИС МТ (Честный Знак)

Проанализируем ситуацию, когда мы не знаем заранее, какая марка к какой серии относится. Система Честный Знак хранит атрибуты каждой марки, включая дату истечения срока годности (expirationDate). Мы можем заставить 1С получить эти данные автоматически:

  1. В форме проверки и подбора воспользуйтесь функцией «Запросить данные в ГИС МТ» (кнопка с пиктограммой облака или через меню «Еще»).
  2. Программа отправит запрос и получит сведения о кодах.
  3. Если в системе 1С уже созданы серии с соответствующими сроками годности, типовой механизм сопоставления сможет автоматически распределить марки по нужным строкам, основываясь на дате из системы маркировки.

Важно: Для этого в настройках интеграции с ИС МП (НСИ и администрирование -> Настройка ИС МП) должна быть включена опция запрашивать данные КМ у Честного Знака.

Способ 4: Программная доработка (для разработчиков)

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

Основная задача — при сканировании или после загрузки из ЭДО правильно заполнить реквизит Серия и ИдентификаторСтроки. Посмотрим на пример логики, которую можно реализовать в расширении:


// Пример логики перераспределения серий
// Нужно найти марку в коллекции и обновить её привязку к серии
Для Каждого СтрокаМарки Из Объект.ШтрихкодыУпаковок Цикл
    Если СтрокаМарки.ЗначениеШтрихкода = ТекущийШтрихкод Тогда
        // Получаем дату из данных ГИС МТ (если они были загружены)
        ДатаСрока = ПолучитьСрокГодностиИзДанныхМарки(СтрокаМарки.ДанныеКодаМаркировки);
        
        // Ищем подходящую серию в документе
        НужнаяСерия = ПоискСерииПоДате(ДатаСрока, Объект.Товары);
        
        Если ЗначениеЗаполнено(НужнаяСерия) Тогда
            СтрокаМарки.Серия = НужнаяСерия;
            // Обновляем идентификатор строки для связи с ТЧ Товары
            СтрокаМарки.ИдентификаторСтроки = ПолучитьИдентификаторСтрокиПоСерии(НужнаяСерия);
        КонецЕсли;
    КонецЕсли;
КонецЦикла;

Специалисты рекомендуют обратить внимание на обработку ПроверкаИПодборМаркируемойПродукции. В ней необходимо переопределить процедуру распределения марок по строкам. Основной фокус должен быть на том, чтобы при поиске строки-контейнера для марки приоритет отдавался серии, если она заполнена в данных марки (поле expirationDate), а также выгрузка полных кодов маркировки в csv для внешних систем.

Архитектурный подход «Здорового человека»

Как показывает опыт крупных внедрений, для стабильной приемки больших объемов маркированного товара с разными сроками годности лучше использовать внешние инструменты или специализированные обработки для ТСД. Рассмотрим эталонный процесс:

  1. Предварительный запрос данных: При получении уведомления из ЭДО программа в фоновом режиме опрашивает Честный Знак по всем входящим маркам.
  2. Обогащение данными: Полученные сроки годности записываются в доп. сведения марок или во временные таблицы.
  3. Автоматическое создание серий: Если пришла марка с новым сроком годности, система автоматически создает соответствующий элемент справочника СерииНоменклатуры.
  4. Сверка: Используя мобильный клиент для ТСД, человек сканирует товар, а система в реальном времени проверяет соответствие Марка -> Срок годности -> Серия в 1С. При несовпадении (пересорте по срокам) программа сразу предлагает сформировать акт расхождения, переупаковку.

Использование такого подхода исключает человеческий фактор и ошибки «схлопывания» строк, которые характерны для упрощенного интерфейса типового подбора.

Таким образом, мы выяснили, что проблема разделения серий в УТ 11.5 решаема. Начните с проверки политики учета серий и использования режима сканирования в выделенную строку. Если это не помогает — задействуйте запросы к ГИС МТ для автоматического получения сроков годности. В крайнем случае — используйте механизм расширений для корректировки связи марок с сериями в таблице штрихкодов.

← На главную