Имя: Пароль:
1C
1С v8
условие в запросе к составному полю
0 OnePrg
 
20.03.23
14:38
ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Объект,
    ЗначенияСвойствОбъектов.Свойство,
    ЗначенияСвойствОбъектов.Значение,
    ТИПЗНАЧЕНИЯ(ЗначенияСвойствОбъектов.Значение) КАК ТипЗначения
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
    ЗначенияСвойствОбъектов.Свойство.Код = "000016330"
    И <<?>>ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(ЗначенияСвойствОбъектов.Значение) = "Булево" ТОГДА ЗначенияСвойствОбъектов.Значение ИНАЧЕ ЛОЖЬ КОНЕЦ <-- операция не разрешена в предложении ГДЕ
1 Волшебник
 
20.03.23
14:40
Я бы вот такой фильтр тоже запретил:
ЗначенияСвойствОбъектов.Свойство.Код = "000016330"
2 ГдеСобака Зарыта
 
20.03.23
14:42
А зачем тут выбор? И без выбора прекрасно отберет.
3 OnePrg
 
20.03.23
14:44
Разобрался


ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Объект,
    ЗначенияСвойствОбъектов.Свойство,
    ЗначенияСвойствОбъектов.Значение,
    ТИПЗНАЧЕНИЯ(ЗначенияСвойствОбъектов.Значение) КАК ТипЗначения
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
    ЗначенияСвойствОбъектов.Свойство.Код = "000016330"
    И ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Значение КАК Булево)
4 НЕА123
 
20.03.23
14:46
(2)+1
...
    И ЗначенияСвойствОбъектов.Значение = Истина
5 OnePrg
 
20.03.23
14:51
(4) Не работает
6 Волшебник
 
20.03.23
15:03
Отбор на код свойства при некоторых условиях может обрушить сервер.
Кроме того, такой программный код плохо читается.
7 OnePrg
 
20.03.23
15:09
как обрушить?
при каких условиях?
8 Волшебник
 
20.03.23
15:26
(7) Если в базе будет очень-очень много значений свойств, а свойством станет что-то без кода, то сложно предсказать, как себя поведёт левое соединение по составному полю. Может быть ошибка 256 таблиц или ещё что-то.