Выгрузка готового отчета «Численность и текучесть кадров»

В данной статье мы рассмотрим пример выгрузки готового отчета «Численность и текучесть кадров», который включает в себя такие данные, как:

  • средняя численность кадров,

  • среднесписочная численность кадров

  • коэффициент текучести кадров.

Получение текста запроса из Конфигуратора

Для того, чтобы получить текст запроса из Конфигуратора необходимо знать название отчета, который Вы планируете сформировать. Выяснить наименование отчета можно с помощью функционала 1С «Информация для технического специалиста». В данном случае, название нужного нам отчета «СтатистикаПерсонала».

Теперь переходим в Конфигуратор.

Находим отчет «СтатистикаПерсонала», выбираем его и, в открывшемся окне, нажимаем кнопку «Действия», затем — «Открыть модуль объекта».

Теперь необходимо найти текст запроса, который мы будем использовать в проекте для выгрузки отчета «Численность и текучесть кадров». Находим строку, начинающуюся с Процедура ПриКомпоновкеРезультата, разворачиваем ее и находим здесь ПроцессорВывода ставим курсор и устанавливаем здесь «Точку останова» (с помощью соответствующей кнопки в верхней панели Конфигуратора).

Теперь переходим к отладке.

Важно! Перед отладкой

Обязательно убедитесь, что у Вас включены фоновые задания перед тем как запустить отладку.

Заходим в меню «Отладка», затем выбираем «Подключение…».

В открывшемся окне нажимаем кнопку «Автоматическое подключение…» и проверяем, чтобы стояли флаги «Клиентские и внешние соединения на сервере» и «Фоновые задания», нажимаем «ОК», затем «Закрыть».

Заходим в меню «Отладка» и нажимаем «Начать отладку».

1С перезапустится и теперь необходимо открыть отчет «Численность и текучесть кадров» и сформировать его с помощью соответствующей кнопки.

После формирования отчета интерфейс перекинет нас обратно в Конфигуратор. На отметке «Точка останова» в конфигураторе должна появится стрелка — это значит, что процесс отладки прошел успешно.

Теперь находим в тексте слово Инициализировать и проверяем, что инициализируется в данном случае: МакетКомпоновки. Далее нажимаем кнопку «Вычислить выражение».

Здесь, в МакетКомпоновки и находится нужный нам текст запроса. Разворачиваем его, переходим в «НаборыДанных» и находим «Запрос». Дважды кликаем левой кнопкой мыши по запросу и нажимаем кнопку «Открыть», из открывшегося окна копируем текст запроса.

Текст запроса:
ВЫБРАТЬ 0 КАК Цифра ПОМЕСТИТЬ ВТЦифры ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(1980, 1, 1) ИНАЧЕ &НачалоПериода КОНЕЦ, ДЕНЬ), ДЕНЬ, Цифры.Цифра + ЕСТЬNULL(Цифры10.Цифра, 0) * 10 + ЕСТЬNULL(Цифры100.Цифра, 0) * 100 + ЕСТЬNULL(Цифры1000.Цифра, 0) * 1000 + ЕСТЬNULL(Цифры10000.Цифра, 0) * 10000 + ЕСТЬNULL(Цифры100000.Цифра, 0) * 100000), ДЕНЬ) КАК Период ПОМЕСТИТЬ ПредставленияПериоды ИЗ ВТЦифры КАК Цифры ЛЕВОЕ СОЕДИНЕНИЕ ВТЦифры КАК Цифры10 ПО (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(1980, 1, 1) ИНАЧЕ &НачалоПериода КОНЕЦ, ДЕНЬ), НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), ДЕНЬ) ТОГДА &ОкончаниеИнтервалаПредставленияПериоды ИНАЧЕ &КонецПериода КОНЕЦ, ДЕНЬ), ДЕНЬ) > 9) ЛЕВОЕ СОЕДИНЕНИЕ ВТЦифры КАК Цифры100 ПО (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(1980, 1, 1) ИНАЧЕ &НачалоПериода КОНЕЦ, ДЕНЬ), НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), ДЕНЬ) ТОГДА &ОкончаниеИнтервалаПредставленияПериоды ИНАЧЕ &КонецПериода КОНЕЦ, ДЕНЬ), ДЕНЬ) > 99) ЛЕВОЕ СОЕДИНЕНИЕ ВТЦифры КАК Цифры1000 ПО (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(1980, 1, 1) ИНАЧЕ &НачалоПериода КОНЕЦ, ДЕНЬ), НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), ДЕНЬ) ТОГДА &ОкончаниеИнтервалаПредставленияПериоды ИНАЧЕ &КонецПериода КОНЕЦ, ДЕНЬ), ДЕНЬ) > 999) ЛЕВОЕ СОЕДИНЕНИЕ ВТЦифры КАК Цифры10000 ПО (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(1980, 1, 1) ИНАЧЕ &НачалоПериода КОНЕЦ, ДЕНЬ), НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), ДЕНЬ) ТОГДА &ОкончаниеИнтервалаПредставленияПериоды ИНАЧЕ &КонецПериода КОНЕЦ, ДЕНЬ), ДЕНЬ) > 9999) ЛЕВОЕ СОЕДИНЕНИЕ ВТЦифры КАК Цифры100000 ПО (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(1980, 1, 1) ИНАЧЕ &НачалоПериода КОНЕЦ, ДЕНЬ), НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), ДЕНЬ) ТОГДА &ОкончаниеИнтервалаПредставленияПериоды ИНАЧЕ &КонецПериода КОНЕЦ, ДЕНЬ), ДЕНЬ) > 99999) ГДЕ НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВЫБОР КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(1980, 1, 1) ИНАЧЕ &НачалоПериода КОНЕЦ, ДЕНЬ), ДЕНЬ, Цифры.Цифра + ЕСТЬNULL(Цифры10.Цифра, 0) * 10 + ЕСТЬNULL(Цифры100.Цифра, 0) * 100 + ЕСТЬNULL(Цифры1000.Цифра, 0) * 1000 + ЕСТЬNULL(Цифры10000.Цифра, 0) * 10000 + ЕСТЬNULL(Цифры100000.Цифра, 0) * 100000), ДЕНЬ) МЕЖДУ ВЫБОР КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(1980, 1, 1) ИНАЧЕ &НачалоПериода КОНЕЦ И ВЫБОР КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), ДЕНЬ) ТОГДА &ОкончаниеИнтервалаПредставленияПериоды ИНАЧЕ &КонецПериода КОНЕЦ ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ВТЦифры ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ Сотрудники.Ссылка КАК Сотрудник, ДАТАВРЕМЯ(1, 1, 1) КАК Период ПОМЕСТИТЬ ВТСотрудники ИЗ Справочник.Сотрудники КАК Сотрудники ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ТаблицаОтборов.Период КАК Период, ТаблицаОтборов.Сотрудник КАК Сотрудник ПОМЕСТИТЬ ВТОтборовРазличныхСотрудников ИЗ ВТСотрудники КАК ТаблицаОтборов ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники ПО ТаблицаОтборов.Сотрудник = СправочникСотрудники.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ИзмеренияДаты.Сотрудник КАК Сотрудник, РегистрСведений.Должность КАК Должность ПОМЕСТИТЬ ПредставленияКадровыеДанныеСотрудников ИЗ ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК РегистрСведений ПО (РегистрСведений.ДатаНачала <= ВЫБОР КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ) КОНЕЦ) И (РегистрСведений.ДатаОкончания >= ВЫБОР КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ) КОНЕЦ) И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник) И (РегистрСведений.ФизическоеЛицо = ИзмеренияДаты.Сотрудник.ФизическоеЛицо) ИНДЕКСИРОВАТЬ ПО Сотрудник ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ВТОтборовРазличныхСотрудников ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Сотрудники.Сотрудник КАК Сотрудник, НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) КАК Период ПОМЕСТИТЬ ВТИзмеренияДатыДляСрезаПоследних ИЗ ВТСотрудники КАК Сотрудники ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Сотрудники.Сотрудник КАК Сотрудник, НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) КАК ДатаНачала, ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), ДЕНЬ, 1) КАК ДатаОкончания ПОМЕСТИТЬ ВТИзмеренияДатыДляПриемовУвольнений ИЗ ВТСотрудники КАК Сотрудники ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Сотрудники.Сотрудник КАК Сотрудник, ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), ДЕНЬ, 1) КАК ДатаНачала, ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), ДЕНЬ, 1) КАК ДатаОкончания ПОМЕСТИТЬ ВТИзмеренияДатыДляТаблицыРегистра ИЗ ВТСотрудники КАК Сотрудники ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Сотрудники.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо, НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) КАК Период ПОМЕСТИТЬ ВТИзмеренияДатыДляСрезаПоследнихПоФизическимЛицам ИЗ ВТСотрудники КАК Сотрудники ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Сотрудники.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо, ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), ДЕНЬ, 1) КАК ДатаНачала, ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), ДЕНЬ, 1) КАК ДатаОкончания ПОМЕСТИТЬ ВТИзмеренияДатыДляТаблицыРегистраПоФизическимЛицам ИЗ ВТСотрудники КАК Сотрудники ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ РегистрСведений.Сотрудник КАК Сотрудник, РегистрСведений.ФизическоеЛицо КАК ФизическоеЛицо, ИзмеренияДаты.Период КАК Период, РегистрСведений.Организация КАК Организация, РегистрСведений.Подразделение КАК Подразделение, РегистрСведений.Должность КАК Должность, РегистрСведений.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию, РегистрСведений.ВидСобытия КАК ВидСобытия, РегистрСведений.ВидДоговора КАК ВидДоговора, РегистрСведений.КоличествоСтавок КАК КоличествоСтавок ПОМЕСТИТЬ ПредставленияСрезПоследних_КадроваяИсторияСотрудников ИЗ ВТИзмеренияДатыДляСрезаПоследних КАК ИзмеренияДаты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК РегистрСведений ПО (РегистрСведений.ДатаНачала <= ВЫБОР КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ) КОНЕЦ) И (РегистрСведений.ДатаОкончания >= ВЫБОР КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ) КОНЕЦ) И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник) ИНДЕКСИРОВАТЬ ПО Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ РегистрСведений.Сотрудник КАК Сотрудник, РегистрСведений.ДатаНачала КАК Период, РегистрСведений.ВидСобытия КАК ВидСобытия ПОМЕСТИТЬ ПредставленияТаблицаРегистра_КадроваяИсторияСотрудников ИЗ ВТИзмеренияДатыДляПриемовУвольнений КАК ИзмеренияДаты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК РегистрСведений ПО (РегистрСведений.ДатаНачала >= ИзмеренияДаты.ДатаНачала) И (РегистрСведений.ДатаНачала <= ВЫБОР КОГДА ИзмеренияДаты.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ ИзмеренияДаты.ДатаОкончания КОНЕЦ) И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник) ИНДЕКСИРОВАТЬ ПО Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ НАЧАЛОПЕРИОДА(КадроваяИсторияСотрудников.Период, ДЕНЬ) КАК Период, КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник, МАКСИМУМ(ВЫБОР КОГДА КадроваяИсторияСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием) ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) КАК КоличествоПриемов, МАКСИМУМ(ВЫБОР КОГДА КадроваяИсторияСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение) ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) КАК КоличествоУвольнений ПОМЕСТИТЬ ВТПриемыИУвольненияСотрудников ИЗ ПредставленияТаблицаРегистра_КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников ГДЕ (КадроваяИсторияСотрудников.Период <= КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) ИЛИ КадроваяИсторияСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)) СГРУППИРОВАТЬ ПО КадроваяИсторияСотрудников.Сотрудник, НАЧАЛОПЕРИОДА(КадроваяИсторияСотрудников.Период, ДЕНЬ) ИНДЕКСИРОВАТЬ ПО Сотрудник, Период ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ПредставленияТаблицаРегистра_КадроваяИсторияСотрудников ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ РегистрСведений.Сотрудник КАК Сотрудник, РегистрСведений.ФизическоеЛицо КАК ФизическоеЛицо, НАЧАЛОПЕРИОДА(РегистрСведений.ДатаНачала, ДЕНЬ) КАК Период, РегистрСведений.Организация КАК Организация, РегистрСведений.Подразделение КАК Подразделение, РегистрСведений.Должность КАК Должность, РегистрСведений.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию, РегистрСведений.ВидСобытия КАК ВидСобытия, РегистрСведений.ВидДоговора КАК ВидДоговора, РегистрСведений.КоличествоСтавок КАК КоличествоСтавок ПОМЕСТИТЬ ПредставленияТаблицаРегистра_КадроваяИсторияСотрудников ИЗ ВТИзмеренияДатыДляТаблицыРегистра КАК ИзмеренияДаты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК РегистрСведений ПО (РегистрСведений.ДатаНачала >= НАЧАЛОПЕРИОДА(ИзмеренияДаты.ДатаНачала, ДЕНЬ)) И (РегистрСведений.ДатаНачала <= ВЫБОР КОГДА ИзмеренияДаты.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.ДатаОкончания, ДЕНЬ) КОНЕЦ) И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник) ГДЕ РегистрСведений.ДатаОкончания >= КОНЕЦПЕРИОДА(РегистрСведений.ДатаНачала, ДЕНЬ) ИНДЕКСИРОВАТЬ ПО Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ МАКСИМУМ(РегистрСведений.Период) КАК Период, ИзмеренияДаты.Период КАК ЗаданныйПериод, РегистрСведений.ФизическоеЛицо КАК ФизическоеЛицо ПОМЕСТИТЬ ВТПериодыСрезаСведенияОбИнвалидностиФизическихЛиц ИЗ ВТИзмеренияДатыДляСрезаПоследнихПоФизическимЛицам КАК ИзмеренияДаты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизическихЛиц КАК РегистрСведений ПО (РегистрСведений.Период <= ВЫБОР КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ ИзмеренияДаты.Период КОНЕЦ) И (РегистрСведений.ФизическоеЛицо = ИзмеренияДаты.ФизическоеЛицо) СГРУППИРОВАТЬ ПО ИзмеренияДаты.Период, РегистрСведений.ФизическоеЛицо ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ МаксимальныеПериоды.ЗаданныйПериод КАК Период, РегистрСведений.Период КАК ПериодЗаписи, МаксимальныеПериоды.ФизическоеЛицо КАК ФизическоеЛицо, ВЫБОР КОГДА РегистрСведений.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1) ИЛИ РегистрСведений.ДействуетДо > МаксимальныеПериоды.ЗаданныйПериод И МаксимальныеПериоды.ЗаданныйПериод <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА РегистрСведений.Инвалидность ИНАЧЕ РегистрСведений.ИнвалидностьПоОкончании КОНЕЦ КАК Инвалидность ПОМЕСТИТЬ ПредставленияСрезПоследних_СведенияОбИнвалидностиФизическихЛиц ИЗ ВТПериодыСрезаСведенияОбИнвалидностиФизическихЛиц КАК МаксимальныеПериоды ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизическихЛиц КАК РегистрСведений ПО (РегистрСведений.Период = МаксимальныеПериоды.Период) И МаксимальныеПериоды.ФизическоеЛицо = РегистрСведений.ФизическоеЛицо ИНДЕКСИРОВАТЬ ПО ФизическоеЛицо ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ВТПериодыСрезаСведенияОбИнвалидностиФизическихЛиц ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ НАЧАЛОПЕРИОДА(РегистрСведений.Период, МЕСЯЦ) КАК Период, РегистрСведений.Период КАК ПериодЗаписи, РегистрСведений.Период >= ИзмеренияДаты.ДатаНачала И РегистрСведений.Период <= ВЫБОР КОГДА ИзмеренияДаты.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.ДатаОкончания, МЕСЯЦ) КОНЕЦ КАК ЗаписьПериода, ВЫБОР КОГДА РегистрСведений.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ЛОЖЬ КОГДА РегистрСведений.ДействуетДо <= ВЫБОР КОГДА ИзмеренияДаты.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.ДатаОкончания, МЕСЯЦ) КОНЕЦ ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ВозвратнаяЗапись, РегистрСведений.ДействуетДо КАК ДействуетДо, РегистрСведений.ФизическоеЛицо КАК ФизическоеЛицо, РегистрСведений.Инвалидность КАК Инвалидность, РегистрСведений.ИнвалидностьПоОкончании КАК ИнвалидностьПоОкончании ПОМЕСТИТЬ ВТДоступныеЗаписиСведенияОбИнвалидностиФизическихЛиц ИЗ ВТИзмеренияДатыДляТаблицыРегистраПоФизическимЛицам КАК ИзмеренияДаты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизическихЛиц КАК РегистрСведений ПО (РегистрСведений.Период >= ИзмеренияДаты.ДатаНачала И РегистрСведений.Период <= ВЫБОР КОГДА ИзмеренияДаты.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.ДатаОкончания, МЕСЯЦ) КОНЕЦ ИЛИ РегистрСведений.ДействуетДо >= ИзмеренияДаты.ДатаНачала И РегистрСведений.ДействуетДо <= ВЫБОР КОГДА ИзмеренияДаты.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.ДатаОкончания, МЕСЯЦ) КОНЕЦ И РегистрСведений.ДействуетДо <> ДАТАВРЕМЯ(1, 1, 1)) И (РегистрСведений.ФизическоеЛицо = ИзмеренияДаты.ФизическоеЛицо) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ ДоступныеЗаписи.Период КАК Период, ДоступныеЗаписи.ПериодЗаписи КАК ПериодЗаписи, ДоступныеЗаписи.ФизическоеЛицо КАК ФизическоеЛицо, ДоступныеЗаписи.Инвалидность КАК Инвалидность ПОМЕСТИТЬ ПредставленияТаблицаРегистра_СведенияОбИнвалидностиФизическихЛиц ИЗ ВТДоступныеЗаписиСведенияОбИнвалидностиФизическихЛиц КАК ДоступныеЗаписи ГДЕ ДоступныеЗаписи.ЗаписьПериода ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДоступныеЗаписи.ДействуетДо, ДоступныеЗаписи.ДействуетДо, ДоступныеЗаписи.ФизическоеЛицо, ДоступныеЗаписи.ИнвалидностьПоОкончании ИЗ ВТДоступныеЗаписиСведенияОбИнвалидностиФизическихЛиц КАК ДоступныеЗаписи ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизическихЛиц КАК РегистрСведенийВспомогательный ПО ДоступныеЗаписи.ПериодЗаписи < РегистрСведенийВспомогательный.Период И ДоступныеЗаписи.ДействуетДо >= РегистрСведенийВспомогательный.Период И ДоступныеЗаписи.ФизическоеЛицо = РегистрСведенийВспомогательный.ФизическоеЛицо ГДЕ РегистрСведенийВспомогательный.Период ЕСТЬ NULL И ДоступныеЗаписи.ВозвратнаяЗапись ИНДЕКСИРОВАТЬ ПО ФизическоеЛицо ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ВТДоступныеЗаписиСведенияОбИнвалидностиФизическихЛиц ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СведенияОбИнвалидностиФизическихЛиц.ФизическоеЛицо КАК ФизическоеЛицо, СведенияОбИнвалидностиФизическихЛиц.ПериодЗаписи КАК ПериодЗаписи, СведенияОбИнвалидностиФизическихЛиц.Инвалидность КАК Инвалидность, СведенияОбИнвалидностиФизическихЛиц.Период КАК Период ПОМЕСТИТЬ ВТСведенияОбИнвалидностиФизическихЛиц ИЗ ПредставленияСрезПоследних_СведенияОбИнвалидностиФизическихЛиц КАК СведенияОбИнвалидностиФизическихЛиц ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ СведенияОбИнвалидностиФизическихЛиц.ФизическоеЛицо, СведенияОбИнвалидностиФизическихЛиц.ПериодЗаписи, СведенияОбИнвалидностиФизическихЛиц.Инвалидность, СведенияОбИнвалидностиФизическихЛиц.Период ИЗ ПредставленияТаблицаРегистра_СведенияОбИнвалидностиФизическихЛиц КАК СведенияОбИнвалидностиФизическихЛиц ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ РегистрСведений.Сотрудник КАК Сотрудник, ИзмеренияДаты.Период КАК Период, РегистрСведений.ВидЗанятости КАК ВидЗанятости ПОМЕСТИТЬ ПредставленияСрезПоследних_ВидыЗанятостиСотрудников ИЗ ВТИзмеренияДатыДляСрезаПоследних КАК ИзмеренияДаты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ВидыЗанятостиСотрудниковИнтервальный КАК РегистрСведений ПО (РегистрСведений.ДатаНачала <= ВЫБОР КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ) КОНЕЦ) И (РегистрСведений.ДатаОкончания >= ВЫБОР КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ) КОНЕЦ) И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник) ИНДЕКСИРОВАТЬ ПО Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ РегистрСведений.Сотрудник КАК Сотрудник, НАЧАЛОПЕРИОДА(РегистрСведений.ДатаНачала, ДЕНЬ) КАК Период, РегистрСведений.ВидЗанятости КАК ВидЗанятости ПОМЕСТИТЬ ПредставленияТаблицаРегистра_ВидыЗанятостиСотрудников ИЗ ВТИзмеренияДатыДляТаблицыРегистра КАК ИзмеренияДаты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ВидыЗанятостиСотрудниковИнтервальный КАК РегистрСведений ПО (РегистрСведений.ДатаНачала >= НАЧАЛОПЕРИОДА(ИзмеренияДаты.ДатаНачала, ДЕНЬ)) И (РегистрСведений.ДатаНачала <= ВЫБОР КОГДА ИзмеренияДаты.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.ДатаОкончания, ДЕНЬ) КОНЕЦ) И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник) ГДЕ РегистрСведений.ДатаОкончания >= КОНЕЦПЕРИОДА(РегистрСведений.ДатаНачала, ДЕНЬ) ИНДЕКСИРОВАТЬ ПО Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВидыЗанятостиСотрудников.Сотрудник КАК Сотрудник, ВидыЗанятостиСотрудников.ВидЗанятости КАК ВидЗанятости, ВидыЗанятостиСотрудников.Период КАК Период ПОМЕСТИТЬ ВсеВидыЗанятостиСотрудников ИЗ ПредставленияСрезПоследних_ВидыЗанятостиСотрудников КАК ВидыЗанятостиСотрудников ОБЪЕДИНИТЬ ВЫБРАТЬ ВидыЗанятостиСотрудников.Сотрудник, ВидыЗанятостиСотрудников.ВидЗанятости, ВидыЗанятостиСотрудников.Период ИЗ ПредставленияТаблицаРегистра_ВидыЗанятостиСотрудников КАК ВидыЗанятостиСотрудников ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КадроваяИсторияСотрудниковСрезПоследних.Период КАК Период, КадроваяИсторияСотрудниковСрезПоследних.Организация КАК Организация, КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение, КадроваяИсторияСотрудниковСрезПоследних.Должность КАК ТекущаяДолжность, КадроваяИсторияСотрудниковСрезПоследних.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию, КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник, КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо, КадроваяИсторияСотрудниковСрезПоследних.ВидДоговора КАК ВидДоговора, ВидыЗанятостиСотрудников.ВидЗанятости КАК ВидЗанятости, КадроваяИсторияСотрудниковСрезПоследних.КоличествоСтавок КАК КоличествоСтавок, ЕСТЬNULL(ПриемыИУвольненияСотрудников.КоличествоПриемов, 0) КАК КоличествоПриемов, ЕСТЬNULL(ПриемыИУвольненияСотрудников.КоличествоУвольнений, 0) КАК КоличествоУвольнений ПОМЕСТИТЬ ВТПодразделенияСотрудников ИЗ ПредставленияСрезПоследних_КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудниковСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ ВТПриемыИУвольненияСотрудников КАК ПриемыИУвольненияСотрудников ПО КадроваяИсторияСотрудниковСрезПоследних.Сотрудник = ПриемыИУвольненияСотрудников.Сотрудник И КадроваяИсторияСотрудниковСрезПоследних.Период = ПриемыИУвольненияСотрудников.Период ЛЕВОЕ СОЕДИНЕНИЕ ПредставленияСрезПоследних_ВидыЗанятостиСотрудников КАК ВидыЗанятостиСотрудников ПО КадроваяИсторияСотрудниковСрезПоследних.Период = ВидыЗанятостиСотрудников.Период И КадроваяИсторияСотрудниковСрезПоследних.Сотрудник = ВидыЗанятостиСотрудников.Сотрудник ЛЕВОЕ СОЕДИНЕНИЕ ПредставленияКадровыеДанныеСотрудников КАК ПредставленияКадровыеДанныеСотрудников ПО КадроваяИсторияСотрудниковСрезПоследних.Должность = ПредставленияКадровыеДанныеСотрудников.Должность И КадроваяИсторияСотрудниковСрезПоследних.Сотрудник = ПредставленияКадровыеДанныеСотрудников.Сотрудник ГДЕ КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КадроваяИсторияСотрудников.Период, КадроваяИсторияСотрудников.Организация, КадроваяИсторияСотрудников.Подразделение, КадроваяИсторияСотрудников.Должность, КадроваяИсторияСотрудников.ДолжностьПоШтатномуРасписанию, КадроваяИсторияСотрудников.Сотрудник, КадроваяИсторияСотрудников.ФизическоеЛицо, КадроваяИсторияСотрудников.ВидДоговора, ВидыЗанятостиСотрудников.ВидЗанятости, КадроваяИсторияСотрудников.КоличествоСтавок, ЕСТЬNULL(ПриемыИУвольненияСотрудников.КоличествоПриемов, 0), ЕСТЬNULL(ПриемыИУвольненияСотрудников.КоличествоУвольнений, 0) ИЗ ПредставленияТаблицаРегистра_КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников ЛЕВОЕ СОЕДИНЕНИЕ ВТПриемыИУвольненияСотрудников КАК ПриемыИУвольненияСотрудников ПО КадроваяИсторияСотрудников.Сотрудник = ПриемыИУвольненияСотрудников.Сотрудник И КадроваяИсторияСотрудников.Период = ПриемыИУвольненияСотрудников.Период ЛЕВОЕ СОЕДИНЕНИЕ ВсеВидыЗанятостиСотрудников КАК ВидыЗанятостиСотрудников ПО КадроваяИсторияСотрудников.Сотрудник = ВидыЗанятостиСотрудников.Сотрудник И (ВидыЗанятостиСотрудников.Период В (ВЫБРАТЬ МАКСИМУМ(Т.Период) ИЗ ВсеВидыЗанятостиСотрудников КАК Т ГДЕ КадроваяИсторияСотрудников.Сотрудник = Т.Сотрудник И КадроваяИсторияСотрудников.Период >= Т.Период СГРУППИРОВАТЬ ПО Т.Сотрудник)) ЛЕВОЕ СОЕДИНЕНИЕ ПредставленияКадровыеДанныеСотрудников КАК ПредставленияКадровыеДанныеСотрудников ПО КадроваяИсторияСотрудников.Должность = ПредставленияКадровыеДанныеСотрудников.Должность И КадроваяИсторияСотрудников.Сотрудник = ПредставленияКадровыеДанныеСотрудников.Сотрудник ГДЕ ВЫБОР КОГДА КадроваяИсторияСотрудников.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение) ТОГДА КадроваяИсторияСотрудников.Период <= &КонецПериода ИНАЧЕ ИСТИНА КОНЕЦ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ РегистрСведений.Сотрудник КАК Сотрудник, РегистрСведений.ГоловнаяОрганизация КАК ГоловнаяОрганизация, ИзмеренияДаты.Период КАК Период, РегистрСведений.ГрафикРаботы КАК ГрафикРаботы ПОМЕСТИТЬ ПредставленияСрезПоследних_ГрафикРаботыСотрудников ИЗ ВТИзмеренияДатыДляСрезаПоследних КАК ИзмеренияДаты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикРаботыСотрудниковИнтервальный КАК РегистрСведений ПО (РегистрСведений.ДатаНачала <= ВЫБОР КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ) КОНЕЦ) И (РегистрСведений.ДатаОкончания >= ВЫБОР КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ) КОНЕЦ) И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник) ИНДЕКСИРОВАТЬ ПО Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ РегистрСведений.Сотрудник КАК Сотрудник, РегистрСведений.ГоловнаяОрганизация КАК ГоловнаяОрганизация, НАЧАЛОПЕРИОДА(РегистрСведений.ДатаНачала, ДЕНЬ) КАК Период, РегистрСведений.ГрафикРаботы КАК ГрафикРаботы ПОМЕСТИТЬ ПредставленияТаблицаРегистра_ГрафикРаботыСотрудников ИЗ ВТИзмеренияДатыДляТаблицыРегистра КАК ИзмеренияДаты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикРаботыСотрудниковИнтервальный КАК РегистрСведений ПО (РегистрСведений.ДатаНачала >= НАЧАЛОПЕРИОДА(ИзмеренияДаты.ДатаНачала, ДЕНЬ)) И (РегистрСведений.ДатаНачала <= ВЫБОР КОГДА ИзмеренияДаты.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59) ИНАЧЕ КОНЕЦПЕРИОДА(ИзмеренияДаты.ДатаОкончания, ДЕНЬ) КОНЕЦ) И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник) ГДЕ РегистрСведений.ДатаОкончания >= КОНЕЦПЕРИОДА(РегистрСведений.ДатаНачала, ДЕНЬ) ИНДЕКСИРОВАТЬ ПО Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ПредставленияСрезПоследних_ГрафикРаботыСотрудников.ГрафикРаботы КАК ГрафикРаботы ПОМЕСТИТЬ ВТГрафикиДляПолученияРабочегоВремени ИЗ ПредставленияСрезПоследних_ГрафикРаботыСотрудников КАК ПредставленияСрезПоследних_ГрафикРаботыСотрудников ОБЪЕДИНИТЬ ВЫБРАТЬ РАЗЛИЧНЫЕ ПредставленияСрезПоследних_ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени ИЗ ПредставленияСрезПоследних_ГрафикРаботыСотрудников КАК ПредставленияСрезПоследних_ГрафикРаботыСотрудников ГДЕ ПредставленияСрезПоследних_ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени <> ЗНАЧЕНИЕ(Справочник.ГрафикиРаботыСотрудников.ПустаяСсылка) ОБЪЕДИНИТЬ ВЫБРАТЬ РАЗЛИЧНЫЕ ПредставленияТаблицаРегистра_ГрафикРаботыСотрудников.ГрафикРаботы ИЗ ПредставленияТаблицаРегистра_ГрафикРаботыСотрудников КАК ПредставленияТаблицаРегистра_ГрафикРаботыСотрудников ОБЪЕДИНИТЬ ВЫБРАТЬ РАЗЛИЧНЫЕ ПредставленияТаблицаРегистра_ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени ИЗ ПредставленияТаблицаРегистра_ГрафикРаботыСотрудников КАК ПредставленияТаблицаРегистра_ГрафикРаботыСотрудников ГДЕ ПредставленияТаблицаРегистра_ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени <> ЗНАЧЕНИЕ(Справочник.ГрафикиРаботыСотрудников.ПустаяСсылка) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ГрафикиРаботыПоВидамВремени.ГрафикРаботы КАК ГрафикРаботы, ГрафикиРаботыПоВидамВремени.Месяц КАК Месяц, СУММА(ГрафикиРаботыПоВидамВремени.ДополнительноеЗначение) КАК РабочихЧасов, ВЫБОР КОГДА ЕСТЬNULL(ГрафикиРаботыПоВидамВремени.ДополнительноеЗначение, 0) = 0 ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК РассчитыватьПоОтработанномуВремени ПОМЕСТИТЬ ВТРабочееВремяПоГрафикам ИЗ ВТГрафикиДляПолученияРабочегоВремени КАК ВТГрафикиДляПолученияРабочегоВремени ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ГрафикиРаботыПоВидамВремени ПО (ГрафикиРаботыПоВидамВремени.ГрафикРаботы = ВТГрафикиДляПолученияРабочегоВремени.ГрафикРаботы) ГДЕ ГрафикиРаботыПоВидамВремени.ВидУчетаВремени = &РабочееВремя И ГрафикиРаботыПоВидамВремени.Месяц МЕЖДУ &НачалоПериода И &КонецПериода СГРУППИРОВАТЬ ПО ГрафикиРаботыПоВидамВремени.ГрафикРаботы, ГрафикиРаботыПоВидамВремени.Месяц, ВЫБОР КОГДА ЕСТЬNULL(ГрафикиРаботыПоВидамВремени.ДополнительноеЗначение, 0) = 0 ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ ИНДЕКСИРОВАТЬ ПО ГрафикРаботы, Месяц ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ГрафикРаботыСотрудников.Период КАК Период, ГрафикРаботыСотрудников.ГоловнаяОрганизация КАК ГоловнаяОрганизация, ГрафикРаботыСотрудников.Сотрудник КАК Сотрудник, ВЫБОР КОГДА ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени = ЗНАЧЕНИЕ(Справочник.ГрафикиРаботыСотрудников.ПустаяСсылка) ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК СокращеннаяРабочаяНеделя, ВЫБОР КОГДА ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени = ЗНАЧЕНИЕ(Справочник.ГрафикиРаботыСотрудников.ПустаяСсылка) ТОГДА 1 КОГДА ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени.ДлительностьРабочейНедели = 0 ТОГДА 1 ИНАЧЕ ГрафикРаботыСотрудников.ГрафикРаботы.ДлительностьРабочейНедели / ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени.ДлительностьРабочейНедели КОНЕЦ КАК КоэффициентНеполнойНедели, ГрафикРаботыСотрудников.ГрафикРаботы КАК ГрафикРаботы ПОМЕСТИТЬ ВТГрафикиРаботыСотрудников ИЗ ПредставленияСрезПоследних_ГрафикРаботыСотрудников КАК ГрафикРаботыСотрудников ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ГрафикРаботыСотрудников.Период, ГрафикРаботыСотрудников.ГоловнаяОрганизация, ГрафикРаботыСотрудников.Сотрудник, ВЫБОР КОГДА ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени = ЗНАЧЕНИЕ(Справочник.ГрафикиРаботыСотрудников.ПустаяСсылка) ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ, ВЫБОР КОГДА ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени = ЗНАЧЕНИЕ(Справочник.ГрафикиРаботыСотрудников.ПустаяСсылка) ТОГДА 1 КОГДА ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени.ДлительностьРабочейНедели = 0 ТОГДА 1 ИНАЧЕ ГрафикРаботыСотрудников.ГрафикРаботы.ДлительностьРабочейНедели / ГрафикРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени.ДлительностьРабочейНедели КОНЕЦ, ГрафикРаботыСотрудников.ГрафикРаботы ИЗ ПредставленияТаблицаРегистра_ГрафикРаботыСотрудников КАК ГрафикРаботыСотрудников ИНДЕКСИРОВАТЬ ПО ГоловнаяОрганизация, Сотрудник, Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ГрафикиРаботыСотрудников.Период КАК НачалоИнтервала, ГрафикиРаботыСотрудников.Сотрудник КАК Сотрудник, ГрафикиРаботыСотрудников.СокращеннаяРабочаяНеделя КАК СокращеннаяРабочаяНеделя, ГрафикиРаботыСотрудников.КоэффициентНеполнойНедели КАК КоэффициентНеполнойНедели, ГрафикиРаботыСотрудников.ГрафикРаботы КАК ГрафикРаботы, МИНИМУМ(ВЫБОР КОГДА ГрафикиРаботыСотрудниковСлед.Период ЕСТЬ NULL ТОГДА &КонецПериода ИНАЧЕ ДОБАВИТЬКДАТЕ(ГрафикиРаботыСотрудниковСлед.Период, ДЕНЬ, -1) КОНЕЦ) КАК КонецИнтервала, ГрафикиРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени КАК ГрафикПолногоРабочегоВремени ПОМЕСТИТЬ ВТИнтервалыГрафиков ИЗ ВТГрафикиРаботыСотрудников КАК ГрафикиРаботыСотрудников ЛЕВОЕ СОЕДИНЕНИЕ ВТГрафикиРаботыСотрудников КАК ГрафикиРаботыСотрудниковСлед ПО ГрафикиРаботыСотрудников.ГоловнаяОрганизация = ГрафикиРаботыСотрудниковСлед.ГоловнаяОрганизация И ГрафикиРаботыСотрудников.Сотрудник = ГрафикиРаботыСотрудниковСлед.Сотрудник И ГрафикиРаботыСотрудников.Период < ГрафикиРаботыСотрудниковСлед.Период СГРУППИРОВАТЬ ПО ГрафикиРаботыСотрудников.Период, ГрафикиРаботыСотрудников.Сотрудник, ГрафикиРаботыСотрудников.СокращеннаяРабочаяНеделя, ГрафикиРаботыСотрудников.КоэффициентНеполнойНедели, ГрафикиРаботыСотрудников.ГрафикРаботы, ГрафикиРаботыСотрудников.ГрафикРаботы.ГрафикПолногоРабочегоВремени ИНДЕКСИРОВАТЬ ПО НачалоИнтервала, КонецИнтервала ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПредставленияПериоды.Период КАК ПериодДень, ГрафикиРаботыСотрудниковПоПериоду.Сотрудник КАК Сотрудник, ГрафикиРаботыСотрудниковПоПериоду.СокращеннаяРабочаяНеделя КАК СокращеннаяРабочаяНеделя, ГрафикиРаботыСотрудниковПоПериоду.КоэффициентНеполнойНедели КАК КоэффициентНеполнойНедели, ГрафикиРаботыСотрудниковПоПериоду.ГрафикРаботы КАК ГрафикРаботы, ВТРабочееВремяПоГрафикам.РабочихЧасов КАК РабочиеЧасы, ВТРабочееВремяПоГрафикам.РассчитыватьПоОтработанномуВремени КАК РассчитыватьПоОтработанномуВремени ПОМЕСТИТЬ ВТГрафикиРаботыСотрудниковПоДням ИЗ ВТИнтервалыГрафиков КАК ГрафикиРаботыСотрудниковПоПериоду ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПредставленияПериоды КАК ПредставленияПериоды ПО (ПредставленияПериоды.Период МЕЖДУ ГрафикиРаботыСотрудниковПоПериоду.НачалоИнтервала И ГрафикиРаботыСотрудниковПоПериоду.КонецИнтервала) ЛЕВОЕ СОЕДИНЕНИЕ ВТРабочееВремяПоГрафикам КАК ВТРабочееВремяПоГрафикам ПО (НАЧАЛОПЕРИОДА(ПредставленияПериоды.Период, МЕСЯЦ) = ВТРабочееВремяПоГрафикам.Месяц) И ГрафикиРаботыСотрудниковПоПериоду.ГрафикПолногоРабочегоВремени = ВТРабочееВремяПоГрафикам.ГрафикРаботы ИНДЕКСИРОВАТЬ ПО ПериодДень, Сотрудник, ГрафикРаботы ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ПодразделенияСотрудников.Сотрудник КАК Сотрудник, ПодразделенияСотрудников.Период КАК Период, ПодразделенияСотрудников.КоличествоПриемов КАК КоличествоПриемов, ПодразделенияСотрудников.КоличествоУвольнений КАК КоличествоУвольнений, ИСТИНА КАК ИзменениеПодразделения, ЛОЖЬ КАК ИзменениеИнвалидности ПОМЕСТИТЬ ВТВсеДатыИзмененияСостоянийСотрудников ИЗ ВТПодразделенияСотрудников КАК ПодразделенияСотрудников ОБЪЕДИНИТЬ ВЫБРАТЬ ПодразделенияСотрудников.Сотрудник, СведенияОбИнвалидностиФизическихЛиц.Период, 0, 0, ЛОЖЬ, ИСТИНА ИЗ ВТСведенияОбИнвалидностиФизическихЛиц КАК СведенияОбИнвалидностиФизическихЛиц ЛЕВОЕ СОЕДИНЕНИЕ ВТПодразделенияСотрудников КАК ПодразделенияСотрудников ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников ПО ПодразделенияСотрудников.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник ПО СведенияОбИнвалидностиФизическихЛиц.ФизическоеЛицо = ПодразделенияСотрудников.Сотрудник.ФизическоеЛицо ГДЕ НЕ ПодразделенияСотрудников.Сотрудник ЕСТЬ NULL И (ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения <> ДАТАВРЕМЯ(1, 1, 1) И СведенияОбИнвалидностиФизическихЛиц.ПериодЗаписи <= ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения ИЛИ ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВсеДатыИзмененияСостоянийСотрудников.Сотрудник КАК Сотрудник, ВсеДатыИзмененияСостоянийСотрудников.Период КАК Период, МАКСИМУМ(ВсеДатыИзмененияСостоянийСотрудников.КоличествоПриемов) КАК КоличествоПриемов, МАКСИМУМ(ВсеДатыИзмененияСостоянийСотрудников.КоличествоУвольнений) КАК КоличествоУвольнений, МАКСИМУМ(ВсеДатыИзмененияСостоянийСотрудников.ИзменениеПодразделения) КАК ИзменениеПодразделения, МАКСИМУМ(ВсеДатыИзмененияСостоянийСотрудников.ИзменениеИнвалидности) КАК ИзменениеИнвалидности ПОМЕСТИТЬ ВТДатыИзмененияСостоянийСотрудников ИЗ ВТВсеДатыИзмененияСостоянийСотрудников КАК ВсеДатыИзмененияСостоянийСотрудников СГРУППИРОВАТЬ ПО ВсеДатыИзмененияСостоянийСотрудников.Сотрудник, ВсеДатыИзмененияСостоянийСотрудников.Период ИНДЕКСИРОВАТЬ ПО Сотрудник, Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДатыИзмененияСостоянийСотрудников.Сотрудник КАК Сотрудник, ДатыИзмененияСостоянийСотрудников.Период КАК Период, МИНИМУМ(ДатыИзмененияСостоянийСотрудниковБудущее.Период) КАК СледующаяДата ПОМЕСТИТЬ ВТСледующиеДаты ИЗ ВТДатыИзмененияСостоянийСотрудников КАК ДатыИзмененияСостоянийСотрудников ЛЕВОЕ СОЕДИНЕНИЕ ВТДатыИзмененияСостоянийСотрудников КАК ДатыИзмененияСостоянийСотрудниковБудущее ПО ДатыИзмененияСостоянийСотрудников.Сотрудник = ДатыИзмененияСостоянийСотрудниковБудущее.Сотрудник И ДатыИзмененияСостоянийСотрудников.Период < ДатыИзмененияСостоянийСотрудниковБудущее.Период СГРУППИРОВАТЬ ПО ДатыИзмененияСостоянийСотрудников.Сотрудник, ДатыИзмененияСостоянийСотрудников.Период ИНДЕКСИРОВАТЬ ПО Сотрудник, Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДатыИзмененияСостоянийСотрудников.Сотрудник КАК Сотрудник, ДатыИзмененияСостоянийСотрудников.Период КАК ДатаНачала, ВЫБОР КОГДА ДатыИзмененияСостоянийСотрудников.КоличествоУвольнений = 1 И ДатыИзмененияСостоянийСотрудников.Период = &НачалоПериода ТОГДА &НачалоПериода КОГДА ДатыИзмененияСостоянийСотрудниковБудущее.Период ЕСТЬ NULL ТОГДА &КонецПериода ИНАЧЕ ДОБАВИТЬКДАТЕ(ДатыИзмененияСостоянийСотрудниковБудущее.Период, ДЕНЬ, -1) КОНЕЦ КАК ДатаОкончания, ДатыИзмененияСостоянийСотрудников.КоличествоПриемов КАК КоличествоПриемов, ВЫБОР КОГДА ДатыИзмененияСостоянийСотрудников.Период = &НачалоПериода И ДатыИзмененияСостоянийСотрудников.КоличествоУвольнений = 1 ТОГДА ДатыИзмененияСостоянийСотрудников.КоличествоУвольнений ИНАЧЕ ЕСТЬNULL(ДатыИзмененияСостоянийСотрудниковБудущее.КоличествоУвольнений, 0) КОНЕЦ КАК КоличествоУвольнений, МАКСИМУМ(ВЫБОР КОГДА ДатыИзмененияСостоянийСотрудниковПрошлое.ИзменениеПодразделения ТОГДА ДатыИзмененияСостоянийСотрудниковПрошлое.Период ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1) КОНЕЦ) КАК ПериодПодразделение, МАКСИМУМ(ВЫБОР КОГДА ДатыИзмененияСостоянийСотрудниковПрошлое.ИзменениеИнвалидности ТОГДА ДатыИзмененияСостоянийСотрудниковПрошлое.Период ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1) КОНЕЦ) КАК ПериодИнвалидность ПОМЕСТИТЬ ВТПериодыСостояний ИЗ ВТДатыИзмененияСостоянийСотрудников КАК ДатыИзмененияСостоянийСотрудников ЛЕВОЕ СОЕДИНЕНИЕ ВТДатыИзмененияСостоянийСотрудников КАК ДатыИзмененияСостоянийСотрудниковПрошлое ПО ДатыИзмененияСостоянийСотрудников.Сотрудник = ДатыИзмененияСостоянийСотрудниковПрошлое.Сотрудник И ДатыИзмененияСостоянийСотрудников.Период >= ДатыИзмененияСостоянийСотрудниковПрошлое.Период ЛЕВОЕ СОЕДИНЕНИЕ ВТСледующиеДаты КАК СледующиеДаты ПО ДатыИзмененияСостоянийСотрудников.Сотрудник = СледующиеДаты.Сотрудник И ДатыИзмененияСостоянийСотрудников.Период = СледующиеДаты.Период ЛЕВОЕ СОЕДИНЕНИЕ ВТДатыИзмененияСостоянийСотрудников КАК ДатыИзмененияСостоянийСотрудниковБудущее ПО ДатыИзмененияСостоянийСотрудников.Сотрудник = ДатыИзмененияСостоянийСотрудниковБудущее.Сотрудник И (ДатыИзмененияСостоянийСотрудниковБудущее.Период = СледующиеДаты.СледующаяДата) ГДЕ НЕ(ДатыИзмененияСостоянийСотрудников.КоличествоУвольнений = 1 И ДатыИзмененияСостоянийСотрудников.Период > &НачалоПериода) СГРУППИРОВАТЬ ПО ДатыИзмененияСостоянийСотрудников.Сотрудник, ДатыИзмененияСостоянийСотрудников.Период, ДатыИзмененияСостоянийСотрудников.КоличествоПриемов, ДатыИзмененияСостоянийСотрудников.КоличествоУвольнений, ДатыИзмененияСостоянийСотрудниковБудущее.Период, ДатыИзмененияСостоянийСотрудниковБудущее.КоличествоУвольнений ИМЕЮЩИЕ МАКСИМУМ(ВЫБОР КОГДА ДатыИзмененияСостоянийСотрудниковПрошлое.ИзменениеПодразделения ТОГДА ДатыИзмененияСостоянийСотрудниковПрошлое.Период ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1) КОНЕЦ) <> ДАТАВРЕМЯ(1, 1, 1) ИНДЕКСИРОВАТЬ ПО ПериодПодразделение, Сотрудник, ПериодИнвалидность ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПериодыСостояний.ДатаНачала КАК ПериодДействияНачало, ПериодыСостояний.ДатаОкончания КАК ПериодДействияКонец, ПодразделенияСотрудников.Организация КАК Организация, ПодразделенияСотрудников.Подразделение КАК Подразделение, ПодразделенияСотрудников.ТекущаяДолжность КАК ТекущаяДолжность, ПодразделенияСотрудников.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию, ПодразделенияСотрудников.Сотрудник КАК Сотрудник, ПодразделенияСотрудников.ФизическоеЛицо КАК ФизическоеЛицо, ПодразделенияСотрудников.ВидДоговора КАК ВидДоговора, ПодразделенияСотрудников.ВидЗанятости КАК ВидЗанятости, ПодразделенияСотрудников.КоличествоСтавок КАК КоличествоСтавок, СведенияОбИнвалидности.Инвалидность КАК Инвалидность, ПериодыСостояний.КоличествоПриемов КАК КоличествоПриемов, ПериодыСостояний.КоличествоУвольнений КАК КоличествоУвольнений ПОМЕСТИТЬ ВТСостоянияСотрудниковПоПериоду ИЗ ВТПериодыСостояний КАК ПериодыСостояний ЛЕВОЕ СОЕДИНЕНИЕ ВТПодразделенияСотрудников КАК ПодразделенияСотрудников ПО ПериодыСостояний.ПериодПодразделение = ПодразделенияСотрудников.Период И ПериодыСостояний.Сотрудник = ПодразделенияСотрудников.Сотрудник ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОбИнвалидностиФизическихЛиц КАК СведенияОбИнвалидности ПО ПериодыСостояний.ПериодИнвалидность = СведенияОбИнвалидности.Период И ПериодыСостояний.Сотрудник.ФизическоеЛицо = СведенияОбИнвалидности.ФизическоеЛицо ИНДЕКСИРОВАТЬ ПО ПериодДействияНачало, ПериодДействияКонец ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ НАЧАЛОПЕРИОДА(ПредставленияПериоды.Период, МЕСЯЦ) КАК ПериодМесяц, ПредставленияПериоды.Период КАК ПериодДень, СостоянияСотрудниковПоПериоду.Организация КАК Организация, СостоянияСотрудниковПоПериоду.Подразделение КАК Подразделение, СостоянияСотрудниковПоПериоду.ТекущаяДолжность КАК ТекущаяДолжность, СостоянияСотрудниковПоПериоду.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию, СостоянияСотрудниковПоПериоду.Сотрудник КАК Сотрудник, СостоянияСотрудниковПоПериоду.ФизическоеЛицо КАК ФизическоеЛицо, СостоянияСотрудниковПоПериоду.ВидДоговора КАК ВидДоговора, СостоянияСотрудниковПоПериоду.ВидЗанятости КАК ВидЗанятости, СостоянияСотрудниковПоПериоду.КоличествоСтавок КАК КоличествоСтавок, СостоянияСотрудниковПоПериоду.Инвалидность КАК Инвалидность, ВЫБОР КОГДА НАЧАЛОПЕРИОДА(ПредставленияПериоды.Период, МЕСЯЦ) = НАЧАЛОПЕРИОДА(СостоянияСотрудниковПоПериоду.ПериодДействияНачало, МЕСЯЦ) ТОГДА СостоянияСотрудниковПоПериоду.КоличествоПриемов ИНАЧЕ 0 КОНЕЦ КАК КоличествоПриемов, ВЫБОР КОГДА НАЧАЛОПЕРИОДА(ПредставленияПериоды.Период, МЕСЯЦ) = НАЧАЛОПЕРИОДА(СостоянияСотрудниковПоПериоду.ПериодДействияКонец, МЕСЯЦ) ТОГДА СостоянияСотрудниковПоПериоду.КоличествоУвольнений ИНАЧЕ 0 КОНЕЦ КАК КоличествоУвольнений ПОМЕСТИТЬ ВТСостоянияСотрудниковПоДням ИЗ ВТСостоянияСотрудниковПоПериоду КАК СостоянияСотрудниковПоПериоду ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПредставленияПериоды КАК ПредставленияПериоды ПО (ПредставленияПериоды.Период МЕЖДУ СостоянияСотрудниковПоПериоду.ПериодДействияНачало И СостоянияСотрудниковПоПериоду.ПериодДействияКонец) ИНДЕКСИРОВАТЬ ПО Сотрудник, ПериодДень ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПринятыеУволенные.ПериодМесяц КАК ПериодМесяц, ПринятыеУволенные.Организация КАК Организация, ПринятыеУволенные.Подразделение КАК Подразделение, ПринятыеУволенные.Сотрудник КАК Сотрудник, ПринятыеУволенные.ТекущаяДолжность КАК ТекущаяДолжность, ПринятыеУволенные.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию, ПринятыеУволенные.ВидДоговора КАК ВидДоговора, ПринятыеУволенные.ВидЗанятости КАК ВидЗанятости, МАКСИМУМ(ПринятыеУволенные.КоличествоПриемов) КАК КоличествоПриемов, МАКСИМУМ(ПринятыеУволенные.КоличествоУвольнений) КАК КоличествоУвольнений ПОМЕСТИТЬ ВТПринятыеУволенные ИЗ ВТСостоянияСотрудниковПоДням КАК ПринятыеУволенные СГРУППИРОВАТЬ ПО ПринятыеУволенные.ПериодМесяц, ПринятыеУволенные.Организация, ПринятыеУволенные.Подразделение, ПринятыеУволенные.Сотрудник, ПринятыеУволенные.ТекущаяДолжность, ПринятыеУволенные.ДолжностьПоШтатномуРасписанию, ПринятыеУволенные.ВидДоговора, ПринятыеУволенные.ВидЗанятости ИНДЕКСИРОВАТЬ ПО ПериодМесяц, Организация, Подразделение, Сотрудник, ВидДоговора, ВидЗанятости ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ ПериодыДействияДоговоровГражданскоПравовогоХарактера.ДатаНачала КАК ДатаНачалаДоговора, ПериодыДействияДоговоровГражданскоПравовогоХарактера.ДатаОкончания КАК ДатаОкончанияДоговора, ПериодыДействияДоговоровГражданскоПравовогоХарактера.Организация КАК Организация, ПериодыДействияДоговоровГражданскоПравовогоХарактера.Подразделение КАК Подразделение, ПериодыДействияДоговоровГражданскоПравовогоХарактера.Сотрудник КАК Сотрудник, ПериодыДействияДоговоровГражданскоПравовогоХарактера.ФизическоеЛицо КАК ФизическоеЛицо ПОМЕСТИТЬ ВТДоговораГПХПоПериодам ИЗ РегистрСведений.ПериодыДействияДоговоровГражданскоПравовогоХарактера КАК ПериодыДействияДоговоровГражданскоПравовогоХарактера ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ПредставленияПериоды.Период КАК ПериодДень, ДоговораГПХПоПериодам.Организация КАК Организация, ДоговораГПХПоПериодам.Подразделение КАК Подразделение, ДоговораГПХПоПериодам.Сотрудник КАК Сотрудник, ДоговораГПХПоПериодам.ФизическоеЛицо КАК ФизическоеЛицо, СведенияОбИнвалидности.Инвалидность КАК Инвалидность, НАЧАЛОПЕРИОДА(ПредставленияПериоды.Период, МЕСЯЦ) КАК ПериодМесяц ПОМЕСТИТЬ ВТДоговораГПХПоДням ИЗ ВТДоговораГПХПоПериодам КАК ДоговораГПХПоПериодам ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПредставленияПериоды КАК ПредставленияПериоды ПО (ПредставленияПериоды.Период МЕЖДУ ДоговораГПХПоПериодам.ДатаНачалаДоговора И ДоговораГПХПоПериодам.ДатаОкончанияДоговора) ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОбИнвалидностиФизическихЛиц КАК СведенияОбИнвалидности ПО (СведенияОбИнвалидности.Период = ПредставленияПериоды.Период) И (СведенияОбИнвалидности.ФизическоеЛицо = ДоговораГПХПоПериодам.Сотрудник.ФизическоеЛицо) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СостоянияСотрудниковПоДням.ПериодМесяц КАК ПериодМесяц, СостоянияСотрудниковПоДням.ПериодДень КАК ПериодДень, СостоянияСотрудниковПоДням.Организация КАК Организация, СостоянияСотрудниковПоДням.Подразделение КАК Подразделение, СостоянияСотрудниковПоДням.ТекущаяДолжность КАК ТекущаяДолжность, СостоянияСотрудниковПоДням.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию, СостоянияСотрудниковПоДням.Сотрудник КАК Сотрудник, СостоянияСотрудниковПоДням.ФизическоеЛицо КАК ФизическоеЛицо, СостоянияСотрудниковПоДням.ВидДоговора КАК ВидДоговора, СостоянияСотрудниковПоДням.ВидЗанятости КАК ВидЗанятости, ЛОЖЬ КАК ЭтоДоговорГПХ, СостоянияСотрудниковПоДням.Инвалидность КАК Инвалидность, СостоянияСотрудниковПоДням.КоличествоСтавок КАК КоличествоСтавок ПОМЕСТИТЬ ВТСотрудникиПоДнямПополненныеДоговорамиГПХ ИЗ ВТСостоянияСотрудниковПоДням КАК СостоянияСотрудниковПоДням ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ НАЧАЛОПЕРИОДА(ДоговораГПХПоДням.ПериодДень, МЕСЯЦ), ДоговораГПХПоДням.ПериодДень, ДоговораГПХПоДням.Организация, ДоговораГПХПоДням.Подразделение, ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка), NULL, ДоговораГПХПоДням.Сотрудник, ДоговораГПХПоДням.ФизическоеЛицо, ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровССотрудниками.ПустаяСсылка), ЗНАЧЕНИЕ(Перечисление.ВидыОсобыхНачисленийИУдержаний.ДоговорРаботыУслуги), ИСТИНА, ДоговораГПХПоДням.Инвалидность, 1 ИЗ ВТДоговораГПХПоДням КАК ДоговораГПХПоДням ЛЕВОЕ СОЕДИНЕНИЕ ВТСостоянияСотрудниковПоДням КАК СостоянияСотрудниковПоДням ПО ДоговораГПХПоДням.ПериодМесяц = СостоянияСотрудниковПоДням.ПериодМесяц И ДоговораГПХПоДням.ФизическоеЛицо = СостоянияСотрудниковПоДням.ФизическоеЛицо И ДоговораГПХПоДням.Организация = СостоянияСотрудниковПоДням.Организация И (СостоянияСотрудниковПоДням.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ИЛИ СостоянияСотрудниковПоДням.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство)) ГДЕ СостоянияСотрудниковПоДням.Сотрудник ЕСТЬ NULL ИНДЕКСИРОВАТЬ ПО ПериодМесяц, ПериодДень, Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СотрудникиПоДнямПополненныеДоговорамиГПХ.ПериодМесяц КАК ПериодМесяц, СотрудникиПоДнямПополненныеДоговорамиГПХ.ПериодДень КАК ПериодДень, СотрудникиПоДнямПополненныеДоговорамиГПХ.Сотрудник КАК Сотрудник, СотрудникиПоДнямПополненныеДоговорамиГПХ.ФизическоеЛицо КАК ФизическоеЛицо, МИНИМУМ(ВЫБОР КОГДА СотрудникиПоДнямПополненныеДоговорамиГПХ.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыОсобыхНачисленийИУдержаний.ДоговорРаботыУслуги) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ) КАК ЭтоДоговорГПХ ПОМЕСТИТЬ ВТСотрудникиПоДнямСокращенная ИЗ ВТСотрудникиПоДнямПополненныеДоговорамиГПХ КАК СотрудникиПоДнямПополненныеДоговорамиГПХ СГРУППИРОВАТЬ ПО СотрудникиПоДнямПополненныеДоговорамиГПХ.ПериодМесяц, СотрудникиПоДнямПополненныеДоговорамиГПХ.ПериодДень, СотрудникиПоДнямПополненныеДоговорамиГПХ.Сотрудник, СотрудникиПоДнямПополненныеДоговорамиГПХ.ФизическоеЛицо ИНДЕКСИРОВАТЬ ПО ПериодМесяц, ПериодДень, Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ СотрудникиПоДнямСокращенная.ПериодДень КАК ПериодДень, СотрудникиПоДнямПополненныеДоговорамиГПХ.Организация КАК Организация, СотрудникиПоДнямПополненныеДоговорамиГПХ.Подразделение КАК Подразделение, СотрудникиПоДнямПополненныеДоговорамиГПХ.ТекущаяДолжность КАК ТекущаяДолжность, СотрудникиПоДнямПополненныеДоговорамиГПХ.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию, СотрудникиПоДнямСокращенная.Сотрудник КАК Сотрудник, СотрудникиПоДнямСокращенная.ФизическоеЛицо КАК ФизическоеЛицо, СотрудникиПоДнямПополненныеДоговорамиГПХ.ВидДоговора КАК ВидДоговора, СотрудникиПоДнямПополненныеДоговорамиГПХ.ВидЗанятости КАК ВидЗанятости, СотрудникиПоДнямПополненныеДоговорамиГПХ.Инвалидность КАК Инвалидность, ГрафикиРаботыСотрудниковПоДням.ГрафикРаботы КАК ГрафикРаботы, ВЫБОР КОГДА СотрудникиПоДнямСокращенная.ЭтоДоговорГПХ ТОГДА 1 КОГДА СостоянияСотрудников.Состояние ЕСТЬ NULL ТОГДА 0 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоБеременностиИРодам) ТОГДА 1 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускУчебныйНеоплачиваемый) ТОГДА 1 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоУходуЗаРебенком) ТОГДА 1 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ТрудовойДоговорПриостановлен) ТОГДА 1 ИНАЧЕ 1 КОНЕЦ КАК Численность, ВЫБОР КОГДА СотрудникиПоДнямСокращенная.ЭтоДоговорГПХ ТОГДА 1 КОГДА СостоянияСотрудников.Состояние ЕСТЬ NULL ТОГДА 0 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоБеременностиИРодам) ТОГДА 0 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускУчебныйНеоплачиваемый) ТОГДА 0 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоУходуЗаРебенком) ТОГДА 0 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ТрудовойДоговорПриостановлен) ТОГДА 0 КОГДА ГрафикиРаботыСотрудниковПоДням.СокращеннаяРабочаяНеделя И НЕ &ЧисленностьПоОтработанномуВремени ТОГДА ГрафикиРаботыСотрудниковПоДням.КоэффициентНеполнойНедели КОГДА СотрудникиПоДнямПополненныеДоговорамиГПХ.КоличествоСтавок < 1 ТОГДА СотрудникиПоДнямПополненныеДоговорамиГПХ.КоличествоСтавок ИНАЧЕ 1 КОНЕЦ КАК ЧисленностьДляРасчетаСредней, ВЫБОР КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ПростойПоВинеРаботника) ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ПростойПоВинеРаботника, ВЫБОР КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ПростойПоВинеРаботодателя) ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ПростойПоВинеРаботодателя, ВЫБОР КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ПростойНеЗависящийОтРаботодателяИРаботника) ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ПростойПоНезависящимПричинам, ГрафикиРаботыСотрудниковПоДням.СокращеннаяРабочаяНеделя КАК СокращеннаяРабочаяНеделя, ГрафикиРаботыСотрудниковПоДням.РабочиеЧасы КАК РабочиеЧасы, ГрафикиРаботыСотрудниковПоДням.РассчитыватьПоОтработанномуВремени КАК РассчитыватьПоОтработанномуВремени ПОМЕСТИТЬ ВТЧисленностьПоРабочимДням ИЗ ВТСотрудникиПоДнямСокращенная КАК СотрудникиПоДнямСокращенная ЛЕВОЕ СОЕДИНЕНИЕ ВТСотрудникиПоДнямПополненныеДоговорамиГПХ КАК СотрудникиПоДнямПополненныеДоговорамиГПХ ПО СотрудникиПоДнямСокращенная.ПериодМесяц = СотрудникиПоДнямПополненныеДоговорамиГПХ.ПериодМесяц И СотрудникиПоДнямСокращенная.ПериодДень = СотрудникиПоДнямПополненныеДоговорамиГПХ.ПериодДень И СотрудникиПоДнямСокращенная.Сотрудник = СотрудникиПоДнямПополненныеДоговорамиГПХ.Сотрудник И СотрудникиПоДнямСокращенная.ЭтоДоговорГПХ = СотрудникиПоДнямПополненныеДоговорамиГПХ.ЭтоДоговорГПХ ЛЕВОЕ СОЕДИНЕНИЕ ВТГрафикиРаботыСотрудниковПоДням КАК ГрафикиРаботыСотрудниковПоДням ПО СотрудникиПоДнямСокращенная.Сотрудник = ГрафикиРаботыСотрудниковПоДням.Сотрудник И СотрудникиПоДнямСокращенная.ПериодДень = ГрафикиРаботыСотрудниковПоДням.ПериодДень ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ГрафикиРаботыПоВидамВремени ПО СотрудникиПоДнямСокращенная.ПериодМесяц = ГрафикиРаботыПоВидамВремени.Месяц И СотрудникиПоДнямСокращенная.ПериодДень = ГрафикиРаботыПоВидамВремени.Дата И (ГрафикиРаботыПоВидамВремени.ВремяВЧасах = ЛОЖЬ) И (ГрафикиРаботыПоВидамВремени.ВидУчетаВремени = &РабочееВремя) И (ГрафикиРаботыСотрудниковПоДням.ГрафикРаботы = ГрафикиРаботыПоВидамВремени.ГрафикРаботы) И (ГрафикиРаботыПоВидамВремени.ПериодРегистрации < &КонецПериода) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников ПО СотрудникиПоДнямСокращенная.Сотрудник = СостоянияСотрудников.Сотрудник И СотрудникиПоДнямСокращенная.ПериодДень >= СостоянияСотрудников.Период И (СотрудникиПоДнямСокращенная.ПериодДень <= СостоянияСотрудников.ДействуетДо ИЛИ СостоянияСотрудников.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1)) СГРУППИРОВАТЬ ПО СотрудникиПоДнямСокращенная.ФизическоеЛицо, СотрудникиПоДнямПополненныеДоговорамиГПХ.ДолжностьПоШтатномуРасписанию, СотрудникиПоДнямПополненныеДоговорамиГПХ.Подразделение, СотрудникиПоДнямСокращенная.Сотрудник, ГрафикиРаботыСотрудниковПоДням.ГрафикРаботы, СотрудникиПоДнямПополненныеДоговорамиГПХ.ВидДоговора, СотрудникиПоДнямПополненныеДоговорамиГПХ.ВидЗанятости, СотрудникиПоДнямПополненныеДоговорамиГПХ.ТекущаяДолжность, ГрафикиРаботыСотрудниковПоДням.СокращеннаяРабочаяНеделя, СотрудникиПоДнямПополненныеДоговорамиГПХ.Организация, СотрудникиПоДнямСокращенная.ПериодДень, ВЫБОР КОГДА СотрудникиПоДнямСокращенная.ЭтоДоговорГПХ ТОГДА 1 КОГДА СостоянияСотрудников.Состояние ЕСТЬ NULL ТОГДА 0 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоБеременностиИРодам) ТОГДА 1 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускУчебныйНеоплачиваемый) ТОГДА 1 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоУходуЗаРебенком) ТОГДА 1 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ТрудовойДоговорПриостановлен) ТОГДА 1 ИНАЧЕ 1 КОНЕЦ, ВЫБОР КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ПростойПоВинеРаботника) ТОГДА 1 ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ПростойПоВинеРаботодателя) ТОГДА 1 ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ПростойНеЗависящийОтРаботодателяИРаботника) ТОГДА 1 ИНАЧЕ 0 КОНЕЦ, ГрафикиРаботыСотрудниковПоДням.РабочиеЧасы, ГрафикиРаботыСотрудниковПоДням.РассчитыватьПоОтработанномуВремени, ВЫБОР КОГДА СотрудникиПоДнямСокращенная.ЭтоДоговорГПХ ТОГДА 1 КОГДА СостоянияСотрудников.Состояние ЕСТЬ NULL ТОГДА 0 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоБеременностиИРодам) ТОГДА 0 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускУчебныйНеоплачиваемый) ТОГДА 0 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоУходуЗаРебенком) ТОГДА 0 КОГДА СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ТрудовойДоговорПриостановлен) ТОГДА 0 КОГДА ГрафикиРаботыСотрудниковПоДням.СокращеннаяРабочаяНеделя И НЕ &ЧисленностьПоОтработанномуВремени ТОГДА ГрафикиРаботыСотрудниковПоДням.КоэффициентНеполнойНедели КОГДА СотрудникиПоДнямПополненныеДоговорамиГПХ.КоличествоСтавок < 1 ТОГДА СотрудникиПоДнямПополненныеДоговорамиГПХ.КоличествоСтавок ИНАЧЕ 1 КОНЕЦ, СотрудникиПоДнямПополненныеДоговорамиГПХ.Инвалидность ИНДЕКСИРОВАТЬ ПО Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ЧисленностьПоРабочимДням.ПериодДень КАК ПериодДень, ЧисленностьПоРабочимДням.ФизическоеЛицо КАК ФизическоеЛицо, ЧисленностьПоРабочимДням.Организация КАК Организация, ЧисленностьПоРабочимДням.ТекущаяДолжность КАК ОсновнаяДолжность, ЧисленностьПоРабочимДням.ДолжностьПоШтатномуРасписанию КАК ОсновнаяДолжностьПоШтатномуРасписанию ПОМЕСТИТЬ ВТОсновныеДолжностиФизическихЛиц ИЗ ВТЧисленностьПоРабочимДням КАК ЧисленностьПоРабочимДням ГДЕ ЧисленностьПоРабочимДням.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ВнутреннееСовместительство) И ЧисленностьПоРабочимДням.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Подработка) ИНДЕКСИРОВАТЬ ПО ФизическоеЛицо, Организация, ПериодДень ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ НАЧАЛОПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, МЕСЯЦ) КАК ПериодМесяц, ЧисленностьПоРабочимДням.Организация КАК Организация, ЧисленностьПоРабочимДням.Подразделение КАК Подразделение, ЧисленностьПоРабочимДням.ТекущаяДолжность КАК ТекущаяДолжность, ОсновныеДолжностиФизическихЛиц.ОсновнаяДолжность КАК ОсновнаяДолжность, ОсновныеДолжностиФизическихЛиц.ОсновнаяДолжностьПоШтатномуРасписанию КАК ОсновнаяДолжностьПоШтатномуРасписанию, ЧисленностьПоРабочимДням.Сотрудник КАК Сотрудник, ЧисленностьПоРабочимДням.ВидДоговора КАК ВидДоговора, ЧисленностьПоРабочимДням.ВидЗанятости КАК ВидЗанятости, СУММА(ВЫБОР КОГДА КОНЕЦПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, ДЕНЬ) = ВЫБОР КОГДА КОНЕЦПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, МЕСЯЦ) > &КонецПериода ТОГДА &КонецПериода ИНАЧЕ КОНЕЦПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, МЕСЯЦ) КОНЕЦ ТОГДА ЧисленностьПоРабочимДням.Численность ИНАЧЕ 0 КОНЕЦ) КАК Численность, СУММА(ВЫБОР КОГДА ЧисленностьПоРабочимДням.ПериодДень МЕЖДУ &НачалоПериода И &КонецПериода ТОГДА ЧисленностьПоРабочимДням.ЧисленностьДляРасчетаСредней / (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, МЕСЯЦ), КОНЕЦПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, МЕСЯЦ), ДЕНЬ) + 1) ИНАЧЕ 0 КОНЕЦ) КАК СредняяЧисленность, СУММА(ВЫБОР КОГДА ЧисленностьПоРабочимДням.Сотрудник.ФизическоеЛицо.Пол = ЗНАЧЕНИЕ(Перечисление.ПолФизическогоЛица.Женский) И (ЧисленностьПоРабочимДням.ПериодДень МЕЖДУ &НачалоПериода И &КонецПериода) ТОГДА ЧисленностьПоРабочимДням.ЧисленностьДляРасчетаСредней / (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, МЕСЯЦ), КОНЕЦПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, МЕСЯЦ), ДЕНЬ) + 1) ИНАЧЕ 0 КОНЕЦ) КАК СредняяЧисленностьЖенщин, СУММА(ВЫБОР КОГДА ЧисленностьПоРабочимДням.Инвалидность = ИСТИНА И (ЧисленностьПоРабочимДням.ПериодДень МЕЖДУ &НачалоПериода И &КонецПериода) ТОГДА ЧисленностьПоРабочимДням.ЧисленностьДляРасчетаСредней / (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, МЕСЯЦ), КОНЕЦПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, МЕСЯЦ), ДЕНЬ) + 1) ИНАЧЕ 0 КОНЕЦ) КАК СредняяЧисленностьИнвалидов, СУММА(ВЫБОР КОГДА КОНЕЦПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, ДЕНЬ) = &КонецПериода ТОГДА ЧисленностьПоРабочимДням.Численность ИНАЧЕ 0 КОНЕЦ) КАК ЧисленностьНаКонецПериода, СУММА(ВЫБОР КОГДА ЧисленностьПоРабочимДням.ПериодДень МЕЖДУ &НачалоПериода И &КонецПериода ТОГДА ЧисленностьПоРабочимДням.ПростойПоВинеРаботника ИНАЧЕ 0 КОНЕЦ) КАК ПростойПоВинеРаботника, СУММА(ВЫБОР КОГДА ЧисленностьПоРабочимДням.ПериодДень МЕЖДУ &НачалоПериода И &КонецПериода ТОГДА ЧисленностьПоРабочимДням.ПростойПоВинеРаботодателя ИНАЧЕ 0 КОНЕЦ) КАК ПростойПоВинеРаботодателя, СУММА(ВЫБОР КОГДА ЧисленностьПоРабочимДням.ПериодДень МЕЖДУ &НачалоПериода И &КонецПериода ТОГДА ЧисленностьПоРабочимДням.ПростойПоНезависящимПричинам ИНАЧЕ 0 КОНЕЦ) КАК ПростойПоНезависящимПричинам, ВЫБОР КОГДА ЧисленностьПоРабочимДням.СокращеннаяРабочаяНеделя ИЛИ ЧисленностьПоРабочимДням.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство) И ЧисленностьПоРабочимДням.РассчитыватьПоОтработанномуВремени ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК РассчитыватьПоОтработанномуВремени, ЕСТЬNULL(ЧисленностьПоРабочимДням.Инвалидность, ЛОЖЬ) КАК Инвалидность, СРЕДНЕЕ(ЧисленностьПоРабочимДням.РабочиеЧасы) КАК РабочиеЧасы, ЧисленностьПоРабочимДням.ГрафикРаботы КАК ГрафикРаботы, ЧисленностьПоРабочимДням.ДолжностьПоШтатномуРасписанию КАК ТекущаяДолжностьПоШтатномуРасписанию ПОМЕСТИТЬ ВТЧисленностьЗаПериод ИЗ ВТЧисленностьПоРабочимДням КАК ЧисленностьПоРабочимДням ЛЕВОЕ СОЕДИНЕНИЕ ВТОсновныеДолжностиФизическихЛиц КАК ОсновныеДолжностиФизическихЛиц ПО ЧисленностьПоРабочимДням.Сотрудник.ФизическоеЛицо = ОсновныеДолжностиФизическихЛиц.ФизическоеЛицо И ЧисленностьПоРабочимДням.Организация = ОсновныеДолжностиФизическихЛиц.Организация И ЧисленностьПоРабочимДням.ПериодДень = ОсновныеДолжностиФизическихЛиц.ПериодДень ЛЕВОЕ СОЕДИНЕНИЕ ВТДатыИзмененияСостоянийСотрудников КАК ДатыУвольненияСотрудников ПО ЧисленностьПоРабочимДням.Сотрудник = ДатыУвольненияСотрудников.Сотрудник И (ДОБАВИТЬКДАТЕ(ЧисленностьПоРабочимДням.ПериодДень, ДЕНЬ, 1) = ДатыУвольненияСотрудников.Период) И (ДатыУвольненияСотрудников.КоличествоУвольнений = 1) ГДЕ ЧисленностьПоРабочимДням.ПериодДень >= &НачалоПериода СГРУППИРОВАТЬ ПО ЧисленностьПоРабочимДням.Организация, ЧисленностьПоРабочимДням.Сотрудник, ОсновныеДолжностиФизическихЛиц.ОсновнаяДолжность, ОсновныеДолжностиФизическихЛиц.ОсновнаяДолжностьПоШтатномуРасписанию, ЧисленностьПоРабочимДням.ТекущаяДолжность, НАЧАЛОПЕРИОДА(ЧисленностьПоРабочимДням.ПериодДень, МЕСЯЦ), ЧисленностьПоРабочимДням.Подразделение, ЧисленностьПоРабочимДням.ВидДоговора, ЧисленностьПоРабочимДням.ВидЗанятости, ВЫБОР КОГДА ЧисленностьПоРабочимДням.СокращеннаяРабочаяНеделя ИЛИ ЧисленностьПоРабочимДням.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ, ЧисленностьПоРабочимДням.ГрафикРаботы, ВЫБОР КОГДА ЧисленностьПоРабочимДням.СокращеннаяРабочаяНеделя ИЛИ ЧисленностьПоРабочимДням.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство) И ЧисленностьПоРабочимДням.РассчитыватьПоОтработанномуВремени ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ, ЕСТЬNULL(ЧисленностьПоРабочимДням.Инвалидность, ЛОЖЬ), ЧисленностьПоРабочимДням.ДолжностьПоШтатномуРасписанию ИНДЕКСИРОВАТЬ ПО ПериодМесяц, Организация, Подразделение, Сотрудник, ВидДоговора, ВидЗанятости ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ ОтработанноеВремяПоСотрудникам.Организация КАК Организация, ОтработанноеВремяПоСотрудникам.Сотрудник КАК Сотрудник, ОтработанноеВремяПоСотрудникам.Подразделение КАК Подразделение, ОтработанноеВремяПоСотрудникам.ПериодДействия КАК ПериодДействия, СУММА(ОтработанноеВремяПоСотрудникам.ОтработаноЧасов) КАК ОтработаноЧасов, ВТГрафикиРаботыСотрудниковПоДням.ГрафикРаботы КАК ГрафикРаботы, ВТСостоянияСотрудниковПоДням.ТекущаяДолжность КАК ТекущаяДолжность, ЕСТЬNULL(ВТСостоянияСотрудниковПоДням.Инвалидность, ЛОЖЬ) КАК Инвалидность ПОМЕСТИТЬ ВТОтработанноеВремяПоСотрудникам ИЗ РегистрНакопления.ОтработанноеВремяПоСотрудникам КАК ОтработанноеВремяПоСотрудникам ЛЕВОЕ СОЕДИНЕНИЕ ВТГрафикиРаботыСотрудниковПоДням КАК ВТГрафикиРаботыСотрудниковПоДням ПО ОтработанноеВремяПоСотрудникам.Сотрудник = ВТГрафикиРаботыСотрудниковПоДням.Сотрудник И ОтработанноеВремяПоСотрудникам.ДатаНачала = ВТГрафикиРаботыСотрудниковПоДням.ПериодДень ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления КАК Начисления ПО ОтработанноеВремяПоСотрудникам.Начисление = Начисления.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ВТСостоянияСотрудниковПоДням КАК ВТСостоянияСотрудниковПоДням ПО ОтработанноеВремяПоСотрудникам.Сотрудник = ВТСостоянияСотрудниковПоДням.Сотрудник И ОтработанноеВремяПоСотрудникам.ДатаНачала = ВТСостоянияСотрудниковПоДням.ПериодДень ГДЕ ОтработанноеВремяПоСотрудникам.ПериодДействия МЕЖДУ &НачалоПериода И &КонецПериода И Начисления.КатегорияНачисленияИлиНеоплаченногоВремени <> ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодам) И Начисления.КатегорияНачисленияИлиНеоплаченногоВремени <> ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамВоеннослужащего) И Начисления.КатегорияНачисленияИлиНеоплаченногоВремени <> ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамБезОплаты) СГРУППИРОВАТЬ ПО ОтработанноеВремяПоСотрудникам.Организация, ОтработанноеВремяПоСотрудникам.Сотрудник, ОтработанноеВремяПоСотрудникам.Подразделение, ОтработанноеВремяПоСотрудникам.ПериодДействия, ВТГрафикиРаботыСотрудниковПоДням.ГрафикРаботы, ВТСостоянияСотрудниковПоДням.ТекущаяДолжность, ЕСТЬNULL(ВТСостоянияСотрудниковПоДням.Инвалидность, ЛОЖЬ) ИНДЕКСИРОВАТЬ ПО Организация, Сотрудник, Подразделение, ПериодДействия ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЧисленностьЗаПериод.ПериодМесяц КАК ПериодМесяц, ЧисленностьЗаПериод.Организация КАК Организация, ЧисленностьЗаПериод.Подразделение КАК Подразделение, ЧисленностьЗаПериод.ТекущаяДолжность КАК ТекущаяДолжность, ЧисленностьЗаПериод.ОсновнаяДолжность КАК ОсновнаяДолжность, ЧисленностьЗаПериод.ОсновнаяДолжностьПоШтатномуРасписанию КАК ОсновнаяДолжностьПоШтатномуРасписанию, ЧисленностьЗаПериод.Сотрудник КАК Сотрудник, ЧисленностьЗаПериод.ВидДоговора КАК ВидДоговора, ЧисленностьЗаПериод.ВидЗанятости КАК ВидЗанятости, СУММА(ЧисленностьЗаПериод.Численность) КАК Численность, СУММА(ВЫБОР КОГДА ЧисленностьЗаПериод.РассчитыватьПоОтработанномуВремени И &ЧисленностьПоОтработанномуВремени ТОГДА ЕСТЬNULL(ОтработанноеВремяПоСотрудникам.ОтработаноЧасов, 0) / ЧисленностьЗаПериод.РабочиеЧасы ИНАЧЕ ЧисленностьЗаПериод.СредняяЧисленность КОНЕЦ) КАК СредняяЧисленность, СУММА(ВЫБОР КОГДА ЧисленностьЗаПериод.РассчитыватьПоОтработанномуВремени И ЧисленностьЗаПериод.Сотрудник.ФизическоеЛицо.Пол = ЗНАЧЕНИЕ(Перечисление.ПолФизическогоЛица.Женский) И &ЧисленностьПоОтработанномуВремени ТОГДА ЕСТЬNULL(ОтработанноеВремяПоСотрудникам.ОтработаноЧасов, 0) / ЧисленностьЗаПериод.РабочиеЧасы ИНАЧЕ ЧисленностьЗаПериод.СредняяЧисленностьЖенщин КОНЕЦ) КАК СредняяЧисленностьЖенщин, СУММА(ВЫБОР КОГДА ЧисленностьЗаПериод.РассчитыватьПоОтработанномуВремени И ЧисленностьЗаПериод.Инвалидность = ИСТИНА И &ЧисленностьПоОтработанномуВремени ТОГДА ЕСТЬNULL(ОтработанноеВремяПоСотрудникам.ОтработаноЧасов, 0) / ЧисленностьЗаПериод.РабочиеЧасы ИНАЧЕ ЧисленностьЗаПериод.СредняяЧисленностьИнвалидов КОНЕЦ) КАК СредняяЧисленностьИнвалидов, СУММА(ЧисленностьЗаПериод.ЧисленностьНаКонецПериода) КАК ЧисленностьНаКонецПериода, СУММА(ЧисленностьЗаПериод.ПростойПоВинеРаботника) КАК ПростойПоВинеРаботника, СУММА(ЧисленностьЗаПериод.ПростойПоВинеРаботодателя) КАК ПростойПоВинеРаботодателя, СУММА(ЧисленностьЗаПериод.ПростойПоНезависящимПричинам) КАК ПростойПоНезависящимПричинам, ЧисленностьЗаПериод.ТекущаяДолжностьПоШтатномуРасписанию КАК ТекущаяДолжностьПоШтатномуРасписанию ПОМЕСТИТЬ ВТИтоговыеДанные ИЗ ВТЧисленностьЗаПериод КАК ЧисленностьЗаПериод ЛЕВОЕ СОЕДИНЕНИЕ ВТОтработанноеВремяПоСотрудникам КАК ОтработанноеВремяПоСотрудникам ПО ЧисленностьЗаПериод.ПериодМесяц = ОтработанноеВремяПоСотрудникам.ПериодДействия И ЧисленностьЗаПериод.Организация = ОтработанноеВремяПоСотрудникам.Организация И ЧисленностьЗаПериод.Подразделение = ОтработанноеВремяПоСотрудникам.Подразделение И ЧисленностьЗаПериод.Сотрудник = ОтработанноеВремяПоСотрудникам.Сотрудник И ЧисленностьЗаПериод.ГрафикРаботы = ОтработанноеВремяПоСотрудникам.ГрафикРаботы И ЧисленностьЗаПериод.ТекущаяДолжность = ОтработанноеВремяПоСотрудникам.ТекущаяДолжность И ЧисленностьЗаПериод.Инвалидность = ОтработанноеВремяПоСотрудникам.Инвалидность СГРУППИРОВАТЬ ПО ЧисленностьЗаПериод.ПериодМесяц, ЧисленностьЗаПериод.Организация, ЧисленностьЗаПериод.Подразделение, ЧисленностьЗаПериод.ТекущаяДолжность, ЧисленностьЗаПериод.ОсновнаяДолжность, ЧисленностьЗаПериод.ОсновнаяДолжностьПоШтатномуРасписанию, ЧисленностьЗаПериод.Сотрудник, ЧисленностьЗаПериод.ВидДоговора, ЧисленностьЗаПериод.ВидЗанятости, ЧисленностьЗаПериод.ТекущаяДолжностьПоШтатномуРасписанию ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ИтоговыеДанные.ПериодМесяц КАК Месяц, ИтоговыеДанные.Организация КАК Организация, ПРЕДСТАВЛЕНИЕССЫЛКИ(ИтоговыеДанные.Организация) КАК ОрганизацияПредставление, ИтоговыеДанные.Организация.Наименование КАК ОрганизацияНаименование, СУММА(ВТПринятыеУволенные.КоличествоПриемов) КАК ПринятоВсегоСумма, СУММА(ИтоговыеДанные.ПростойПоВинеРаботника) КАК ПростойПоВинеРаботникаСумма, СУММА(ИтоговыеДанные.ПростойПоВинеРаботодателя) КАК ПростойПоВинеРаботодателяСумма, СУММА(ИтоговыеДанные.ПростойПоНезависящимПричинам) КАК ПростойПоНезависящимПричинамСумма, СУММА(ИтоговыеДанные.СредняяЧисленность) КАК СредняяЧисленностьСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ИЛИ ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство) ИЛИ ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыОсобыхНачисленийИУдержаний.ДоговорРаботыУслуги) ТОГДА ИтоговыеДанные.СредняяЧисленность ИНАЧЕ 0 КОНЕЦ) КАК СредняяЧисленностьБезВнутреннихСовместителейСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство) ТОГДА ИтоговыеДанные.СредняяЧисленность ИНАЧЕ 0 КОНЕЦ) КАК СредняяЧисленностьВнешнихСовместителейСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыОсобыхНачисленийИУдержаний.ДоговорРаботыУслуги) ТОГДА ИтоговыеДанные.СредняяЧисленность ИНАЧЕ 0 КОНЕЦ) КАК СредняяЧисленностьДоговорниковСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ТОГДА ИтоговыеДанные.СредняяЧисленностьЖенщин ИНАЧЕ 0 КОНЕЦ) КАК СредняяЧисленностьЖенщинСписочногоСоставаСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство) ТОГДА ИтоговыеДанные.СредняяЧисленность ИНАЧЕ 0 КОНЕЦ / (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&НачалоПериода, МЕСЯЦ), КОНЕЦПЕРИОДА(&КонецПериода, МЕСЯЦ), МЕСЯЦ) + 1)) КАК СредняяЧисленностьЗаПериодВнешнихСовместителейСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыОсобыхНачисленийИУдержаний.ДоговорРаботыУслуги) ТОГДА ИтоговыеДанные.СредняяЧисленность ИНАЧЕ 0 КОНЕЦ / (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&НачалоПериода, МЕСЯЦ), КОНЕЦПЕРИОДА(&КонецПериода, МЕСЯЦ), МЕСЯЦ) + 1)) КАК СредняяЧисленностьЗаПериодДоговорниковСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ТОГДА ИтоговыеДанные.СредняяЧисленностьЖенщин ИНАЧЕ 0 КОНЕЦ / (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&НачалоПериода, МЕСЯЦ), КОНЕЦПЕРИОДА(&КонецПериода, МЕСЯЦ), МЕСЯЦ) + 1)) КАК СредняяЧисленностьЗаПериодЖенщинСписочногоСоставаСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ТОГДА ИтоговыеДанные.СредняяЧисленностьИнвалидов ИНАЧЕ 0 КОНЕЦ / (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&НачалоПериода, МЕСЯЦ), КОНЕЦПЕРИОДА(&КонецПериода, МЕСЯЦ), МЕСЯЦ) + 1)) КАК СредняяЧисленностьЗаПериодИнвалидовСписочногоСоставаСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ИЛИ ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство) ТОГДА ИтоговыеДанные.СредняяЧисленность ИНАЧЕ 0 КОНЕЦ / (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&НачалоПериода, МЕСЯЦ), КОНЕЦПЕРИОДА(&КонецПериода, МЕСЯЦ), МЕСЯЦ) + 1)) КАК СредняяЧисленностьЗаПериодРаботниковСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ТОГДА ИтоговыеДанные.СредняяЧисленность ИНАЧЕ 0 КОНЕЦ / (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&НачалоПериода, МЕСЯЦ), КОНЕЦПЕРИОДА(&КонецПериода, МЕСЯЦ), МЕСЯЦ) + 1)) КАК СредняяЧисленностьЗаПериодСписочногоСоставаСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ТОГДА ИтоговыеДанные.СредняяЧисленностьИнвалидов ИНАЧЕ 0 КОНЕЦ) КАК СредняяЧисленностьИнвалидовСписочногоСоставаСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ИЛИ ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство) ТОГДА ИтоговыеДанные.СредняяЧисленность ИНАЧЕ 0 КОНЕЦ) КАК СредняяЧисленностьРаботниковСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ТОГДА ИтоговыеДанные.СредняяЧисленность ИНАЧЕ 0 КОНЕЦ) КАК СредняяЧисленностьСписочногоСоставаСумма, СУММА(ВТПринятыеУволенные.КоличествоУвольнений) КАК УволеноВсегоСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ТОГДА ИтоговыеДанные.ЧисленностьНаКонецПериода ИНАЧЕ 0 КОНЕЦ) КАК ЧисленностьНаКонецПериодаСписочногоСоставаСумма, СУММА(ВЫБОР КОГДА ИтоговыеДанные.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) ТОГДА ИтоговыеДанные.Численность ИНАЧЕ 0 КОНЕЦ) КАК ЧисленностьСписочногоСоставаСумма ИЗ ВТИтоговыеДанные КАК ИтоговыеДанные ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтрокиОтчетностиМониторингаРаботниковСоциальнойСферы КАК СтрокиОтчетностиМониторингаРаботниковСоциальнойСферы ПО (ВЫБОР КОГДА &ИспользоватьШтатноеРасписание ТОГДА ИтоговыеДанные.ОсновнаяДолжностьПоШтатномуРасписанию ИНАЧЕ ИтоговыеДанные.ОсновнаяДолжность КОНЕЦ = СтрокиОтчетностиМониторингаРаботниковСоциальнойСферы.Должность) И (СтрокиОтчетностиМониторингаРаботниковСоциальнойСферы.ВидФормыМониторинга = &ФормаМониторинга) ЛЕВОЕ СОЕДИНЕНИЕ ВТПринятыеУволенные КАК ВТПринятыеУволенные ПО ИтоговыеДанные.ПериодМесяц = ВТПринятыеУволенные.ПериодМесяц И ИтоговыеДанные.Организация = ВТПринятыеУволенные.Организация И ИтоговыеДанные.Подразделение = ВТПринятыеУволенные.Подразделение И ИтоговыеДанные.Сотрудник = ВТПринятыеУволенные.Сотрудник И ИтоговыеДанные.ВидДоговора = ВТПринятыеУволенные.ВидДоговора И ИтоговыеДанные.ВидЗанятости = ВТПринятыеУволенные.ВидЗанятости И (ВЫБОР КОГДА &ИспользоватьШтатноеРасписание ТОГДА ИтоговыеДанные.ТекущаяДолжностьПоШтатномуРасписанию = ВТПринятыеУволенные.ДолжностьПоШтатномуРасписанию ИНАЧЕ ИтоговыеДанные.ТекущаяДолжность = ВТПринятыеУволенные.ТекущаяДолжность КОНЕЦ) СГРУППИРОВАТЬ ПО ИтоговыеДанные.ПериодМесяц, ИтоговыеДанные.Организация, ИтоговыеДанные.Организация.Наименование

Создание проекта для выгрузки отчета «Численность и текучесть кадров»

Открываем как обычно Экстрактор 1С, заходим в «Проекты», нажимаем «Создать» и выбираем тип источника данных «Запрос».

Выбираем тип источника данных «Запрос».

В открывшемся окне вставляем полученный ранее запрос.

Теперь необходимо скорректировать его, чтобы сегментом являлась одна дата и этот отчет имел смысл в рамках месяца.

Заменяем конструкцию &НачалоПериода на НачалоПериода(&Дата, Месяц), а конструкции &КонецПериода и

&ОкончаниеИнтервалаПредставленияПериоды на КонецПериода(&Дата, Месяц).

То есть, все параметры относящиеся к дате отчета необходимо сделать сегментом.

Задаем имя проекту.

Переходим к настройке набора данных на вкладку «Параметры» и устанавливаем необходимые значения. В данном случае такие:

Возвращаемся на вкладку «Поля» и снимаем флаги для этих параметров.

Пропускаем этап настройки вычисляемых полей. Затем выбираем подключение и создаем таблицу-приемник (6 и 7 этапы инструкции по созданию проекта). На этапе сопоставления полей оставляем данные без изменений.

Этап расширенных настроек пропускаем и завершаем настройку проекта.

Затем задаем наименование проекту в соответствующем поле и перейдем к настройке строки проекта.

Переходим к настройке обработчика формирования очереди при изменении объектов. Здесь указаны все объекты использованные в запросе, нам необходимо выбрать главный объект, по которому будет происходить формирование очереди и регистрация изменений. В данном случае, мы выбрали регистр сведений «Состояния сотрудников». Настроим параметры обработчика:

  • устанавливаем флаг «Вкл.»;

  • указываем вид объекта: «РегистрыСведений»;

  • указываем имя объекта: «СостоянияСотрудников»;

  • выбираем вид «Предопределенный обработчик»;

  • выбираем сам обработчик «Регистрация изменений по периоду»;

  • переходим к настройке параметров обработчика, здесь указываем:

    • Поле даты — Период;

    • Имя параметра — Дата;

    • Режим — Стандартный;

    • Периодичность — Месяц.

Сохраняем параметры и закрываем окно.

Переходим к обработчику формирования очереди для первичной/полной выгрузки данных.

  • активируем переключатель «Обработчик:»;

  • выбираем вид «Предопределенный обработчик»;

  • выбираем сам обработчик «Инициализация очереди выгрузки по периоду»;

  • переходим к настройке параметров обработчика, здесь указываем:

    • Вид объекта — РегистрыСведений;

    • Имя объекта — СостоянияСотрудников;

    • Поле даты — Период;

    • Имя параметра — Дата;

    • Периодичность — Месяц.

Сохраняем параметры и закрываем окно, а затем нажимаем «Применить и закрыть» в окне настройки строки проекта.

Теперь осталось выполнить выгрузку: нажимаем поочередно кнопки «Записать», «Сформировать очередь» и «Выполнить проект».

Таким образом выглядит наша выгрузка:

Интересно!

Пример визуализации выгрузки данного отчета можно посмотреть на нашем дашборде на вкладке «Штат сотрудников».