Имя: Пароль:
1C
1С v8
СКД выдает ошибку при использовании внешнего набора данных
0 biimmap
 
03.10.11
13:08
Всё сделано как в книге. Набор данных точно получается правильно. Его описание в точности по книге. Есть связи наборов данных, но они тоже настроены верно. хотелось бы понять в чём ошибка? Текст подключения внешнего набора данных:

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


ошибка следующая:
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
{ВнешнийОтчет.ВедомостьОстатковТМЦ.МодульОбъекта(261)}: Ошибка при вызове метода контекста (Выполнить)
   МакетКомпоновки = КомпоновщикМакета.Выполнить(
по причине:
Ошибка компоновки макета
по причине:
Поле не найдено "Номенклатура"
1 Fragster
 
гуру
03.10.11
13:08
Ошибка компоновки макета
по причине:
Поле не найдено "Номенклатура"
2 biimmap
 
03.10.11
13:09
смешно. из реальных предложений есть что-нить?
3 Fragster
 
гуру
03.10.11
13:16
А чем это не реальное?
либо в схеме есть Номенклатура, а в описании источника - нет, либо в описании источника есть, а в самом источнике - нет.

построитель = Новый ПостроительОтчета();
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Результат);
Псотроитель.Вывести();
4 biimmap
 
03.10.11
13:23
Источник данных - таблица. Она формируется верно. это я проверял отладчиком. Далее она передается тем текстом, что приведён выше.

В самой компоновке добавлен набор данных - объект. имя его Данные. Тип поля у Номенклатуры стоит Справочник.Номенклатура.

Эту таблицу через связи наборов данных я связываю по номенклатуре с набором данных - запрос.

В самой компоновке в качестве ресурса я использую поле внешнего набора "Количество".

При нажатии кнопки сформировать выходит ошибка которую я указал.

Так надеюсь более понятно что всё настроено верно.
5 GenV
 
03.10.11
13:30
(4) Попробуй пока просто внешний набор в схеме вывести. Если получится, значит дело в связи или в выражении связи.
6 biimmap
 
03.10.11
13:33
мне подсказали... проблема была в том что для разных вариантов отчета использовались разные наборы данных. а связи везде были указаны как обязательные. Убрал обязательность и всё заработало!