Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Запрос. Оператор В. Временная таблица

Запрос. Оператор В. Временная таблица
Я
   akocur
 
16.02.18 - 20:06
Доброго времени суток!
Почему следующий запрос ничего не возвращает?
"ВЫБРАТЬ
                   |    Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
                   |ПОМЕСТИТЬ ФизЛица
                   |ИЗ
                   |    Справочник.Сотрудники КАК Сотрудники
                   |ГДЕ
                   |    Сотрудники.Ссылка В(&МассивОбъектов)
                   |
                   |ИНДЕКСИРОВАТЬ ПО
                   |    ФизическоеЛицо
                   |;
                   |
                   ////////////////////////////////////////////////////////////////////////////////

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

Запрос создаю в типовой ЗУП редакция 3.1. Платформа 8.3.10.2580. Создаю временную таблицу, так как тип переменной МассивОбъектов массив из элементов типа СправочникСсылка.Сотрудники, а регистр содержит измерение типа СправочникСсылка.ФизическиеЛица.

Если в переменную поместить массив из элементов типа СправочникСсылка.ФизическиеЛица, то оператор В срабатывает и запрос возвращает не пустой результат. Конечно в этом случае не использую временную таблицу и вместо
ФизическоеЛицо В (""ВЫБРАТЬ
                   |                                  ФизЛица.ФизическоеЛицо КАК ФизическоеЛицо
                   |                              ИЗ
                   |                                  ФизЛица КАК ФизЛица"")

пишу
 
ФизическоеЛицо В (&МассивОбъектов)

В консоле запросов при выполнении запроса с временными таблицами, консоль показывает, что во временной таблице есть записи, а конечный результат пустой.

Подскажите, что я не так делаю?
 
 
   Sapiens_bru
 
1 - 16.02.18 - 20:28
""ВЫБРАТЬ
                   |                                  ФизЛица.ФизическоеЛицо КАК ФизическоеЛицо
                   |                              ИЗ
                   |                                  ФизЛица КАК ФизЛица""

Кавычки тут не нужны
"КАК ФизическоеЛицо" тоже лишнее

ХЗ, влияет это или нет
   akocur
 
2 - 16.02.18 - 20:54
(1) Спасибо! Ступил я. Кавычки поставил, для того чтобы можно было вызвать конструктор запроса. И забыл убрать.
   Vladal
 
3 - 16.02.18 - 21:40
(1) псевдонимы КАК ФизическоеЛицо все-таки лучше оставить.
   Chameleon1980
 
4 - 16.02.18 - 21:40
(2) не понял. а без доп кавычек не открывался конструктор*?
   akocur
 
5 - 16.02.18 - 22:30
(4) Если хочешь открыть конструктор запросов внутри конструктора запросов, например для создания запроса к временной таблице, то ставишь кавычки, между ними пробел, выделяешь пробел, вызываешь контекстное меню, выбираешь команду Конструктор запросов.
   akocur
 
6 - 16.02.18 - 22:38
(4) (5) Это в том случае, если в поле написания кода уже есть какой-то код. Например, в моём случае, если написать

|ФизическоеЛицо В (<здесь вызвать конструктор запросов>)
то будет ошибка, а если написать вот так

|ФизическоеЛицо В ("<выделить пробел, вызвать конструктор>")

то ошибки не будет. Главное потом не забыть удалить кавычки.
   Franchiser
 
7 - 17.02.18 - 00:05
Писать подзапрос а параметрах виртуальной таблицы это жесть. Возможно ошибка в платформе нужно поискать. В некоторых релизах были проблемы при наличии в данных, например, значения NULL
   Franchiser
 
8 - 17.02.18 - 00:07
Попробуй так
1 В (выбрать 1 из физлица где физлица.физлицо = физлицо)
   Franchiser
 
9 - 17.02.18 - 00:14
В данном случае будет коррелированный подзапрос, а не простой
   Chameleon1980
 
10 - 17.02.18 - 04:34
(4) (5)
достаточно просто поставить пробел, выделить его и вызвать конструктор запроса - пробуйте.
 
 Рекламное место пустует
   Ненавижу 1С
 
11 - 17.02.18 - 07:01
(7) это от незнания работы с null
   Franchiser
 
12 - 17.02.18 - 15:37
Ошибки в запросах платформы бывают, и они исправляются:

Запрос с операторами В и НЕ
Код ошибки: 10186500 
Код(ы) обращения: SW1207545
Статус: Исправлена в тестовой версии Зарегистрирована: 27.10.2017
Исправлена: "Технологическая платформа", версия 8.3.12.1159 (для тестирования)

Описание:
При выполнении запроса с оператором В, используемом совместно с отрицанием (оператор НЕ), может быть получен неправильный результат, если в операторе В для сравнения используется тип ссылки.


Код ошибки: 10168730 
Код(ы) обращения: SW1082149
Статус: Исправлена в выпущенной версии Зарегистрирована: 18.10.2016
Исправлена: "Технологическая платформа", версия 8.3.8.2322

Описание:
Результат запроса может быть неверным, если запрос содержит операцию ВЫБОР с большим количеством вариантов, а результат этой операции сравнивается с константой или параметром.

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