0

Не могу программно сформировать типовой отчет

#1С 8.2

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

Конфигурация: Зарплата и кадры образовательного учреждения, редакция 1.0

Собственно сам код процедуры:

Процедура КнопкаВыгрузка(Элемент)
   СтандартнаяОбработка = Ложь;

   Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
   Диалог.Заголовок = "Выберите файл для сохранения данных";
   Диалог.МножественныйВыбор = Ложь;
   Диалог.Фильтр = "TXT (*.txt)|*.txt";
   Если Диалог.Выбрать() Тогда
       ФайлСохранения = Диалог.ПолноеИмяФайла;

       Текст = Новый ЗаписьТекста(ФайлСохранения, КодировкаТекста.UTF8);

       РасчетныеЛисткиОрганизаций = Отчеты.РасчетныеЛисткиОрганизаций.Создать();
       СхемаКомпоновки = РасчетныеЛисткиОрганизаций.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
       КомпоновщикНастроек = РасчетныеЛисткиОрганизаций.КомпоновщикНастроек;
       КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки));
       КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию);

       Элементы = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы;

       ПараметрГруппировка = Элементы.Найти("Группировать");
       ПараметрГруппировка.Значение = Ложь;
       ПараметрГруппировка.Использование = Истина;
       ПараметрВид = Элементы.Найти("ВидРасчетногоЛистка");
       ПараметрВид.Значение = "Подробно";
       ПараметрВид.Использование = Истина;
       ПараметрНачалоПериода = Элементы.Найти("НачалоПериода");
       ПараметрНачалоПериода.Значение = НачПериода;
       ПараметрНачалоПериода.Использование = Истина;
       ПараметрКонецПериода = Элементы.Найти("КонецПериода");
       ПараметрКонецПериода.Значение = КонПериода;
       ПараметрКонецПериода.Использование = Истина;

       ТЗ_СуммаНаРуки             = Данные_СуммаНаРуки(НачПериода, КонПериода);
       ТЗ_СведенийОДоходе         = Данные_СведенийОДоходе(НачПериода, КонПериода);
       ТЗ_ЛичныйВычет             = Данные_ЛичныйВычет(НачПериода, КонПериода);
       ТЗ_ИмущественныйВычет    = Данные_ИмущественныйВычет(НачПериода, КонПериода);
       ТЗ_ФИОРаботников        = Данные_ФИОРаботников(НачПериода, КонПериода);

       Для Каждого Отделы из ОтчетОбъект.Подразделения Цикл
           Для Каждого Строка из ОтчетОбъект.Сотрудники Цикл
               Если Строка.Ключ = Отделы.Ключ и Строка.Пометка Тогда
                   ВнешниеНаборыДанных = Новый Структура;

                   ФизЛица = Новый Массив;
                   ФизЛица.Добавить(Строка.Сотрудник.Физлицо);

                   ТЗ_НачисленияУдержания  = Данные_НачисленияУдержания();
                   ТЗ_РаботникиОрганизации = Данные_РаботникиОрганизации(НачПериода, КонПериода, ФизЛица);

                   ВнешниеНаборыДанных.Вставить("РаботникиОрганизации", ТЗ_РаботникиОрганизации);
                   ВнешниеНаборыДанных.Вставить("НачисленияУдержания", ТЗ_НачисленияУдержания);
                   ВнешниеНаборыДанных.Вставить("ИмущественныйВычет", ТЗ_ИмущественныйВычет);
                   ВнешниеНаборыДанных.Вставить("СведенийОДоходе",  ТЗ_СведенийОДоходе);
                   ВнешниеНаборыДанных.Вставить("ФИОРаботников",  ТЗ_ФИОРаботников);
                   ВнешниеНаборыДанных.Вставить("СуммаНаРуки",  ТЗ_СуммаНаРуки);
                   ВнешниеНаборыДанных.Вставить("ЛичныйВычет", ТЗ_ЛичныйВычет);

                   ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
                   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
                   МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновки, КомпоновщикНастроек.Настройки, ДанныеРасшифровки, ,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

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

                   ДанныеТЗ = Новый ТаблицаЗначений;

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

                   Для Каждого стр из ДанныеТЗ Цикл
                       Текст.ЗаписатьСтроку("Организация: " + СокрЛП(Строка(стр.Организация)));
                       Текст.ЗаписатьСтроку("Работник: " + СокрЛП(Строка(стр.Работник)));
                       Текст.ЗаписатьСтроку("К выплате: " + Формат(стр.СуммаНаРуки, "ЧГ=0"));
                   КонецЦикла;
               КонецЕсли;
           КонецЦикла;
       КонецЦикла;

       Текст.Закрыть();
   КонецЕсли;
КонецПроцедуры
 1274 3
Добавленоdemiurg540 дней назад
Последняя активность535 дней назад


Добавить комментарий

demiurg написал:540 дней назад0

Переделал процедуру. Теперь вопрос, как вытащить данные? У меня выводится только колонка “РасчетныеЛисткиОрганизаций” с содержимым первой колонки табличного документа. Код:

Процедура КнопкаВыгрузка(Элемент) Экспорт
    СтандартнаяОбработка = Ложь;

    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    Диалог.Заголовок = "Выберите файл для сохранения данных";
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Фильтр = "TXT (*.txt)|*.txt";
    Если Диалог.Выбрать() Тогда
        ФайлСохранения = Диалог.ПолноеИмяФайла;

        Текст = Новый ЗаписьТекста(ФайлСохранения, КодировкаТекста.UTF8);

        Для Каждого Отделы из ОтчетОбъект.Подразделения Цикл
            Для Каждого Строка из ОтчетОбъект.Сотрудники Цикл
                Если Строка.Ключ = Отделы.Ключ и Строка.Пометка Тогда
                    ОтчетРасчетныеЛисткиОрганизаций = Отчеты.РасчетныеЛисткиОрганизаций.Создать();

                    ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек,  "НачалоПериода", НачПериода);
                    ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек,  "КонецПериода", КонПериода);
                    ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек,  "Группировать", ложь);
                    ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек,  "ВидРасчетногоЛистка", "Подробно");
                    ТиповыеОтчеты.ДобавитьОтбор(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек, "ФизЛицо", Строка.Сотрудник.ФизЛицо);

                    РасчетныеЛисткиОрганизацийОтчет = Новый ТабличныйДокумент;
                    ОтчетРасчетныеЛисткиОрганизаций.СформироватьОтчет(РасчетныеЛисткиОрганизацийОтчет);

                    Построитель = Новый ПостроительЗапроса;
                    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(РасчетныеЛисткиОрганизацийОтчет.Область(1,1,РасчетныеЛисткиОрганизацийОтчет.ВысотаТаблицы, 17));
                    ТЗ = Построитель.Результат.Выгрузить();

                    Для Каждого стр из ТЗ Цикл
                        Сообщить(стр.РасчетныеЛисткиОрганизации);
                        //Текст.ЗаписатьСтроку("Организация: " + СокрЛП(Строка(стр.Организация)));
                        //Текст.ЗаписатьСтроку("Работник: " + СокрЛП(Строка(стр.Работник)));
                        //Текст.ЗаписатьСтроку("К выплате: " + Формат(стр.СуммаНаРуки, "ЧГ=0"));
                    КонецЦикла;

                КонецЕсли;
            КонецЦикла;
        КонецЦикла;

        Текст.Закрыть();
    КонецЕсли;
КонецПроцедуры

Ответить

Кирилл написал:539 дней назад0

Тут только в отладке смотреть какие параметры заполняются и т.д….

Зачем вы опять пытаетесь использовать типовой отчет? Выдерните запрос и используйте его. Так, по крайней мере, легче будет отладить и код будет универсальнее

Ответить

Задать вопрос!

Наш канал на Youtube

Изучаете 1С? Скачайте 200 видео по 1С бесплатно:

Похожее

Проблема при создании новый элементов справочника

В обработке создаю новый элементы справочника номенклатура, и в конце обработки ...

Ошибка при отправке интернет-писем

Конфигурация пустая. Требуется прописать модуль получения и отправки писем. Все ...

Не выводится внешний отчёт с управляемой формой.

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

Почтовый менеджер, заполнение текста письма по шаблону

Используем 1С CRM 2.0. В почтовом менеджере при создании (ответе и пересылке) пи...

Новый регистр сведений 1С 8.2 или добавить в существующий

Всем добрый день! Нужна помощь, совет, в общем все! Появилась необходимость со...

Новое

Расчет районного коэффициента в больничном листе

Добрый день! Очень нужна помощь! При расчете б/л не верно считает положительную ...

Отражение зарплаты в регламентирован ним учете

Использую Зуп 2.5 Потребовался отчёт для выборки данных по сотрудникам из докуме...

Возврат по картам по зарплате, в случае изменения реквизитов банка

По карте была перечислена зарплата, но платеж вернулся (изменились реквизиты бан...

Составление отчета

Здравствуйте!! Нужна помощь !!! что означает Ошибка получения информации набора ...

Не могу активировать настройку

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