Ограничения на использование реквизитов составного типа

#std728

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1.1. Реквизиты составного типа, используемые в условиях соединений, отборах, а также для упорядочивания, должны содержать только ссылочные типы (СправочникСсылка.[…], ДокументСсылка.[…] и пр.). В состав их типов не рекомендуется включать никаких других нессылочных типов, например: Строка, Число, Дата, УникальныйИдентификатор, Булево, а также ХранилищеЗначения.

В противном случае производительность запросов заметно снизится. Это обусловлено особенностями физического хранения реквизитов составных типов в колонках таблиц СУБД. См. Особенности хранения составных типов данных (статья на ИТС).

1.2. В отдельных случаях, для выполнения этой рекомендации можно применить следующий подход.

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

1.3. Исключение могут составлять таблицы, в которых заведомо мало данных (до 1000 записей).

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

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

Распространенные сложности из-за избыточного использования «сильно» составных типов:

Область применения (уточнение): управляемое приложение, обычное приложение.

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

Исключение могут составлять типы ведущих измерений регистров универсальных (библиотечных) механизмов, рассчитанных на работу с произвольными ссылочными объектами. В этом случае при необходимости сузить состав определяемого типа в конфигурации придется пересоздавать библиотечный регистр, что недопустимо. Поэтому здесь использование составных типов ЛюбаяСсылка, СправочникСсылка, ДокументСсылка и аналогичных оправданно.

См. также: