Примеры структур
Перечисление
Элементы структуры — перечисления:
ВидЭлемента: Структура
ОбластьВидимости: ВПодсистеме
Ид: b87752bd-dc47-4183-b2c4-b037ba971312
Имя: Структура01Перечисление
Окружение: Сервер
Импорт: МояПодсистема
Поля:
-
# перечисление из соседней подсистемы по неквалифицированному имени
Имя: ПервоеПоле
Тип: МоеПеречисление
Обязательное: Истина
-
# перечисление из соседней подсистемы по квалифицированному имени
Имя: ВтороеПоле
Тип: МояПодсистема::МоеПеречисление
ТолькоЧтение: Истина
Массив
Элемент структуры — массив:
ВидЭлемента: Структура
Ид: 5c00259d-ff82-4aea-98bc-7acad93aef4f
Имя: Структура02Массив
Окружение: Сервер
Импорт: МояПодсистема
Поля:
-
# массив
Имя: ПервоеПоле
Тип: Массив<Объект>
ЗначениеПоУмолчанию:
-
# Строка
Тип: Строка
Значение: Строка текста
-
# Булево
Тип: Булево
Значение: Истина
-
# структура из другой подсистемы по неквалифицированному имени
Тип: ПерваяСтруктура
ПервоеПолеПервойСтруктуры: Значение первого поля
ВтороеПолеПервойСтруктуры: Значение второго поля
-
# структура из другой подсистемы по квалифицированному имени
Тип: МояПодсистема::ВтораяСтруктура
ПервоеПолеВторойСтруктуры: Значение первого поля
Элемент структуры — массив с типом элементов:
ВидЭлемента: Структура
ОбластьВидимости: ВПодсистеме
Ид: 6214d0b4-bde6-436f-a853-7e529ac7ecfb
Имя: Структура03МассивСТипомЭлементов
Окружение: Сервер
Импорт: МояПодсистема
Поля:
-
# массив с типом элементов
Имя: ПервоеПоле
Тип: Массив<ПерваяСтруктура | ВтораяСтруктура>
ЗначениеПоУмолчанию:
-
# структура из другой подсистемы по неквалифицированному имени
Тип: ПерваяСтруктура
ПервоеПолеПервойСтруктуры: Значение первого поля
ВтороеПолеПервойСтруктуры: Значение второго поля
-
# структура из другой подсистемы по квалифицированному имени
Тип: МояПодсистема::ВтораяСтруктура
ПервоеПолеВторойСтруктуры: Значение первого поля
Элемент структуры — читаемый массив:
ВидЭлемента: Структура
ОбластьВидимости: ВПодсистеме
Ид: 446ab266-6ecf-4d23-902b-eed4e4c4131d
Имя: Структура04ЧитаемыйМассив
Окружение: Сервер
Импорт: МояПодсистема
Поля:
-
# читаемый массив
Имя: ПервоеПоле
Тип: ЧитаемыйМассив<Объект>
ЗначениеПоУмолчанию:
-
# Строка
Тип: Строка
Значение: Строка текста
-
# Булево
Тип: Булево
Значение: Истина
-
# структура из другой подсистемы по неквалифицированному имени
Тип: ПерваяСтруктура
ПервоеПолеПервойСтруктуры: Значение первого поля
ВтороеПолеПервойСтруктуры: Значение второго поля
-
# структура из другой подсистемы по квалифицированному имени
Тип: МояПодсистема::ВтораяСтруктура
ПервоеПолеВторойСтруктуры: Значение первого поля
Множество
Элемент структуры — множество:
ВидЭлемента: Структура
ОбластьВидимости: ВПодсистеме
Ид: f3d8d10a-651c-446d-ac4a-8fbec4e13b47
Имя: Структура05Множество
Окружение: Сервер
Импорт: МояПодсистема
Поля:
-
# множество
Имя: ПервоеПоле
Тип: Множество<Объект>
ЗначениеПоУмолчанию:
-
# Строка
Тип: Строка
Значение: Строка текста
-
# Булево
Тип: Булево
Значение: Истина
-
# структура из другой подсистемы по неквалифицированному имени
Тип: ПерваяСтруктура
ПервоеПолеПервойСтруктуры: Значение первого поля
ВтороеПолеПервойСтруктуры: Значение второго поля
-
# структура из другой подсистемы по квалифицированному имени
Тип: МояПодсистема::ВтораяСтруктура
ПервоеПолеВторойСтруктуры: Значение первого поля
Элемент структуры — читаемое множество:
ВидЭлемента: Структура
ОбластьВидимости: ВПодсистеме
Ид: ce9a0706-52b7-494a-b08f-4a8d724facbd
Имя: Структура06ЧитаемоеМножество
Окружение: Сервер
Импорт: МояПодсистема
Поля:
-
# читаемое множество
Имя: ПервоеПоле
Тип: ЧитаемоеМножество<Объект>
ЗначениеПоУмолчанию:
-
# Строка
Тип: Строка
Значение: Строка текста
-
# Булево
Тип: Булево
Значение: Истина
-
# структура из другой подсистемы по неквалифицированному имени
Тип: ПерваяСтруктура
ПервоеПолеПервойСтруктуры: Значение первого поля
ВтороеПолеПервойСтруктуры: Значение второго поля
-
# структура из другой подсистемы по квалифицированному имени
Тип: МояПодсистема::ВтораяСтруктура
ПервоеПолеВторойСтруктуры: Значение первого поля
Структура, созданная в языке
Элемент структуры — структура из языка:
ВидЭлемента: Структура
ОбластьВидимости: ВПодсистеме
Ид: 1feed8b9-b027-4c5a-a92e-c0e1c763f2ab
Имя: Структура07ЯзыковаяСтруктура
Окружение: Сервер
Импорт: МояПодсистема
Поля:
-
# структура из языка - все поля заданы явно
Имя: ПервоеПоле
Тип: МойОбщийМодуль.МояСтруктура
ЗначениеПоУмолчанию:
ЧисловоеПоле: 55
СтроковоеПоле: Строковое значение
-
# структура из языка - не задано ни одно поле, неявная инициализация
Имя: ВтороеПоле
Тип: МойОбщийМодуль.МояСтруктура
Структура МояСтруктура:
@ВПроекте
структура МояСтруктура
обз пер СтроковоеПоле: Строка
пер ЧисловоеПоле: Число = 5
;
Использование хранимой структуры в табличной части
Хранимую структуру можно использовать в табличной части элемента проекта. Например, справочник Заказы вместе с каждым элементом (заказом) может хранить состав заказа: товар, его количество и цену. В одном заказе может быть три товара, в другом — два, а в третьем — четыре товара.
Справочник Заказы имеет реквизит-коллекцию Состав, элементами которого являются экземпляры хранимой структуры СтрокаТаблицы.
Описание хранимой структуры СтрокаТаблицы.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))
Заказ.Записать()