Имя: Пароль:
1C
1С v8
1 СКД передать ТЗ как параметр
0 Кукалёв Анатолий
 
11.08.11
22:33
1) Передаю ТЗ как параметр в СКД:
Процедура УстановитьТаблицуТовары()
   ПараметрКомпоновкиДанных    = Новый ПараметрКомпоновкиДанных("ТЗТовары");
   НайденныйПараметр            = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновкиДанных);
   Если НайденныйПараметр <> Неопределено Тогда
       НайденныйПараметр.Значение      = ТЗТовары;
       НайденныйПараметр.Использование = Истина;
   КонецЕсли;
КонецПроцедуры

2) В СКД запрос(сохраняет его, но почему то выдает ошибку "Ошибка получения информации набора данных"):
ВЫБРАТЬ
   ВТ_ТЗТовары.Наименование
ПОМЕСТИТЬ ВТ_ТЗТовары
ИЗ
   &ТЗТовар КАК ВТ_ТЗТовары

3) В параметрах указал ТЗТовары

Как правильно передать ТЗ в СКД как внешнюю таблицу ?
1 poligraf
 
11.08.11
22:40
"В параметрах указал ТЗТовары"
"ИЗ
   &ТЗТовар"
2 Кукалёв Анатолий
 
11.08.11
22:41
Правка:
3) В параметрах указал ТЗТовар
3 Inform
 
11.08.11
22:52
ВнешниеНаборыДанных = Новый Структура;
   ВнешниеНаборыДанных.Вставить("<ИмяВнешнегоНабораДанных>", <НаборДанных(РезультатЗапроса, ТЗ и т.д.)>);
...
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);

В схеме необходимо добавить "Набор данных - объект" и описать поля набора.

Далее делаешь соединение с внешним источником, если надо.
4 Кукалёв Анатолий
 
11.08.11
22:53
спс, ща буду пробовать
5 Кукалёв Анатолий
 
12.08.11
00:53
Сделал ОсновнаяСхемаКомпоновкиДанных. Добавил НаборДанныхОбъект. Имя объекта = ТЗТовары. В нем описал поля: НомерСтроки(число), Номенклатура(строка).

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


При выполнении пишет:
Ошибка при вызове метода контекста (Инициализировать): Несоответствие типов (параметр номер '1')
ПроцессорКомпоновкиДанных.Инициализировать(ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"), ВнешниеНаборыДанных,, Истина);
по причине:Несоответствие типов (параметр номер '1')

Что ни так делаю ?