Имя: Пароль:
1C
 
СКД 8.2
0 Black_Doctor
 
28.11.10
13:48
значит тема такая, передаю в процедуру строку результата выборки данных по запросу, СКД отрабатывает, а в результирующий документ ничего не выводит, подскажите, что делаю не так???
код процедуры:
Процедура ЗаполнениеОтчетаОбОшибках(ТаблицаЗначений = Неопределено,Дополнение = "")
       // Получение схемы и настройки
       СхемаКомпоновкиДанных    = ЭтотОбъект.ПолучитьМакет("Макет");
       КомпоновщикНастроекСхемы = Новый КомпоновщикНастроекКомпоновкиДанных;
       НовыйИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Найти("НаборДанных1");
       НовыйНаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Найти("НаборДанных1");
       Для каждого стр из ТаблицаЗначений.Владелец().колонки Цикл
           НовоеПоле = НовыйНаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
           НовоеПоле.Заголовок = стр.имя;
           НовоеПоле.ВыражениеПредставления = стр.имя;
           НовоеПоле.ПутьКДанным = стр.имя;
           НовоеПоле.Поле = стр.имя;
       КонецЦикла;
       КомпоновщикНастроекСхемы.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
       Настройки = КомпоновщикНастроекСхемы.Настройки;

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

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   
КС = Новый КвалификаторыСтроки(100);
   
Массив = Новый Массив;
Массив.Добавить(Тип("Строка"));
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);
ТЗ =Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Поле",ОписаниеТиповС);
//-----------------------------------------------
   
НовСтрока = ТЗ.Добавить();
НовСтрока.Поле = "Значение1" ;
//-------------------------------------------------

ВнешнийНабор = Новый Структура;
ВнешнийНабор.Вставить("НаборДанных1",ТЗ);

ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешнийНабор , ДанныеРасшифровки);
2 Black_Doctor
 
28.11.10
16:34
я туда пробовал передать как Таблицу значений, так и сроку выборки из запроса.... ни то ни то не выводиться...
3 Beans
 
28.11.10
16:45
в самой схеме создать набор данных "объект"
и поле: Имя объекта , содержащего данные : НаборДанных1
и поля вручную создать
4 Black_Doctor
 
28.11.10
16:51
дело в том, что мне динамически нужно создавать набор данных и соответственно поля тоже динамически нужно задавать)))
5 Beans
 
28.11.10
17:42
тогда все надо динамически придется делать и добавлять поля группировок и выбранные поля

полчается примерно так

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

//добавим выбранные поля
ВыбранныеПоля = Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ВыбранныеПоля.Использование =Истина;
   
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
   
   
ВнешнийНабор = Новый Структура;
ВнешнийНабор.Вставить("НаборДанных1",ТЗ);
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешнийНабор ,ДанныеРасшифровки);
6 Black_Doctor
 
28.11.10
19:25
{Форма.Форма.Форма(45)}: Ошибка при вызове метода контекста (Инициализировать)
       ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешнийНаборДанных);
по причине:
Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Не найден внешний набор данных

вот такая вот ошибка, при таком вот коде:
   Процедура ЗаполнениеОтчетаОбОшибках(ТаблицаЗначений = Неопределено,Дополнение = "")
       // Получение схемы и настройки
       
       СхемаКомпоновкиДанных    = ЭтотОбъект.ПолучитьМакет("Макет");
       КомпоновщикНастроекСхемы = Новый КомпоновщикНастроекКомпоновкиДанных;
       НовыйИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Найти("ТаблицаЗначений");
       НовыйНаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Найти("НаборДанных1");
       КомпоновщикНастроекСхемы.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
       Настройки = КомпоновщикНастроекСхемы.Настройки;
       //добавим группировки отчета
       Группировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
       Группировка.Использование =Истина;
       Для каждого стр из ТаблицаЗначений.Владелец().колонки Цикл
           НовоеПоле = НовыйНаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
           НовоеПоле.Заголовок = стр.имя;
           НовоеПоле.ВыражениеПредставления = стр.имя;
           НовоеПоле.ПутьКДанным = стр.имя;
           НовоеПоле.Поле = стр.имя;
       КонецЦикла;
       //добавим поле в группировку
       ПолеНовое =   Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
       ПолеНовое.Поле =Новый ПолеКомпоновкиДанных(стр.Имя);
       ПолеНовое.Использование = Истина;
       //добавим выбранные поля
       ВыбранныеПоля = Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
       ВыбранныеПоля.Использование =Истина;
       
       КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
       МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
       
       // Инициализируем процессор компоновки
       
       ВнешнийНаборДанных = Новый Структура;
       ВнешнийНаборДанных.Вставить("ТаблицаЗначений",ТаблицаЗначений);
       ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
       ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешнийНаборДанных);
       
       // Выводим результат
       
       ДокументРезультат = Новый ТабличныйДокумент;
       ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
       ПроцессорВывода.УстановитьДокумент(ОсновнойМакетОшибок);
       ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
       //ОсновнойМакетОшибок.Присоединить(ДокументРезультат);
   КонецПроцедуры
7 Black_Doctor
 
29.11.10
00:53
ну, ну мне категорически не помогают))) придеться собирать макеты)))