Добрый день!
В СКД создал набор данных, который бежит по документам и собирает информацию. Автоматически создал форму отчета. Кнопка "сформировать" создалась автоматически. Нажимаю сформировать все вывелось отлично и если навести курсор мышки, то отображается лупа и даже по нажатию проваливается в справочники, ссылки и т.д.
Теперь хочу программно поработать с отчетом, создал команду "СформироватьОтчет", нажав на неё исполняется этот код:
Отчет формируется отлично, но возникает проблема с расшифровкой, лупа исчезает. Если установить 3-й параметр "ДанныеРасшифровки"
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки, ДанныеРасшифровки);
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровки); - то тут при открытии отчета возникает ошибка.
Может этого достаточно, что бы мне объяснить, где я сошел с правильной дороги и подскажет?
В СКД создал набор данных, который бежит по документам и собирает информацию. Автоматически создал форму отчета. Кнопка "сформировать" создалась автоматически. Нажимаю сформировать все вывелось отлично и если навести курсор мышки, то отображается лупа и даже по нажатию проваливается в справочники, ссылки и т.д.
Теперь хочу программно поработать с отчетом, создал команду "СформироватьОтчет", нажав на неё исполняется этот код:
&НаСервере
Процедура СформироватьОтчетНаСервере()
СхемаКомпоновки = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
НастройкиКомпоновки = СхемаКомпоновки.НастройкиПоУмолчанию;
//ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
&НаКлиенте
Процедура СформироватьОтчет(Команда)
СформироватьОтчетНаСервере();
// Чтобы не писалось "Отчет не сформирован..."
Элементы.Результат.ОтображениеСостояния.Видимость = Ложь;
Элементы.Результат.ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.НеИспользовать;
КонецПроцедуры
ПоказатьОтчет формируется отлично, но возникает проблема с расшифровкой, лупа исчезает. Если установить 3-й параметр "ДанныеРасшифровки"
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки, ДанныеРасшифровки);
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровки); - то тут при открытии отчета возникает ошибка.
Может этого достаточно, что бы мне объяснить, где я сошел с правильной дороги и подскажет?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) у тебя ДанныеРасшифровки - это реквизит формы используй другое имя чтобы не было конфликта
ДР = Неопределено;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки, ДР);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДР);
ДР = Неопределено;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки, ДР);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДР);
&НаСервере
Процедура СформироватьОтчетНаСервере()
СхемаКомпоновки = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
НастройкиКомпоновки = СхемаКомпоновки.НастройкиПоУмолчанию;
//ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
&НаКлиенте
Процедура СформироватьОтчет(Команда)
СформироватьОтчетНаСервере();
// Чтобы не писалось "Отчет не сформирован..."
Элементы.Результат.ОтображениеСостояния.Видимость = Ложь;
Элементы.Результат.ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.НеИспользовать;
КонецПроцедуры
Показать
А как получить данные расшифровки (путь к временному хранилищу)?
Такой код только позволит нажать на ячейку, но работать с ним нельзя.
&НаСервере
Процедура СформироватьОтчетНаСервере()
СхемаКомпоновки = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
НастройкиКомпоновки = СхемаКомпоновки.НастройкиПоУмолчанию;
АдресРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки, АдресРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,АдресРасшифровки);
Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
ПоказатьТакой код только позволит нажать на ячейку, но работать с ним нельзя.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот