Имя: Пароль:
1C
1С v8
СКД запрос
0 crueltytanya
 
26.09.12
05:31
Очень прошу помочь с СКД.
Создан макет. Набор данных - запрос. Вот ой запрос в СКД:
ВЫБРАТЬ
   ДвижениеОборудованияСрезПоследних.Сотрудник.Фамилия,
   ДвижениеОборудованияСрезПоследних.Сотрудник.Имя,
   ДвижениеОборудованияСрезПоследних.Сотрудник.Отчество,
   ДвижениеОборудованияСрезПоследних.Расположение.НомерКабинета,
   ДвижениеОборудованияСрезПоследних.Расположение.ОбъектРасположение,
   ДвижениеОборудованияСрезПоследних.Расположение.ЭтажРасположение,
   ДвижениеОборудованияСрезПоследних.Период,
   ОС.Наименование,
   ОС.УчетныйНомерОС,
   ОС.СериныйНомерОС,
   ОС.НаименованиеОС.ТипОборудования.Наименование,
   ОС.НаименованиеОС.НаименованиеПолноеОборудования,
   ОС.МОЛОС.Фамилия,
   ОС.МОЛОС.Имя,
   ОС.МОЛОС.Отчество,
   ОС.ДоговорОС.НомерДоговра,
   ОС.ДоговорОС.ТипДоговора,
   ОС.ДоговорОС.КонтрагентДоговора.НаименованиеЮЛПолное,
   ОС.ГодВыпускаОС
ИЗ
   Справочник.ОС КАК ОС
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДвижениеОборудования.СрезПоследних КАК ДвижениеОборудованияСрезПоследних
       ПО ОС.Наименование = ДвижениеОборудованияСрезПоследних.ИнвентарныйНомер
ГДЕ
   ОС.Ссылка = &Ссылка

Дальше...
Создан макет на вкладке Макет. Заголовки параметры.
На форме кнопка, которая должна открывать готовый "Отчет".
В кнопке в процедуру передаю значение параметра Ссылка (для запроса).
Код процедуры для формирования "Отчета":

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

Вот. И все показывает пустые значения.
То же самое создала, только через объекты отчет. Все работает. Разница только в том, что значение Ссылка передаю с формы отчета.
Скажите как передать этот параметр?? Плохо понимаю принцип работы.

Пы.Сы. В переменной ВнешниеДанные типа структура, действительно передается ссылка. Проверено через табло.

ПОМОГИТЕ!!! Плиз.
1 crueltytanya
 
26.09.12
05:42
Блин комментарии в коде остались с названиями переменных из примера. :) Прошу не обращать внимание на это. :)
2 vicof
 
26.09.12
06:07
Через НастройкиСКД
3 crueltytanya
 
26.09.12
06:15
(2) то есть процедура СформироватьКарточку правильно сделана?
4 crueltytanya
 
26.09.12
06:16
(2) не могу сообразить как это сделать через настройки. можно подробнее?
5 vicof
 
26.09.12
06:21
(3) я не телепат.
(4) ТиповыеОтчеты.УстановитьПараметр(НастройкиСКД, "Ссылка", ВнешниеДанные.Ссылка, Использование = Истина)
6 vicof
 
26.09.12
06:21
+(5) это, если БП
7 vicof
 
26.09.12
06:27
точней так: ТиповыеОтчеты.УстановитьПараметр(НастройкиСКД, "Ссылка", ВнешниеДанные.Ссылка)
8 crueltytanya
 
26.09.12
09:20
(5)-(3) ну почему? :(
(6) Это СКЧ - самодельная конфигурация чайника...
(7) есть над чем задуматься, буду пробовать... спасибо за подсказку.