Имя: Пароль:
1C
 
СКД: Как использовать результат запроса СКД который воводится в таб. поле отчета?
0 Trance_1C
 
08.09.09
11:15
В УПП есть отчет на СКД, Ведомость по партиям. (не типовой) работает на регистре Партии товаров на складах. Работает вообщем как обычная ведомость, хочу встроить в него обработку документов с целью восстановления последовательности.
Нужно получить результат запроса СКД, тоже что получает юзверь у себя в таблицу на форму, только для последующей обработки.
В отчете, в модулях формы и объекта чисто.
1 Trance_1C
 
08.09.09
11:16
жду помощи, пока пойду пороюсь в демо конфигурации СКД
2 IronDemon
 
08.09.09
11:21
ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.Вывести (DataCompositionResultValueCollectionOutputProcessor.Output)
ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений (DataCompositionResultValueCollectionOutputProcessor)
Вывести (Output)
Синтаксис:
Вывести(<Процессор компоновки>, <Возможность прерывания пользователем>)
Параметры:
<Процессор компоновки> (обязательный)
Тип: ПроцессорКомпоновкиДанных. Процессор компоновки данных, из которого будут получаться элементы результата.
<Возможность прерывания пользователем> (необязательный)
Тип: Булево. Указывает, может ли пользователь прервать вывод при помощи комбинации клавиш Ctrl+Break.
Значение по умолчанию: Ложь
Возвращаемое значение:
Тип: ТаблицаЗначений; ДеревоЗначений.
Описание:
Выводит весь результат в объект.
При этом автоматически исполняется метод НачатьВывод, перебираются все элементы процессора компоновки и выводятся в результат. После чего исполняется метод ЗакончитьВывод, результат которого возвращается данным методом.
3 Trance_1C
 
08.09.09
11:37
(2) Спасибо :)
4 Trance_1C
 
08.09.09
15:08
{Форма.ФормаОтчета(29)}: Ошибка при вызове метода контекста (Вывести): Ошибка вывода результата
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных,Истина);
по причине:
Ошибка вывода результата
по причине:
Неизвестный тип макета
5 Trance_1C
 
08.09.09
15:09
Ошибка возникает в этой процедуре, может что не так делаю?

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

СКД = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
7 Trance_1C
 
09.09.09
03:40
А вот так все получилось.

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