Имя: Пароль:
1C
1С v8
Разбор легкого кода
0 worker-good
 
14.06.13
10:12
Подскажите, что будет в результате такого кода?

Запрос.Текст = "ВЫБРАТЬ и т.д.";
Запрос.Выполнить();
Запрос.Текст = "ВЫБРАТЬ и т.д.";
Запрос.Выполнить();
1 бомболюк
 
14.06.13
10:13
КО: на второй строке вылетит с ошибкой.
2 бомболюк
 
14.06.13
10:13
ан нет, на первой ;-)
3 ZanderZ
 
14.06.13
10:13
"ВЫБРАТЬ и т.д." - ошибку выдаст
4 DarKySiK
 
14.06.13
10:14
пятница в другой ветке
5 wise
 
14.06.13
10:15
(0)выполнится ДВА текста запроса...
6 worker-good
 
14.06.13
10:16
Второй запрос затрет первый?
7 Maxus43
 
14.06.13
10:17
в чем вопрос то? может в первом ВТ сформируется, а второй её юзать будет.
8 ZanderZ
 
14.06.13
10:18
(6) если есть менеджервременныхтаблиц и в тексте ПОМЕСТИТЬ то и не затрет
9 DarKySiK
 
14.06.13
10:18
ДА
10 DarKySiK
 
14.06.13
10:19
(7) да он про ВТ и не говори ничего. попробуй пойми, что он хотел
11 worker-good
 
14.06.13
10:22
Это я разбираю чужой самописный код, так вот такие и казусы там встречаются!
12 ZanderZ
 
14.06.13
10:23
(11) может не казусы... текст в студию...
13 mikecool
 
14.06.13
10:23
(11) работает? не трожь!
14 бомболюк
 
14.06.13
10:24
(11) а где казус то? такое применяется при (8) ну или если это все в транзакции - тогда таким кодом достигается блокировка таблиц первого запроса.
15 worker-good
 
14.06.13
10:26
Пройдет, не пройдет?))
ЗапросАвтоЗаполнения.Текст =
           "ВЫБРАТЬ
           |    ПлановыеНачисленияРаботниковОрганизаций.Период,
           |    ПлановыеНачисленияРаботниковОрганизаций.Сотрудник,
           |    ПлановыеНачисленияРаботниковОрганизаций.ВидРасчета,
           |    ПлановыеНачисленияРаботниковОрганизаций.ПериодЗавершения,
           |    ПлановыеНачисленияРаботниковОрганизаций.Действие,
           |    ПлановыеНачисленияРаботниковОрганизаций.ВидРасчетаЗавершения,
           |    ПлановыеНачисленияРаботниковОрганизаций.ДействиеЗавершения,
           |    ПлановыеНачисленияРаботниковОрганизаций.ДатаНачалаСобытия
           |ПОМЕСТИТЬ ВТПлановыеНачисленияРаботниковОрганизаций
           |ИЗ
           |    РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботниковОрганизаций
           |ГДЕ
           |    ПлановыеНачисленияРаботниковОрганизаций.Сотрудник В
           |            (ВЫБРАТЬ
           |                ВТСписокРаботников.Ссылка
           |            ИЗ
           |                ВТСписокРаботников)
           |    И ПлановыеНачисленияРаботниковОрганизаций.Период <= КОНЕЦПЕРИОДА(&Месяц, МЕСЯЦ)
           |    И ПлановыеНачисленияРаботниковОрганизаций.ВидРасчета.ВидВремени = ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ОтработанноеВПределахНормы)
           |;
           |
           |////////////////////////////////////////////////////////////////////////////////
           |ВЫБРАТЬ
           |    ПлановыеНачисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени КАК КлассификаторВидаВремени,
           |    ПлановыеНачисления.ВидРасчета,
           |    ДатыПолученияВР.ДатаТабеля,
           |    ДатыПолученияВР.Сотрудник
           |ПОМЕСТИТЬ ВТПлановыеНачисленияСотрудников
           |ИЗ
           |    (ВЫБРАТЬ
           |        ДатыТабеля.ДатаТабеля КАК ДатаТабеля,
           |        МАКСИМУМ(ПлановыеНачисления.Период) КАК Период,
           |        ПлановыеНачисления.Сотрудник КАК Сотрудник
           |    ИЗ
           |        ВТДатыТабеля КАК ДатыТабеля
           |            ЛЕВОЕ СОЕДИНЕНИЕ ВТПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисления
           |            ПО (ПлановыеНачисления.Период <= ДатыТабеля.ДатаТабеля)
           |    
           |    СГРУППИРОВАТЬ ПО
           |        ДатыТабеля.ДатаТабеля,
           |        ПлановыеНачисления.Сотрудник) КАК ДатыПолученияВР
           |        ЛЕВОЕ СОЕДИНЕНИЕ ВТПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисления
           |        ПО (ПлановыеНачисления.Период = ДатыПолученияВР.Период)
           |            И (ПлановыеНачисления.Сотрудник = ДатыПолученияВР.Сотрудник)
           |;
           |
           |////////////////////////////////////////////////////////////////////////////////
           |ВЫБРАТЬ РАЗЛИЧНЫЕ
           |    ФактическийПериодДействия.Сотрудник,
           |    ФактическийПериодДействия.ВидРасчета,
           |    ФактическийПериодДействия.НормаЧасов,
           |    ФактическийПериодДействия.ВидУчетаВремени,
           |    ФактическийПериодДействия.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени КАК ВидВремени,
           |    ФактическийПериодДействия.ВидРасчета.ВидВремени КАК ПеречислениеВидВремени,
           |    ФактическийПериодДействия.ГрафикРаботы КАК ГрафикРаботы,
           |    ФактическийПериодДействия.ПериодДействияНачало,
           |    ФактическийПериодДействия.ПериодРегистрации,
           |    ФактическийПериодДействия.Сторно,
           |    ФактическийПериодДействия.ПериодДействияКонец,
           |    ФактическийПериодДействия.ОтработаноЧасов,
           |    ФактическийПериодДействия.Регистратор
           |ПОМЕСТИТЬ ВТНефильтрованныеОсновныеНачисления
           |ИЗ
           |    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия(
           |            Сотрудник В
           |                (ВЫБРАТЬ
           |                    ВТСписокРаботников.Ссылка КАК Сотрудник
           |                ИЗ
           |                    ВТСписокРаботников)) КАК ФактическийПериодДействия
           |ГДЕ
           |    ФактическийПериодДействия.ПериодДействия = &Месяц
           |    И ((НЕ ФактическийПериодДействия.ВидРасчета.ВидВремени В (ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ПустаяСсылка), ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ДополнительноОплачиваемоеВПределахНормы)))
           |            ИЛИ ФактическийПериодДействия.ВидУчетаВремени В (ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоНочнымЧасам), ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоВечернимЧасам)))
           |;
           |
           |////////////////////////////////////////////////////////////////////////////////
           |ВЫБРАТЬ
           |    ДатыТабеля.ДатаТабеля КАК ДатаТабеля,
           |    ВЫБОР
           |        КОГДА Начисления.ВидРасчета ЕСТЬ NULL
           |            ТОГДА ПлановыеНачисления.Сотрудник
           |        ИНАЧЕ Начисления.Сотрудник
           |    КОНЕЦ КАК Сотрудник,
           |    ВЫБОР
           |        КОГДА Начисления.ВидРасчета ЕСТЬ NULL
           |            ТОГДА NULL
           |        ИНАЧЕ Начисления.ГрафикРаботы
           |    КОНЕЦ КАК ГрафикРаботы,
           |    ВЫБОР
           |        КОГДА Начисления.ВидРасчета ЕСТЬ NULL
           |            ТОГДА ПлановыеНачисления.ВидРасчета
           |        ИНАЧЕ Начисления.ВидРасчета
           |    КОНЕЦ КАК ВидРасчета,
           |    ВЫБОР
           |        КОГДА Начисления.ВидРасчета ЕСТЬ NULL
           |            ТОГДА ВЫБОР
           |                    КОГДА ПлановыеНачисления.ВидРасчетаИзмерение ЕСТЬ NULL
           |                        ТОГДА NULL
           |                    ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
           |                КОНЕЦ
           |        ИНАЧЕ Начисления.ВидУчетаВремени
           |    КОНЕЦ КАК ВидУчетаВремени,
           |    ВЫБОР
           |        КОГДА Начисления.ВидРасчета ЕСТЬ NULL
           |            ТОГДА ПлановыеНачисления.ВидРасчетаИзмерение.ВидВремени
           |        ИНАЧЕ Начисления.ВидВремени
           |    КОНЕЦ КАК ВидВремени,
           |    ВЫБОР
           |        КОГДА Начисления.ВидРасчета ЕСТЬ NULL
           |            ТОГДА ВЫБОР
           |                    КОГДА ПлановыеНачисления.ВидРасчетаИзмерение ЕСТЬ NULL
           |                        ТОГДА NULL
           |                    ИНАЧЕ &НачалоМесяца
           |                КОНЕЦ
           |        ИНАЧЕ Начисления.ПериодДействияНачало
           |    КОНЕЦ КАК ПериодДействияНачало,
           |    ВЫБОР
           |        КОГДА Начисления.ВидРасчета ЕСТЬ NULL
           |            ТОГДА ВЫБОР
           |                    КОГДА ПлановыеНачисления.ВидРасчетаИзмерение ЕСТЬ NULL
           |                        ТОГДА NULL
           |                    ИНАЧЕ &КонецМесяца
           |                КОНЕЦ
           |        ИНАЧЕ Начисления.ПериодДействияКонец
           |    КОНЕЦ КАК ПериодДействияКонец,
           |    ВЫБОР
           |        КОГДА Начисления.ВидВремени = ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ОтработанноеСверхНормы)
           |            ТОГДА ВЫБОР
           |                    КОГДА ДатыТабеля.ДатаТабеля = Начисления.ПериодДействияНачало
           |                        ТОГДА Начисления.ОтработаноЧасов
           |                    ИНАЧЕ 0
           |                КОНЕЦ
           |        КОГДА Начисления.ВидВремени = ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ЧасовоеНеотработанное)
           |            ТОГДА ВЫБОР
           |                    КОГДА ДатыТабеля.ДатаТабеля = Начисления.ПериодДействияНачало
           |                        ТОГДА Начисления.НормаЧасов
           |                    ИНАЧЕ 0
           |                КОНЕЦ
           |        ИНАЧЕ ВЫБОР
           |                КОГДА ПлановыеНачисления.ВидРасчетаИзмерение ЕСТЬ NULL
           |                    ТОГДА NULL
           |                ИНАЧЕ 0
           |            КОНЕЦ
           |    КОНЕЦ КАК ВремяЗаДень,
           |    ВЫБОР
           |        КОГДА Начисления.ВидРасчета ЕСТЬ NULL
           |            ТОГДА ВЫБОР
           |                    КОГДА ПлановыеНачисления.ВидРасчетаИзмерение ЕСТЬ NULL
           |                        ТОГДА NULL
           |                    ИНАЧЕ 0
           |                КОНЕЦ
           |        ИНАЧЕ ЕСТЬNULL(ВнутрисменныеПрогулы.Часов, 0)
           |    КОНЕЦ КАК ЧасовОтклонение
           |ПОМЕСТИТЬ ВТОсновныеНачисления
           |ИЗ
           |    ВТДатыТабеля КАК ДатыТабеля
           |        ЛЕВОЕ СОЕДИНЕНИЕ ВТСписокРаботников КАК СотрудникиОрганизаций
           |        ПО (ИСТИНА)
           |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           |            СотрудникиОрганизаций.Ссылка КАК Сотрудник,
           |            ПлановыеНачисления.Период КАК Период,
           |            ПлановыеНачисления.ВидРасчетаИзмерение КАК ВидРасчетаИзмерение,
           |            ПлановыеНачисления.ВидРасчета КАК ВидРасчета,
           |            ПлановыеНачисления.Действие КАК Действие,
           |            ЕСТЬNULL(ОкончаниеПлановыхНачислений.Период, ПлановыеНачисления.ПериодЗавершения) КАК ПериодЗавершения,
           |            ЕСТЬNULL(ОкончаниеПлановыхНачислений.Действие, ПлановыеНачисления.ДействиеЗавершения) КАК ДействиеЗавершения
           |        ИЗ
           |            ВТСписокРаботников КАК СотрудникиОрганизаций
           |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисления
           |                ПО (ПлановыеНачисления.Сотрудник = СотрудникиОрганизаций.Ссылка)
           |                    И (ПлановыеНачисления.ВидРасчетаИзмерение = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОтпускПоУходуЗаРебенкомБезОплаты))
           |                    И (ВЫБОР
           |                        КОГДА ПлановыеНачисления.Действие = ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить)
           |                            ТОГДА &НачалоМесяца <= ПлановыеНачисления.Период
           |                        КОГДА ПлановыеНачисления.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1)
           |                            ТОГДА &КонецМесяца >= ПлановыеНачисления.Период
           |                        ИНАЧЕ ПлановыеНачисления.Период <= &КонецМесяца
           |                    КОНЕЦ)
           |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ОкончаниеПлановыхНачислений
           |                ПО (ОкончаниеПлановыхНачислений.Период <= &КонецМесяца)
           |                    И (ОкончаниеПлановыхНачислений.Сотрудник = СотрудникиОрганизаций.Ссылка)
           |                    И (ОкончаниеПлановыхНачислений.ВидРасчетаИзмерение = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОтпускПоУходуЗаРебенкомБезОплаты))
           |                    И (ОкончаниеПлановыхНачислений.Действие = ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить))
           |                    И (ОкончаниеПлановыхНачислений.Период МЕЖДУ ПлановыеНачисления.Период И ПлановыеНачисления.ПериодЗавершения)) КАК ПлановыеНачисления
           |        ПО (ПлановыеНачисления.Сотрудник = СотрудникиОрганизаций.Ссылка)
           |            И (ВЫБОР
           |                КОГДА ПлановыеНачисления.Действие = ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить)
           |                    ТОГДА ДатыТабеля.ДатаТабеля < ПлановыеНачисления.Период
           |                КОГДА ПлановыеНачисления.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1)
           |                    ТОГДА ДатыТабеля.ДатаТабеля >= ПлановыеНачисления.Период
           |                ИНАЧЕ ДатыТабеля.ДатаТабеля МЕЖДУ ПлановыеНачисления.Период И ДОБАВИТЬКДАТЕ(ПлановыеНачисления.ПериодЗавершения, ДЕНЬ, -1)
           |            КОНЕЦ)
           |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           |            ВТДатыТабеля.ДатаТабеля КАК ДатаТабеля,
           |            Начисления.Сотрудник КАК Сотрудник,
           |            Начисления.ГрафикРаботы КАК ГрафикРаботы,
           |            Начисления.ВидРасчета КАК ВидРасчета,
           |            Начисления.ВидУчетаВремени КАК ВидУчетаВремени,
           |            Начисления.ПериодДействияНачало КАК ПериодДействияНачало,
           |            Начисления.ПериодДействияКонец КАК ПериодДействияКонец,
           |            Начисления.ПеречислениеВидВремени КАК ВидВремени,
           |            Начисления.ОтработаноЧасов КАК ОтработаноЧасов,
           |            Начисления.НормаЧасов КАК НормаЧасов,
           |            Начисления.Регистратор КАК Регистратор
           |        ИЗ
           |            ВТДатыТабеля КАК ВТДатыТабеля
           |                ЛЕВОЕ СОЕДИНЕНИЕ ВТНефильтрованныеОсновныеНачисления КАК Начисления
           |                ПО (ВТДатыТабеля.ДатаТабеля МЕЖДУ Начисления.ПериодДействияНачало И Начисления.ПериодДействияКонец)
           |                    И ((НЕ Начисления.Сторно))
           //|                    И (Начисления.Регистратор <> &ДокументСсылка)
           |                ЛЕВОЕ СОЕДИНЕНИЕ ВТНефильтрованныеОсновныеНачисления КАК СторноНачисления
           |                ПО (ВТДатыТабеля.ДатаТабеля МЕЖДУ СторноНачисления.ПериодДействияНачало И СторноНачисления.ПериодДействияКонец)
           |                    И (СторноНачисления.Сторно)
           |                    И (СторноНачисления.Сотрудник = Начисления.Сотрудник)
           |                    И (СторноНачисления.ВидРасчета = Начисления.ВидРасчета)
           |                    И (СторноНачисления.ПериодРегистрации > Начисления.ПериодРегистрации)
           |        ГДЕ
           |            СторноНачисления.Сотрудник ЕСТЬ NULL
           |            И Начисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени <> ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ПустаяСсылка)
           |            И ((НЕ Начисления.ВидРасчета.ВидВремени В (ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ДополнительноОплачиваемоеВПределахНормы)))
           |                    ИЛИ Начисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени В (ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы), ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы)))) КАК Начисления
           |        ПО ДатыТабеля.ДатаТабеля = Начисления.ДатаТабеля
           |            И (СотрудникиОрганизаций.Ссылка = Начисления.Сотрудник)
           |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВнутрисменноеВремяРаботниковОрганизаций КАК ВнутрисменныеПрогулы
           |        ПО (ВнутрисменныеПрогулы.Сотрудник = Начисления.Сотрудник)
           |            И (ВнутрисменныеПрогулы.Период = ДатыТабеля.ДатаТабеля)
           |            И ((НЕ ВнутрисменныеПрогулы.ВидИспользованияРабочегоВремени.РабочееВремя))
           |            И (Начисления.ВидВремени В (ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ОтработанноеВПределахНормы), ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ЧасовоеОтработанноеВПределахНормы)))
           |ГДЕ
           |    (НЕ ВЫБОР
           |                КОГДА Начисления.ВидРасчета ЕСТЬ NULL
           |                    ТОГДА ПлановыеНачисления.Сотрудник
           |                ИНАЧЕ Начисления.Сотрудник
           |            КОНЕЦ ЕСТЬ NULL )
           |
           |ИНДЕКСИРОВАТЬ ПО
           |    Сотрудник,
           |    ДатаТабеля,
           |    ВидРасчета
           |;
           |
           |////////////////////////////////////////////////////////////////////////////////
           |ВЫБРАТЬ
           |    СостояниеРаботников.Сотрудник КАК Сотрудник,
           |    СостояниеРаботников.Период КАК Период,
           |    СостояниеРаботников.Состояние,
           |    СостояниеРаботников.ПериодЗавершения,
           |    СостояниеРаботников.СостояниеЗавершения,
           |    СостояниеРаботников.ПервичныйДокумент
           |ПОМЕСТИТЬ ВТСостояниеРаботниковСрез
           |ИЗ
           |    РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних(
           |            &НачалоМесяца,
           |            Сотрудник В
           |                (ВЫБРАТЬ
           |                    ВТСписокРаботников.Ссылка КАК Сотрудник
           |                ИЗ
           |                    ВТСписокРаботников)) КАК СостояниеРаботников
           |
           |ИНДЕКСИРОВАТЬ ПО
           |    Сотрудник,
           |    Период
           |;
           |
           |////////////////////////////////////////////////////////////////////////////////
           |ВЫБРАТЬ
           |    СостояниеРаботников.Сотрудник КАК Сотрудник,
           |    &НачалоМесяца КАК Период,
           |    ВЫБОР
           |        КОГДА СостояниеРаботников.ПериодЗавершения <= &НачалоМесяца
           |                И СостояниеРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           |            ТОГДА СостояниеРаботников.СостояниеЗавершения
           |        ИНАЧЕ СостояниеРаботников.Состояние
           |    КОНЕЦ КАК Состояние,
           |    СостояниеРаботников.ПервичныйДокумент
           |ПОМЕСТИТЬ ВТСостояниеРаботников
           |ИЗ
           |    ВТСостояниеРаботниковСрез КАК СостояниеРаботников
           |
           |ОБЪЕДИНИТЬ ВСЕ
           |
           |ВЫБРАТЬ
           |    СостояниеРаботников.Сотрудник,
           |    СостояниеРаботников.ПериодЗавершения,
           |    СостояниеРаботников.СостояниеЗавершения,
           |    СостояниеРаботников.ПервичныйДокумент
           |ИЗ
           |    ВТСостояниеРаботниковСрез КАК СостояниеРаботников
           |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковПроверка
           |        ПО (СостояниеРаботниковПроверка.Сотрудник = СостояниеРаботников.Сотрудник)
           |            И (СостояниеРаботниковПроверка.Период <= СостояниеРаботников.ПериодЗавершения)
           |            И (СостояниеРаботниковПроверка.Период > СостояниеРаботников.Период)
           |ГДЕ
           |    СостояниеРаботников.ПериодЗавершения >= &НачалоМесяца
           |    И СостояниеРаботников.ПериодЗавершения <= &КонецМесяца
           |    И СостояниеРаботниковПроверка.Сотрудник ЕСТЬ NULL
           |
           |ОБЪЕДИНИТЬ ВСЕ
           |
           |ВЫБРАТЬ
           |    СостояниеРаботников.Сотрудник,
           |    СостояниеРаботников.Период,
           |    СостояниеРаботников.Состояние,
           |    СостояниеРаботников.ПервичныйДокумент
           |ИЗ
           |    РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботников
           |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокРаботников КАК ВТСотрудники
           |        ПО СостояниеРаботников.Сотрудник = ВТСотрудники.Ссылка
           |ГДЕ
           |    СостояниеРаботников.Период > &НачалоМесяца
           |    И СостояниеРаботников.Период <= &КонецМесяца
           |
           |ОБЪЕДИНИТЬ ВСЕ
           |
           |ВЫБРАТЬ
           |    СостояниеРаботников.Сотрудник,
           |    СостояниеРаботников.ПериодЗавершения,
           |    СостояниеРаботников.СостояниеЗавершения,
           |    СостояниеРаботников.ПервичныйДокумент
           |ИЗ
           |    РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботников
           |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокРаботников КАК ВТСотрудники
           |        ПО СостояниеРаботников.Сотрудник = ВТСотрудники.Ссылка
           |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК СостояниеРаботниковПроверка
           |        ПО (СостояниеРаботниковПроверка.Сотрудник = СостояниеРаботников.Сотрудник)
           |            И (СостояниеРаботниковПроверка.Период <= СостояниеРаботников.ПериодЗавершения)
           |            И (СостояниеРаботниковПроверка.Период > СостояниеРаботников.Период)
           |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК ПроверкаПерекрытияПериодовСостоянияРаботников
           |        ПО (ПроверкаПерекрытияПериодовСостоянияРаботников.Сотрудник = СостояниеРаботников.Сотрудник)
           |            И ((НЕ(ПроверкаПерекрытияПериодовСостоянияРаботников.Регистратор = СостояниеРаботников.Регистратор
           |                    И ПроверкаПерекрытияПериодовСостоянияРаботников.НомерСтроки = СостояниеРаботников.НомерСтроки)))
           |            И (ПроверкаПерекрытияПериодовСостоянияРаботников.Период = СостояниеРаботников.ПериодЗавершения)
           |ГДЕ
           |    СостояниеРаботников.Период > &НачалоМесяца
           |    И СостояниеРаботников.Период <= &КонецМесяца
           |    И СостояниеРаботников.ПериодЗавершения <= &КонецМесяца
           |    И СостояниеРаботников.ПериодЗавершения > &НачалоМесяца
           |    И СостояниеРаботниковПроверка.Сотрудник ЕСТЬ NULL
           |    И ПроверкаПерекрытияПериодовСостоянияРаботников.Сотрудник ЕСТЬ NULL
           |
           |ИНДЕКСИРОВАТЬ ПО
           |    Сотрудник,
           |    Период
           |;
           |
           |////////////////////////////////////////////////////////////////////////////////
           |ВЫБРАТЬ
           |    Основной.Сотрудник КАК Сотрудник,
           |    ВЫБОР
           |        КОГДА Основной.Состояние В (ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Заболевание), ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ТравмаНаПроизводстве), ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ПоУходуЗаРебенком), ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ПоУходуЗаВзрослым), ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Карантин), ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Протезирование), ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ПособиеПриДолечивании))
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Болезнь)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Командировка)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Командировка)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускЕжегодный)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ОсновнойОтпуск)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускУчебный)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ОтпускНаОбучение)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускУчебныйНеоплачиваемый)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ОтпускНаОбучениеНеоплачиваемый)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускБезСохраненияЗарплаты)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.НеоплачиваемыйОтпускПоРазрешениюРаботодателя)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускПоБеременностиИРодам)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ОтпускПоБеременностиИРодам)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускПоУходуЗаРебенком)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ОтпускПоУходуЗаРебенком)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтсутствуетПоНевыясненнойПричине)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.НеявкиПоНевыясненнымПричинам)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ВынужденныйПрогул)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ВынужденныйПрогул)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ГосударственныеОбязанности)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ГосударственныеОбязанности)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Прогулы)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Прогулы)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ДополнительныеВыходныеДниОплачиваемые)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ДополнительныеВыходныеДниОплачиваемые)
           |        КОГДА Основной.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Простой)
           |            ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Простой)
           |    КОНЕЦ КАК ВидВремени,
           |    Основной.Период КАК ПериодНачало,
           |    ВЫБОР
           |        КОГДА МИНИМУМ(Вспомогательный.Период) ЕСТЬ NULL
           |            ТОГДА &КонецМесяца
           |        ИНАЧЕ ДОБАВИТЬКДАТЕ(МИНИМУМ(Вспомогательный.Период), СЕКУНДА, -1)
           |    КОНЕЦ КАК ПериодКонец,
           |    ДопОтпускаРаботников.ДатаНачалаДоп КАК ДатаНачалаДополнительногоОтпуска,
           |    ДопОтпускаРаботников.ВидДополнительногоОтпуска
           |ПОМЕСТИТЬ ВТСостояниеСотрудниковБезДополнительныхОтпусков
           |ИЗ
           |    ВТСостояниеРаботников КАК Основной
           |        ЛЕВОЕ СОЕДИНЕНИЕ ВТСостояниеРаботников КАК Вспомогательный
           |        ПО (Вспомогательный.Сотрудник = Основной.Сотрудник)
           |            И (Вспомогательный.Период > Основной.Период)
           |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ДопОтпускаРаботников
           |        ПО (ДопОтпускаРаботников.Сотрудник = Основной.Сотрудник)
           |            И (ДопОтпускаРаботников.ВидДополнительногоОтпуска <> ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ПустаяСсылка))
           |            И (ДопОтпускаРаботников.Ссылка = Основной.ПервичныйДокумент)
           |ГДЕ
           |    Основной.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает)
           |
           |СГРУППИРОВАТЬ ПО
           |    Основной.Сотрудник,
           |    Основной.Состояние,
           |    Основной.Период,
           |    ДопОтпускаРаботников.ДатаНачалаДоп,
           | &nb
16 worker-good
 
14.06.13
10:27
ЗапросАвтоЗаполненияТекст =
           "ВЫБРАТЬ РАЗРЕШЕННЫЕ
           |    ВТОсновныеНачисления.ДатаТабеля,
           |    ВТОсновныеНачисления.Сотрудник,
           |    ВТОсновныеНачисления.ГрафикРаботы,
           |    ВТОсновныеНачисления.ВидРасчета,
           |    ВТОсновныеНачисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени КАК ОбозначениеВТабелеУчетаРабочегоВремени,
           |    ВТОсновныеНачисления.ВидВремени,
           |    ВТОсновныеНачисления.ПериодДействияНачало,
           |    ВТОсновныеНачисления.ПериодДействияКонец,
           |    ВТОсновныеНачисления.ВремяЗаДень,
           |    ВТОсновныеНачисления.ВидУчетаВремени,
           |    ВТОсновныеНачисления.ЧасовОтклонение
           |ПОМЕСТИТЬ ВТОтредактированныеНачисления
           |ИЗ
           |    ВТОсновныеНачисления КАК ВТОсновныеНачисления
           |
           |ОБЪЕДИНИТЬ
           |
           |ВЫБРАТЬ
           |    ВТОсновныеНачисления.ДатаТабеля,
           |    ВТОсновныеНачисления.Сотрудник,
           |    ЕСТЬNULL(ГрафикиРаботы.ГрафикРаботы, РаботникиОрганизаций.ГрафикРаботы),
           |    ""ПланируемаяЯвка"",
           |    NULL,
           |    NULL,
           |    ВТОсновныеНачисления.ПериодДействияНачало,
           |    ВТОсновныеНачисления.ПериодДействияКонец,
           |    0,
           |    ВТОсновныеНачисления.ВидУчетаВремени,
           |    СУММА(ВЫБОР
           |            КОГДА ВТОсновныеНачисления.ВидВремени = ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ЧасовоеНеотработанное)
           |                ТОГДА ВТОсновныеНачисления.ВремяЗаДень
           |            ИНАЧЕ 0
           |        КОНЕЦ)
           |ИЗ
           |    ВТОсновныеНачисления КАК ВТОсновныеНачисления
           |        ЛЕВОЕ СОЕДИНЕНИЕ ВТОсновныеНачисления КАК Явки
           |        ПО (Явки.ДатаТабеля = ВТОсновныеНачисления.ДатаТабеля)
           |            И (Явки.Сотрудник = ВТОсновныеНачисления.Сотрудник)
           |            И (Явки.ГрафикРаботы = ВТОсновныеНачисления.ГрафикРаботы
           |                ИЛИ Явки.ГрафикРаботы = ВТОсновныеНачисления.Сотрудник)
           |            И (Явки.ВидВремени = ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ОтработанноеВПределахНормы))
           |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           |            ДатыПериода.ДатаТабеля КАК Дата,
           |            РаботникиОрганизаций.Сотрудник КАК Сотрудник,
           |            МАКСИМУМ(РаботникиОрганизаций.Период) КАК ДатаИзменения
           |        ИЗ
           |            ВТДатыТабеля КАК ДатыПериода
           |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
           |                ПО (РаботникиОрганизаций.Сотрудник В
           |                        (ВЫБРАТЬ
           |                            ВТСписокРаботников.Ссылка
           |                        ИЗ
           |                            ВТСписокРаботников))
           |                    И (РаботникиОрганизаций.Период <= ДатыПериода.ДатаТабеля)
           |        
           |        СГРУППИРОВАТЬ ПО
           |            РаботникиОрганизаций.Сотрудник,
           |            ДатыПериода.ДатаТабеля) КАК ДниСотрудников
           |        ПО (ДниСотрудников.Сотрудник = ВТОсновныеНачисления.Сотрудник)
           |            И (ДниСотрудников.Дата = ВТОсновныеНачисления.ДатаТабеля)
           |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
           |        ПО (РаботникиОрганизаций.Сотрудник = ДниСотрудников.Сотрудник)
           |            И (РаботникиОрганизаций.Период = ДниСотрудников.ДатаИзменения)
           |        ЛЕВОЕ СОЕДИНЕНИЕ ВТГрафикиРаботыПоВидамВремени КАК ГрафикиРаботы
           |        ПО (ГрафикиРаботы.ГрафикРаботы = ВТОсновныеНачисления.ГрафикРаботы)
           |            И (ГрафикиРаботы.Дата = ВТОсновныеНачисления.ДатаТабеля)
           |            И (ГрафикиРаботы.ВидУчетаВремени = ВТОсновныеНачисления.ВидУчетаВремени)
           |ГДЕ
           |    Явки.Сотрудник ЕСТЬ NULL
           |    И ВТОсновныеНачисления.ВидВремени В (ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ОтработанноеСверхНормы), ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ЧасовоеНеотработанное))
           |
           |СГРУППИРОВАТЬ ПО
           |    ВТОсновныеНачисления.ДатаТабеля,
           |    ВТОсновныеНачисления.Сотрудник,
           |    ЕСТЬNULL(ГрафикиРаботы.ГрафикРаботы, РаботникиОрганизаций.ГрафикРаботы),
           |    ВТОсновныеНачисления.ПериодДействияНачало,
           |    ВТОсновныеНачисления.ПериодДействияКонец,
           |    ВТОсновныеНачисления.ВидУчетаВремени;
           |
           |////////////////////////////////////////////////////////////////////////////////
           |ВЫБРАТЬ РАЗРЕШЕННЫЕ
           |    Сотрудники.Ссылка КАК Сотрудник,
           |    ДниСотрудников.Дата,
           |    ДЕНЬ(ДниСотрудников.Дата) КАК День,
           |    ДниСотрудников.ВидВремени КАК БукваВидаВремени,
           |    ЕСТЬNULL(ДниСотрудников.ОсновноеЗначение, 0) КАК ОсновноеЗначение,
           |    ВЫБОР
           |        КОГДА ДниСотрудников.ВидВремени = ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы)
           |            ТОГДА 2
           |        КОГДА ДниСотрудников.ВидВремени = ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы)
           |            ТОГДА 3
           |        КОГДА ДниСотрудников.ВидВремени = ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Работа)
           |                ИЛИ ДниСотрудников.РабочееВремя
           |            ТОГДА 1
           |        ИНАЧЕ 4
           |    КОНЕЦ КАК ПорядокСортировки
           |ИЗ
           |    ВТСписокРаботников КАК Сотрудники
           |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           |            ДниСотрудников.Сотрудник КАК Сотрудник,
           |            ДниСотрудников.Дата КАК Дата,
           |            ВЫБОР
           |                КОГДА ДневныеНеявки.ВидРасчета ЕСТЬ НЕ NULL
           |                        И ДневныеНеявки.ВидРасчета <> ""ПланируемаяЯвка""
           |                        И (ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) > 0
           |                            ИЛИ ДневныеНеявки.ВидРасчета.ВидВремени В (&ВидыВремениУчитываемыеВВыходные)
           |                                И (НЕ ДневныеНеявки.ВидРасчета.ОбозначениеВТабелеУчетаРабочеговремени В (ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы), ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы))))
           |                    ТОГДА ДневныеНеявки.ВидРасчета.ОбозначениеВТабелеУчетаРабочеговремени
           |                КОГДА НЕ ВТСостояниеСотрудников.ВидВремени ЕСТЬ NULL ТОГДА
           |                    ВЫБОР
           |                        КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ВидУчетаВремени, ОбщиеГрафики.ВидУчетаВремени) В  (ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоВечернимЧасам), ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоНочнымЧасам))
           |                            ТОГДА NULL
           |                        ИНАЧЕ ВТСостояниеСотрудников.ВидВремени
           |                    КОНЕЦ
           |                КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) > 0
           |                    ТОГДА ВЫБОР
           |                            КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ВидУчетаВремени, ОбщиеГрафики.ВидУчетаВремени) = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)
           |                                ТОГДА ЕСТЬNULL(ПлановыеНачисленияСотрудников.КлассификаторВидаВремени, ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Работа))
           |                            КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ВидУчетаВремени, ОбщиеГрафики.ВидУчетаВремени) = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоВечернимЧасам)
           |                                ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы)
           |                            КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ВидУчетаВремени, ОбщиеГрафики.ВидУчетаВремени) = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоНочнымЧасам)
           |                                ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы)
           |                        КОНЕЦ
           |                КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) = 0
           |                    И ЕСТЬNULL(ИндивидуальныеГрафики.ВидУчетаВремени, ОбщиеГрафики.ВидУчетаВремени) = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)
           |                    И ЕСТЬNULL(ДневныеНеявки.ВидРасчета, """") <> ""ПланируемаяЯвка""
           |                    ТОГДА  ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ВыходныеДни)
           |            КОНЕЦ КАК ВидВремени,
           |            ВЫБОР
           |                КОГДА ДневныеНеявки.ВидРасчета ЕСТЬ НЕ NULL
           |                        И ДневныеНеявки.ВидРасчета <> ""ПланируемаяЯвка""
           |                        И (ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) > 0
           |                            ИЛИ ДневныеНеявки.ВидРасчета.ВидВремени В (&ВидыВремениУчитываемыеВВыходные)
           |                                И (НЕ ДневныеНеявки.ВидРасчета.ОбозначениеВТабелеУчетаРабочеговремени В (ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы), ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы))))
           |                    ТОГДА ДневныеНеявки.ВидРасчета.ОбозначениеВТабелеУчетаРабочеговремени.РабочееВремя
           |                КОГДА НЕ ВТСостояниеСотрудников.ВидВремени ЕСТЬ NULL ТОГДА
           |                    ВТСостояниеСотрудников.ВидВремени.РабочееВремя
           |                КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) > 0
           |                    ТОГДА ВЫБОР
           |                            КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ВидУчетаВремени, ОбщиеГрафики.ВидУчетаВремени) = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)
           |                                ТОГДА ЕСТЬNULL(ПлановыеНачисленияСотрудников.КлассификаторВидаВремени.РабочееВремя, ИСТИНА)
           |                            КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ВидУчетаВремени, ОбщиеГрафики.ВидУчетаВремени) = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоВечернимЧасам)
           |                                ТОГДА ИСТИНА
           |                            КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ВидУчетаВремени, ОбщиеГрафики.ВидУчетаВремени) = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоНочнымЧасам)
           |                                ТОГДА ИСТИНА
           |                        КОНЕЦ
           |                КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) = 0
           |                    И ЕСТЬNULL(ИндивидуальныеГрафики.ВидУчетаВремени, ОбщиеГрафики.ВидУчетаВремени) = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)
           |                    ТОГДА  ЛОЖЬ
           |            КОНЕЦ КАК РабочееВремя,
           |            ВЫБОР
           |                КОГДА (НЕ ДневныеНеявки.ВремяЗаДень ЕСТЬ NULL )
           |                        И ДневныеНеявки.ВидРасчета <> ""ПланируемаяЯвка""
           |                        И (ДневныеНеявки.ВремяЗаДень > 0)
           |                    ТОГДА ДневныеНеявки.ВремяЗаДень
           |                КОГДА (НЕ ДневныеНеявки.ВидРасчета ЕСТЬ NULL )
           |                        И ДневныеНеявки.ВидРасчета <> ""ПланируемаяЯвка""
           |                        И (ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) > 0
           |                            ИЛИ ДневныеНеявки.ВидРасчета.ВидВремени В (&ВидыВремениУчитываемыеВВыходные)
           |                                И (НЕ ДневныеНеявки.ВидРасчета.ОбозначениеВТабелеУчетаРабочеговремени В (ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы), ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы))))
           |                    ТОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ЕСТЬNULL(ОбщиеГрафики.ОсновноеЗначение, 0)) - ДневныеНеявки.ЧасовОтклонение
           |                КОГДА ДневныеНеявки.ВидРасчета = ""ПланируемаяЯвка""
           |                    ТОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) - ДневныеНеявки.ЧасовОтклонение
           |                КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) > 0
           |                    ТОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение)
           |                КОГДА ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) = 0
           |                    И ЕСТЬNULL(ИндивидуальныеГрафики.ВидУчетаВремени, ОбщиеГрафики.ВидУчетаВремени) = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)
           |                    ТОГДА  8
           |            КОНЕЦ КАК ОсновноеЗначение
           |        ИЗ
           |            (ВЫБРАТЬ
           |                ДатыПериода.ДатаТабеля КАК Дата,
           |                РаботникиОрганизаций.Сотрудник КАК Сотрудник,
           |                МАКСИМУМ(РаботникиОрганизаций.Период) КАК ДатаИзменения
           |            ИЗ
           |                ВТДатыТабеля КАК ДатыПериода
           |                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
           |                    ПО (РаботникиОрганизаций.Сотрудник В
           |                            (ВЫБРАТЬ
           |                                ВТСписокРаботников.Ссылка
           |                            ИЗ
           |                                ВТСписокРаботников))
           |                        И (РаботникиОрганизаций.Период <= ДатыПериода.ДатаТабеля)
           |            
           |            СГРУППИРОВАТЬ ПО
           |                РаботникиОрганизаций.Сотрудник,
           |                ДатыПериода.ДатаТабеля) КАК ДниСотрудников
           |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
           |                ПО ДниСотрудников.Сотрудник = РаботникиОрганизаций.Сотрудник
           |                    И ДниСотрудников.ДатаИзменения = РаботникиОрганизаций.Период
           |                ЛЕВОЕ СОЕДИНЕНИЕ ВТГрафикиРаботыПоВидамВремени КАК ВведенныеТабеля
           |                ПО ДниСотрудников.Сотрудник = ВведенныеТабеля.ГрафикРаботы
           |                    И ((НЕ ВведенныеТабеля.План))
           |                    И ДниСотрудников.Дата = ВведенныеТабеля.Дата
           |                    И (ВведенныеТабеля.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам))
           |                    И (ВведенныеТабеля.Документ ССЫЛКА Документ.ТабельУчетаРабочегоВремениОрганизации)
           |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СводныеИндивидуальныеГрафики КАК СводныеИндивидуальныеГрафики
           |                ПО ДниСотрудников.Сотрудник = СводныеИндивидуальныеГрафики.Сотрудник
           |                    И (СводныеИндивидуальныеГрафики.Месяц = &Месяц)
           |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РабочееВремяРаботниковОрганизаций КАК СводныеТабеля
           |                ПО ДниСотрудников.Сотрудник = СводныеТабеля.Сотрудник
           |                    И (СводныеТабеля.Регистратор ССЫЛКА Документ.ТабельУчетаРабочегоВремениОрганизации)
           |                    И (СводныеТабеля.ВЦеломЗаПериод)
           //|                    И (СводныеТабеля.Регистратор <> &ДокументСсылка)
           |                    И (СводныеТабеля.Период = &Месяц)
           |                ЛЕВОЕ СОЕДИНЕНИЕ ВТОтредактированныеНачисления КАК ДневныеНеявки
           |                ПО ДниСотрудников.Сотрудник = ДневныеНеявки.Сотрудник
           |                    И ДниСотрудников.Дата = ДневныеНеявки.ДатаТабеля
           |
           |                ЛЕВОЕ СОЕДИНЕНИЕ ВТСостояниеСотрудников
           |                ПО ВТСостояниеСотрудников.Сотрудник = ДниСотрудников.Сотрудник
           |                    И ДниСотрудников.Дата МЕЖДУ ВТСостояниеСотрудников.ПериодНачало И ВТСостояниеСотрудников.ПериодКонец
           |
           |                ЛЕВОЕ СОЕДИНЕНИЕ ВТГрафикиРаботыПоВидамВремени КАК ИндивидуальныеГрафики
           |                ПО ДниСотрудников.Сотрудник = ИндивидуальныеГрафики.ГрафикРаботы
           |                    И ДниСотрудников.Дата = ИндивидуальныеГрафики.Дата
           |                    И (ИндивидуальныеГрафики.План)
           |                    И (ИндивидуальныеГрафики.ВидУчетаВремени В (ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоВечернимЧасам), ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоНочнымЧасам), ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)))
           |                    И (ИндивидуальныеГрафики.Документ ССЫЛКА Документ.ВводИндивидуальныхГрафиковРаботыОрганизации)
           |                    И (ДневныеНеявки.ВидРасчета ЕСТЬ NULL
           |                        ИЛИ ДневныеНеявки.ВидРасчета = ""ПланируемаяЯвка""
           |                        ИЛИ ИндивидуальныеГрафики.ВидУчетаВремени = ДневныеНеявки.ВидУчетаВремени
           |                        ИЛИ ИндивидуальныеГрафики.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)
           |                            И ДневныеНеявки.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням))
           |                ЛЕВОЕ СОЕДИНЕНИЕ ВТГрафикиРаботыПоВидамВремени КАК ОбщиеГрафики
           |                ПО (ОбщиеГрафики.ГрафикРаботы = ВЫБОР
           |                        КОГДА РаботникиОрганизаций.ПериодЗавершения <= ДниСотрудников.Дата
           |                                И РаботникиОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           |                            ТОГДА РаботникиОрганизаций.ГрафикРаботыЗавершения
           |                        ИНАЧЕ РаботникиОрганизаций.ГрафикРаботы
           |                    КОНЕЦ)
           |                    И (ОбщиеГрафики.План)
           |                    И ДниСотрудников.Дата = ОбщиеГрафики.Дата
           |                    И (ОбщиеГрафики.ВидУчетаВремени В (ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоВечернимЧасам), ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоНочнымЧасам), ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)))
           |                    И (ИндивидуальныеГрафики.ГрафикРаботы ЕСТЬ NULL )
           |                    И (ДневныеНеявки.ВидРасчета ЕСТЬ NULL
           |                        ИЛИ ДневныеНеявки.ВидРасчета = ""ПланируемаяЯвка""
           |                        ИЛИ ОбщиеГрафики.ВидУчетаВремени = ДневныеНеявки.ВидУчетаВремени
           |                        ИЛИ ОбщиеГрафики.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)
           |                            И ДневныеНеявки.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням))
           |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизацийУвольнения
           |                ПО ДниСотрудников.Сотрудник = РаботникиОрганизацийУвольнения.Сотрудник
           |                    И (РаботникиОрганизацийУвольнения.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))" +
           ?(ПодразделениеОрганизации.Пустая(), "", "    ЛЕВОЕ СОЕДИНЕНИЕ ВТПодразделенияСотрудников КАК ПодразделенияСотрудников
           |    ПО
           |    ПодразделенияСотрудников.Сотрудник = ДниСотрудников.Сотрудник
           |    И ПодразделенияСотрудников.ДатаТабеля = ДниСотрудников.Дата ") +
           "                ЛЕВОЕ СОЕДИНЕНИЕ ВТПлановыеНачисленияСотрудников КАК ПлановыеНачисленияСотрудников
           |                ПО ДниСотрудников.Сотрудник = ПлановыеНачисленияСотрудников.Сотрудник
           |                    И ДниСотрудников.Дата = ПлановыеНачисленияСотрудников.ДатаТабеля
           |        ГДЕ
           |            (РаботникиОрганизацийУвольнения.Период ЕСТЬ NULL
           |                    ИЛИ РаботникиОрганизацийУвольнения.Период > ДниСотрудников.Дата)" +
           ?(ПодразделениеОрганизации.Пустая(), "", "    И НЕ ПодразделенияСотрудников.Сотрудник ЕСТЬ NULL") +
           "            И РаботникиОрганизаций.ГрафикРаботы <> ЗНАЧЕНИЕ(Справочник.ГрафикиРаботы.ПустаяСсылка)
           |            И СводныеТабеля.НомерСтроки ЕСТЬ NULL
           |            И ВведенныеТабеля.ГрафикРаботы ЕСТЬ NULL
           |            И СводныеИндивидуальныеГрафики.НомерСтроки ЕСТЬ NULL
           |            И (НЕ(ИндивидуальныеГрафики.ВидУчетаВремени В (ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоВечернимЧасам), ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоНочнымЧасам))
           |                        И ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, 0) = 0
           |                        И (ОбщиеГрафики.ВидУчетаВремени В (ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоВечернимЧасам), ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоНочнымЧасам))
           |                            И ЕСТЬNULL(ОбщиеГрафики.ОсновноеЗначение, 0) = 0)))
           |            И (ДневныеНеявки.ВидРасчета ЕСТЬ НЕ NULL
           |                    ИЛИ ДневныеНеявки.ВидРасчета ЕСТЬ NULL
           |                        И ВЫБОР
           |            КОГДА ВТСостояниеСотрудников.ВидВремени ЕСТЬ NULL ТОГДА
           |                ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) > 0
           |                ИЛИ
           |                (ЕСТЬNULL(ИндивидуальныеГрафики.ОсновноеЗначение, ОбщиеГрафики.ОсновноеЗначение) = 0
           |                И ЕСТЬNULL(ИндивидуальныеГрафики.ВидУчетаВремени, ОбщиеГрафики.ВидУчетаВремени) = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам))
           |            ИНАЧЕ ИСТИНА КОНЕЦ
           |        )) КАК ДниСотрудников
           |        ПО (ДниСотрудников.ВидВремени ЕСТЬ НЕ NULL )
           |            И Сотрудники.Ссылка = ДниСотрудников.Сотрудник
           |ГДЕ
           |    (&ВключатьВРезультатПустыеЗаписи
           |            ИЛИ ДниСотрудников.ВидВремени ЕСТЬ НЕ NULL )
           |
           |УПОРЯДОЧИТЬ ПО
           |    Сотрудник.Наименование,
           |    Сотрудник,
           |    День,
           |    ПорядокСортировки";
           
           //КонецЕсли;
           
           ЗапросАвтоЗаполнения.Текст = ЗапросАвтоЗаполненияТекст;
           //ТекстЗапросаДляОтладки = ТекстЗапросаДляОтладки + ЗапросАвтоЗаполнения.Текст;
           РезультатЗапроса = ЗапросАвтоЗаполнения.Выполнить();
17 Maxus43
 
14.06.13
10:28
ну видишь с ВТ играется, на первый взгляд всё норм
18 zladenuw
 
14.06.13
10:29
(17) получается что если в 1 запросе поместить данные в вт, выполнить запрос. потом в этому же переменную запроса передать другой текст запроса, то в нем будут доступные эти ВТ ? если ли ограничение ?
19 Lys
 
14.06.13
10:30
(11) Это не казус. это у вас знаний не хватает.
посему - (11) +100
20 Maxus43
 
14.06.13
10:31
(18) Да, менеджер временных таблиц общий
21 Lys
 
14.06.13
10:31
+(19) *поправка
(13) +100
22 zladenuw
 
14.06.13
10:32
(20) ясно. но можно ведь и через пакет выполнить, в 1 тексте запроса или нет ?
23 DarKySiK
 
14.06.13
10:32
в связке с зуповской простынью заголовок ветки забавно смотрится
24 DarKySiK
 
14.06.13
10:33
(22) можно, но не всегда удобно
25 бомболюк
 
14.06.13
10:34
(22) иногда нет: это когда некоторые временные таблицы суперзапроса рассчитываются на основании выборки предыдущих данных.
26 Maxus43
 
14.06.13
10:34
(22) можно, а может он и дальше эти /ВТ где-то использует, или ещё что... Или для удобства разбил на запросы поменьше, второй например с динамическим текстом, конструктор там не работает уже
27 zladenuw
 
14.06.13
10:35
(26) получается что я могу в 1 переменную запроса. передать и выполнить н количество запросов. и эти вт будут храниться пока существуют переменная запроса или нет ?
28 Maxus43
 
14.06.13
10:36
(27) да. и параметры запроса сохраняются на время его жизни
29 AlexITGround
 
14.06.13
10:41
ага, разбор легкого, масенького запроса из зарплатных модулей)) пятница ведь, что сказать)
30 zladenuw
 
14.06.13
10:47
(28) а какое ограничение на вт ? или все зависит от платформы и сервера?
31 Maxus43
 
14.06.13
10:51
(30) я хз, я не разработчик платформы... сам не сталкивался чтобы по какойто причине не хватило мне чего-либо
32 ДенисЧ
 
14.06.13
10:56
(30) хм... Сколько сервер выдержит, столько и ограничение :-)
33 hhhh
 
14.06.13
11:03
(27) ну в ЗУПе десятки таких запросов. 10 лет уже ЗУП работает, никто и не задумывается, где и сколько это будет храниться.
34 GANR
 
14.06.13
11:17
(0) Может быть все, что угодно, варианты развития событий зависят от текста запроса. Может быть вызвано исключение, а может все корректно отработаться.