Имя: Пароль:
1C
1С v8
СКД не находит внешний набор данных
0 dima1422
 
17.10.12
09:30
Отчет запускаю в бухгалтерии 2.0.34.7
Платформа 8.2.16.352

В процедуре ПриКомпоновкеРезультата подключаюсь к другой базе и получаю таблицу значений, которую мне нужно передать в СКД, как внешний набор данных
Далее пишу

ТаблицаУНФ=ЗапросУНФ.Выполнить().Выгрузить();


Настройки = КомпоновщикНастроек.Настройки;
Счет =  Настройки.ПараметрыДанных.Элементы[2];
Счет.Значение =ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1");
Счет.Использование = Истина;

СвойствоНоменклатуры=Настройки.ПараметрыДанных.Элементы[3];
СвойствоНоменклатуры.Значение= ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("002");
СвойствоНоменклатуры.Использование= Истина;



СвойствоНоменклатуры2=Настройки.ПараметрыДанных.Элементы[4];
СвойствоНоменклатуры2.Значение= ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("003");
СвойствоНоменклатуры2.Использование= Истина;
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ТаблицаУНФ",ТаблицаУНФ);

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


При выполнении пишет ошибку : "Ошибка создания набора данных "Наборданных2"
по причине:
Не найден внешний набор данных "ТаблицаУНФ"
"
название набора соответствует, куда копать- не понимаю

до этого в похожем отчете выскакивала такая же ошибка, но после нажатия на ОК отчет все-таки выводился
1 Нуф-Нуф
 
17.10.12
09:33
в ТаблицаУНФ - какие данные сидят?
2 Нуф-Нуф
 
17.10.12
09:33
если объектные типы - то не взлетит.
3 Нуф-Нуф
 
17.10.12
09:34
и еще можешь попробовать заменить  ТаблицаУНФ=ЗапросУНФ.Выполнить().Выгрузить();
на ТаблицаУНФ = Новый ТаблицаЗначений;
и заполнить ее программно в этом же модуле. так сказать для чистоты эксперимента
4 Defender aka LINN
 
17.10.12
09:41
(1) Я отсюда не открывая кода вижу, что у него "ТаблицаУНФ" - COM-объект
5 Нуф-Нуф
 
17.10.12
09:56
(4) ну я это и имел ввиду :)
6 dima1422
 
17.10.12
09:58
Не, скинул не весь код
ТаблицаУНФ - это ТЗ

СправочникНоменлатурыУНФ= connection.Справочники.Номенклатура;    
   
ЗапросУНФ.УстановитьПараметр("Группа",СправочникНоменлатурыУНФ.НайтиПоКоду("00167"));

                                                   

ТаблицаУНФ=ЗапросУНФ.Выполнить().Выгрузить();
7 dima1422
 
17.10.12
10:04
Да, прошу прощения, действительно, COM-объект
Получается, надо перезаполнить в новую ТЗ?
8 Aprobator
 
17.10.12
10:14
получается, что надо дать все таки внешний набор данных, а не COM объект.
9 dima1422
 
17.10.12
10:25
Перевел в Таблицу Значений, теперь выдает ту же самую ошибку- что не найден внешний набор данных, правда, после нажатия ОК отчет все-таки выводит

Почему ошибка тогда вылазит, не пойму
10 Aprobator
 
17.10.12
13:02
(9) мля, значит внтури ТЗ есь где то COM объект.
11 GANR
 
17.10.12
13:12
(7) Может ЗначениеВСтрокуВнутр и ЗначениеИзСтрокиВнутр помогут? Если имеют место одинаковые ссылки в разных базах.
Независимо от того, куда вы едете — это в гору и против ветра!