Имя: Пароль:
1C
1С v8
Вопрос по СКД.
0 kumena
 
08.11.12
16:27
Есть ОсновнаяСхемаКомпоновкиДанных в отчете. В ней же в наборах данных "НаборДанных1" и в этом наборе источник "Данные".
Есть таблица значений с типизированными колонками "ТаблицаРаспределения"

Как заполнить источник Данные?
Такой код

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

вылетает в ошибку:
{Форма.ФормаОтчета.Форма(152)}: Ошибка при вызове метода контекста (Выполнить)
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, ВнешниеНаборыДанных);
по причине:
Несоответствие типов (параметр номер '2')
1 Lelic
 
08.11.12
16:41
А в книжке вот так:
ВнешниеНаборыДанных = Новый Структура;
   ВнешниеНаборыДанных.Вставить("Продажи",СписокПродаж);
   
   СхемаКомпоновкиДанных = ПолучитьМакет("ПродажиКонтрагента");
   Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
     
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных);
2 GANR
 
08.11.12
16:43
(0) Имя поля структуры соответствует имени набора в СКД? Колонки таблицы ТаблицаРаспределения протипизированы? Они соответствуют типам, прописанным в СКД?