Имя: Пароль:
1C
1С v8
Условие в запросе Элемент1 И Элемент2 В (<Список значений>)
0 PiotrLoginov
 
27.02.14
16:44
Здрасте всем. Возможен ли такой запрос:

ВЫБРАТЬ Справ.Элемент
ИЗ Справочник.НекийСправочник КАК Справ
ГДЕ Элемент.Наименование И Элемент.ПолноеНаименование В (&ЗаранееЗаготовленныйМассивНаименований)

Т.е. может ли "И" в условии служить проверкой того, что и Наименование, и ПолноеНаименование выбираемого элемента присутствуют в некоем списке.
1 salvator
 
27.02.14
16:45
По сути да. Только текст запроса подправить.
2 Wobland
 
27.02.14
16:45
по идее да. если полное - ущербная стока
3 Ненавижу 1С
 
гуру
27.02.14
16:45
ГДЕ Элемент.Наименование В (&ЗаранееЗаготовленныйМассивНаименований)
И Элемент.ПолноеНаименование В (&ЗаранееЗаготовленныйМассивНаименований)
4 zulu_mix
 
27.02.14
16:47
запрос в 0 неверен. ГДЕ Элемент.Наименование И сработает только если Наименование - булево
5 PiotrLoginov
 
27.02.14
16:48
А что подправить? Как это я умудрился ошибиться в таком маленьком запросе ? :)

Собственно причиной вопроса послужило наблюдение вот этого в БП 3.0:

ВЫБРАТЬ
                   |    Пользователи.Ссылка,
                   |    Пользователи.ПометкаУдаления,
                   |    Пользователи.Недействителен,
                   |    Пользователи.Наименование,
                   |    ВЫБОР
                   |        КОГДА Пользователи.ПометкаУдаления
                   |            ТОГДА 0
                   |        КОГДА Пользователи.ИдентификаторПользователяИБ = &ПустойУникальныйИдентификатор
                   |            ТОГДА 4
                   |        ИНАЧЕ 1
                   |    КОНЕЦ КАК НомерКартинки,
                   |    Пользователи.Служебный
                   |ИЗ
                   |    Справочник.Пользователи КАК Пользователи
                   |ГДЕ
                   |    (&ВыбиратьИерархически
                   |                И ИСТИНА В
                   |                    (ВЫБРАТЬ
                   |                        ИСТИНА
                   |                    ИЗ
                   |                        РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
                   |                    ГДЕ
                   |                        СоставыГруппПользователей.Пользователь = Пользователи.Ссылка
                   |                        И СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей)
                   |            ИЛИ НЕ &ВыбиратьИерархически
                   |                И ИСТИНА В
                   |                    (ВЫБРАТЬ
                   |                        ИСТИНА
                   |                    ИЗ
                   |                        Справочник.ГруппыПользователей.Состав КАК ГруппыПользователейСостав
                   |                    ГДЕ
                   |                        ГруппыПользователейСостав.Пользователь = Пользователи.Ссылка
                   |                        И ГруппыПользователейСостав.Ссылка = &ГруппаПользователей))

Вот это вот "ГДЕ
                   |    (&ВыбиратьИерархически
                   |                И ИСТИНА В
                   |                    (некотором количестве элементов, каждый из которых - ИСТИНА)" - здесь же И служит уже другой цели. Это же конъюкция, и в списке ищутся не два значения, а одно - результат конъюкции?
6 PiotrLoginov
 
27.02.14
16:54
(4) аа ну все, тогда понятно. Если я вижу "И" в такой роли, значит оба значения, между которыми оно стоит - из булевой алгебры. А то меня заклинило, когда я попытался понять, зачем в условии сразу два значения проверяются на вхождение в Список Значений.

Но все равно, кажется, "&ВыбиратьИерархически И ИСТИНА В (<Список ИСТИН>)" тут ни к чему. Можно же было "&ВыбиратьИерархически В (<Список ИСТИН>)" . Это было бы ведь то же самое!
Закон Брукера: Даже маленькая практика стоит большой теории.