Проблемы в СКД с набором данных "объект"
☑
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) спасибо.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.