1С:Комплексная автоматизация 2.х
1С:Управление торговлей 11
Платформа 1С v8.3
Программист
Внешняя обработка (ert,epf)
Вопрос
Суть задачи такова: Есть обработка, которая получает по навигационной ссылке вариант отчета, а вернее его настройки и с эти все хорошо. После чего формирует вариант отчета и помещает его в таблицу значений. Вот тут возник вопрос...
Всего 4 отчета из которых 3 формируются и результат записывается нормально, а один возвращает пустой результат (в файле одна строка и та пустая) по отладчику видно что вся строка заполнена NULL и Неопределенно. Вопрос звучит в следующем: Почему он возвращает пустой результат и как исправить?
По отчету настройки все передаются из варианта отчета, группировок нет, структура - только <детальные записи> (все как и у тех которые формируются без проблем)
Ниже представлен код процедуры формирующей вариант отчета и собственно сохраняющей его в файл
Всего 4 отчета из которых 3 формируются и результат записывается нормально, а один возвращает пустой результат (в файле одна строка и та пустая) по отладчику видно что вся строка заполнена NULL и Неопределенно. Вопрос звучит в следующем: Почему он возвращает пустой результат и как исправить?
По отчету настройки все передаются из варианта отчета, группировок нет, структура - только <детальные записи> (все как и у тех которые формируются без проблем)
Ниже представлен код процедуры формирующей вариант отчета и собственно сохраняющей его в файл
Функция СформироватьВариантОтчета(НС, ВернутьТабличныйДокумент = Ложь)
ВариантОтчета = ПолучитьСсылкуИзНавигационной(НС);
ПараметрыОтчета = Новый Структура();
ПараметрыОтчета.Вставить("СсылкаВарианта",ВариантОтчета);
ПараметрыОтчета.Вставить("СсылкаОтчета",Неопределено);
ПараметрыОтчета.Вставить("КлючВарианта",ВариантОтчета.КлючВарианта);
ПараметрыОтчета.Вставить("ИдентификаторФормы",Неопределено);
ДанныеОтчта = ВариантыОтчетов.СформироватьОтчет(ПараметрыОтчета, истина, Ложь);
Возврат ?(ВернутьТабличныйДокумент,ДанныеОтчта.ТабличныйДокумент,ДанныеОтчта);
КонецФункции
Процедура СформироватьФайлНаСервере(ФайлСохранения, НавигационнаяСсылка, Период = неопределено)
ВариантОтчета = ПолучитьСсылкуИзНавигационной(НавигационнаяСсылка);//Получаем вариант отчета
Отчет = Отчеты[ВариантОтчета.Отчет.Имя].Создать();
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
СхемаКомпоновкиДанных = Отчет.СхемаКомпоновкиДанных;
НастройкиВариантаОтчета = ВариантОтчета.Настройки.Получить();
Если НЕ Период = Неопределено Тогда
НастройкиВариантаОтчета.ПараметрыДанных.Элементы.Найти("Период").Значение = Период;
КонецЕсли;
//Выгрузим результат отчета СКД в Таблицу Значений
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ДанныеОтчета = СформироватьВариантОтчета(НавигационнаяСсылка);
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(ДанныеОтчета.Объект.СхемаКомпоновкиДанных,НастройкиВариантаОтчета, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
Попытка
Если НЕ Период = Неопределено Тогда
МакетКомпоновкиДанных.ЗначенияПараметров.Найти("Период").Значение = Период;
Иначе
КонецЕсли;
Исключение
КонецПопытки;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,,ДанныеРасшифровки,Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДанныеТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ДанныеТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); //Ошибка тут
//Выгрузим данные из Таблицы значений в Файл, запись данных в файл построчно
Текст = Новый ЗаписьТекста(ФайлСохранения, КодировкаТекста.UTF8);
//Формируем шапку документа
ШапкаТаблицы = "";
Для каждого Колонка из ДанныеТЗ.Колонки Цикл
ШапкаТаблицы = ШапкаТаблицы + Колонка.Заголовок + РазделительПолей;
КонецЦикла;
ШапкаТаблицы = ШапкаТаблицы + РазделительСтрок;
Текст.ЗаписатьСтроку(ШапкаТаблицы);
//Конец записи и формирования шапки таблицы
//Прохоим по всем строкам ТЧ и записываем данные в файл
Для Каждого стр из ДанныеТЗ Цикл
НоваяСтрока = "";
Для каждого Колонка из ДанныеТЗ.Колонки Цикл
НоваяСтрока = НоваяСтрока + стр[Колонка.Имя] + РазделительПолей;
КонецЦикла;
НоваяСтрока = НоваяСтрока + РазделительСтрок;
Текст.ЗаписатьСтроку(НоваяСтрока);
КонецЦикла;
Текст.Закрыть();
КонецПроцедуры
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Тогда прошу помощи ибо я расковырял этот отчет но в упор не вижу в чем ошибка и почему запрос возвращает пустоту
Прикрепленные файлы:
ЗапросОтчета.q1c
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот