В процессе доработки типовых конфигураций (1С:ERP, 1С:Управление торговлей, 1С:Комплексная автоматизация) регулярно возникает задача добавить новое поле к справочнику или документу. На практике разработчики и аналитики выбирают между несколькими подходами: использование встроенного механизма дополнительных реквизитов, добавление поля в конфигураторе с программным выводом на форму или создание реквизита в расширении. Проанализируем плюсы и минусы каждого варианта с точки зрения производительности, сложности обновления и работы в отчетах и алгоритмах.
Штатный механизм Библиотеки Стандартных Подсистем (БСП) позволяет добавлять пользовательские поля в режиме «1С:Предприятие» без вмешательства в конфигуратор.
Преимущества:
Недостатки и ограничения:
JOIN), что на больших объемах данных замедляет выборку и исключает прямое использование физических индексов СУБД.Если дополнительный реквизит необходимо использовать в произвольном запросе или отчете на базе Система Компоновки Данных (СКД), можно связать его через механизм характеристик. Рассмотрим, как это работает на уровне СКД:
В конструкторе схемы компоновки данных на вкладке Характеристики настраивается связь основной таблицы со справочником видов свойств и табличной частью дополнительных реквизитов. После этого реквизит становится доступен через «плюс» от ссылки в пользовательском режиме так же, как и обычные поля объекта.
Этот способ заключается в том, что сам реквизит добавляется в объект справочника в конфигураторе, а его отображение на форме реализуется программно (через вызов из общего модуля) или через расширение.
Преимущества:
Индексировать. СУБД создаст физический индекс, обеспечивающий мгновенный поиск и фильтрацию в динамических списках.Ссылка.ИмяРеквизита) без вызова процедур БСП или обращения к табличным частям.Недостатки: Объекту требуется снять замок полной поддержки (перевести в режим поддержки с сохранением изменений).
Современная платформа 1С позволяет добавлять реквизиты прямо в расширение без изменения основной конфигурации.
Преимущества: Конфигурация остается на полной поддержки.
Риски и нюансы: Данные реквизитов расширений хранятся в отдельных таблицах СУБД. При случайном удалении или отключении расширения существует серьезный риск безвозвратно потерять накопленные данные. Также стоит учитывать нюансы реструктуризации при работе с распределенными базами данных (РИБ).
Разберем, какой подход выбрать в зависимости от задачи:
ПередЗаписью, ПриЗаписи), участвовать в поиске по большим массивам данных или передаваться по интеграциям (OData / Web-сервисы). Для сохранения удобства обновлений вывод поля на форму лучше выполнить программно через модуль формы или расширение.