Меню

Структуры настроек скд 1с



СКД: Как программно разобрать текущую настройку отчета?

Хочу ПРИ а м.б. правильнее ПЕРЕД компоновкой результата программно анализировать текущие настройки отчета, как-то: список группировок по строкам и колонкам,выводится ли при текущих настройках детальные записи.

Камрады, подскажите куда рыть?

Настройки (Settings)
Использование:

Только чтение.
Описание:

Тип: НастройкиКомпоновкиДанных.
Содержит настройки компоновки данных.

а кто сказал про Досутпные?

Структура (Structure)
Использование:

Только чтение.
Описание:

Тип: КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных.
Коллекция элементов структуры.

(5) у меня написано в СП:
КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных (DataCompositionSettingStructureItemCollection)

ГруппировкаКомпоновкиДанных, ТаблицаКомпоновкиДанных, ДиаграммаКомпоновкиДанных, НастройкиВложенногоОбъектаКомпоновкиДанных
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются группировки.
Возможно обращение к группировке посредством оператора [.

(5) программно.
КомпоновщикНастрое.Настройки.Структура — вот здесь она и лежит. Она представляет собой коллекцию, некое дерево, возможен обход циклом в сочетании с рекурсией
.
КонецЦикла

(15) Спасибо, круто! что-то начинаю понимать в этом зверьке

КомпоновщикНастроек.Настройки.Структура[0].Строки[0]
содержит верхний уровень групировки строк
КомпоновщикНастроек.Настройки.Структура[0].Строки[0].Структура[0]
второй сверху уровень
КомпоновщикНастроек.Настройки.Структура[0].Строки[0].Структура[0].Структура[0]
третий уровень и т.д.

но для моего ЧАСТНОГО — достаточно.
Спасибо!

Остался последний вопрос: как оценить глубину рекурсии?
Как понять: это _самый_ нижний уровень группировки и ЧТО он содежит: детальные данные или группу ТОЛЬКО?

В продолжение темы, раз уж ты, GANR, хорошо знаешь СКД 😉
То, что порешали — это часть задачи
В принципе, нужно на основе анализа пользовательских настроек отчета подменить СКД и вывести _немного_ другой отчет.
Думаешь, это решаемо за конечное время?
Что ещё в свойствах отчетов / СКД посмотреть на эту тему?

> Как оценить глубину рекурсии?
Не вижу необходимости. Если коллекция КомпоновщикНастроек.Структура[0].Структура[0]. Структура[0] не содержит элементов, то цикл не сделает ни одного повтора. Как следствие, рекурсия не пойдет вглубь и, в конце-концов, вернется.

> Что ещё в свойствах отчетов / СКД посмотреть на эту тему?

В 1С:Предприятие в настройках варианта отчета видно, что пользователь может настраивать. В отладчике это отображается одноименно. Вот например:

1. Отборы — также возможна рекурсия, поскольку СКД поддерживает группы условий.
2. Условное оформление, пользовательские поля — также могут содержать п.1 => может понадобится рекурсия.
3. Поля могут быть свернуты в группы, опять рекурсия.

Слова «рекурсия» бояться не стоит. Не припоминаю, чтобы с СКД на моем веку был связан рекурсивный алгоритм, требующий от меня сильного навыка работы со спуском/возвратом.

Источник

Структуры настроек скд 1с

Войдите как ученик, чтобы получить доступ к материалам школы

Система компоновки данных 1С 8.3 для начинающих: первый отчёт на СКД

Автор уроков и преподаватель школы: Владимир Милькин

Если вы не читали введение к этому модулю — пожалуйста, прочтите его: ссылка.

Готовим рабочее место

Для выполнения уроков вам понадобится 1С 8.3 (не ниже 8.3.13.1644) .

Если у вас уже есть установленная 1С версии 8.3 — используйте её. Если нет — скачайте и установите учебную версию, которую фирма 1С выпускает специально для образовательных целей: ссылка на инструкцию по скачиванию и установке 1С.

На вашем рабочем столе должен появиться вот такой ярлык:

Для всех уроков из этого цикла мы будем использовать подготовленную мной базу данных «Гастроном». Она полностью совпадает с базой, которую мы использовали в четвёртом и пятом модулях школы при изучении запросов. Поэтому я рассчитываю, что вы знакомы с её справочниками и документами.

Если вы её удалили — скачайте заново по следующей ссылке, распакуйте и подключите в список баз.

Наконец, рабочее место настроено и сейчас мы вместе создадим наш первый отчёт при помощи системы компоновки данных. Он будет очень простым, чтобы продемонстрировать общие возможности системы компоновки данных (сокращенно СКД).

Ставим цель

Цель этого урока — создать отчёт, который в режиме пользователя выводит список клиентов со следующими полями:

Отчёт должен быть внешним. Это значит, что он будет создан и настроен в конфигураторе, а затем сохранен в виде отдельного (внешнего) файла на компьютере.

Чтобы сформировать такой отчет в 1С пользователю нужно будет запустить базу в режиме пользователя, открыть этот файл и нажать кнопку «Сформировать».

Поехали!

Создаём отчёт

Запускаем конфигуратор для базы «Гастроном»:

Из главного меню выбираем пункт «Файл»->»Новый. «:

Выбираем «Внешний отчет»:

Создаём схему компоновки данных внутри отчёта

Открылось окно создания внешнего отчёта. В качестве имени вводим: «Урок1«, а затем жмём кнопку «Открыть схему компоновки данных«:

Запустился конструктор создания схемы. Соглашаемся с именем по умолчанию «ОсновнаяСхемаКомпоновкиДанных» и жмём кнопку «Готово«:

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

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

Сейчас мы находимся на закладке «Наборы данных«. На ней и останемся.

Пишем запрос через конструктор

Система компоновки данных (сокращенно СКД) требует от нас данные, которые она будет выводить пользователю.

Самый простой способ — написать запрос к базе. В предыдущих модулях школы мы научились писать и понимать запросы — поэтому я рассчитываю, что вы обладаете соответствующими навыками.

Нажимаем на зелёный плюсик и в раскрывшемся списке выбираем пункт «Добавить набор данных — запрос«:

Добавился набор данных с именем «НаборДанных1«, но мы видим, что поле «Запрос» в нижней части окна пока пустое:

Наша задача написать в это поле текст запроса. Вы ещё не забыли как это делается?

В этом запросе мы выбрали три поля («Наименование«, «Пол» и «ЛюбимыйЦвет«) из таблицы «Справочник.Клиенты«.

Но не торопитесь писать этот текст в поле «Запрос» вручную.

Сейчас мы создадим тот же самый запрос визуально, только при помощи мышки. Этот способ называется «Конструктор запроса«.

Чтобы вызвать этот конструктор нажмём кнопку «Конструктор запроса. » в верхней правой части поля «Запрос»:

В открывшемся окне перетащим таблицу «Клиенты» из первого столбца во второй, чтобы указать, что именно из этой таблицы мы будем запрашивать данные:

Получилось вот так:

Далее раскроем таблицу «Клиенты» во втором столбце по знаку «Плюс«, чтобы увидеть все её поля и перетащим поле «Наименование» из второго столбца в третий, чтобы указать, что из этой таблицы нам нужно запрашивать поле «Наименование»:

Получилось вот так:

Поступим точно так же с полями «Пол» и «ЛюбимыйЦвет«. Результат будет таким:

Нажмём кнопку «ОК», чтобы выйти из конструктора запроса и увидим, что текст запроса автоматически добавился в поле «Запрос».

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

Теперь, когда мы составили запрос, СКД знает каким образом получать данные для отчёта.

Настраиваем представление данных

Осталось как-то визуализировать эти данные для пользователя в виде печатной формы. И вот тут СКД может творить чудеса!

Чтобы сотворить такое чудо перейдём на вкладку «Настройки» и нажмём кнопку конструктора настроек (волшебная палочка):

В открывшемся окне укажем тип отчёта «Список» и нажмём «Далее«:

В следующем окне выберем (путём перетаскивания) поля, которые нужно будет отобразить в списке (перетащим все из доступных нам: «ЛюбимыйЦвет«, «Наименование» и «Пол«):

Получим вот такой результат и нажмём кнопку «ОК«:

Конструктор настроек закрылся и появился пункт «Детальные записи«:

Отчёт готов, давайте же его проверим. Для этого вначале сохраним отчет в виде внешнего файла.

Сохраняем отчёт в виде файла

Откроем пункт главного меню «Файл«->»Сохранить«:

Я сохраню его на рабочий стол под именем «Урок1«:

Проверяем отчёт в режиме пользователя

Наконец, закроем конфигуратор и зайдём в нашу базу в режиме пользователя:

Имя пользователя «Администратор», пароля нет:

Через меню выберем пункт «Файл«->»Открыть. «:

И укажем файл отчёта (я сохранял его на рабочий стол под именем «Урок1.erf»:

Открылась форма отчёта, нажмём кнопку «Сформировать«:

Готово! Вот она наша печатная форма со списком клиентов, их любимым цветом и полом:

Печатную форму можно легко распечатать. Для этого достаточно выбрать в меню пункт «Файл«->»Печать. «:

Вот так просто, без программирования нам удалось создать полноценный отчёт, который пользователи смогут открывать в своих базах, формировать и распечатывать.

То ли ещё будет, наберитесь терпения

Читайте также:  Установить настройки принтера из 1с

Войдите на сайт как ученик

Авторизуйтесь, чтобы получить доступ ко всем материалам школы

Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.

На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .

Войдите как ученик, чтобы получить доступ к материалам школы

№1: первый отчёт на СКД

№4: меняем оформление

№5: делаем отбор и сортировку на уровне СКД

Источник

Система компоновки данных

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

Устройство системы компоновки данных

  • создание отчета без программирования;
  • использование автоматически генерируемых форм просмотра и настройки отчета;
  • разбиение исполнения отчета на этапы;
  • исполнение отдельных этапов построения отчета на различных компьютерах;
  • независимое использование отдельных частей системы компоновки данных;
  • программное управление процессом выполнения отчета.

Основные элементы системы компоновки данных представлены на следующей схеме:

Схема компоновки данных

  • текст запроса с инструкциями системы компоновки данных;
  • описание нескольких наборов данных;
  • подробное описание доступных полей;
  • описание связей между несколькими наборами данных;
  • описание параметров получения данных;
  • описание макетов полей и группировок;
  • и др.

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

  • отбор;
  • упорядочивание;
  • условное оформление;
  • структуру отчета (составные части будущего отчета);
  • параметры получения данных;
  • параметры вывода данных;
  • и др.

Макет компоновки данных

Макет компоновки данных представляет собой уже готовое описание того, как должен быть сформирован отчет. В нем соединяется схема компоновки и настройки компоновки. Фактически макет компоновки данных представляет собой результат применения конкретных настроек к схеме компоновки и является готовым заданием процессору компоновки на формирование отчета нужной структуры с учетом конкретных настроек.

Элемент результата компоновки данных

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

Работа с системой компоновки данных в конфигурации

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

У объекта конфигурации Отчет реализовано свойство «Основная схема компоновки данных»:

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

После нажатия кнопки «Готово» будет открыт конструктор схемы компоновки данных.

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

Также конструктор схемы компоновки данных предоставляет возможность описать настройки компоновки данных, которые будут использоваться по умолчанию (в том случае, если пользователь не задаст собственные настройки). Настройки компоновки данных могут быть созданы с помощью специального конструктора настроек компоновки данных, или вручную:

После выполнения этих действий отчет готов. В режиме 1С:Предприятие система автоматически, на основании схемы компоновки данных, содержащейся в отчете, может создать форму отчета и форму настроек отчета.

Таким образом пользователь просто запускает отчет и получает результат в соответствии с теми настройками, которые описал разработчик:

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

Консоль системы компоновки данных

Внешний отчет «Консоль системы компоновки данных» предназначен для специалистов, желающих подробнее узнать об устройстве системы компоновки данных. Консоль позволяет выполнять отдельные шаги компоновки данных с просмотром промежуточных результатов в виде XML. Подробнее…

Источник

Разработка отчетов при помощи универсального механизма «Шаблон типового отчета»


Зачем пользоваться механизмом типовых отчетов

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

Настройка варианта отчета

Вариант отчета – это настройка типового отчета, которая содержит настройки СКД и описание элементов управления, которыми пользователь будет настраивать СКД. Настройка варианта отчета начинается с настройки структуры отчета.

Изменение настроек схемы компоновки данных

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

Форма редактирования структуры отчета может работать в двух режимах:

  • Обычный режим настройки
  • Расширенный режим настройки

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


    Настройка СКД не должна содержать сложных элементов структуры. Ниже приведены примеры сложных структур отчета

Параллельные группировки, таблицы или диаграммы

Таблица или диаграмма, которую группируют

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

    Обычный режим настройки отчета структуры отчета

    Обычный режим редактирования настройки отчета предоставляет возможность редактировать три наиболее востребованные структуры:

    На рисунке ниже приведена структура отчета, соответствующая настройке «Таблица».

    В настройке структуры отчета изменение состава группировок производится путем редактирования строк табличного поля «Группировки строк». Порядок использования группировок определяется очередностью строк в табличном поле.

    На рисунке ниже приведена структура отчета, соответствующая настройке «Кросс-таблица».

    В настройке структуры отчета изменение состава группировок производится путем редактирования строк табличных полей «Группировки строк» и «Группировки колонок». Порядок использования группировок определяется очередностью строк в табличном поле.

    На рисунке ниже приведена структура отчета, соответствующая настройке «Диаграмма».

    В настройке структуры отчета изменение состава группировок производится путем редактирования строк табличных полей «Серии» и «Точки». Порядок использования группировок определяется очередностью строк в табличном поле.

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

    Расширенный режим настройки отчета структуры отчета

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

    Изменение настроек панели пользователя

    Помимо настроек самой СКД в варианте отчета указываются настройки, которые может менять пользователь. Для каждого элемента настройки пользователя задается элемент управления панели, при помощи которого пользователь сможет управлять отборами, группировками и сортировкой отчета. Пользовательские настройки включают в себя следующие элементы:

    • Стандартные страницы
    • Быстрые отборы
    • Параметры
    • Настройку полей расшифровки

    Настройка видимости стандартных страниц

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

    Период

    На странице Период расположен элемент настройки периода или даты формирования отчета:

    Большинство отчетов требуют, чтобы пользователь указал период или дату отчета. В большинстве случаев пользователь указывает один и тот же период или дату. К примеру, прошлый месяц или текущую дату. Чтобы пользователь не повторял операцию каждый раз при открытии отчета, элемент управления периодом позволяет задать относительные период отчета: Этот месяц, этот год, предыдущий год, предыдущий месяц и т.п.

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

    Параметры

    На странице Параметры расположено табличное поле, позволяющее задать все параметры отчета

    Отбор

    На странице Отбор расположено табличное поле, позволяющее задать отбор любой сложности

    Сортировка

    На странице Сортировка табличное поле настройки сортировки данных в отчете позволяет включить/отключить ту или иную заранее подготовленную в настройке СКД сортировку. Таким образом, при создании настройки СКД в таблицу сортировок требуется добавить возможные сортировки варианта отчета.

    Показатели

    На странице Показатели элемент управления показателями отчета позволяет включать или выключать ресурсы отчета.

    Элемент управления показателями позволяет включать только поля СКД, которые являются ресурсами.

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

    Настройка быстрых отборов

    «Быстрые» отборы — это набор элементов управления, при помощи которых пользователь может настраивать отборы СКД. Добавляются элементы управления быстрыми отборами на закладке «Быстрые отборы».

    Каждый элемент управления позволяет задать определенные виды сравнения отборов.

    Виды быстрых отборов:

    «Список» и «Длинный список»

    Данный элемент управления позволяет задавать отбор списком, а также управлять используемым при отборе видом сравнения: «В списке»/»Не в списке». Длинный список отличается от обычного только своим размером, он применяется, когда значение отбора содержит большой список значений, кроме того, позволяет пользователю сохранять подобранные списки элементов.

    Чтобы добавить элемент управления отбором на панель пользователя, нужно:

    • Добавить строку в табличную часть «Быстрые отборы» формы редактирования панели пользователя
    • Выбрать поле отбора
    • Указать вид отбора «Список» или «Длинный список»
    • Выбрать вид сравнения
    • Если требуется отбор, исключающий список заданных значений, отметить флаг в колонке «Вариант исключить»
    • Указать расположение отбора «Новая страница» (описание возможных расположений на панели пользователя)
    • Задать представление отбора – название заголовка страницы с отбором
    • Если список, по которому производится отбор, будет постоянно повторяться в отчете или будет достаточно длинным, то пользователю захочется сохранить список значения и восстановить его при следующей работе с отчетом или при работе с другим вариантом отчета. Для этого можно включить функцию сохранения списка отчета в колонке «Сохранять список»

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

    Чтобы добавить элемент управления отбором на панель пользователя, нужно:

    • Добавить строку в табличную часть «Быстрые отборы» формы редактирования панели пользователя
    • Выбрать поле, по которому будет производиться отбор
    • Указать вид отбора «Флажок»
    • Выбрать вид сравнения отбора
    • Указать расположение отбора «Дополнительная страница» (описание возможных расположений на панели пользователя)
    • Задать представление отбора — текст флажка, который будет показан на панели пользователя

    «Флажок + Значение» и «Значение»

    Элемент управления «Флажок + Значение» позволяет устанавливать значение отбора типа справочник, документ, перечисление и т.п., но не список значений. Элемент управления «Флажок» и «Флажок + значение» отличаются только возможностью отключать использование отбора в отчете. В элементе управления «Флажок + значение» пользователь может сам отключить использование отбора при помощи флага, что позволяет не изменять значение отбора и при этом включать и выключать отбор. В элементе управления «Значение» использование отбора отключается если значение в поле ввода отбора не задано. Таким образом, элемент управления «Флажок + значение» лучше использовать, когда пользователю приходится устанавливать значение отбора из большого списка значений, а элемент управления «Значение» лучше использовать, когда список значений отбора не большой.

    Чтобы добавить элемент управления отбором на панель пользователя, нужно:

    • Добавить строку в табличную часть «Быстрые отборы» формы редактирования панели пользователя
    • Выбрать поле, по которому будет производиться отбор
    • Указать вид отбора «Флажок + Значение» или «Значение»
    • Выбрать вид сравнения отбора
    • Указать расположение отбора «Новая страница» (описание возможных расположений на панели пользователя)
    • Задать представление отбора — текст флажка, который будет показан на панели пользователя

    Настройка параметров отчета

    Для некоторых отчетов требуется, чтобы пользователь мог изменить значения параметров отчета. Чтобы добавить параметр в настройку пользователя, требуется на закладке параметры указать панель, на которую требуется выводить параметр, и способ его отображения. От способа отображения и панели параметра будет зависеть элемент управления параметром.

    Вид отображения «Поле ввода», расположение «Горизонтальная панель»

    Вид отображения «Поле ввода», расположение «Правая панель»

    Вид отображения «Список значений», расположение «Горизонтальная панель»

    В данном случае элемент управления похож на элемент управления для вида отображения «Поле ввода», но в нем задается список значений.

    Вид отображения «Список значений», расположение «Правая панель»

    Вид отображения «Переключатель», расположение «Правая панель»

    Для использования вида отображения «Переключатель» есть ряд ограничений:

    • Для параметра необходимо задать список доступных значений;
    • Вид отображения «Переключатель» используется только для правой панели.

    Расшифровка отчета

    Расшифровка отчета по умолчанию позволяет использовать в качестве расшифровки все доступные для группировки поля СКД. Если возникает необходимость отключить одно из таких полей для конкретного варианта отчета, это можно сделать в настройке пользователя. Для этого требуется на закладке «Расшифровки» отключить соответствующее поле.

    Как создать отчет на базе типового механизма

    Процесс разработки отчета на базе типового механизма делится на три этапа:

    1. Разработка СКД
    2. Подключение СКД к типовому отчету
    3. Разработка вариантов отчета

    Разработка СКД стоит на первом месте в разработке отчета, именно от алгоритма СКД будет зависеть, какие отчеты сможет получать пользователь. Но в данной статье мы не будем рассматривать вопросы, связанные с разработкой СКД (эти вопросы подробно рассматриваются в книге Е. Ю. Хрусталевой «1С:Библиотека разработчика. Разработка сложных отчетов в «1С:Предприятии 8″. Система компоновки данных»), оговоримся лишь, что СКД для типового отчета может быть любой.

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

    Для этого необходимо:

    • сохранить разработанную СКД в файл на диске (кнопка в конструкторе СКД «Сохранить схему в файл»)

    • открыть СКД типового отчета и загрузить в него сохраненную в файл СКД (кнопка в конструкторе СКД «Загрузить схему из файла»)

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

    После того как в отчет вставлена СКД, следует создать предопределенные настройки отчета. Для этого нужно:

    • запустить отчет и в режиме 1С:Предприятия настроить варианты отчета;
    • сохранить полученные варианты отчета на диск:

    • добавить полученный файл в структуру метаданных отчета в виде двоичного макета:

    • создать предопределенный элемент справочника «Сохраненные настройки». Имена предопределенных настроек должны совпадать с названиями макетов, в которые загружались файлы.

    Событие «Доработать компоновщик перед выводом». Сложная структура отчета

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

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

    Для того чтобы программно доработать настройку отчета в модуле шаблона типового отчета при формировании отчета вызывается событие ДоработатьКомпоновщикПередВыводом , в котором можно доработать настройку отчета. Помимо изменения настройки отчета данное событие можно использовать для определения периода формирования отчета по умолчанию, когда не заданы параметры периода отчета.

    Как пример использования события разработаем отчет, макет которого приведен в таблице ниже.

    Подразделение Руководители Работники Служащие Прочие рабочие Мужчины Женщины
    Администрация 3 10 3 10
    Производство 50 1 5 44 5
    Склад 5 1 1 5 5

    Особенность отчета заключается в том, что данные о количество работников нужно показать и по категории и по полу работника. Написав запрос и получив нужный набор данных, получаем СКД, в которой есть следующие поля: Категория, Подразделение, Количество. Сложностью настройки данного варианта отчета является вывод значений двух разных полей на одном уровне группировки — см. на рисунке ниже.

    Для того чтобы пользователь смог самостоятельно настроить группировку отчета, предлагается запомнить настройку отчета без настройки колонок, а в момент формирования отчета добавлять нужные колонки отчета. Тогда настройка варианта отчета будет выглядеть следующим образом.

    При формировании отчета потребуется добавить два поля на один уровень группировки. Для этого добавим в процедуру модуля отчета ДоработатьКомпоновщикПередВыводом следующий текст:

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

    События при выводе отчета. Доработка расшифровки отчета

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

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

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

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

    Копировать в буфер обмена

    • В добавленных процедурах дописать код, который требуется для доработки макета отчета перед выводом.

    Разработка отчетов со сложным макетом

    Многие отчеты содержат сложный макет, который нельзя вывести с помощью СКД. В таких случаях СКД используется только как источник данных для результирующего отчета и алгоритм формирования отчета становится более сложным, распадаясь на два этапа:

    1. При помощи СКД выбираются данные для отчета;
    2. Полученные данные выводятся в отчет при помощи специального алгоритма заполнения макета отчета.

    Алгоритм получения данных также может состоять из нескольких частей:

    1. При помощи СКД выбираются данные для отчета в виде таблицы или дерева значений в соответствии с заданными пользователем настройками
    2. Получить недостающие данные при помощи дополнительных запросов

    Любой отчет, содержащий макет, требует от настройки СКД определенной структуры и обязательно выводимых полей. Пользователь, производя настройку отчета, может пренебречь этими требованиями и удалить не нужные, по его мнению, поля или группировки. Поэтому структуру отчета нужно формировать программно перед формированием отчета исходя из настроек, которые пользователь отчета установил. После доработки настройки запускается алгоритм формирования отчета в дерево значений или таблицу значений для чего «типовая» процедура СформироватьТиповойОтчет заменяется кодом для формирования отчета, например, таким:

    Примером отчета со сложным макетом является отчет «Карточка работника» в из демонстрационной базы данных, который выводит макет карточки работника. Причем существует возможность сгруппировать карточки работников по всем доступным полям СКД.

    События панели пользователя

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

    1. Добавить в структуру, возвращаемую процедурой ПолучитьПараметрыИсполненияОтчета , свойство с названием используемого события и установить его значение в Истина ;
    2. Добавить в модуль формы отчета нужные процедуры как экспортные
      Название событияПроцедураОписание события
      ПослеВыводаПанелиПользователяПослеВыводаПанелиПользователя(ЗначениеНастроек)Событие вызывается после вывода всех элементов управления вариантом отчета. В процедуру передается значение настроек панели пользователя.
      ПослеВыводаПериодаПослеВыводаПериода(СтруктураЭлементовУправления)Событие вызывается после вывода элемента управления периодом отчета. В процедуру передается структура элемента управления отчетом.
      ПослеВыводаПараметраПослеВыводаПараметра(СтруктураЭлементовУправления)Событие вызывается после вывода параметра отчета. В процедуру передается структура элемента управления отчетом.
      ПослеВыводаГруппировкиПослеВыводаГруппировки(СтруктураЭлементовУправления)Событие вызывается после вывода элемента управления группировками отчета. В процедуру передается структура элементов управления отчетом.
      ПослеВыводаОтбораПослеВыводаОтбора (СтруктураЭлементовУправления)Событие вызывается после вывода элемента управления отборами отчета. В процедуру передается структура элементов управления отчетом.

    Структура управления элементом отчета представляет собой структуру данных, в которой содержатся ссылки на страницу и элементы управления.

    Структура элементов управления периодом имеет следующие поля:

    • СтраницаПанели – страница, на которой располагается элемент управления формой отчета
    • ДинамическийОтборНадписьДата – надпись «дата:»
    • ДинамическийОтборСтандартнаяДатаНачалаПользователя – поле ввода, в котором устанавливается стандартная дата компоновки данных отчета(начало месяца, начало недели и т.п.)
    • ДинамическийОтборДата – поле ввода, в котором устанавливается произвольная дата отчета
    • ДинамическийОтборСтандартныйПериодПользователя – поле ввода, в котором устанавливается стандартный период пользователя
    • ДинамическийОтборНадписьС – надпись «с:»
    • ДинамическийОтборДатаНачала – поле ввода даты начала периода отчета
    • ДинамическийОтборНадписьПо – надпись «по:»
    • ДинамическийОтборДатаОкончания – поле ввода даты окончания периода отчета

    Структура элементов управления параметром имеет следующие поля:

    • СтрокаПараметра – настройка параметра отчета
    • СтраницаПанели – страница, на которую добавляли элементы управления отчетом
    • ДинамическийПараметрНадпись – надпись, содержащая представление параметра отчета
    • ДинамическийПараметрПолеВвода – поле ввода, в котором задается значение параметра
    • ДинамическийПараметрТабличноеПоле – табличное поле, в котором задается значение параметра отчета в виде списка
    • ДинамическийПараметрПереключатель – переключатель, в котором задается значение параметра с доступными значениями

    Структура элементов управления группировками имеет следующие поля:

    • СтраницаПанели – страница панели, на которую выводится элемент управления группировками
    • ДинамическийПараметрТабличноеПоле – табличное поле, в котором устанавливается настройка группировок отчета
    • ДинамическийПараметрКаманднаяПанель – командная панель, при помощи которой меняется последовательность группировок в отчете

    Структура элементов управления отбором на горизонтальной панели имеет следующие поля:

    • СтрокаОтбора – настройка быстрого отбора
    • СтраницаПанели – страница, на которую добавили элементы управления
    • ДинамическийОтборНадпись – надпись, содержащая название отбора
    • ДинамическийОтборПолеВвода – поле ввода, в котором задается значение отбора

    Структура элементов управления отбором в виде списка значений имеет следующие поля:

    • СтрокаОтбора – настройка быстрого отбора
    • СтраницаПанели – страница, на которую добавили элементы управления
    • ДинамическийОтборВидСравнения – поле ввода, в котором устанавливается вид отбора «Только выбранные», «Не отбирать», «Кроме выбранных»
    • ДинамическийОтборСохранитьСписок – кнопка Сохранить список
    • ДинамическийОтборЗагрузитьСписок – кнопка Загрузить список
    • ДинамическийОтборКнопкаПодбор – кнопка Подбор
    • ДинамическийОтборТабличноеПоле – табличное поле, в котором задаются значения отбора

    Структура элементов управления отбором в виде флажка и/или значения имеет следующие поля:

    • СтрокаОтбора – настройка быстрого отбора
    • СтраницаПанели – страница, на которую добавили элементы управления
    • ДинамическийОтборФлажок – флажок, при помощи которого включается или отключается отбор
    • ДинамическийОтборНадпись – надпись с названием отбора
    • ДинамическийОтборПолеВвода – поле ввода, в котором задается значение отбора

    Подключение дополнительных возможностей отчета

    Иногда в отчете требуется выводить не только таблицу с данными, но и диаграмму Ганта или рисунок. Другими словами, отчет должен иметь возможность выводить другое представление данных в дополнение к существующим возможностям. К примеру, отчет по отпускам удобно смотреть не только в виде таблицы, но и в виде диаграммы Ганта.

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

    После добавления данного программного кода на правую панель пользователя будет выведен флажок с названием «Выводить диаграмму Ганта» (по умолчанию взведенный). Значение этого флажка в настройке отчета будет называться ВыводитьДиаграммуГанта .

    Как подключить универсальный механизм «Шаблон типового отчета» к конфигурации

    Для этого требуется запустить объединение и сравнение конфигурации, которую требуется поставить на поддержку, и файла поставки. После чего отметить следующие объекты как объединяемые.

    • ЗаголовокОтчета
    • ЗагрузитьСписок
    • КроссТаблица
    • Настройка
    • НастройкаСтруктурыОтчета
    • ОписаниеИПользователи
    • ОтборИПорядокКомпоновки
    • ПанельНастроек
    • ПанельВариантов
    • ПанельПользователя
    • ПапкаСРесурсами
    • ПереместитьВверх
    • ПереместитьВниз
    • ПользовательскиеПоля
    • ПорядокКомпоновки
    • СохранитьНастройкиОтчета
    • СохранитьРезультат
    • СохранитьСписок
    • СравнитьРезультаты
    • СтруктураОтчета
    • Сформировать
    • Таблица
    • ТаблицаТранспонированная
    • ТабличныйДокумент
    • ШаблонТабличный
    • ВидыОтчетов
    • ВыгрузитьФайл
    • ЗагрузитьФайл

    • ФормаНастройкиПараметровПанелиПользователя
    • ФормаНастройкиСтруктурыОтчета
    • ФормаРаботыСоСпискомЗначений
    • ФормаРедактированияСпискаПолейКомпоновки
    • ФормаРасшифровкиАналитическихОтчетов
    • ФормаДополнительнойНастройкиОтчета
    • ФормаВыбораДоступногоПоляКомпоновщикаНастроек

    • Периодичность
    • ПредставленияЭлементовОтчетов
    • ТипыНастроек

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

    Поставка демонстрационной конфигурации

    Дистрибутив конфигурации находится в каталоге \1CITS\EXE\ TREPORT

    После установки файл поставки библиотеки (.cf-файл) автоматически скопируется в каталог шаблонов

    Дистрибутив конфигурации и файл шаблона (Шаблон.erf) находятся в каталоге \1CITS\EXE\TREPORT

    Источник

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Adblock
    detector