Андрей Смирнов
Время чтения: ~7 мин.
Просмотров: 43

Нюансы программной работы со схемой компоновки данных

Схема компоновки данных представляет собой большой конструктор, состоящий из наборов данных, вычисляемых полей, описания итоговых полей (ресурсов), макетов, вариантов настроек и т.д. Схему компоновки достаточно удобно создавать в конфигураторе при помощи конструктора схемы компоновки.

Но на практике часто встречаются задачи, когда схему компоновки нужно программно создать с нуля или доработать существующую схему при помощи кода на встроенном языке, настроить вариант отчета – добавить отбор, установить условное оформление, добавить группировку и т.д. Такие задачи решаются на внедрениях при адаптации типовых конфигураций фирмы “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 СКД существуют. Разберем как создаются элементы пользовательских настроек на форме и узнаем где хранятся настройки отчетов в СКД.

Виды настроек

У каждого отчета созданного с помощью СКД есть реквизит КомпоновщикНастроек, который в свою очередь содержит различные варианты настроек, показанные на картинке:

061419_1200_1.png

  • Настройки – это настройки варианта отчета. Настройки, заданные по умолчанию или в конфигураторе или в режиме предприятия (при создании / изменении варианта отчета в режиме предприятия). Управлять данными настройками пользователь может через работу с вариантом отчета (Изменить вариант, Добавить вариант)
  • ПользовательскиеНастройки – это список настроек из первого пункта, которыми может управлять пользователь. Особенность пользовательских настроек заключается в том, что они не изменяют вариант отчета, а применяются дополнительно («сверху») к ним. Любая пользовательская настройка связана с настройкой в варианте отчета, к которой она применяется. Эта связь с настройкой варианта отчета осуществляется через поле ИдентификаторПользовательскойНастройки. Управлять данными настройками пользователь может из формы отчета – элементы быстрых настроек доступны в форме самого отчета, элементы обычных настроек доступны через кнопку «Настройки» в отдельной форме настроек
  • ФиксированныеНастройки – дополнительные настройки, которые применяются дополнительно к настройками из пункта 1. Управлять этими настройками пользователь не может. Обычно (а может и всегда) это настройки, которые задаются программно – например, при передаче отбора (или других настроек) при запуске отчета с помощью метода ОткрытьФорму.

Пользовательские настройки на форме

Когда вы создаете новый отчет на СКД и добавляете в нем форму, то система 1C спрашивает нужно ли подключить СКД в создаваемую форму:

061419_1200_2.png

Если этот флаг установлен, то у формы создаются 2 реквизита, создается группа для пользовательских настроек, командная панель :

061419_1200_3.png

Результат отчета помещается на форму, в свойствах формы настраивается связь с добавленными реквизитами и элементами:

061419_1200_4.png

При создании формы настроек, которая вызывается из основной формы отчета по кнопке «Настройки» добавляется только элемент – группа пользовательских настроек и также производится настройка соответствующего свойства формы.

Далее в этой группе система будет создавать (по умолчанию в 2 колонки) элементы пользовательских настроек:

Вы можете отключить стандартное создание пользовательских настроек, очистив свойство, отвечающее за группу пользовательских настроек. И затем с помощью метода «СоздатьЭлементыФормыПользовательскихНастроек» создать эти элементы в другой группе. Функция позволяет создать элементы настроек в произвольном количестве колонок. Пример работы можно посмотреть в отчете «ОСВ по счету».

Также вы можете производить любые (почти) настройки элементов пользовательских настроек. Например, установить обработчик изменения, установить доступность и т.п.. Пример можно посмотреть в отчете «Карточка счета» из домашнего задания.

Хранение настроек

Если в вашей конфигурации не используются какие-то специальные инструменты для хранения вариантов отчетов и пользовательских настроек, то такие настройки расположены в хранилище настроек.

По умолчанию настройка вариантов отчетов и пользовательские настройки отчетов хранятся в хранилище системных настроек. И доступны они соответственно через объекты глобального контекста ХранилищеВариантовОтчетов и ХранилищеПользовательскихНастроекОтчетов. В конфигурации можно настроить размещение настроек в отдельных хранилищах:

061419_1200_8.png

Эти же хранилища можно настроить отдельно для каждого отчета:

061419_1200_9.png

С помощью этой обработки можно посмотреть как хранятся настройки:

Хранение настроек для отчетов на СКД может быть также организовано с помощью специальных средств. В типовых конфигурациях 1C для этого применяется подсистема библиотеки стандартных подсистемы (БСП) «Варианты отчетов».

СКД

Очень часто встречаю что программистов заводит в тупик такой момент как программная установка параметров системы компоновки данных (далее СКД). Сделать это можно через ‘КомпоновщикНастроек’ нашей СКД.

Допустим у нас есть отчет ‘ЗадачиКлиента’ и в СКД в наборе данных есть параметр ‘&Владелец’. Сразу уточню что это отчет реализован через 1C Enterprise Development Tools, но решения здесь будут точно такие же, как если бы мы это делали через классический конфигуратор:

izobrazhenie-1.png
Набора данных СКД.

Если мы хотим этот параметр устанавливать программно, то важно убедиться что он доступен, иначе мы получим ошибку что параметр не найден (флаг стоять не должен):

izobrazhenie-2.png
СКД. Ограничение доступности.

И так что бы программно установить параметру СКД определенное значение, мы можем использовать процедуру модуля отчета ‘ПриКомпоновкеРезультата’ и компоновщиком настроек:

Практически аналогично поступаем и в модуле формы отчета, но там для того что бы получить компоновщик настроек, нам придется обратится к основному реквизиту формы ‘Отчет’:

izobrazhenie-3.png
Реквизит формы отчета на СКД ‘Отчет’.

Программный код будет почти аналогичным предыдущему за счет пары нюансов:

Так же можно использовать и другую конструкцию при установке параметров СКД:

И напоследок. Прежде чем писать какой-то свой код, убедитесь, что до вас его уже не написали:

izobrazhenie-5.png
УстановитьЗначениеПараметраКомпоновщика.

Всем удачи и простой разработки отчетов на СКД!

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/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации