Функция в вычисляемом поле СКД

1. go_margaret 18 05.06.14 18:02 Сейчас в теме
Есть стандартный отчет с использованием СКД, в него нужно добавить колонку с данными. Данные получаю в запросе, запрос в общем модуле. В СКД добавляю новое вычисляемое поле и обращаюсь к функции, но ни чего не происходит, ни ошибок не выдает, не в модуль функции не заходит. Может кто подсказать, нужно ли еще что-то для работы данной конструкции?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. Mzhlskii 1 06.06.14 09:44 Сейчас в теме
(1) go_margaret, компановка макета выполняется не программным способом?
9. go_margaret 18 06.06.14 10:54 Сейчас в теме
(6) Olie, Да, программно, но боюсь как раз тут и загвоздка, я не совсем понимаю, как и когда инициализировать параметр. Я его указала, в функции сформировать отчет, но когда выполняю через отладчик он на этой обработке выдает: Обращение к процедуре объекта как к функции (Инициализировать). Но при этом ни каких ошибок в пользовательском режиме нет, он просто игнорирует эту функцию и все.
10. Mzhlskii 1 06.06.14 11:00 Сейчас в теме
(9) go_margaret, в методе Инициализировать 4-й параметр указываешь истина
11. Mzhlskii 1 06.06.14 11:01 Сейчас в теме
(9) go_margaret, обращение к процедуре как к функции это значит что ты пытаешься результат выполнения этого метода положить в переменную, а он ничего не возвращает
12. go_margaret 18 06.06.14 11:08 Сейчас в теме
(11) Olie, Да, указываю истина. Сама функция возвращает строковую переменную, но дело в том, что он туда даже не заходит. Поэтому и возникает вопрос: как и где использовать инициализацию?
2. platon_ 10 05.06.14 18:09 Сейчас в теме
функция в ОбщемМодуле? Экспортная?
3. platon_ 10 05.06.14 18:10 Сейчас в теме
Общий модуль глобальный? если нет то надо обращаться к функции как [ИмяМодуля].[ИмяФункции]()
4. go_margaret 18 06.06.14 08:47 Сейчас в теме
Функция в общем модуле, экспортная, обращаюсь по названию модулю + название функции + передаю параметры, но она не работает, т.е. в саму функцию программа не заходит. Нашла то что нужно инициализировать возможности использования внешних функций, но не могу понять где ее и как применить. Может кто уже с этим работал и пояснит?
5. RocKeR_13 1325 06.06.14 09:03 Сейчас в теме
(4) go_margaret, судя по обращению, галка "Глобальный" не стоит, а остальные ("Клиент", "Сервер", "Вызов сервера") какие проставлены?
8. go_margaret 18 06.06.14 10:50 Сейчас в теме
(5) RocKeR_13, Функция в глобальном модуле (галочки: глобальный, сервер, внешнее соединение, клиент (обычное приложение), вызов сервера).
7. vlasin 06.06.14 10:25 Сейчас в теме
надергал из СП

ПроцессорКомпоновкиДанных

Синтаксис:

Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>)

<ВозможностьИспользованияВнешнихФункций> (необязательный)

Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь


компонуйте программно, инициализируйте параметр <ВозможностьИспользованияВнешнихФункций>
14. AlexKo84 06.06.14 11:21 Сейчас в теме
Предлагаю создать маленький отчет СКД и функцию для него и попробовать сам механизм в действии а когда получится внедрять в свой отчет.
15. go_margaret 18 06.06.14 14:04 Сейчас в теме
(14) AlexKo84, попробовала, пишет что функция не найдена...
16. go_margaret 18 06.06.14 14:06 Сейчас в теме
СтандартнаяОбработка=Истина;
	СхемаКД=ЭтотОбъект.СхемаКомпоновкиДанных; //Можно без ЭтотОбъект т.к. процедура в модуле объекта.
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	Настройки=ЭтотОбъект.КомпоновщикНастроек.Настройки; //
	ПользовательскиеНастройки = ЭтотОбъект.КомпоновщикНастроек.ПользовательскиеНастройки;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных, ЭтотОбъект.КомпоновщикНастроек.Настройки, ДанныеРасшифровки,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений") );
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки,Истина);
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	ТЗ=ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Показать


Вот код выполнения формирования отчет в процедуре ПриКомпоновкеРезультата. Что не так?(((
17. Mzhlskii 1 06.06.14 17:08 Сейчас в теме
Попробуй как в коментариях было написано

Вместо:
Настройки = ЭтотОбъект.КомпоновщикНастроек.Настройки;

Надо писать:
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
18. go_margaret 18 06.06.14 17:45 Сейчас в теме
(17) Olie, во внешнем отчета заработала, а вот во встроенном, ни как((( Не инициализирует эту функцию... Где прописать инициализацию?
19. platon_ 10 06.06.14 18:12 Сейчас в теме
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки,Истина);
20. go_margaret 18 06.06.14 19:27 Сейчас в теме
(19) platon_, да, я знаю, я имею ввиду в какой процедуре модуля программы это написать. При формировании ссылается на общий модуль, текст следующий
Результат.Очистить();
			Настройки = ОтчетОбъект.КомпоновщикНастроек.ПолучитьНастройки();
			ДоработатьТиповойОтчетПередВыводом(ОтчетОбъект);
			ВыводЗаголовкаТиповогоОтчета(ОтчетОбъект, Результат, ВыводВФормуОтчета);
			ОтчетОбъект.ДоработатьКомпоновщикПередВыводом();
			ВывестиТиповойОтчет(ОтчетОбъект, Результат, ДанныеРасшифровки, ВыводВФормуОтчета, ВнешниеНаборыДанных,        ВыводитьШапкуОтчетаНаВсехСтраницах);
			ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);


Этот код стандартный который выполняется при формировании отчета, находится в общем модуле
21. vlasin 06.06.14 21:17 Сейчас в теме
(20), в этой процедуре идет компоновка
ВывестиТиповойОтчет(ОтчетОбъект, Результат, ДанныеРасшифровки, ВыводВФормуОтчета, ВнешниеНаборыДанных,        ВыводитьШапкуОтчетаНаВсехСтраницах);


но 4-й параметр там везде Истина.

Проверил у себя - внешняя функция в типовом отчете отрабатывает без допиливания.
23. go_margaret 18 06.06.14 22:20 Сейчас в теме
(21) vlasin, попробует, но теперь когда будет время)
22. go_margaret 18 06.06.14 22:20 Сейчас в теме
Всем огромное спасибо, правда это у меня все равно не получилась (да и времени мало), решила задачу другим путем)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот