Имя: Пароль:
1C
1С v8
Помогите побороть структуру в Вычисляемом поле СКД
0 vfrcbv
 
27.09.17
14:30
Добрый день.
Есть отчет в СКД, в качестве источника данных выступает запрос к документам на дату. (Одно из полей в запросе - Получатель, тип спр.Контрагенты).

Создаю новое Вычисляемое поле, с выражением Мой_ОбщийМодуль.ПолучитьЗначениеСтруктурыПоКлючу(БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Получатель, ДатаОтправки), "ЮридическийАдрес")
Вроде бы по ключу "ЮридическийАдрес", должен получить значение:

... общий модуль...
Функция ПолучитьЗначениеСтруктурыПоКлючу(ПереданнаяСтруктура, Ключ) Экспорт
    
    Возврат ПереданнаяСтруктура[Ключ];
    
КонецФункции // ПолучитьЗначениеСтруктурыПоКлючу(ИмяСтруктуры, Ключ)
...



но вылазит ошибка:

{ВнешнийОтчет.КонсольСистемыКомпоновкиДанных.Форма.Форма.Форма(967)}: Ошибка при вызове метода контекста (Вывести)
    ПроцессорВыводаРезультатаОтчета.Вывести(ПроцессорКомпоновкиДанных);
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка "Мой_ОбщийМодуль.ПолучитьЗначениеСтруктурыПоКлючу"

Подскажите пожалуйста, почему не работает данная конструкция?
1 rabbidX
 
27.09.17
14:56
(0) Попробуйте без вложенных функций сделать
2 vfrcbv
 
27.09.17
15:27
(1) функция возвращает структуру, поэтому вложил ее в другую функцию, которая возвращает по ключу значение.


Вообще может есть еще какие варианты, в выражение "Вычисляемого поля" прописать функцию общего модуля, которая возвращает структуру, а потом по ключу получить значение.
3 DmitrO
 
27.09.17
15:36
(0)должно работать
1. Мой_ОбщийМодуль должен быть серверный;
2. при инициализации объекта ПроцессорКомпоновкиДанных в методе Инициализировать 4ый параметр должен быть Истина (по умолчанию Ложь).
4 DrShad
 
27.09.17
15:44
а в саму вашу функцию заходит? похоже что нет
5 DrShad
 
27.09.17
15:45
при использовании функций общих модулей нужно включать один хитрый параметр
6 vfrcbv
 
27.09.17
16:33
(3) (4)
1. Модуль серверный.
2. Подскажите, как же включить этот хитрый параметр.
7 DrShad
 
27.09.17
16:35
(6) заходит или нет?
8 DrShad
 
27.09.17
16:41
ПроцессорКомпоновкиДанных (DataCompositionProcessor)
Инициализировать (Initialize)
Синтаксис:

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

последний параметр нужно выставить в ИСТИНА
9 DrShad
 
27.09.17
16:41
во многих консолях он упущен
Закон Брукера: Даже маленькая практика стоит большой теории.