Поля составных типов

Общее определение

Поля составных типов в программировании (на примере программы «1С:Предприятие») — это поля, которые могут принимать значения одного из нескольких типов. Это полезно для работы с комплексными структурами данных, такими как адреса, реквизиты или другие составные объекты.

Составной тип. Тип считается составным, если в конфигураторе при выборе типа объекта метаданных (реквизита, измерения, ресурса и т. п.) в диалоге редактирования выбран более чем один тип (для этого нужно установить флаг «Составной тип») или выбрана ссылка на объекты базы данных более чем одного типа.

Важно

В каждый конкретный момент времени значение имеет только один конкретный тип. Если значение составного типа не указано, тип будет «Неопределенно». Одновременно двух типов значение составного типа быть не может.

Пример использования

В составе типовых объектов программы «1С:Предприятие» часто можно встретить поля составных типов с разнообразной палитрой типов данных. На примере документа «Приходный ордер» рассмотрим работу с такими полями.

Поле «Документ основания» приходного ордера является полем с составным типом.

Что делаем?

При создании проекта на этапе сопоставления полей для реквизита, который имеет множественный тип, вычислим тип метаданных.

Для каждого отдельного типа настраиваем Условие выбора типа:

  • Передается в отдельной колонке

Можем сопоставить передаваемую СУБД колонку по ссылке с данными загрузки.

Либо вычисляем по собственной формуле

  • Вычисляется по условиям

В колонке "Поиск по полям" настроим соответсвие между полями источника и приемника.

Далее заканчиваем настройку и нажимаем кнопку «Перенести условия в итоговый текст». Конструктор Инжектора 1С сформирует запрос, текст которого можно увидеть и отредактировать, на вкладке «Итоговый текст на стороне 1С».

Сохраняем изменения. На этом этапе работа с полем и его составными типами закончена.

Таким образом нам удалось настроить уникальное условие связи между приемником и источников, в данных передачи которых есть поля составных типов.