Имя: Пароль:
1C
1С v8
Присвоить тип для пустого значения в запросе
0 MAPATNK2
 
naïve
19.11.19
09:26
Всем доброго дня ут 10.3

Есть запрос ,который для объекта выводит свойства. Но вот проблема, там, где свойства не заполнены, при выгрузке запроса в таблицу нужно выбирать тип значения, а потом прописывать само значение. Можно ли как то пустому значению в запросе присвоить тип свойства, чтобы не нужно было его выбирать в таблице значений?

|ВЫБРАТЬ РАЗЛИЧНЫЕ РАЗРЕШЕННЫЕ
    |    СвойстваОбъектов.Наименование                               КАК СвойстваОбъектовНаименование,
    |    СвойстваОбъектов.Ссылка                                     КАК Свойство,
    |    РегистрСведений.ЗначенияСвойствОбъектов.Значение            КАК Значение
    |
    |ИЗ
    |// Отбираются свойства, предназначенные для заданного типа объектов.
    |    (
    |    ВЫБРАТЬ
    |        ПланВидовХарактеристик.СвойстваОбъектов.Ссылка          КАК Ссылка,
    |        ПланВидовХарактеристик.СвойстваОбъектов.Наименование    КАК Наименование,
    |        ПланВидовХарактеристик.СвойстваОбъектов.ПометкаУдаления КАК ПометкаУдаления
    |
    |    ИЗ
    |        ПланВидовХарактеристик.СвойстваОбъектов
    |
    |    ГДЕ
    |        ПланВидовХарактеристик.СвойстваОбъектов.НазначениеСвойства В ( &НазначениеСвойств )
    |
    |    )                                                           КАК СвойстваОбъектов
    |
    |ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
    |// Присоединяются значения свойств, назначенные для заданного объекта.
    |    РегистрСведений.ЗначенияСвойствОбъектов
    |ПО
    |    РегистрСведений.ЗначенияСвойствОбъектов.Свойство = СвойстваОбъектов.Ссылка
    |    И
    |    РегистрСведений.ЗначенияСвойствОбъектов.Объект = &ОбъектОтбораЗначений
    |
    |ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
    |// Присоединяются группы, которым назначено свойство, для отбора свойств.
    |// Если свойству назначено значение, оно отбирается в любом случае.
    |    РегистрСведений.НазначенияСвойствОбъектов
    |ПО
    |    РегистрСведений.НазначенияСвойствОбъектов.Свойство = СвойстваОбъектов.Ссылка
    |    И
    |    РегистрСведений.ЗначенияСвойствОбъектов.Значение ЕСТЬ NULL
    |
    |ГДЕ
    |// Если значение свойства не задано, свойство должно быть назанчено
    |// или всем объектам, или одной из групп - родителей объекта.
    |    РегистрСведений.НазначенияСвойствОбъектов.Объект ЕСТЬ NULL
    |    ИЛИ
    |    РегистрСведений.НазначенияСвойствОбъектов.Объект В ( &СписокНазначенийСвойств )
    |
    |УПОРЯДОЧИТЬ ПО
    |    СвойстваОбъектовНаименование
    |";
1 ДенисЧ
 
19.11.19
09:29
ВЫБОР КОГДА РегистрСведений.ЗначенияСвойствОбъектов.Значение = НЕОПРЕДЕЛЕНО  Тогда ЗНАЧЕНИЕ(Справочник.ТвойСправочник.ПустаяСсылка)
ИНАЧЕ РегистрСведений.ЗначенияСвойствОбъектов.Значение КОНЕЦ КАК Значение

Справочник.ТвойСправочник заменить на нжуный тип
2 MAPATNK2
 
naïve
19.11.19
09:31
(1) Спасибо
3 yzimin
 
19.11.19
09:31
или так
ЕСТЬNULL(РегистрСведений.ЗначенияСвойствОбъектов.Значение, Значение(Справочник.Номенклатура.ПустаяСсылка)) КАК Значение
4 MAPATNK2
 
naïve
19.11.19
09:34
(1) (3) хотя стоп, что то не то. тут ведь мы получаем тип значения конкретного объекта конфигурации. А я не знаю ведь наперед какой тип имеет свойства. Мне нужно чтобы присваивался тип свойства
5 ДенисЧ
 
19.11.19
09:36
(4) Какой именно тип тебе нужен?
6 MAPATNK2
 
naïve
19.11.19
09:36
(5) Откуда мне знать? Типы у свойств разные. Мне нужно получать пустое значение типа свойства
7 MAPATNK2
 
naïve
19.11.19
09:37
(5) ВЫБОР
    КОГДА ЗначенияСвойствОбъектов.Значение=неопределено ТОГДА ЗНАЧЕНИЕ(СвойстваОбъектов.Ссылка)
    ИНАЧЕ ЗначенияСвойствОбъектов.Значение
КОНЕЦ    


Типа того...только так нельзя XD
8 MAPATNK2
 
naïve
19.11.19
09:39
ТипЗначения.ПривестиЗначение()  только как в запрос такое засунуть?
9 MAPATNK2
 
naïve
19.11.19
09:44
Т.е. я заранее не знаю, какого типа будет свойство. Оно определится только во время выполнения запроса. Дак вот мне нужно получать пустую ссылку с типом значения свойства в ЗАпросе)
10 dka80
 
19.11.19
09:47
ВЫБОР
    КОГДА ЗначенияСвойствОбъектов.Значение Ссылка Справочник.Номенклатура Тогда Значение(Справочник.Номенклатура.ПустаяСсылка)
...
КОНЕЦ
11 dka80
 
19.11.19
09:48
СправочникСсылка.Номенклатура
12 MAPATNK2
 
naïve
19.11.19
09:51
(10) Зачем мне тип значения справочника номенклатуры. Мне нужен тип значения свойства.
13 MAPATNK2
 
naïve
19.11.19
09:51
Ладно, забыли, всем спасибо ,видимо не возможно в 1С определять, заранее неизвестный. Сделал постобработку запроса с помощью ТипЗначения.ПривестиЗначение()
14 dka80
 
19.11.19
09:53
(12) затем, что в запросе ты тип определить не можешь и сравниваешь твой тип с заранее известными тебе
КОГДА ЗначенияСвойствОбъектов.Значение Ссылка Справочник.Номенклатура Тогда Значение(Справочник.Номенклатура.ПустаяСсылка)
КОГДА ЗначенияСвойствОбъектов.Значение Ссылка Справочник.Контрагенты Тогда Значение(Справочник.Контрагенты .ПустаяСсылка)
и так далее, перечисляя все возможные типы твоего значения
15 sqr4
 
19.11.19
09:56
(13) Видимо просто ты не умеешь даже читать внимательно