Схема компоновки данных представляет собой большой конструктор, состоящий из наборов данных, вычисляемых полей, описания итоговых полей (ресурсов), макетов, вариантов настроек и т.д. Схему компоновки достаточно удобно создавать в конфигураторе при помощи конструктора схемы компоновки.
Но на практике часто встречаются задачи, когда схему компоновки нужно программно создать с нуля или доработать существующую схему при помощи кода на встроенном языке, настроить вариант отчета – добавить отбор, установить условное оформление, добавить группировку и т.д. Такие задачи решаются на внедрениях при адаптации типовых конфигураций фирмы “1С” под требования конкретного заказчика.
В курсе Профессиональная разработка отчетов в 1С 8.3 на Системе Компоновки Данных (СКД) подробно рассматривается программная работа со схемой компоновки данных.
Задача действительно очень актуальная, участники Мастер-группы по СКД задают много вопросов на эту тему 🙂
Также традиционно много вопросов возникает при программной работе с пользовательскими настройками отчетов:
- Почему отличаются значения параметра в настройках компоновщика и в пользовательских настройках? Которое из этих значений используется для формирования отчета?
- Как связываются между собой настройки компоновщика и пользовательские настройки?
- Как установить значение отбора или параметра, если они вынесены в пользовательские настройки?
- И многие другие…
Поэтому мы опубликовали серию видеоуроков, в которых рассказывается, как работать со схемой компоновки программно.
Общая длительность всех видеоуроков – 1 час 5 минут.
Для того, чтобы Вам было проще ориентироваться в материале, мы указали тайминг наиболее важных моментов в видео.
Полезного просмотра 🙂
Видео 1 – Программное создание варианта отчета
00:37 – В каком обработчике можно расположить код для создания настроек компоновки 01:00 – Где в Синтакс-помощнике можно “подсмотреть” свойства, которые потребуются при написании кода 01:58 – Как настроить группировки отчета 02:28 – Какое свойство позволяет создавать вложенные группировки 03:11 – Как включить/выключить отдельные элементы настроек.
Видео 2 – Программное создание группировки
Видео 3 – Программное создание вложенной группировки
Видео 4 – Программное добавление отбора
00:18 – Где в Синтакс-помощнике найти типы данных, необходимые для создания отборов 00:55 – Какие свойства объекта типа ЭлементОтбораКомпоновкиДанных нужно использовать для создания отбора 01:20 – Как создать отбор при помощи программного кода.
Видео 5 – Программная установка сортировки
00:25– Где в Синтакс-помощнике найти типы данных, необходимые для включения сортировки 00:50 – Какие свойства объекта типа ЭлементПорядкаКомпоновкиДанных нужно использовать для включения сортировки 01:00 – Как установить сортировку при помощи программного кода.
Видео 6 – Программное добавление условного оформления
00:25 – Где в Синтакс-помощнике найти типы данных, необходимые для работы с условным оформлением 00:33 – Какие свойства объекта типа ЭлементУсловногоОформленияКомпоновкиДанных нужно использовать 02:08 – Как добавить условное оформление при помощи программного кода 02:31 – Как задать перечень полей, к которым будет применяться условное оформление 03:34 – Как отобрать оформляемые данные 04:15 – Как при помощи программного кода описать применяемое оформление.
Видео 7 – Программная работа с пользовательскими настройками
01:01 – Как программно установить значение параметра 02:00 – Почему значения параметров, выводимые на форму отчета, не совпадают со значениями в самом отчете 04:25 – Что делает метод ПолучитьНастройки 05:10 – Как нужно работать с пользовательскими настройками 06:17 – Для чего нужно свойство ИдентификаторПользовательскойНастройки 07:10 – Где в типовой конфигурации УТ 11 можно найти пример работы с пользовательскими настройками.
Видео 8 – Особенности использования метода ПолучитьНастройки
00:58 – Почему отличаются значения параметра в настройках компоновщика и в пользовательских настройках 01:23 – Как связываются между собой настройки компоновщика и пользовательские настройки 03:06 – Как работает метод ПолучитьНастройки и значение какого типа он возвращает
Видео 9 – Программное создание отборов в пользовательских настройках
00:34 – Чем отличается отбор в настройках компоновщика и отбор в пользовательских настройках 02:34 – Как используется свойство ИдентификаторПользовательскойНастройки 03:08 – Какой алгоритм должен использоваться для установки значения отбора в пользовательских настройках 03:42 – Как реализовать процедуру для установки значения отбора в пользовательских настройках.
Видео 10 – Программное создание схемы компоновки
Хотите научиться грамотно создавать отчеты на СКД и дорабатывать отчеты в типовых конфигурациях?
Чтобы подробнее изучить возможности системы компоновки данных и уверенно применять механизм на практике, рекомендуем пройти курс Профессиональная разработка отчетов в 1С 8.3 на Системе Компоновки Данных (СКД)
В данной статье мы рассмотрим какие виды настроек 1C СКД существуют. Разберем как создаются элементы пользовательских настроек на форме и узнаем где хранятся настройки отчетов в СКД.
Виды настроек
У каждого отчета созданного с помощью СКД есть реквизит КомпоновщикНастроек, который в свою очередь содержит различные варианты настроек, показанные на картинке:
- Настройки – это настройки варианта отчета. Настройки, заданные по умолчанию или в конфигураторе или в режиме предприятия (при создании / изменении варианта отчета в режиме предприятия). Управлять данными настройками пользователь может через работу с вариантом отчета (Изменить вариант, Добавить вариант)
- ПользовательскиеНастройки – это список настроек из первого пункта, которыми может управлять пользователь. Особенность пользовательских настроек заключается в том, что они не изменяют вариант отчета, а применяются дополнительно («сверху») к ним. Любая пользовательская настройка связана с настройкой в варианте отчета, к которой она применяется. Эта связь с настройкой варианта отчета осуществляется через поле ИдентификаторПользовательскойНастройки. Управлять данными настройками пользователь может из формы отчета – элементы быстрых настроек доступны в форме самого отчета, элементы обычных настроек доступны через кнопку «Настройки» в отдельной форме настроек
- ФиксированныеНастройки – дополнительные настройки, которые применяются дополнительно к настройками из пункта 1. Управлять этими настройками пользователь не может. Обычно (а может и всегда) это настройки, которые задаются программно – например, при передаче отбора (или других настроек) при запуске отчета с помощью метода ОткрытьФорму.
Пользовательские настройки на форме
Когда вы создаете новый отчет на СКД и добавляете в нем форму, то система 1C спрашивает нужно ли подключить СКД в создаваемую форму:
Если этот флаг установлен, то у формы создаются 2 реквизита, создается группа для пользовательских настроек, командная панель :
Результат отчета помещается на форму, в свойствах формы настраивается связь с добавленными реквизитами и элементами:
При создании формы настроек, которая вызывается из основной формы отчета по кнопке «Настройки» добавляется только элемент – группа пользовательских настроек и также производится настройка соответствующего свойства формы.
Далее в этой группе система будет создавать (по умолчанию в 2 колонки) элементы пользовательских настроек:
Вы можете отключить стандартное создание пользовательских настроек, очистив свойство, отвечающее за группу пользовательских настроек. И затем с помощью метода «СоздатьЭлементыФормыПользовательскихНастроек» создать эти элементы в другой группе. Функция позволяет создать элементы настроек в произвольном количестве колонок. Пример работы можно посмотреть в отчете «ОСВ по счету».
Также вы можете производить любые (почти) настройки элементов пользовательских настроек. Например, установить обработчик изменения, установить доступность и т.п.. Пример можно посмотреть в отчете «Карточка счета» из домашнего задания.
Хранение настроек
Если в вашей конфигурации не используются какие-то специальные инструменты для хранения вариантов отчетов и пользовательских настроек, то такие настройки расположены в хранилище настроек.
По умолчанию настройка вариантов отчетов и пользовательские настройки отчетов хранятся в хранилище системных настроек. И доступны они соответственно через объекты глобального контекста ХранилищеВариантовОтчетов и ХранилищеПользовательскихНастроекОтчетов. В конфигурации можно настроить размещение настроек в отдельных хранилищах:
Эти же хранилища можно настроить отдельно для каждого отчета:
С помощью этой обработки можно посмотреть как хранятся настройки:
Хранение настроек для отчетов на СКД может быть также организовано с помощью специальных средств. В типовых конфигурациях 1C для этого применяется подсистема библиотеки стандартных подсистемы (БСП) «Варианты отчетов».
СКД
Очень часто встречаю что программистов заводит в тупик такой момент как программная установка параметров системы компоновки данных (далее СКД). Сделать это можно через ‘КомпоновщикНастроек’ нашей СКД.
Допустим у нас есть отчет ‘ЗадачиКлиента’ и в СКД в наборе данных есть параметр ‘&Владелец’. Сразу уточню что это отчет реализован через 1C Enterprise Development Tools, но решения здесь будут точно такие же, как если бы мы это делали через классический конфигуратор:
Если мы хотим этот параметр устанавливать программно, то важно убедиться что он доступен, иначе мы получим ошибку что параметр не найден (флаг стоять не должен):
И так что бы программно установить параметру СКД определенное значение, мы можем использовать процедуру модуля отчета ‘ПриКомпоновкеРезультата’ и компоновщиком настроек:
Практически аналогично поступаем и в модуле формы отчета, но там для того что бы получить компоновщик настроек, нам придется обратится к основному реквизиту формы ‘Отчет’:
Программный код будет почти аналогичным предыдущему за счет пары нюансов:
Так же можно использовать и другую конструкцию при установке параметров СКД:
И напоследок. Прежде чем писать какой-то свой код, убедитесь, что до вас его уже не написали:
Всем удачи и простой разработки отчетов на СКД!
2+Используемые источники:
- https://xn—-1-bedvffifm4g.xn--p1ai/news/2019-12-30-software-work-with-data-layout-scheme/
- https://wiki.programstore.ru/nastrojki-v-skd/
- https://craft1c.ru/skd-ustanovit-parametry-programmno/