Табличная часть
Табличная часть элемента проекта — это вложенная таблица, предназначенная для хранения вместе с каждым элементом данных однородной по своей структуре информации. Количество строк такой информации заранее неизвестно и может быть разным для разных элементов данных.
Например, справочник Заказы вместе с каждым элементом (заказом) может хранить состав заказа: товар, его количество и цену. В одном заказе может быть три товара, в другом — два, а в третьем — четыре товара.
Чтобы смоделировать это в можно использовать множественный реквизит и хранимую структуру.
Например, справочник Заказы может иметь множественный реквизит Состав, элементами которого являются экземпляры хранимой структуры СтрокаТаблицы.
Описание хранимой структуры СтрокаТаблицы.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))
Заказ.Записать()