Имя: Пароль:
1C
1С v8
Формирование отчетов из внешних обработок при помощи СКД
0 aleksey_2012
 
31.05.12
16:07
Конфигурация Зарплата и управление персоналом 2.5 1С:Предприятие 8.2
Пытаюсь создать отчет (РасчетныеЛистки) из внешней обработки.

На обработки есть элементы  
НачалоПериода (Дата)
КонецПериода  (Дата)
Сотрудник     (СправочникСсылка.СотрудникиОрганизаций)

Код обработки:
//**********************************
   СхемаКомпоновкиДанных = Отчеты.РасчетныеЛистки.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
   Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

   Настройки.ПараметрыДанных.Элементы[0].Значение = этаформа.НачалоПериода;
   Настройки.ПараметрыДанных.Элементы[1].Значение = этаформа.КонецПериода;
   Настройки.ПараметрыДанных.Элементы[2].Значение = истина;
   Настройки.ПараметрыДанных.Элементы[3].Значение = "Кратко";

   Настройки.Отбор.Элементы[0].ЛевоеЗначение = этаформа.Сотрудник.ПодразделениеОрганизации;
   Настройки.Отбор.Элементы[2].ЛевоеЗначение = этаформа.Сотрудник;
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
   
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
   
   ТДок = новый ТабличныйДокумент;
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ТДок);
   
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   ТДок.Показать();
//**********************************

После запуска выдает сообщение об ошибке:
{Форма.Форма.Форма(122)}: Ошибка при вызове метода контекста (Инициализировать)
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
по причине:
Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка создания набора данных "НачисленияУдержания"
по причине:
Не найден внешний набор данных "НачисленияУдержания"

////////////////////
Интерактивно отчет работает, помогите пожалуйста найти ошибку :)
1 Kom-off
 
31.05.12
16:11
(0) Попробуй добавить во внешние отчеты, а не внешние обработки.
2 ChAlex
 
31.05.12
16:14
(0) ... Не найден внешний набор - то бишь в СКД используются ВНЕШНИЙ набор, который нужно сначала получить, а перед выполнением положить в СКД
3 aleksey_2012
 
31.05.12
21:39
Если не сложно, подскажите пожалуйста код, которым можно получить внешний набор "НачисленияУдержания" и положить его в СКД
4 ChAlex
 
31.05.12
23:34
Ну блин, я не ясновидящий, какую структруту нужно получать и откуда... Вы хотите что-то получить, так удосужтесь хоть понять чего вы хотите. А по поводу как запихнуть - так можно и хелп открыть и посмотреть синтаксис  ПроцессорКомпоновкиДанных.Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>)

ВнешниеНаборыДанных - структура Ключ - имя набора, значение - таблица с данными с колонками, одноименными значениями полей набора данных СКД типа "набор данных объект"

Ну а как получать данные - ну так запросом, виртуальными таблицами и т.п. и т.д