Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос по синтаксису запроса 1С 8.3.

Вопрос по синтаксису запроса 1С 8.3.
Я
   new_hope
 
27.03.19 - 13:25
Есть простой запрос:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаЕстьОборотДт,
    ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаЕстьОборотКт,
    ХозрасчетныйОбороты.Субконто1,
    ХозрасчетныйОбороты.Субконто2
ПОМЕСТИТЬ ИсходнаяТаблица
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(
            &ДатаНачНеделя,
            &ДатаКон,
            ,
            Счет В ИЕРАРХИИ (&Счет),
            ,
            Субконто1 В (&ВсеСчета)
                И Субконто2 НЕ В (&Субконто2_ПеречислениеНаДругойРР)
                И Организация = &Организация,
            ,
            ) КАК ХозрасчетныйОбороты


У меня вопрос по строке:
"И Субконто2 НЕ В(&Субконто2_ПеречислениеНаДругойРР)" - в таком виде Конструктор ругается на синтаксис (запрос отрабатывает)
"И НЕ Субконто2 В(&Субконто2_ПеречислениеНаДругойРР)" - конструктор не ругается, запрос также отрабатывает

В результате я получаю результат запроса одинаковые.
Задача - получить результат, куда НЕ входят значения из СпискаЗначений "Субконто2_ПеречислениеНаДругойРР"
Или так? : "И НЕ (Субконто2 В(&Субконто2_ПеречислениеНаДругойРР))"

Все три варианта верные и всегда будет одинаковый результат?

Спасибо за совет
 
 
   Ёпрст
 
1 - 27.03.19 - 13:37
(0) да.
   Ёпрст
 
2 - 27.03.19 - 13:38
но если тебе конструктор нужн, то вариант 2
   new_hope
 
3 - 27.03.19 - 13:40
(2) Благодарю... Меня конструктор и ввел в заблуждение...и возникли сомнения, что может в какойто-момент выскочить непредвиденный результат.
   fisher
 
4 - 27.03.19 - 13:58
Классический синтаксис использования НЕ как булевого оператора предполагает что за ним идет булево. Конструктор этому и следует. И я всегда стараюсь именно так и писать. Другое дело, что синтаксис запросов идет навстречу и допускает не совсем каноничную, но более "человекочитаемую" конструкцию.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует