Программно запустить на выполнение отчет СКД без формы

1. erazh 28.05.18 21:07 Сейчас в теме
Как программно запустить на выполнение отчет СКД без форм?

Например, кинем на УФ кнопку, которая будет вызывать ОТЧЕТ.КАДРОВАЯИСТОРИЯСОТРУДНИКОВ (ЗУП 3.1). Каким должен быть код в этом случае? Обработка открывается через Файл-Открыть. Случай с подключаемыми отчетами не рассматриваем! Вариант типа:

ФормаОтчета = ПолучитьФорму("Отчет.КадроваяИсторияСотрудников.ФормаВарианта");
ФормаОтчета.Открыть();

чего-то не катит (форм то, нет!)

Как ?!? Ну, или ссылку где это расписано!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user705522_constantin_h 35 29.05.18 00:33 Сейчас в теме
(1)Как-то так:
 //Получаем схему из макета
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

//Очищаем поле табличного документа
Результат = ЭлементыФормы.Результат;
Результат.Очистить();

//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);   
Показать
neyasytyf; Eret1k; +2 Ответить
3. erazh 29.05.18 21:39 Сейчас в теме
(2)
//Очищаем поле табличного документа
Результат = ЭлементыФормы.Результат;
Результат.Очистить();


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

Меня тут посетили мысли: Программно создать общую форму и к ней прикрутить СКД из отчета. (Все равно ведь эта же форма и вызывается.) Только я пока в общих формах не силен. :-(
4. erazh 19.06.18 16:15 Сейчас в теме
(3)
Пока вышел таким образом: создал внешний отчет (нужно было по ходу), загрузил в него схему СКД из того отчета и мышкой перетащил общую форму в ФОРМЫ данного внешнего отчета. Все заработало, но это так, костыли и времени занимает не так много.

Если будет более красивое решение, буду рад услышать.
5. kazimesh 30.01.19 15:58 Сейчас в теме
Чисто для истории, вдруг кому то понадобится и он случайно откроет эту тему.
Нужно использовать ОткрытьФорму. Это в принципе лучше для УФ.
Открываем справку по методу ОткрытьФорму.
Читаем: Образуется как полный путь к объекту метаданных Форма (например, "Справочник.Контрагенты.Форма.ФормаОбъекта", "ОбщаяФорма.ФормаСохраненияФайла") или как полный путь к прикладному объекту, дополненный именем формы по умолчанию (например, "Справочник.Товары.ФормаВыбора").
Далее в справке перечислены все имена форм по умолчанию.
Для отчета читаем:
Форма (Form) - форма отчета и обработки по умолчанию;
ФормаВарианта (VariantForm) - форма редактирования варианта отчета;
Это работает, программно запускается отчет у которого нет формы.
У вас ФормаВарианта тоже должна работать.
fatman78; MaximusLee; dimisa; +3 Ответить
6. Силиван 10.12.19 10:26 Сейчас в теме
Спасибо! Помогло решить другую задачу.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот