Почему в 1С:ERP не выбираются заранее созданные серии и как это исправить

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Промышленность, строительство и АПК
← На главную

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

Разбираем архитектурную логику: почему серия привязана к Виду номенклатуры?

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

  1. Унификация данных: Один и тот же номер сертификата или номер плавки металла может относиться к разным товарам. Привязка к виду номенклатуры позволяет использовать одну запись серии для нескольких позиций, если они объединены общими правилами учета.
  2. Оптимизация справочника: Если бы для каждого товара создавалась уникальная запись серии (даже если номер совпадает), база данных росла бы в геометрической прогрессии.
  3. Гибкость политики учета: Серия в ERP — это не только номер партии. Это разрез учета, который может использоваться как справочно, так и для жесткого контроля остатков или расчета себестоимости.

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

Почему фильтр «Все» не показывает новые серии?

Когда мы открываем форму Указание серий и переключаемся на «Все», система выполняет запрос не к справочнику СерииНоменклатуры напрямую, а к регистру накопления ДвиженияСерийТоваров. Рассмотрим подробнее, что это означает:

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

Решение проблемы через настройку Политики учета серий

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

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

Техническое решение: модификация запроса подбора

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

Основная задача — изменить логику работы формы ПодборСерийВДокументы. Нам нужно, чтобы запрос игнорировал регистр ДвиженияСерийТоваров и обращался напрямую к справочнику СерииНоменклатуры, фильтруя результат по Виду номенклатуры текущей позиции.

Пример логики изменения запроса (схематично):


// В процедуре ПриСозданииНаСервере или в месте формирования динамического списка
// необходимо изменить текст запроса.
// Вместо связи с РегистромНакопления.ДвиженияСерийТоваров
// используем выборку из Справочника.СерииНоменклатуры

ТекстЗапроса = 
"ВЫБРАТЬ
|	Серии.Ссылка КАК Серия,
|	Серии.Номер КАК Номер,
|	Серии.ГоденДо КАК ГоденДо
|ИЗ
|	Справочник.СерииНоменклатуры КАК Серии
|ГДЕ
|	Серии.Владелец = &ВидНоменклатуры
|	И НЕ Серии.ПометкаУдаления";

Список.ТекстЗапроса = ТекстЗапроса;
Список.Параметры.УстановитьЗначениеПараметра("ВидНоменклатуры", ТекущийВидНоменклатуры);

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

Использование штрихкодов для обхода ограничений интерфейса

Если вы не хотите менять программный код, проанализируем использование штрихкодов. Это самый эффективный способ работы с сериями в 1С:ERP:

  1. При создании серии (например, другим документом или обработкой) сразу генерируйте для нее Штрихкод серии.
  2. В документе поступления или пересчета вместо нажатия кнопок поиска просто считайте штрихкод сканером (или введите его вручную в поле поиска).
  3. Система автоматически найдет серию в справочнике по штрихкоду и добавит её в документ, игнорируя отсутствие движений в регистре.

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

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

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

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

← На главную