Как добавить дополнительные реквизиты в справочник Транспортные средства в 1С:ERP 2.0

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

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

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

Почему справочник нельзя расширить в пользовательском режиме

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

Разница между Дополнительными реквизитами и Сведениями

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

  1. Дополнительные реквизиты:
    • Хранятся непосредственно внутри объекта (в его табличной части).
    • Отображаются сразу в форме элемента справочника.
    • Записываются в одной транзакции с объектом.
    • Удобны для оперативной работы пользователя.
  2. Дополнительные сведения:
    • Хранятся в отдельном регистре сведений ДополнительныеСведения.
    • Отображаются в отдельном окне, которое вызывается по кнопке.
    • Могут изменяться независимо от самого объекта (даже если у пользователя нет прав на изменение справочника).
    • Удобны для хранения аналитики, которая не требуется постоянно перед глазами.

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

Решение проблемы через расширение конфигурации

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

Разберем по шагам, как активировать механизм дополнительных реквизитов для справочника ТранспортныеСредства:

Шаг 1. Подготовка структуры в расширении

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

  1. Создадим новое расширение или откроем существующее.
  2. Добавим справочник ТранспортныеСредства в расширение.
  3. В расширении создадим у этого справочника табличную часть с именем ДополнительныеРеквизиты.
  4. Внутри табличной части создадим стандартный набор реквизитов:
    • Свойство (Тип: ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения)
    • Значение (Тип: Характеристика.ДополнительныеРеквизитыИСведения)
    • ТекстоваяСтрока (Тип: Строка, длина 150)

Шаг 2. Включение объекта в типы БСП

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

Шаг 3. Программная настройка в модуле менеджера

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


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

Шаг 4. Настройка формы элемента

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


&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    
    // Подключаем механизм управления свойствами
    ПараметрыСвойств = УправлениеСвойствами.ПараметрыРедактированияСвойств(Объект);
    УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ПараметрыСвойств);
    
КонецПроцедуры

&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)
    УправлениеСвойствамиКлиент.ПослеЧтенияДополнительныхРеквизитов(ЭтаФорма, Объект);
КонецПроцедуры

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

Особенности для ERP и транспортного налога

Проанализируем связь справочника с другими подсистемами. В 1С:ERP справочник ТранспортныеСредства тесно интегрирован с регистрами сведений для расчета транспортного налога. Если ваша задача — добавить реквизит для целей налогового учета (например, специфическую мощность двигателя), обязательно проверьте регистр РегистрацияТранспортныхСредств. Иногда данные для деклараций берутся именно оттуда, и простого добавления реквизита в справочник может быть недостаточно для автоматического заполнения регламентированной отчетности.

Заключение

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

← На главную