Имя: Пароль:
 
1C
 
Проблемы в СКД с набором данных "объект"
0 Sasha_H
 
02.12.09
13:27
Есть СКД в котором создан набор данных как Объект. В элементе справочника добавляю код для расчета данных:

ТекТовар = Объект.Ссылка;
   
   ТекстЗапроса = "ВЫБРАТЬ
                  |    Справочник1.Код,
                  |    Справочник1.Наименование
                  |ИЗ
                  |    Справочник.Справочник1 КАК Справочник1
                  |ГДЕ
                  |    Справочник1.Ссылка = &Ссылка";
   
   Запрос = Новый Запрос(ТекстЗапроса);
   Запрос.УстановитьПараметр("Ссылка",ТекТовар);
   
   РезультатЗапроса = Запрос.Выполнить();
   СписокДанных = РезультатЗапроса.Выгрузить();
   
   ВнешниеНаборыДанных = Новый Структура();
   ВнешниеНаборыДанных.Вставить("ВнешниеДанные",СписокДанных);
   
   СхемаКомпоновкиДанных = Отчеты.Отчет1.ПолучитьМакет("ТаблДанных");
   Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки);
   
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных);
   
   ДокументРезультат = Новый ТабличныйДокумент;
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   
   ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

Все работает... Теперь я хочу сделать вычисление поля в самом СКД через закладку выражения. Ввожу ОбщийМодуль1.ТестВыражения()
вот сама функция в этом общем модуле:

  Функция ТестВыражения() Экспорт
     
     
        Возврат "макм";
   КонецФункции

Пишет:
Синтаксическая ошибка "ОбщийМодуль1.ТестВыражения"

Создаю просто Отчет с СКД "Запрос" и аналогично делаю выражение, ошибки нету... Это баг?
1 detec
 
02.12.09
13:33
(0)

   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных, , Истина);

Необходимо указывать признак использования внешних функций в схеме компоновки.

А вообще бы я очень не рекомендовал бы использовать Объект в компоновке, если до этого просто выбираются данные из базы.

Я трассировал такие запросы процессора компоновки - там в цикле идёи INSERT во временную таблицу БД и Постгрес, в частности, жутко тормозит.
2 Sasha_H
 
02.12.09
13:44
(1) а что за признак?
3 detec
 
02.12.09
13:53
(2)

См. вторую строчку моего кода, 4-й параметр, использование внешних функций.
4 Sasha_H
 
02.12.09
13:57
(3) спасибо.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.