1с запуск отчета программно

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

О Открытие формы отчета с помощью ПолучитьФорму и расширения формы отчета

Сначала получаем форму. Если отчет хранится в базе тогда выполняем на клиенте код:

Если нужен не «вариант по умолчанию»

Далее получаем настройки:

Через серверный вызов получаем настройки и если нужно заполняем параметры Компоновщика в отдельной процедуре.

Загружаем измененные настройки в компоновщик

О Открытие формы отчета с помощью ОткрытьФорму и расширения формы отчета

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

СформироватьПриОткрытии — нужен чтобы отчет открылся сразу сформированным.

  1. Отбор — Устанавливает отбор на результат СКД.
  2. КлючВарианта — Имя варианта настроек для отчетов с несколькими вариантами.

П Программный вывод СКД в табличный документ и таблицу значений

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

Код выполняется на сервере.

Получение локального макета

Получение макета произвольного отчета

Получение макета во внешней обработке

Получение макета из внешней обработки или отчета

Далее мы получаем настройки. Настройки СКД могут быть взяты из разных источников. Мы можем их получить из самой СКД:

Мы можем создать новый компоновщик настроек на основе схемы и получить настройки из него.

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

И когда будем формировать

Далее программно заполняем параметры Компоновщика. Об этом подробно ниже.

Объявляем создаем необходимые объекты:

Создаем макет компоновки с помощью компоновщика макета:

Если результат выполнения СКД нужно вывести в таблицу значений то соответствующий тип генератора нужно указать в параметрах:

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

Создаем процессор вывода:

Для вывода в таблицу значений используется другой процессор вывода:

Запускаем процесс вывода:

Теперь мы можем проводить нужные операции с полученными данными.

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

В Возможности настройки Схемы Компоновки Данных и Компоновщика Настроек СКД при программном формировании

При программном формировании СКД как в пункте 2 у нас есть огромное количество возможностей по управлению отчетом. Опишем самые часто используемые из них.

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

Или если с добавлением нового параметра

Также при получении настроек можно выбрать не «настройки по умолчанию», а один из вариантов настроек.

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

П Параметры

Все параметры создаются при создании исходного отчета, исключение если параметр был добавлен при редактировании запроса. Значение существующего параметра устанавливается следующим образом:

Добавление параметра делается следующим образом

О Отбор

У отборов нет специальных функций по установке значений. Поэтому нужно перебирать коллекцию циклом.

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

С Структура

Для адаптации отчета к выводу в таблицу значений нужно очистить структуру группировок отчета и создать поле группировки “Детальные записи”.

Р Резюме

Система компоновки данных была создана для ускорения разработки отчетов и упрощения работы пользователей. Программные изменения помогают усилить этот эффект. Программист может создать выгрузки и по сути свои отчеты на основании типовых отчетов. К примеру, выгрузка заработной платы в управленческую базу. Структура базы может сильно изменена, но поля в отчете “Расчетная ведомость Т-51” будут называться так же, и сам отчет вряд ли переименуется. Да и если что-то переименуется — выгрузку исправить будет очень просто.

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

Приведенные примеры кода были протестированы на платформе 1С:Предприятие 8.3 (8.3.13.1690).

Ч Что вы получите:

Видео Мастер-класс: Отчет по СКД. Строим отчет с нуля

Записи курса по СКД

Шаблоны для отчетов

Бонус 1: Чек-лист по формированию отчета с остатками

Если нужно по кнопке на произвольной форме запустить отчет с параметрами (отбором) написанный на СКД, можно сделать как показано далее. Создадим простой отчет — продажи по номенклатурным группам (Конфигурация 1С Бухгалтерия 3.0). Запрос отчета:

ВЫБРАТЬ
РеализацияУслугОбороты.НоменклатурнаяГруппа,
РеализацияУслугОбороты.СуммаОборот
ИЗ
РегистрНакопления.РеализацияУслуг.Обороты КАК РеализацияУслугОбороты

Настройки отчета в СКД:

Обратим внимание на форму отчета, в верхней части размещен отбор ФИКСИРОВАННЫХ НАСТРОЕК, обратите на это внимание.

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

ОтборОтчета = новый Структура ( «НоменклатурнаяГруппа» , Ссылка_НоменклатурнаяГруппа );
ПараметрыОтчета = Новый Структура ( «СформироватьПриОткрытии, Отбор» , истина, ОтборОтчета );
ОткрытьФорму ( «Отчет.ПродажиПоНоменклатурнымГруппам.Форма» , ПараметрыОтчета );

В переменной «Ссылка_НоменклатурнаяГруппа» указана номенклатурная группа по которой делается отбор. В результате, получим такой вид сформированного отчета:

Например, есть отчет ЦеныТоваров . Он показывает последние цены, установленные на товары.

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

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

Параметр Отбор позволяет установить отбор в отчете, задав значения полей или параметров отчета.

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

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

Сначала создаем структуру УсловияОтбора , которая задаст единственное условие отбора – по тому товару, на котором установлен курсор в списке ( Элементы.Список.ТекущаяСтрока ).

Затем сформируем структуру для параметров формы ( ПараметрыФормы ), описав в ней значения двух параметров – Отбор и СформироватьПриОткрытии .

И наконец открываем форму отчета, указав имя формы и параметры, предназначенные для открываемой формы.

Более сложный вариант интерактивного выполнения отчета можно посмотреть в статье Как с помощью команды выполнить отчет с некоторыми параметрами .

Понравилась статья? Поделиться с друзьями:
Vkontakte.INFO
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: