Каталог решений - Разбираемся с настройками компоновки данных

Разбираемся с настройками компоновки данных

Разбираемся с настройками компоновки данных

В наличии

Краткая шпаргалка по программной работе с настройками СКД

Категория:

Описание

Заметил, что все чаще приходится программно работать с настройками компоновки. Чтобы лучше понять, из чего они состоят, собрал основные элементы в виде таблицы. Заодно сделал пару картинок, которые показывают соответствие коллекций в конструкторе СКД и объектной модели, так как иногда имя коллекции отличается от заголовка вкладки, на которой располагаются ее элементы.

Соответствие коллекций и вкладок

  

 

 

Состав вложенных коллекций

В таблицах приведены только часто используемые элементы. Остальные можно увидеть в синтаксис помощнике или отладчике. Другими словами, отброшены незначительные детали, чтобы проще было сосредоточить внимание на главных. 

Это позволяет охватить все коллекции одним взглядом, чтобы увидеть основные различия и закономерности. Что помогает лучше понять и запомнить взаимосвязи внутренних объектов.

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

 ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
 ЭлементОтбора.Использование = Истина;
 ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Склад");
 ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
 ЭлементОтбора.ПравоеЗначение = Справочник.Склады.ПустаяСсылка();

 

Некоторые особенности и закономерности

— Если вложенная коллекция может содержать элементы нескольких типов, то при программном добавлении элемента необходимо указывать тип. 

ВыбранноеПоле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));

— Если все элементы в коллекции имеют одинаковый тип, то при добавлении элемента в коллекцию тип указывать не нужно

ЭлементУсловногоОформления = Настройки.УсловноеОформление.Элементы.Добавить();

— При добавлении группировки обязательно заполнять две коллекции: ПоляГруппировки и Выбор. В первую коллекцию нужно добавлять поля, по которым нужно группировать, а во вторую — поля, которые нужно выводить в отчет. При этом в Выбор могут попадать не только группировки, но и ресурсы. И еще, не все поля, которые есть в группировке обязательно добавлять в выбранные поля. Например, можно добавить в группировку поле для сортировки, но отключить его в выбранных полях, чтобы оно не отображалось в отчете. Но в большинстве случаев достаточно добавить группировку, как это делает конструктор, например, так:

Группировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));

ПолеГруппировки = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировки.Использование = Истина;
ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Склад");

ВыбранноеПоле = Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Использование = Истина;

 

— Тип ЗначениеПараметраНастроекКомпоновкиДанных имеет несколько нелогичную структуру: внутри значения параметра располагается параметр. Хотя логичнее было бы, чтобы в параметре располагалось значение

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

 ЗначениеПараметра = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор"));
 ЗначениеПараметра.Использование = Истина;
 ЗначениеПараметра.Значение = ТипВыводаТекстаКомпоновкиДанных.НеВыводить;

 — Некоторые значения параметров могут содержать вложенную коллекцию параметров

 — В коллекции ПараметрыВывода (вкладка "Другие настройки") имена параметорв иногда отличаются от синонимов в конструкторе СКД, что может доставлять неудобства при разработке

Примеры программного создания элементов я повторять не буду, их можно посмотреть тут
 

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

has been added to your cart:
Оформление заказа