![]() |
Как в запросе сделать вычисляемое поле ??? Выбрать * Поле1, НекаяФункция(Поле1) из ...??? Пробую конструкцию вида Выбрать Оборудование, ВидОборудования(Оборудование) из РегистрСведений,... У меня Оборудование - это составной тип и поэтому во втором поле хочется получить Вид справочника, для этого я, скажем должен сделать внешнюю ф-цию, которая будет возвращать вид справочника в зависимости от элемента поля "Оборудование" Как это можно сделать? |
ВЫБОР КОГДА ВидОборудования ССЫЛКА Справочник.ТвойСправочник ТОГДА ""ТвойСправочник"" КОГДА ВидОборудования ССЫЛКА Справочник.ДругойСправочник ТОГДА ""ДругойСправочник"" КОНЕЦ |
Спасибо 8-) |
А как получить значение реквизита через точку У меня Регистр ОбщиеПодключения (Измерения - ОбъектИСПДн (справочник), ПодключаемыйОбъект (справочник); Ресурс - Подключено(булево)) Выбрать РС.ОбъектИСПДн, РС.ПодключаемыйОбъект, ВЫБОР Когда РС.ПодключаемыйОбъект Ссылка Справочник.Оборудование Тогда РС.ПодключаемыйОбъект.ВидУстройства.Наименование КОНЕЦ Как ВидУстройства Из РегистрСведений.ОбщиеПодключения Как РС Почему-то в поле "ВидУстройства" значение Null, хотя у любого ПодключаемогоОбъекта, когда он имеет тип ("Оборудование") реквизит ВидУстройства имеет строго определённое значение |
(2) У тебя ТИПЗНАЧЕНИЯ отобрали??? |
5-Reaper >:))) Ага, мы не любим лёгких путей :) Новый год же :) |
[img]https://lh6.googleusercontent.com/-tIi4hWCFloU/Tw9LUs3Ei8I/AAAAAAAAPW4/NE8cVNSMuyU/w370/anigifaaa.gif[/img] |
7-Reaper >А если серьёзно, то посмотри на следующие: Запрос в 1С: ВЫБРАТЬ ТИПЗНАЧЕНИЯ(РасходнаяНакладная.Заказ) КАК Поле1 ИЗ Документ.РасходнаяНакладная КАК РасходнаяНакладная На скуль уходит: SELECT CASE WHEN (T1._Fld2378_TYPE) = 0x08 AND (T1._Fld2378_RTRef) = 0x00000054 THEN 0x0800000054 WHEN (T1._Fld2378_TYPE) = 0x08 AND (T1._Fld2378_RTRef) = 0x00000055 THEN 0x0800000055 ELSE 0x00 END FROM _Document119 T1 WITH(NOLOCK) Запрос в 1С: ВЫБРАТЬ ВЫБОР КОГДА РасходнаяНакладная.Заказ ССЫЛКА Документ.ЗаказПокупателя ТОГДА ""ЗаказПокупателя"" КОГДА РасходнаяНакладная.Заказ ССЫЛКА Документ.ЗаказПоставщику ТОГДА ""ЗаказПоставщику"" ИНАЧЕ ""Неопределено"" КОНЕЦ КАК Поле1 ИЗ Документ.РасходнаяНакладная КАК РасходнаяНакладная На скуль уходит: SELECT CASE WHEN (T1._Fld2378_TYPE = 0x08 AND T1._Fld2378_RTRef = 0x00000054) THEN N'ЗаказПокупателя' WHEN (T1._Fld2378_TYPE = 0x08 AND T1._Fld2378_RTRef = 0x00000055) THEN N'ЗаказПоставщику' ELSE N'Неопределено' END FROM _Document119 T1 WITH(NOLOCK) Разницу видишь? |
(8) Разница в том, что я при необходимости еще один тип данных в реквизит добавлю и не будет необходимости запрос переписывать. |
9-Reaper >Вот именно! Смотреть надо по ситуации :) А топикстартеру это вообще не нужно, судя по (4). |
Текущее время: 06:08. Часовой пояс GMT +3. |