Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1.1. Реквизиты составного типа, используемые в условиях соединений, отборах, а также для упорядочивания, должны содержать только ссылочные типы (СправочникСсылка.[…], ДокументСсылка.[…] и пр.). В состав их типов не рекомендуется включать никаких других нессылочных типов, например: Строка, Число, Дата, УникальныйИдентификатор, Булево, а также ХранилищеЗначения.
В противном случае производительность запросов заметно снизится. Это обусловлено особенностями физического хранения реквизитов составных типов в колонках таблиц СУБД. См. Особенности хранения составных типов данных (статья на ИТС).
1.2. В отдельных случаях, для выполнения этой рекомендации можно применить следующий подход.
Например, в документе определен реквизит Адрес составного типа, который включает ссылку на справочник Контакты и «строку» для возможности ввода в реквизит произвольных строковых значений. Вместо этого, следует предусмотреть отдельный справочник ПроизвольныеАдреса и указать его в реквизите Адрес вместо строки. При этом добавление новых элементов в справочник ПроизвольныеАдреса следует обеспечить автоматически, «незаметно» от пользователя, в момент записи документа. А удаление ненужных элементов справочника ПроизвольныеАдреса можно организовать посредством регламентного задания.
1.3. Исключение могут составлять таблицы, в которых заведомо мало данных (до 1000 записей).
2.1. Для типизированных объектов метаданных, хранящихся в информационной базе, не следует использовать составные типы ЛюбаяСсылка, СправочникСсылка, ДокументСсылка и аналогичные. Состав типов того или иного типизированного объекта должен определяться явным образом.
Исключение составляют универсальные механизмы (алгоритмы), действительно рассчитанные на работу с произвольными ссылочными объектами.
Распространенные сложности из-за избыточного использования «сильно» составных типов:
2.2. В случае если составной тип массово используется в объектах какой-либо подсистемы или во всей конфигурации, то рекомендуется использовать определяемые типы. Исключение могут составлять типы ведущих измерений регистров универсальных (библиотечных) механизмов, рассчитанных на работу с произвольными ссылочными объектами. В этом случае при необходимости сузить состав определяемого типа в конфигурации придется пересоздавать библиотечный регистр, что недопустимо. Поэтому здесь использование составных типов ЛюбаяСсылка, СправочникСсылка, ДокументСсылка и аналогичных оправданно. |