Табличная часть

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

Например, справочник Заказы вместе с каждым элементом (заказом) может хранить состав заказа: товар, его количество и цену. В одном заказе может быть три товара, в другом — два, а в третьем — четыре товара.

Чтобы смоделировать это в можно использовать множественный реквизит и хранимую структуру.

Например, справочник Заказы может иметь множественный реквизит Состав, элементами которого являются экземпляры хранимой структуры СтрокаТаблицы.

Описание хранимой структуры СтрокаТаблицы.yaml выглядит следующим образом:

ВидЭлемента: ХранимаяСтруктура
Ид: 2d187506-7d2b-48a9-9dfd-f05cfeccc9b8
ОбластьВидимости: ВПодсистеме
Имя: СтрокаТаблицы
Поля:
    -
        Имя: Товар
        Ид: f90c625c-dff7-4186-8d4b-91d212ba071b
        Тип: Товары.Ссылка?
        ИспользоватьВПолнотекстовомПоиске: Ложь
    -
        Имя: Количество
        Ид: 9ac9970e-33a8-424b-bca8-4a2e8b21b506
        Тип: Число
        ИспользоватьВПолнотекстовомПоиске: Ложь
    -
        Имя: Цена
        Ид: 787d8424-9762-4015-9938-b539d8a5a0db
        Тип: Число
        ИспользоватьВПолнотекстовомПоиске: Ложь

В структуре определены три поля: Товар, Количество и Цена.

Описание справочника Заказы.yaml выглядит следующим образом:

ВидЭлемента: Справочник
Имя: Заказы
Ид: 7fd826d7-2431-4574-acd5-75ab887ba06f
ОбластьВидимости: ВПодсистеме
Реквизиты:
    -
        Имя: Код
        Тип: Строка
        СерииНумерации:
            - Префикс
            - Постфикс
    -
        Ид: f6f80dbe-73f7-4046-9fa5-2107b8d7831e
        Имя: Дата
        Тип: ДатаВремя
        ИспользоватьВПолнотекстовомПоиске: Ложь
    -
        Ид: 30870553-4c11-4518-8630-78c47d7cf48b
        Имя: Состав
        Тип: Массив<СтрокаТаблицы>
        ИспользоватьВПолнотекстовомПоиске: Ложь

В справочнике определены три реквизита: Код, Дата и множественный реквизит Состав. Элементами массива, находящегося в этом реквизите, являются экземпляры хранимой структуры СтрокаТаблицы.

Во встроенном языке создать элемент справочника Заказы можно следующим образом:

// Создать заказ с тремя товарами
пер Заказ = новый Заказы.Объект()
Заказ.Код = "1"
Заказ.Дата = ДатаВремя.Сейчас()
    
// Заполнить состав заказа.
Заказ.Состав.Добавить(новый СтрокаТаблицы(ПервыйТоварСсылка, 10, 20000))
Заказ.Состав.Добавить(новый СтрокаТаблицы(ВторойТоварСсылка, 15, 45000))
Заказ.Состав.Добавить(новый СтрокаТаблицы(ТретийТоварСсылка, 30, 3000))

Заказ.Записать()