При настройке учета серий в программных продуктах 1С:ERP Управление предприятием, 1С:Комплексная автоматизация или 1С:Управление торговлей 11 пользователи часто сталкиваются с неочевидным поведением системы. В настройках вида номенклатуры есть удобный конструктор — шаблон наименования серии. Однако, открывая саму карточку созданной серии, пользователь не обнаруживает там текстового поля «Наименование» или кнопки «Сформировать по шаблону». Возникает резонный вопрос: зачем настраивать шаблон, если визуально он нигде не применяется?
В этой статье мы подробно разберем внутреннюю логику работы платформы «1С:Предприятие 8» с сериями, выясним технические причины скрытия поля наименования и научимся правильно выводить эти данные в отчетах.
Для начала проанализируем архитектуру справочника СерииНоменклатуры. Как и любой другой справочник в системе 1С, он содержит стандартный реквизит Наименование. Однако в форме элемента (в карточке серии) этого поля действительно нет. Разработчики конфигурации умышленно скрыли его из интерфейса пользователя.
Сделано это для обеспечения жесткого контроля за уникальностью и стандартизацией данных. Если бы пользователям было разрешено вводить наименование серии вручную, это неизбежно привело бы к хаосу в информационной базе. Один кладовщик назвал бы серию «Партия 15 от 12.08», другой — «парт.15_12/08/23», а третий допустил бы опечатку. Для системы это были бы разные текстовые строки, что сделало бы невозможным точный учет, быстрый поиск и автоматическое сопоставление остатков.
Вместо этого система требует от пользователя заполнения строго типизированных реквизитов (в зависимости от настроек вида номенклатуры):
На основе этих физических данных система сама конструирует строковое представление серии, используя заданный шаблон.
Для того чтобы понять, в какой момент «срабатывает» шаблон, нам необходимо обратиться к логике работы программного кода в модуле объекта справочника СерииНоменклатуры.
Формирование рабочего наименования серии происходит строго на стороне сервера при выполнении стандартного события ПередЗаписью. Алгоритм работает следующим образом:
ВидНоменклатуры и считывает настройки шаблона наименования, сохраненные для этого вида.[Номер] + " от " + [ДатаПроизводства]), извлекает реальные значения из реквизитов записываемой серии и склеивает их в единую текстовую строку.Наименование.Рассмотрим упрощенный пример того, как это выглядит в модуле объекта справочника:
Процедура ПередЗаписью(Отказ)
Если Не ОбменДанными.Загрузка Тогда
// Запрос к настройкам Вида Номенклатуры и получение шаблона
ШаблонНаименования = ПолучитьШаблонНаименованияИзВидаНоменклатуры(ЭтотОбъект.Номенклатура.ВидНоменклатуры);
// Формирование строки на основе шаблона и текущих реквизитов серии
ЭтотОбъект.Наименование = СформироватьНаименованиеПоШаблону(ЭтотОбъект, ШаблонНаименования);
КонецЕсли;
КонецПроцедуры
Если шаблон в виде номенклатуры не задан вовсе, система не оставляет наименование пустым. В коде конфигурации прописан жесткий алгоритм по умолчанию (обычно он склеивает номер серии и дату окончания срока годности).
В обсуждении возник классический спор: один пользователь утверждает, что сформировал Универсальный отчет по регистру и не обнаружил там колонки «Наименование», в то время как другие участники настаивают, что все данные на месте.
Разберем эту ситуацию. В регистрах накопления, которые хранят остатки и движения товаров (например, ТоварыНаСкладах), измерение Серия является ссылкой на справочник СерииНоменклатуры.
Когда вы выводите это измерение в отчет, платформа 1С по умолчанию показывает так называемое представление ссылки. А представлением для справочника серий как раз и является тот самый реквизит Наименование, который был автоматически сформирован по шаблону при записи. Поэтому в колонке с названием «Серия» вы видите красивую склеенную строку (например, "Партия №148 от 10.05.2023").
Однако если вам требуется вывести наименование серии как отдельное текстовое поле (без ссылки), нужно выполнить простую настройку СКД (системы компоновки данных) в Универсальном отчете:
Использование шаблонов наименований серий решает важные практические задачи склада и отдела продаж:
Наименование. Если шаблон настроен правильно (например, включает бренд, страну или свойства сырья), менеджер может моментально найти нужную серию по любому ключевому слову.Представим ситуацию: на предприятии год велся учет по шаблону [Номер], а затем руководство решило изменить его на [Номер] + [ГоденДо]. Администратор меняет формулу в виде номенклатуры, открывает отчет и видит, что у старых серий наименования остались прежними.
Важно помнить: Изменение шаблона в виде номенклатуры не приводит к автоматическому пересчету наименований уже созданных элементов справочника СерииНоменклатуры. Поскольку генерация имени происходит только в момент записи объекта, новые правила применятся только к вновь создаваемым сериям.
Чтобы обновить наименования у старых серий под новый формат, необходимо перезаписать элементы справочника. Для этого воспользуйтесь стандартной обработкой «Групповое изменение реквизитов», выберите справочник «Серии номенклатуры», при необходимости настройте отбор по конкретному виду номенклатуры и выполните изменение (перезапись) объектов. Программа заново выполнит транзакцию записи для каждого элемента, активирует процедуру ПередЗаписью и обновит рабочие наименования по новому шаблону.