3
bvn-2005
25.11.21
✎
09:03
|
Вижу, вот, регистр накопления ДанныеТабельногоУчетаРабочегоВремениСотрудников. В него пишутся данные табеля, по дням. Явка, выходной, отпуск, больничный... Выбрать сотрудников, у которых только Явка или Выходной и при этом количество строк равно количеству дней месяца?
|
|
4
Dmitrii
гуру
25.11.21
✎
10:41
|
(0) Есть такой отчет в ЗУП. РегламентированныйОтчетСтатистикаФорма57Т. Статистика: Форма 57-Т.
При умении пользоваться отладчиком можно собрать все тексты многочисленных запросов, собирающие такую информацию.
Останется вкорячить туда нужные тебе отборы.
Отчет использует как минимум две схемы компановки с различных вариантов разных отчетов.
Финальная часть этого безобразия в ЗУП 3.1.18.276 выглядит примерно так.
УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаВремениИСостоянийСотрудников(Запрос.МенеджерВременныхТаблиц, Ложь, ПараметрыЗаполнения);
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДанныеУчетаВремени.Сотрудник КАК Сотрудник,
| ДанныеУчетаВремени.ВидУчетаВремени КАК ВидУчетаВремени,
| СУММА(ДанныеУчетаВремени.Дни) КАК Дни
|ПОМЕСТИТЬ ВТСотрудникиСОтклонениями
|ИЗ
| ВТДанныеУчетаВремени КАК ДанныеУчетаВремени
|ГДЕ
| ДанныеУчетаВремени.ВидУчетаВремени <> ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя)
| И ДанныеУчетаВремени.ВидУчетаВремени <> ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.ВыходныеДни)
| И НЕ ДанныеУчетаВремени.ВидУчетаВремени.РабочееВремя
| И ДанныеУчетаВремени.ВидУчетаВремени <> ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.Командировка)
| И ДанныеУчетаВремени.ВидУчетаВремени <> ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.ОплачиваемыеНерабочиеДни)
|
|СГРУППИРОВАТЬ ПО
| ДанныеУчетаВремени.Сотрудник,
| ДанныеУчетаВремени.ВидУчетаВремени
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Сотрудники.Сотрудник КАК Сотрудник,
| НАЧАЛОПЕРИОДА(Сотрудники.ДатаОкончания, ДЕНЬ) КАК Период
|ПОМЕСТИТЬ ВТСотрудникиПериоды
|ИЗ
| ВТСотрудники КАК Сотрудники
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСотрудникиСОтклонениями КАК СотрудникиСОтклонениями
| ПО Сотрудники.Сотрудник = СотрудникиСОтклонениями.Сотрудник
|ГДЕ
| СотрудникиСОтклонениями.Сотрудник ЕСТЬ NULL";
Запрос.Выполнить();
// Получение кадровых данных полностью отработавших сотрудников
ОписательВТ = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотрудников(
Запрос.МенеджерВременныхТаблиц, "ВТСотрудникиПериоды");
КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(
ОписательВТ,
Ложь,
"Пол,
|ДатаРождения,
|Организация,
|Подразделение,
|ДолжностьПоШтатномуРасписанию,
|Должность,
|Образование1ВидОбразования,
|СтажРаботыНаПредприятииЛет,
|СтажРаботыНаПредприятииМесяцев,
|ДоляНеполногоРабочегоВремени,
|ГрафикРаботы,
|ДатаПриема,
|ДатаУвольнения");
Запрос.УстановитьПараметр("ИспользоватьШтатноеРасписание", ПолучитьФункциональнуюОпцию("ИспользоватьШтатноеРасписание"));
Запрос.Текст =
"ВЫБРАТЬ
| КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
| КадровыеДанныеСотрудников.Сотрудник.Наименование КАК Наименование,
| КадровыеДанныеСотрудников.Организация КАК Организация,
| КадровыеДанныеСотрудников.Подразделение КАК Подразделение,
| КадровыеДанныеСотрудников.Должность КАК Должность,
| КадровыеДанныеСотрудников.Пол КАК Пол,
| КадровыеДанныеСотрудников.ДатаРождения КАК ДатаРождения,
| КадровыеДанныеСотрудников.Образование1ВидОбразования КАК Образование1ВидОбразования,
| КадровыеДанныеСотрудников.СтажРаботыНаПредприятииЛет КАК СтажРаботыНаПредприятииЛет,
| КадровыеДанныеСотрудников.СтажРаботыНаПредприятииМесяцев КАК СтажРаботыНаПредприятииМесяцев,
| ВЫБОР
| КОГДА &ИспользоватьШтатноеРасписание
| И НЕ КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию.ТрудоваяФункция = ЗНАЧЕНИЕ(Справочник.ТрудовыеФункции.ПустаяСсылка)
| ТОГДА КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию.ТрудоваяФункция
| ИНАЧЕ КадровыеДанныеСотрудников.Должность.ТрудоваяФункция
| КОНЕЦ КАК ТрудоваяФункция
|ПОМЕСТИТЬ ВТКадровыеДанныеСотрудниковСТрудовойФункцией
|ИЗ
| ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
|ГДЕ
| КадровыеДанныеСотрудников.ДоляНеполногоРабочегоВремени >= 1
| И КадровыеДанныеСотрудников.ДатаПриема > ДАТАВРЕМЯ(1, 1, 1)
| И КадровыеДанныеСотрудников.ДатаПриема <= &НачалоПериодаОтчета
| И (КадровыеДанныеСотрудников.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
| ИЛИ КОНЕЦПЕРИОДА(КадровыеДанныеСотрудников.ДатаУвольнения, ДЕНЬ) >= &КонецПериодаОтчета)
| И КадровыеДанныеСотрудников.ГрафикРаботы.НеполноеРабочееВремя = ЛОЖЬ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
| КадровыеДанныеСотрудников.Наименование КАК Наименование,
| КадровыеДанныеСотрудников.Организация КАК Организация,
| КадровыеДанныеСотрудников.Подразделение КАК Подразделение,
| КадровыеДанныеСотрудников.Должность КАК Должность,
| ТрудовыеФункции.ОКПДТРКод КАК КодПоОКПДТР,
| ВЫБОР
| КОГДА КадровыеДанныеСотрудников.Пол = ЗНАЧЕНИЕ(Перечисление.ПолФизическогоЛица.Мужской)
| ТОГДА 1
| ИНАЧЕ 2
| КОНЕЦ КАК Пол,
| ГОД(КадровыеДанныеСотрудников.ДатаРождения) КАК ГодРождения,
| ВЫБОР
| КОГДА КадровыеДанныеСотрудников.Образование1ВидОбразования В (ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизическихЛиц.ВысшееОбразование), ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизическихЛиц.ВысшееОбразованиеБакалавриат), ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизическихЛиц.ВысшееОбразованиеСпециалитетМагистратура))
| ТОГДА 1
| КОГДА КадровыеДанныеСотрудников.Образование1ВидОбразования В (ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизическихЛиц.СреднееПрофессиональноеОбразование))
| ТОГДА 2
| КОГДА КадровыеДанныеСотрудников.Образование1ВидОбразования В (ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизическихЛиц.СреднееПолноеОбщееОбразование), ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизическихЛиц.СреднееОбщееОбразование))
| ТОГДА 3
| КОГДА КадровыеДанныеСотрудников.Образование1ВидОбразования В (ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизическихЛиц.ОсновноеОбщееОбразование))
| ТОГДА 4
| ИНАЧЕ 5
| КОНЕЦ КАК Образование,
| КадровыеДанныеСотрудников.СтажРаботыНаПредприятииЛет + КадровыеДанныеСотрудников.СтажРаботыНаПредприятииМесяцев / 12 КАК Стаж,
| ТрудовыеФункции.ОКПДТРКатегория КАК КодКатегории
|ИЗ
| ВТКадровыеДанныеСотрудниковСТрудовойФункцией КАК КадровыеДанныеСотрудников
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТрудовыеФункции КАК ТрудовыеФункции
| ПО КадровыеДанныеСотрудников.ТрудоваяФункция = ТрудовыеФункции.Ссылка
|ГДЕ
| ТрудовыеФункции.ОКПДТРКатегория <> """"
|
|УПОРЯДОЧИТЬ ПО
| КадровыеДанныеСотрудников.Наименование";
Если Не ТолькоДолжностиСОКПДТРКатегорией Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ТрудовыеФункции.ОКПДТРКатегория <> """"", "");
КонецЕсли;
ВсеСотрудникиОрганизации = Запрос.Выполнить().Выгрузить();
|
|