Как в 1С:УТ 11 сделать указание серий необязательным при серийном учете?

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

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

Однако в реальном бизнесе часто возникает потребность в «выборочном» учете. Например, когда серии нужно присваивать и отслеживать только для возвращенных покупателями товаров (чтобы контролировать их дальнейшую судьбу, сроки нахождения на складе или повторную продажу), в то время как поток обычных новых товаров должен проходить без указания серий. Ниже мы детально разберем, почему возникает эта проблема и какими способами — как стандартными, так и программными — ее можно решить.

Почему типовая 1С требует заполнения серий?

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

Давайте подробно рассмотрим четыре практических сценария решения этой задачи.

---

Решение 1. Использование «дежурной» серии-заглушки (Без программирования)

Это самый простой административный метод, который активно применяется на практике и не требует внесения изменений в код программы. Суть метода заключается в создании виртуальной серии, которая будет выступать в роли «заглушки» для всех стандартных (невозвратных) товаров.

Разберем этот процесс по шагам:

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

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

---

Решение 2. Разделение учета по виртуальным складам

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

Проанализируем этот сценарий:

---

Решение 3. Документ «Изменение качества товаров»

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

Выполним следующие шаги:

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

---

Решение 4. Техническая доработка через Расширение конфигурации

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

Важное предупреждение: Данную доработку допускается производить только при использовании политики «Справочное указание серий». При такой политике серии записываются только в оборотный регистр накопления Движения серий товаров. В остаточных регистрах (таких как Товары на складах или Выручка и себестоимость продаж) измерение «Серия» отсутствует.

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

Для реализации доработки выполним следующие шаги в конфигураторе:

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

Посмотрим на пример перехвата процедуры проверки заполнения через механизм &Вместо или &ИзменениеИВопреки:


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

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

← На главную