Зачем нужен шаблон наименования серии в 1С:ERP и как он работает?

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

При настройке учета серий в программных продуктах 1С:ERP Управление предприятием, 1С:Комплексная автоматизация или 1С:Управление торговлей 11 пользователи часто сталкиваются с неочевидным поведением системы. В настройках вида номенклатуры есть удобный конструктор — шаблон наименования серии. Однако, открывая саму карточку созданной серии, пользователь не обнаруживает там текстового поля «Наименование» или кнопки «Сформировать по шаблону». Возникает резонный вопрос: зачем настраивать шаблон, если визуально он нигде не применяется?

В этой статье мы подробно разберем внутреннюю логику работы платформы «1С:Предприятие 8» с сериями, выясним технические причины скрытия поля наименования и научимся правильно выводить эти данные в отчетах.

1. В чем суть проблемы и почему скрыто поле «Наименование»?

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

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

Вместо этого система требует от пользователя заполнения строго типизированных реквизитов (в зависимости от настроек вида номенклатуры):

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

2. Как работает магия шаблонов: заглянем под капот системы

Для того чтобы понять, в какой момент «срабатывает» шаблон, нам необходимо обратиться к логике работы программного кода в модуле объекта справочника СерииНоменклатуры.

Формирование рабочего наименования серии происходит строго на стороне сервера при выполнении стандартного события ПередЗаписью. Алгоритм работает следующим образом:

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

Рассмотрим упрощенный пример того, как это выглядит в модуле объекта справочника:


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

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

3. Спор на форуме: «Куда делось Наименование в Универсальном отчете?»

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

Разберем эту ситуацию. В регистрах накопления, которые хранят остатки и движения товаров (например, ТоварыНаСкладах), измерение Серия является ссылкой на справочник СерииНоменклатуры.

Когда вы выводите это измерение в отчет, платформа 1С по умолчанию показывает так называемое представление ссылки. А представлением для справочника серий как раз и является тот самый реквизит Наименование, который был автоматически сформирован по шаблону при записи. Поэтому в колонке с названием «Серия» вы видите красивую склеенную строку (например, "Партия №148 от 10.05.2023").

Однако если вам требуется вывести наименование серии как отдельное текстовое поле (без ссылки), нужно выполнить простую настройку СКД (системы компоновки данных) в Универсальном отчете:

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

4. Бизнес-смысл: зачем шаблоны нужны предприятию?

Использование шаблонов наименований серий решает важные практические задачи склада и отдела продаж:

5. Важное ограничение при изменении шаблонов

Представим ситуацию: на предприятии год велся учет по шаблону [Номер], а затем руководство решило изменить его на [Номер] + [ГоденДо]. Администратор меняет формулу в виде номенклатуры, открывает отчет и видит, что у старых серий наименования остались прежними.

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

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

← На главную