Имя: Пароль:
1C
1С v8
Помогите разобраться с программным исполнением СКД
0 Альбатрос
 
29.01.14
10:29
Изучаю СКД. Хочу вывести результат исполнения СКД в ТЗ.
В макете простенький запрос:

ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка КАК Док,
    РеализацияТоваровУслуг.Склад,
    РеализацияТоваровУслуг.Контрагент КАК Клиент,
    РеализацияТоваровУслуг.ТорговыйПредставитель КАК ТП,
    РеализацияТоваровУслуг.ВидОперации КАК ВидДока,
    РеализацияТоваровУслуг.СуммаДокумента
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

В настройках указал вывод список и все записи, то есть детальные записи. Пытаюсь получить результат вот так:

ТЗ = Новый таблицаЗначений;    
    
Схема               = ПолучитьМакет("Макет");
КомпоновщикМакета   = Новый КомпоновщикМакетаКомпоновкиДанных;  
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;

Настройки = КомпоновщикНастроек.Настройки;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(Схема,Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

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

ТЗ.ВыбратьСтроку();


Но ТЗ пустая. Что не так?
1 Defender aka LINN
 
29.01.14
10:33

КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
Настройки = КомпоновщикНастроек.Настройки;

Еще вопросы есть?
2 Альбатрос
 
29.01.14
10:39
(1) Вопросов большеи нет, спасибо! =)
3 Альбатрос
 
29.01.14
10:40
пока нет, я щас еще буду пробовать отборы устанавливать =))
4 Альбатрос
 
29.01.14
11:38
Мужики, вот у меня есть на форме ТП. Как мне сделать так, чтоб данные этой ТП соответствовали отбору по умолчанию из моего макета СКД?
Ну что-то в типе:

Макет = ПолучитьМакет("Макет");    
ЭлементыФормы.ТПОтбора.Данные = Макет.НастройкиПоУмолчанию.Отбор;
5 Альбатрос
 
29.01.14
11:47
!
6 sapphire
 
29.01.14
12:24
(4) ТП= "тупая п..да" в инетах...
Таки что же там на форме?
7 sapphire
 
29.01.14
12:25
(4) Добавь реквизит формы с типом "КомпоновщикНастроекКомпоновкиДанных"
8 Кир Пластелинин
 
29.01.14
12:26
вангую: тп = табличное поле
9 sapphire
 
29.01.14
12:29
+(7) Пихаешь егойный отбор алаи пользовательские настройки на форма, инициализация:

АдресСхемыСКД=ПоместитьВоВременноеХранилище(СхемаСКД,Новый УникальныйИдентификатор());
    Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемыСКД));
10 Альбатрос
 
30.01.14
08:52
(9) Хм...
Создал реквизит обработки "Отбор" с типом: КомпоновщикНастроекКомпоновкиДанных

Кинул на форму таб. поле данными = Отбор.Настройки.Отбор и типом значения = ОтборКомпоновкиДанных.

В ПриОткрытии() пишу:

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

Структура отбора не инициализируется. Что я делаю не так?
11 Альбатрос
 
30.01.14
09:08
(9) Огромное спасибо! Надо было добавить: Отбор.ЗагрузитьНастройки(СхемаСкд.НастройкиПоУмолчанию);
Супер!!!
Независимо от того, куда вы едете — это в гору и против ветра!