Имя: Пароль:
1C
1С v8
Обращение через точку в запросе
, , ,
0 slavawashere
 
21.01.21
12:18
1. это смертный грех 38% (3)
2. это не смертный грех, но... 38% (3)
3. всегда так делаю 25% (2)
Всего мнений: 8

Во всех статьях про запросы 1С  пишут про "смертный грех" - обращение к данным через точку, которое порождает вложенный запрос и влечет замедление запроса.

Но я не совсем понимаю до конца про что это:  Вот есть у нас регистр "ФактическоеРабочееВремяСотрудников", а там есть измерение "Сотрудник" с типом "Справочник.ФизическиеЛица", а у этого справочника есть реквизит "Магазин" - чтобы понимать где  работает этот сотрудник.

И вот я пишу запрос к этому регистру, пытаясь выяснить всех работающих сотрудников определенного магазина (ну такая задача - надо именно через этот регистр, с учетом еще некоторых сведений из этого регистра, которые я опустил в запросе для простоты)

ВЫБРАТЬ
    ФактическоеРабочееВремяСотрудников.Сотрудник КАК Сотрудник
ИЗ
    РегистрНакопления.ФактическоеРабочееВремяСотрудников КАК ФактическоеРабочееВремяСотрудников
ГДЕ

    ФактическоеРабочееВремяСотрудников.Сотрудник.Магазин = &Магазин

Я тут совершил этот грех или нет?  И если да, то как это исправить?  Как наложить такое условие не обращаясь через две точки?  Делать сначала запрос к справочнику Физ-лица, выбирать оттуда сотрудников определенного магазина и потом в запросе к регистру  выбирать сотрудников только из полученного ранее списка?  А не будет ли это дольше в конечном итоге?
15 sapphire
 
21.01.21
12:29
Анафема

это смертный грех
22 xXeNoNx
 
21.01.21
13:02
Забыл
На кол его!

это смертный грех
57 sikuda
 
21.01.21
19:42
(0) Условия на регистры надо писать в параметрах таблицы, а не в секции ГДЕ

это смертный грех