|
СКД использование внешних функций при внешнем наборе данных | ☑ | ||
---|---|---|---|---|
0
fantomrik
12.01.15
✎
11:53
|
Добрый день!
Есть 2 отчета на СКД. В первом набор данных запрос. Во втором - внешний набор данных (в модуле отчета компаную таблицу, так как через Ж.. хотят данные, и пихаю в СКД). Ресурсы отчетов - время (часы). Заказчик захотел, что бы часы отображались более понятно, то есть 90мин отображались не как "1,5" а как "1ч. 30 мин" Написал функцию в общем модуле по переводу числа в такую строку. Она отлично отрабатывает в отчете, где набор данных запрос, но в отчете с внешним набором данных падает на строке: ПроцессорВыводаВТабличныйДокумент.Вывести(ПроцессорКомпоновкиДанных) с ошибкой: Ошибка исполнения отчета по причине: Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата' по причине: {ВнешнийОтчет.ЭкономическиеПоказатели.МодульОбъекта(351)}: Ошибка при вызове метода контекста (Вывести) по причине: Ошибка вывода результата по причине: Ошибка при выводе результата по причине: Ошибка получения данных по причине: Ошибка в выражении по причине: Синтаксическая ошибка "с_ДополнительныеФункции.ПересчетСДесятичнойВЧасовуюСистемуСчисления" данная функция прописана при расчете ресурса (в выражении) аналогично как и в первом отчете. Какую синт ошибку он находит не понятно ( |
|||
1
fantomrik
12.01.15
✎
12:02
|
При попытке сделать "вычисляемое поле" с этой же функцией - та же самая ошибка...
|
|||
2
Reaper_1c
12.01.15
✎
12:04
|
Параметры инициализации процессора компоновки данных в студию.
|
|||
3
Defender aka LINN
12.01.15
✎
12:08
|
(0) "Заказчик захотел, что бы часы отображались более понятно, то есть 90мин отображались не как "1,5" а как "1ч. 30 мин" " - это и без внешних функций можно
|
|||
4
fantomrik
12.01.15
✎
12:10
|
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; Отказ = Ложь; ОсновнаяСхема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); НастройкиОсновнойСхемы = КомпоновщикНастроек.ПолучитьНастройки(); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ПараметрыДанных = НастройкиОсновнойСхемы.ПараметрыДанных; //.... тут идет запрос и его результат в переменой результат ))) ВнешниеНаборыДанных = Новый Структура("ОбщаяТаблица", Результат); МакетКомпоновки = КомпоновщикМакета.Выполнить(ОсновнаяСхема,НастройкиОсновнойСхемы, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); ПроцессорВыводаВТабличныйДокумент = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВыводаВТабличныйДокумент.УстановитьДокумент(ДокументРезультат); ПроцессорВыводаВТабличныйДокумент.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры (3) ммм... Как? |
|||
5
fantomrik
12.01.15
✎
12:11
|
(3) Как?
|
|||
6
Defender aka LINN
12.01.15
✎
12:15
|
(5) Ну, не без извращений, конечно:
И формат ДФ='ЧЧ"ч. "мм"мин."' |
|||
7
fantomrik
12.01.15
✎
12:22
|
(6) Это в запросе предлагаете сразу пересчитать или в ресурсах дописать функцию?
|
|||
8
Defender aka LINN
12.01.15
✎
12:30
|
(7) Если это ресурс, то в ресурсах, вестимо
|
|||
9
fantomrik
12.01.15
✎
12:33
|
(8) Я так и подумал, так как если в запросе то ресурсы в СКД неверно рассчитаются.
Пробую в ресурсах ДобавитьКДате(ДатаВремя(1,1,1), МИНУТА, Сумма(ВремяПрисутствия)*60) ругается что поля минута не обнаруженно, то ли не так прописываю, то ли в ресурсах данная функция недоступна... |
|||
10
Defender aka LINN
12.01.15
✎
12:35
|
"Минута"
|
|||
11
fantomrik
12.01.15
✎
12:52
|
(10) Спасибо, вроде работает, только ресурс чето не верно считает, разбираюсь в формуле (
|
|||
12
fantomrik
12.01.15
✎
14:26
|
А по поводу почему функциями не могу воспользоваться при внешнем наборе данных, нет мыслей ни у кого?
|
|||
13
Defender aka LINN
12.01.15
✎
14:42
|
(12) По поводу этого мыслей нет. При внешнем наборе данных все функции доступны.
А по поводу почему код из (4) не выводит - продам СП, дорого. |
|||
14
fantomrik
12.01.15
✎
15:13
|
Огромное спасибо за помощь! К сожалению не готов купить СП (сопровождение?), буду копать сам дальше
|
|||
15
Defender aka LINN
12.01.15
✎
15:23
|
(14) Синтакс-помощник
|
|||
16
fantomrik
12.01.15
✎
15:36
|
(15) Благодарю вас от всей души!
Оказывается возможность использования нужно включать при ручной компоновке результата... ПроцессорКомпоновкиДанных.Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>) <ВозможностьИспользованияВнешнихФункций> (необязательный) Тип: Булево. Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных. Значение по умолчанию: Ложь Вопрос закрыт благодаря Defender aka LINN |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |