В процессе работы с конфигурацией 1С:ERP Управление предприятием 2.0 пользователи часто сталкиваются с необходимостью расширить карточку транспортного средства, добавив специфические поля (например, экологический класс, номер страховки или дату техосмотра). Однако при попытке сделать это через пользовательский интерфейс (раздел «Администрирование» — «Дополнительные реквизиты и сведения») выясняется, что справочник ТранспортныеСредства отсутствует в списке доступных для редактирования объектов.
В рамках данной статьи мы разберем, почему так происходит, выясним разницу между типами дополнительных данных и научимся правильно подключать механизм дополнительных реквизитов для любого объекта конфигурации, используя современные инструменты разработки.
Проанализируем ситуацию: в типовых конфигурациях на базе БСП (Библиотеки стандартных подсистем) возможность добавления реквизитов «на лету» жестко привязана к структуре метаданных. Если разработчики фирмы «1С» не предусмотрели для конкретного справочника специальную табличную часть ДополнительныеРеквизиты, то пользователь не сможет добавить новые поля через интерфейс. В старых релизах ERP 2.0 справочник транспортных средств часто был ограничен в функционале, так как предполагалось, что детальный учет ведется в специализированных отраслевых решениях.
Прежде чем переходить к программированию, давайте разберем, какой механизм нам больше подходит. Рассмотрим основные отличия:
ДополнительныеСведения.Если в вашей версии ERP справочник не поддерживает ни то, ни другое, нам придется внести изменения в конфигурацию.
Рассмотрим самый правильный и современный метод — использование расширений. Это позволит нам сохранить основную конфигурацию на поддержке («на замке»), что значительно упростит будущие обновления системы.
Разберем по шагам, как активировать механизм дополнительных реквизитов для справочника ТранспортныеСредства:
Нам необходимо добавить справочник в наше расширение и создать в нем табличную часть. Выполним следующие действия:
ТранспортныеСредства в расширение.ДополнительныеРеквизиты.Свойство (Тип: ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения)Значение (Тип: Характеристика.ДополнительныеРеквизитыИСведения)ТекстоваяСтрока (Тип: Строка, длина 150)Чтобы система «увидела», что теперь справочник может иметь доп. реквизиты, нужно прописать его в Определяемых типах. В расширении найдем и добавим следующие объекты:
ОпределяемыйТип.ОбъектСДополнительнымиРеквизитами — в состав типа добавляем наш справочник.ОпределяемыйТип.ВладелецНабораДополнительныхРеквизитовИСведений — также включаем наш справочник в состав.Проанализируем ситуацию: системе нужно подсказать, как именно выводить эти реквизиты. Для этого в модуле менеджера справочника необходимо переопределить процедуру. Рассмотрим пример кода:
// В модуле менеджера справочника ТранспортныеСредства
&После("ПриЧтенииОбщихПараметров")
Процедура Расш1_ПриЧтенииОбщихПараметров(Настройки)
Настройки.ДополнительныеРеквизиты = Истина;
КонецПроцедуры
Чтобы новые поля автоматически появились на форме, нам нужно добавить программный вызов подсистемы «Свойства» в модуле формы элемента. Выясним, какие обработчики нам понадобятся:
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Подключаем механизм управления свойствами
ПараметрыСвойств = УправлениеСвойствами.ПараметрыРедактированияСвойств(Объект);
УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ПараметрыСвойств);
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)
УправлениеСвойствамиКлиент.ПослеЧтенияДополнительныхРеквизитов(ЭтаФорма, Объект);
КонецПроцедуры
Важный момент: дополнительные реквизиты, добавленные через этот стандартный механизм БСП, автоматически станут доступны в «Универсальном отчете» и во всех типовых отчетах, где используется этот справочник. Это избавляет программиста от необходимости вручную править каждый отчет в системе.
Проанализируем связь справочника с другими подсистемами. В 1С:ERP справочник ТранспортныеСредства тесно интегрирован с регистрами сведений для расчета транспортного налога. Если ваша задача — добавить реквизит для целей налогового учета (например, специфическую мощность двигателя), обязательно проверьте регистр РегистрацияТранспортныхСредств. Иногда данные для деклараций берутся именно оттуда, и простого добавления реквизита в справочник может быть недостаточно для автоматического заполнения регламентированной отчетности.
Мы рассмотрели комплексный подход к решению задачи. Если политика компании запрещает использование расширений или правку конфигурации, вы можете попробовать использовать «Дополнительные сведения», предварительно включив справочник в определяемый тип ВладелецДополнительныхСведений. Однако для удобства пользователей добавление табличной части через расширение является наиболее предпочтительным и гибким вариантом, сохраняющим чистоту основной конфигурации.