Имя: Пароль:
1C
1С v8
Фигурные скобки в запросе
,
0 John83
 
11.11.16
15:08
Откуда они берутся и как от них избавиться?
Мне думалось, что в этом случае используются хар-ки компоновки (запрос оттуда выдран), но не найду где именно.
Или вообще не там ищу?
1 John83
 
11.11.16
15:08
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец КАК Организация,
    ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
    ШтатноеРасписаниеОрганизаций.Должность КАК Должность,
    РаботникиОрганизации.Сотрудник КАК Сотрудник,
    ВЫБОР
        КОГДА РаботникиОрганизации.ПериодЗавершения <= КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)
                И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
            ТОГДА РаботникиОрганизации.ЗанимаемыхСтавокЗавершения
        ИНАЧЕ РаботникиОрганизации.ЗанимаемыхСтавок
    КОНЕЦ КАК ЗанимаемыхСтавок,
    РаботникиОрганизации.Сотрудник.Код КАК ТабельныйНомер,
    РаботникиОрганизации.Сотрудник.ВидЗанятости КАК ВидЗанятости
ИЗ
    (ВЫБРАТЬ РАЗЛИЧНЫЕ
        ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
        ШтатноеРасписаниеОрганизаций.Должность КАК Должность
    ИЗ
        РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизаций
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ РАЗЛИЧНЫЕ
        РаботникиОрганизаций.ПодразделениеОрганизации,
        РаботникиОрганизаций.Должность
    ИЗ
        (ВЫБРАТЬ РАЗЛИЧНЫЕ
            РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
            РаботникиОрганизаций.Должность КАК Должность,
            РаботникиОрганизаций.ОбособленноеПодразделение КАК ОбособленноеПодразделение
        ИЗ
            РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ РАЗЛИЧНЫЕ
            Работники.ПодразделениеОрганизацииЗавершения,
            Работники.ДолжностьЗавершения,
            Работники.ОбособленноеПодразделениеЗавершения
        ИЗ
            РегистрСведений.РаботникиОрганизаций КАК Работники
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК ПериодыПерекрытия
                ПО (ПериодыПерекрытия.Период <= Работники.ПериодЗавершения)
                    И (ПериодыПерекрытия.Период > Работники.Период)
                    И (ПериодыПерекрытия.Сотрудник = Работники.Сотрудник)
        ГДЕ
            Работники.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
            И ПериодыПерекрытия.Период ЕСТЬ NULL ) КАК РаботникиОрганизаций) КАК ШтатноеРасписаниеОрганизаций
        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(КОНЕЦПЕРИОДА(КОНЕЦПЕРИОДА(&Период, МЕСЯЦ), МЕСЯЦ), ) КАК РаботникиОрганизации
        ПО ШтатноеРасписаниеОрганизаций.Должность = РаботникиОрганизации.Должность
            И ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации = РаботникиОрганизации.ПодразделениеОрганизации
            И (ВЫБОР
                КОГДА РаботникиОрганизации.ПериодЗавершения <= КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)
                        И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                    ТОГДА РаботникиОрганизации.ПричинаИзмененияСостоянияЗавершения
                ИНАЧЕ РаботникиОрганизации.ПричинаИзмененияСостояния
            КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))}
ГДЕ
    НЕ РаботникиОрганизации.Сотрудник ЕСТЬ NULL
2 bodri
 
11.11.16
15:08
Фигурные скобки это для СКД
3 НЕА123
 
11.11.16
15:09
необязательные таблицы
4 John83
 
11.11.16
15:10
(2) я сказал как-то иначе?
5 John83
 
11.11.16
15:11
(3) где именно в конструкторе они отображаются?
6 bodri
 
11.11.16
15:14
(5) Вкладка "Система компоновки данных"
7 bodri
 
11.11.16
15:18
+ (6)  или вкладка "Построитель"
8 John83
 
11.11.16
15:20
(6) а можно точнее?
http://savepic.net/8572093.htm
9 bodri
 
11.11.16
15:38
(8) галку "Обязательная" поставь
10 bodri
 
11.11.16
15:39
+ (9) и тогда запрос будет без этих скобок, но с соединением
11 Лефмихалыч
 
11.11.16
15:40
(0)  8 лет 4 месяца 4 дня и только сейчас заметил расширение текста запроса для построителя и компоновки? МогучЪ.
12 John83
 
11.11.16
15:46
(11) давно узнал, только именно этот случай стал непонятным
13 John83
 
11.11.16
15:47
(9) (10) короче тупо удалил именно эти скобки и все
14 newbling
 
11.11.16
15:47
(11) всяко бывает. Сколько десятилетий мы не ведали зачем у крышечки коробочки тик-така такой неведомый желобок.
15 Лефмихалыч
 
11.11.16
15:55
(13) эти скобки в соединении - это вот эта галка. Если она выключена, то всё соединение в скобках. В резултате, если из этой таблицы ни чего не выбирается в итоге, то и сама таблица в запросе отсутствует.
https://i.imgur.com/t5rMeMu.png

в СКД так же, это позволяет давать пользователям отчеты, в которых есть соединения с тем, на что у них нет прав - поля из неразрешенной таблицы просто не будут видны пользователю в настройках.
16 John83
 
11.11.16
16:00
(15) большое спасибо за разъяснение :)
PS на всякий случай успокою, в моем случае СКД не будет использоваться
17 Лефмихалыч
 
11.11.16
16:03
(16) если ни СКД, ни построителя не будет, то скобки в соединении не имеют значения - обычный запрос их игнорирует так, как будто их нет, а все, что внутри них, - есть.
Независимо от того, куда вы едете — это в гору и против ветра!