Имя: Пароль:
1C
1С v8
Создание отчета скд из документа
0 IT_PROGRAMMIST
 
19.10.11
16:19
Привет всем)УПП 1.3.11.5, пл.8.2.13.219.Ребят, подскажите в решении такой ситуации:нужно из документа сформировать отчет(скд.Он уже есть в системе) с определённым отбором(текст ниже).Вроде все верно, но отчет формируется пустым, хотя если нажать на саму кнопку Сформировать в отчете, то все формируется.Подскажите где ошибаюсь,мозги не варят уже(

&НаКлиенте
Процедура СформироватьОтчет(Команда)
   
   СписокФизЛиц=новый СписокЗначений;
   
   Для каждого Элемент из Объект.Работники цикл
     СписокФизЛиц.Добавить(Элемент.ФизЛицо);    
   КонецЦикла;    
   
   Отчет=Отчеты.ПосменноеОтработанноеВремя.Создать();
   Форма=Отчет.ПолучитьФорму();
   
 
   СхемаКомпоновкиДанных = отчет.ПолучитьМакет("Макет");

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

   
   ПроцессорВывода.НачатьВывод();

   // Основной цикл вывода отчета
   Пока Истина Цикл

       // Получим следующий элемент результата компоновки
       ЭлементРезультата = ПроцессорКомпоновки.Следующий();

       Если ЭлементРезультата = Неопределено Тогда
           // Следующий элемент не получен - заканчиваем цикл вывода
           Прервать;

       Иначе
           // Элемент получен - выведем его при помощи процессора вывода
           ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);

       КонецЕсли;

   КонецЦикла;

   ПроцессорВывода.ЗакончитьВывод();
   
КонецПроцедуры
1 IT_PROGRAMMIST
 
19.10.11
17:15
капец. Ошибка простейшая. Тема закрыта
2 Жан Пердежон
 
19.10.11
17:16
заходи ещё
3 IT_PROGRAMMIST
 
19.10.11
17:23
хорошо.Спасибо))))