Имя: Пароль:
1C
1С v8
Два набора данных в СКД, Запрос и Объект
0 kiabs
 
21.10.12
20:24
Добрый день. Удавалось ли кому-нибудь реализовывать два набора данных в СКД, а именно Запрос и Объект вместе? Хочу передавать в СКД ТаблицуЗначений и соединять ее с результатом запроса. Если кто-то делал что-то подобное поделитесь как передали ВнешнийНаборДанных в СКД?
1 hhhh
 
21.10.12
20:27
(0) ну в правом верхнем углу видеоуроки, там вроде подробно разжевано. Если вкратце, то вас выручит третий вид набора - объединение.
2 kiabs
 
21.10.12
20:34
(1) Да нет... Мне не понятен механизм передачи моей готовой ТЗ в СКД. Важно не "Убить" запрос, который там уже создан.
3 Classic
 
21.10.12
20:35
(2)
параметром не взлетает?
4 kiabs
 
21.10.12
20:43
(3) В смысле параметром? А как я потом этот параметр к результату запроса прикручу?
5 hhhh
 
21.10.12
21:21
зачем его прикручивать к результату?
6 kiabs
 
21.10.12
21:48
Всем спасибо!!! Решение нашел!!! Все оказалось достаточно просто!
РЕШЕНИЕ:
В СКД описываем НаборДанных - Запрос и НаборДанных - Объект.
Настраиваем связь наборов данных (левое соединение).
Затем в отчете прописываем такой код:


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

Обратите внимание, что используется стандартный компоновщик настроек, то есть функционал отчета вообще не нарушен.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший