Имя: Пароль:
1C
 
Параметр процессора компоновки данных
0 ivanoa
 
14.07.08
14:35
В документации 1С в описании "Встроенные функции языка выражений системы компоновки данных" есть интересная фраза "Отметим, что использование функций общих модулей разрешено только при указании соответствующего параметра процессора компоновки данных". Подскажите, что здесь имелось ввиду, т.к. по прямой процедуры общих модулей вызывать не получается.?
1 GenV
 
14.07.08
14:45
ПроцессорКомпоновкиДанных (DataCompositionProcessor)
Инициализировать (Initialize)
Синтаксис:
Инициализировать(<Макет>, <Внешние наборы данных>, <Данные расшифровки>, <Возможность использования внешних функций>)
Параметры:
<Макет> (обязательный)
Тип: МакетКомпоновкиДанных. Макет, для которого будет выполняться компоновка.
<Внешние наборы данных> (необязательный)
Тип: Структура. Ключ структуры соответствует имени внешнего набора данных. Значение структуры - внешнему набору данных.
<Данные расшифровки> (необязательный)
Тип: ДанныеРасшифровкиКомпоновкиДанных. Объект, в котором нужно заполнить данные расшифровки. Если не указан, то расшифровка заполняться не будет.
<Возможность использования внешних функций> (необязательный)
Тип: Булево. Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь
Описание:
Инициализировать объект.
2 IronDemon
 
14.07.08
14:46
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина);
Последний параметр = Истина, Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
3 GenV
 
14.07.08
14:48
1+ пример можно посмотретьв любом отчете создаваеммом программно:
отчеты в типовых с СКД, примеры в демо-конфе "Примеры ИТС", Консоль отчетов и т.п.
4 ivanoa
 
14.07.08
15:12
(1) Так предполагаю, Инициализировать() вставляю ПриОткрытии() формы отчета. Но в кофигураторе в СКД все равно ругается на использование процедуры общего модуля. Как быть?
5 ivanoa
 
14.07.08
15:16
При наличии инициализации процедуры общих модулей можно прямо в запросе использовать?
6 IronDemon
 
14.07.08
15:13
(4) Не правильно. Нужно программно формировать отчет.
7 GenV
 
14.07.08
15:17
6+

   СхемаКомпоновкиДанныхКонсоли = ПолучитьСхемуКомпоновкиДанных();
   
   ИсполняемыеНастройки = КомпоновщикНастроек.Настройки;
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанныхКонсоли, ИсполняемыеНастройки, ДанныеРасшифровкиКонсоли);
   
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,, ДанныеРасшифровкиКонсоли);
   
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.РезультатТабДок);
   ПроцессорВывода.НачатьВывод();
   
   Пока Истина Цикл
       
       ЭлементРезультатаКомпоновкиДанных = ПроцессорКомпоновкиДанных.Следующий();
       
       Если ЭлементРезультатаКомпоновкиДанных = Неопределено Тогда
           Прервать;
       КонецЕсли;
       
       ПроцессорВывода.ВывестиЭлемент(ЭлементРезультатаКомпоновкиДанных);
       
   КонецЦикла;
   
   ПроцессорВывода.ЗакончитьВывод();
8 ivanoa
 
14.07.08
15:27
Т.е при нажатии на кнопку Сформировать выполнять эти строки?
9 ivanoa
 
14.07.08
15:27
А в запросе нельзя использовать процедуры?
10 IronDemon
 
14.07.08
15:29
В запросе - нет.
В вычисляемых полях, в представлении - да
11 ivanoa
 
14.07.08
15:40
Хорошо, спасибо