Пример формирования внешнего отчета программно и в фоновом режиме

Публикация № 657588

Разработка - Инструментарий разработчика

Внешний отчеты и обработки ДополнительныеОтчетыИОбработки СКД Выполенение в фоне.

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

Этот отчет (ОСВ) был сделан для примера, так сказать показать наглядно на практике, какие есть возможности формирования отчета в платформе 1С.

На форме присутствуют 4 кнопки, которые формируют отчет тем или иным способом.

1. Сформировать - Отчет будет формироваться штатным образом, то есть стандартная команда формы "Сформировать".

2. Сформировать (программно) - Отчет будет формироваться программным образом вызывая процедуру "СформироватьОтчет" в модуле объекта. Передавая в качестве параметров "СхемуКомпоновкиДанных" и АдресХранилища куда будет помещатся результат процедуры. 

3. Сформировать (длительные  операции в фоне) - Отчет формируется по средствам БСП используя модули "ДлительныеОперации.ЗапуститьВыполнениеВФоне" и "ДополнительныеОтчетыИОбработки.ВыполнитьКоманду". Также как и во 2-ом способе основной процедурой обработчиком будет являтся  "СформироватьОтчет" в модуле объекта. Этот способ формирования я считаю самой сложной (по крайней мере для меня), так как в свое время, чтобы релизовать этот способ у меня ушло много времени. И собственно порадило эту публикация, чтобы другие тоже не теряли время. Главным услувием является добавления отчета как внешний отчет в режиме предприятия в подсистему "ДополнительныеОтчетыИОбработки".

4. Сформировать отчет (режим компоновки в фоне) -  Отчет формируется также как и первый способ, исключение лишь в том что задается режим компоновки как "РежимКомпоновкиРезультат.Фоновый".

Отчет тестировался на версия БСП - 2.2.5.32, который был в конфигурации Бухгалтерия для Казахстана ред. 3.0 релиз 3.0.9.35. Отчет можно в дальнейшем использовать для разработок новых отчетов, без добавления его в конфигурацию как объект отчет. Тем самым облегчая дальнейшее сопровождение конфигурации.

В отчете достаточно изменить Запрос СКД, в коде КлючТекущегоВарианта ну и везде где есть упоминание про "Пример отчета".

Ниже приведу весь код отчета 

 
Модуль формы отчета:
 
Модуль объекта:

 

Скачать файлы

Наименование Файл Версия Размер
Пример внешнего отчета:

.erf 13,18Kb
02.08.17
60
.erf 13,18Kb 60 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. shura_k 15.11.17 10:58 Сейчас в теме
пробую ваш обработку, для меня так же важно запустить отчет в фоне.
отчет сам формируется нормально, и штатными средствами и вашей процедурой СформироватьОтчетПрограммноНаСервере.
но вот с фоновом формированием - проблема.
ничего не возвращается из Временного Хранилища!
помогите пожалуйста разобраться...

Разобрался - проблемы была в Параметры.ДополнительнаяОбработкаСсылк
2. Bakytzhan_777 40 15.11.17 11:59 Сейчас в теме
(1)Рад что разобрались). Я тоже с этим сталкивался, многие часы отладки таки не дали ответа, почему ссылка пустая. Пришлось самому присваивать ссылку в "Параметры.ДополнительнаяОбработкаСсылка".
3. shura_k 15.11.17 13:10 Сейчас в теме
но в обработке есть реально две ошибки:
1. НоваяКоманда.Идентификатор = "СформироватьОтчет";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
у вас изначально вариант - открытиеформы, а надо вызовсерверногометода.
У вас же даже Процедура ВыполнитьКоманду для этого уже была.
2. ДлительныеОперацииКлиент.ИнициализироватьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжидания);
ТекущийИнтервал = ПараметрыОбработчикаОжидания.ТекущийИнтервал;
ПодключитьОбработчикОжидания("Подключаемый_ПроверитьВыполнениеЗадания",ТекущийИнтервал, Истина);
надо инициализировать ПараметрыОбработчикаОжидания, иначе потом в процедуре Подключаемый_ПроверитьВыполнениеЗадания будет ошибка на ТекущийИнтервал
4. Bakytzhan_777 40 15.11.17 17:00 Сейчас в теме
(3)
1. НоваяКоманда.Идентификатор = "СформироватьОтчет";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
у вас изначально вариант - открытиеформы, а надо вызовсерверногометода.

Если ставить "ТипКомандыВызовСерверногоМетода()" вместо "ТипКомандыОткрытиеФормы()" то форма не откроется и запуститься сразу команда по идентификатору "СформироватьОтчет".
2. ДлительныеОперацииКлиент.ИнициализироватьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжидания);
ТекущийИнтервал = ПараметрыОбработчикаОжидания.ТекущийИнтервал;
ПодключитьОбработчикОжидания("Подключаемый_ПроверитьВыполнениеЗадания",ТекущийИнтервал, Истина);
надо инициализировать ПараметрыОбработчикаОжидания, иначе потом в процедуре Подключаемый_ПроверитьВыполнениеЗадания будет ошибка на ТекущийИнтервал
Здесь все поправил.
Спасибо вам за замечания.
Mikhail-Kobtsev; +1 Ответить
9. Mikhail-Kobtsev 27.08.18 16:57 Сейчас в теме
(3)
ыОбработчикаОжидания.ТекущийИ


подскажи в каком именно моменте необходимо инициализация ПараметрыОбработчикаОжидания ?
10. Bakytzhan_777 40 28.08.18 07:02 Сейчас в теме
(9) В типовых инициализируют при открытии формы. Я сделал в команде "СформироватьОтчетВФонеДлительныеОперации".
Mikhail-Kobtsev; +1 Ответить
5. shura_k 15.11.17 17:43 Сейчас в теме
Если ставить "ТипКомандыВызовСерверногоМетода()" вместо "ТипКомандыОткрытиеФормы()" то форма не откроется и запуститься сразу команда по идентификатору "СформироватьОтчет".

да, тоже до этого дошел.
в итоге сделал две команды: одну на открытие формы другую на ВызовСерверногоМетода.
потому как без первого - реально форма не открывается, а без второго не работает сформировать отчет в фоне.
я в процедуре формирования еще запихиваю тз во внешние данные.
6. cdromscsi 22.12.17 11:16 Сейчас в теме
Спасибо. Очень помог пример кода для пункта 3: Сформировать (длительные операции в фоне). Все работает.
7. Bakytzhan_777 40 19.01.18 20:35 Сейчас в теме
(6) Рад что помогла публикация)
8. MKassatkin 27.04.18 11:45 Сейчас в теме
Хороший пример! Пригодилось, спасибо!
11. Mikhail-Kobtsev 28.08.18 14:36 Сейчас в теме
спасибо автору за статью и еще за оперативный ответ :), давно хотел юзать отчеты через бсп в фоне.
Оставьте свое сообщение

См. также

Анализ подписок на события

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Внешний отчет по подпискам на события.

1 стартмани

31.12.2019    2883    4    Sergspectr    4    

Просмотр и анализ структуры базы данных (отчет на СКД)

Инструментарий разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

Отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.

5 стартмани

24.07.2019    21673    186    YPermitin    27    

Анализ объектов метаданных

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

22.07.2019    3140    4    alex_bob    0    

Шаблон отчета, обычное приложение. Отображает на форме: параметры, отбор, варианты настроек, загрузку элементов отбора из файла

Инструментарий разработчика v8 v8::СКД УПП1 Абонемент ($m)

Шаблон отчета с формой для обычного приложения. Позволяет отображать на форме: параметры, отбор, варианты настроек, загрузку в левое значение отбора список элементов из файла (проверено на Управление производственным предприятием, редакция 1.3 (1.3.61.2) )

1 стартмани

22.04.2019    3654    8    user995537    0    

Шаблон отчета СКД (обычные формы)

Инструментарий разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

21.03.2019    6653    48    Смешной 1С    6    

Улучшенный шаблон отчёта СКД ОФ (обычные формы), подобный стандартной управляемой форме отчёта

Инструментарий разработчика v8 v8::СКД БП2.0 ЗУП2.5 УТ10 УПП1 Абонемент ($m)

Вашему вниманию предлагается улучшенный шаблон отчёта СКД, реализованный на обычных формах. Лаконичный и функциональный, весь необходимый минимум для управления отчётом вынесен на форму отчёта, что избавляет рядовых пользователей от необходимости лезть внутрь настроек отчёта. Элементы формы сделаны "резиновыми", что позволяет не дорабатывать форму отчёта, если в нём прибавилось отборов или параметров (пользователь сам при необходимости растянет область отборов или параметров). У пользователя есть возможность скрывать/отображать на форме настройки параметров или отборов. Форма автоматически запоминает состояние отображения параметров и отборов. Имеется возможность сохранять отчёт в файлы распространённых форматов (Excel2007, Excel, PDF, Word2007, ODS, HTML, Текстовый файл). Так же на панель выведена кнопка восстановления стандартных настроек отчёта.

2 стартмани

25.02.2019    4830    5    Eugen-S    0    

Отчет по подпискам на события

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Внешний отчет для разработчика на платформе 1С:Предприятие 8.3. С его помощью вы значительно упростите себе доработку конфигураций! Быстро найдете все подписки, в которые включен объект метаданных, сможете построить отчет в любом разрезе - по объектам, событиям, подпискам, общим модулям, процедурам и т.д.

1 стартмани

18.02.2019    9558    52    tomvlad    8    

Схемы показателей. Объединение наборов СКД. Программное формирование отчета

Инструментарий разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

Программное формирование отчета на СКД, наборы которых выбираются из справочника.

2 стартмани

11.02.2019    6996    6    MaxxiMiliSan    0    

Проверка прав доступа к значениям характеристик ПВХ (планов видов характеристик)

Инструментарий разработчика Универсальные обработки v8 v8::Права v8::ПВХ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для проверки прав доступа к значениям характеристик ПВХ (планов видов характеристик) информационной базы. Платформа 8.3, управляемые формы. Решение мелких проблем с правами доступа после обновления типовых конфигураций. Версия 003 от 10.02.2019

1 стартмани

11.02.2019    4583    3    ROL32    1    

Шаблон отчета, формирующегося в фоновом режиме

Инструментарий разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

21.01.2019    3869    8    1C_Casual    4    

Генерация внешнего отчета на основе варианта в "классической" консоли СКД

Инструментарий разработчика v8 v8::СКД 1cv8.cf Россия Абонемент ($m)

Реализации функции генерации внешнего отчета одной кнопкой в "классической" консоли отчетов СКД. Это функция будет полезна, если вам надо пользователю отдать настроенный вариант отчета на тестирование (а для него консоли это очень сложно: настройки, отборы и т.п.) или банально лень в конфигураторе собирать внешний отчет и вместе с ним ещё хранить отдельно в файле настройки варианта (отборы, например).

1 стартмани

16.01.2019    6579    20    maxx    21    

Шаблон кросс-таблицы с иерархией на СКД

Инструментарий разработчика Практика программирования v8::БУ v8::СКД БП3.0 Россия Абонемент ($m)

Шаблон для быстрой реализации отчета кросс-таблицы с иерархией и жестко заданной структурой вывода с использованием СКД.

1 стартмани

22.12.2018    10062    9    wizard.ilmir02    3    

Шаблон отчета на управляемых формах

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Подготовил для себя некоторый шаблон для отчетов на управляемых формах. Хотел бы поделиться и с сообществом.

1 стартмани

16.12.2018    5387    18    Aleksey81    5    

Структура хранения данных

Инструментарий разработчика v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Отчет на СКД выводит информацию о структуре хранения объектов в базе данных.

1 стартмани

30.11.2018    4808    17    mamba    0    

Состав объектов подсистем

Инструментарий разработчика v8::СКД 1cv8.cf Россия Абонемент ($m)

Отчет по составу объектов, которые принадлежат соответствующей подсистеме.

1 стартмани

22.05.2018    7656    17    Alligator84    1    

Выполнение внешней обработки в фоне на базе БСП

Инструментарий разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Выполнение внешней обработки в фоне с выводом прогресса. Работает как для обработок в дополнительных отчетах и обработках, так и для внешней обработки запускаемой через Файл/Открыть. Так же работает если встроить обработку в конфигурацию или в расширение. Показан пример как стандартного БСП прогресса, так и пример нестандартного прогресса. Показана передача параметров в фоновое задание и возврат результата.

1 стартмани

22.03.2018    9943    60    Wern03    4    

Иерархия элементов управляемой формы

Инструментарий разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Отчет выводит в виде иерархии элементы управляемой формы.

1 стартмани

11.03.2018    7188    3    pm74    1    

Таблица значений в параметрах СКД

Практика программирования Инструментарий разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

Шаблон отчета на СКД, где в качестве параметра передаётся таблица значений.

1 стартмани

31.01.2018    9457    24    skydivespb    4    

Имя предопределенного элемента

Инструментарий разработчика v8::БУ 1cv8.cf Казахстан Абонемент ($m)

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

1 стартмани

02.12.2017    7714    3    AlexFort1961    10    

Универсальный конструктор отчетов СКД (Управляемые формы, тонкий клиент)

Инструментарий разработчика v8 v8::УФ v8::СКД 1cv8.cf Россия Абонемент ($m)

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

3 стартмани

20.11.2017    25139    267    Boneman    23    

Создание отчета на основе универсального

Учет ТМЦ Инструментарий разработчика Учет ТМЦ v8 УПП1 Россия УУ Абонемент ($m)

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

1 стартмани

24.08.2017    6996    2    katoknina    2    

Шаблон отчета на СКД

Инструментарий разработчика Управленческие Управление персоналом (HRM) Управление персоналом (HRM) v8::УФ v8::СКД БП3.0 ЗУП3.x Абонемент ($m)

Простой шаблон для отчета на СКД. В качестве примера взята выборка контактных данных из справочника Физические лица.

1 стартмани

29.06.2017    9774    16    ejka    0    

Отчет по подпискам на событие

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Отчет показывает, где используется, для какого объекта, в каком модуле подписка на событие.

1 стартмани

07.06.2017    9233    11    igormiro    7    

Сравнение функциональных опций двух информационных систем

Инструментарий разработчика v8 v8::СКД 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

31.05.2017    7977    6    OlegTor    0    

Шаблон отчета на СКД для обычных форм

Инструментарий разработчика v8::СКД КА1 УТ10 УПП1 Абонемент ($m)

Шаблон отчета на схеме компоновки данных для обычных форм. Отличие от других - сохранение настроек в типовом регистре "Сохраненные настройки".

1 стартмани

14.02.2017    9078    15    sapit    6    

Вывод различных табличных документов в один ("склеивание" печатных форм)

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

17.01.2017    9959    14    pashamak    6    

Анализ результатов юнит-тестирования

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Не так давно попал на ситуацию, когда непонятно из-за какого коммита упал тест. Разработал для себя инструмент для выявления тех тестов, которые упали именно после моих правок.

1 стартмани

28.11.2016    12734    0    unichkin    7    

Все реквизиты документа

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

17.10.2016    5460    7    big60    2    

Методика разработки СКД-отчетов по сверке между базами с COM-запросом в другую базу

Инструментарий разработчика v8::СКД ERP2 Абонемент ($m)

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

1 стартмани

15.10.2016    14066    34    papche    6