Имя: Пароль:
1C
1С v8
СКД. Пользовательские поля. Обращение к реквизиту поля составного типа.
0 Chehante
 
15.04.16
11:48
Привет.

Задача крайне не тривиальная, требующая хороших навыков работы с языком выражений СКД.

В отчет нужно вытащить реквизит поля составного типа в зависимости от типа поля. Пишу в пользовательском поле Выражение детальных записей:

ВЫБОР
КОГДА НЕ Выразить([Объект инвестиций], "Справочник.ОбъектыСтроительства") ЕСТЬ NULL
ТОГДА [Объект инвестиций].[Шифр НЗ]
КОГДА НЕ Выразить([Объект инвестиций], "Справочник.ОсновныеСредства") ЕСТЬ NULL
ТОГДА [Объект инвестиций].[Шифр НЗ]
ИНАЧЕ 0
КОНЕЦ

Проверка показывает, что система попадает в первую ветку, но не может вывести Шифр НЗ, т.к., вероятно, не понимает тип Объекта инвестиций. Как правильно обратиться к реквизиту поля?
1 Chehante
 
15.04.16
13:34
up. ну же, поднатужимся

Выразить([Объект инвестиций], "Справочник.ОбъектыСтроительства").[Шифр НЗ]  не канает
2 Одинесю
 
15.04.16
13:36
Да никто и не тужился))
3 FIXXXL
 
15.04.16
13:36
[Объект инвестиций].Шифр НЗ ?
4 Aleksandr N
 
15.04.16
13:37
(0) А если есть не null?
5 Aleksandr N
 
15.04.16
13:41
хотя, если это составной тип, то может быть еще и неопределено.
6 Chehante
 
15.04.16
13:50
(3) не канает, вариаций много перепробовал
7 Chehante
 
15.04.16
13:52
(4) смотри внимательнее, там НЕ ЕСТЬ NULL и стоит. В первую ветку проваливается. Проблема именно с получением реквизита Шифр НЗ. Если выводить без реквизита, то сам [Объект инвестиций] выводится
8 Elatiell
 
15.04.16
15:08
В запросе СКД на вкладке "Компоновка данных" стоит галочка "Использовать дочерние" напротив поля из которого нужно вытащить Шифр?
9 Elatiell
 
15.04.16
16:32
Почему всегда меня игнорят...Хнык-хнык. :С
10 Serginio1
 
15.04.16
16:36
11 Chehante
 
18.04.16
15:37
(9) Галочка не стоит и поле не выбрано. Если выбрать - пропадет суть задачи(не трогать отчет).
12 Chehante
 
18.04.16
15:39
В настоящий момент реализовал задачу именно переработкой набора данных. А как составить выражение для пользовательского поля - вопрос до сих пор остался без решения.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.