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

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

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

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

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

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

Я тут совершил этот грех или нет?  И если да, то как это исправить?  Как наложить такое условие не обращаясь через две точки?  Делать сначала запрос к справочнику Физ-лица, выбирать оттуда сотрудников определенного магазина и потом в запросе к регистру  выбирать сотрудников только из полученного ранее списка?  А не будет ли это дольше в конечном итоге?
24 youalex
 
21.01.21
13:05
(0) не вложенный запрос, а соединение.
в твоем примере это нормально, тяжесть греха зависит от того, является ли тип поля составным.

это не смертный грех, но...
45 Anton1307
 
21.01.21
15:52
(43) Что значит "пол не изменен". Ты из какого века свалился?
Я, кстати, ещё лет 5 назад на партнёрском форуме "1С" задал вопрос, как в ЗУП отразить смену пола сотрудником.
Техподдержка ещё думает.

По теме - если обращаешься к какому ни-будь небольшому справочнику на 10-100 записей - через точку не смертный грех.
А вот если через точку регистратора регистра - смертный

это не смертный грех, но...
52 МихаилМ
 
21.01.21
16:55
чем точнее и однозначней 1с8 указать текст запроса, тем предсказуемым и стабильным будет результат преобразования запроса 1с в запрос субд.

1с аж два раза умудрилась накосячить с разименованием через точку. ждем третьего.

это не смертный грех, но...
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.