|
Разбор легкого кода | ☑ | ||
---|---|---|---|---|
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) Может быть все, что угодно, варианты развития событий зависят от текста запроса. Может быть вызвано исключение, а может все корректно отработаться.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |