Образец отчета:
Образец отчета с получением данных о времени и состоянии сотрудников через представления СКД.
Описание:
В ЗУП 3.1 есть возможность получать данные через “Представления” в запросе СКД. Для того, что бы данные механизм работал, необходимо инициализировать отчет в процедуре “ПриКомпоновкеРезультата”. Кроме этого, для данной таблицы представлений, необходимо выполнить процедуру “ПолученияДанныхУчетаВремениПослеКомпоновкиМакета”, поэтому отказываемся от стандартной компоновки результата и выполняем ее программно.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) ИнициализироватьОтчет(); СтандартнаяОбработка = Ложь; ДокументРезультат.Очистить(); НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки(); МакетКомпоновки = ЗарплатаКадрыОтчеты.МакетКомпоновкиДанных(СхемаКомпоновкиДанных, НастройкиОтчета); ПараметрыПолученияДанных = УчетРабочегоВремениРасширенный.ПараметрыПолученияДанныхУчетаВремени(); ПараметрыПолученияДанных.ДатаНачала = "ДатаНачала"; ПараметрыПолученияДанных.ДатаОкончания = "ДатаОкончания"; УчетРабочегоВремениРасширенный.ПолученияДанныхУчетаВремениПослеКомпоновкиМакета(МакетКомпоновки.НаборыДанных.ДанныеОВремени, ПараметрыПолученияДанных); // Создадим и инициализируем процессор компоновки. ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); // Обозначим начало вывода ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина); КонецПроцедуры Процедура ИнициализироватьОтчет() Экспорт ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета(ЭтотОбъект); КонецПроцедуры |
Затем в запросе СКД необходимо описать таблицы “Представлений” и получить из них данные. В данном случаи это “Представления_ДанныеУчетаВремениИСостоянийСотрудников” (Дополнительно используются “ВТСотрудники” и “Представления_КадровыеДанныеСотрудников”).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
ВЫБРАТЬ РАЗРЕШЕННЫЕ &ДатаНачала КАК ДатаНачала, &ДатаОкончания КАК ДатаОкончания, Сотрудники.Ссылка КАК Сотрудник ПОМЕСТИТЬ ВТСотрудники ИЗ Справочник.Сотрудники КАК Сотрудники ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Сотрудники.Сотрудник КАК Сотрудник, &ДатаОтчета КАК Период ПОМЕСТИТЬ ВТСотрудникДляСрезаФИО ИЗ ВТСотрудники КАК Сотрудники ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник, ВЫРАЗИТЬ("" КАК СТРОКА) КАК Фамилия, ВЫРАЗИТЬ("" КАК СТРОКА) КАК Имя, ВЫРАЗИТЬ("" КАК СТРОКА) КАК Отчество, ВЫРАЗИТЬ("" КАК СТРОКА) КАК Наименование ПОМЕСТИТЬ Представления_КадровыеДанныеСотрудников ИЗ ВТСотрудникДляСрезаФИО КАК СотрудникДляСрезаФИО ГДЕ "ТолькоРазрешенные" = ИСТИНА ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник, ДАТАВРЕМЯ(1, 1, 1) КАК Дата, ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.ПустаяСсылка) КАК ВидУчетаВремени, 0 КАК Дни, 0 КАК Часы, ЛОЖЬ КАК Отклонение, 0 КАК НормаЧасов, ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация, ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК Подразделение, ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка) КАК Должность, ЗНАЧЕНИЕ(Справочник.СменыРаботыСотрудников.ПустаяСсылка) КАК Смена ПОМЕСТИТЬ Представления_ДанныеУчетаВремениИСостоянийСотрудников ИЗ ВТСотрудники КАК ВТСотрудники ГДЕ "ТолькоРазрешенные" = ИСТИНА И "ДатаНачала" = &ДатаНачала И "ДатаОкончания" = &ДатаОкончания И "МесяцДатаНачала" = &МесяцДатаНачала И "МесяцДатаОкончания" = &МесяцДатаОкончания И "ДатаАктуальности" = &ДатаОтчета ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ ДанныеУчетаВремениИСостоянийСотрудников.Сотрудник КАК Сотрудник, ДанныеУчетаВремениИСостоянийСотрудников.Организация КАК Организация, ДанныеУчетаВремениИСостоянийСотрудников.Подразделение КАК Подразделение, НАЧАЛОПЕРИОДА(ДанныеУчетаВремениИСостоянийСотрудников.Дата, МЕСЯЦ) КАК Месяц, ДанныеУчетаВремениИСостоянийСотрудников.Должность КАК Должность, ДанныеУчетаВремениИСостоянийСотрудников.Смена КАК Смена, ДанныеУчетаВремениИСостоянийСотрудников.Дни КАК Дни, ДанныеУчетаВремениИСостоянийСотрудников.Часы КАК Часы, ДанныеУчетаВремениИСостоянийСотрудников.Дата КАК Дата, 1 КАК ПриоритетВидаВремени, ЛОЖЬ КАК ЭтоВыходнойДень, ОписаниеВидовВремени.Ссылка КАК ВидУчетаВремени, ОписаниеВидовВремени.ОсновноеВремя КАК ОсновноеВремя, Представления_КадровыеДанныеСотрудников.Фамилия КАК Фамилия, Представления_КадровыеДанныеСотрудников.Имя КАК Имя, Представления_КадровыеДанныеСотрудников.Отчество КАК Отчество, ДанныеУчетаВремениИСостоянийСотрудников.Должность КАК ДолжностьКонецМесяца, ДанныеУчетаВремениИСостоянийСотрудников.Отклонение КАК Отклонение ИЗ Представления_ДанныеУчетаВремениИСостоянийСотрудников КАК ДанныеУчетаВремениИСостоянийСотрудников ВНУТРЕННЕЕ СОЕДИНЕНИЕ Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников ПО ДанныеУчетаВремениИСостоянийСотрудников.Сотрудник = Представления_КадровыеДанныеСотрудников.Сотрудник ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыИспользованияРабочегоВремени КАК ОписаниеВидовВремени ПО ДанныеУчетаВремениИСостоянийСотрудников.ВидУчетаВремени = ОписаниеВидовВремени.Ссылка ГДЕ ДанныеУчетаВремениИСостоянийСотрудников.ВидУчетаВремени <> ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя) |
Образец отчета для скачивания в начале описания.
Данная таблица так же используется в стандартном отчете ЗУП 3.1 “УнифицированнаяФормаТ13”
Так же, для получения данных о времени в коде, можно использовать стандартные процедуры ЗУП 3.1, более подробно – Получение данных о времени по сотрудникам.
Доброго времени суток! Спасибо за статью, очень полезная информация.
Мне необходимо добавить параметр Подразделение в отчет. Если я добавляю, взяв подразделение из таблицы Представления_ДанныеУчетаВремениИСостоянийСотрудников, указав в условии ГДЕ Подразделение = … В таком случае данные не выводятся. Подскажите, что я делаю не так?
Спасибо!
Здравствуйте. На этапе описания таблицы Представления_ можно использовать только отборы, которые заложены разработчиками, на сколько понимаю, подразделения там нет (замечено, что в этой таблице даже закомментированная строка может вызвать ошибку).
В данном примере вам можно использовать отбор в Настройках СКД или в итоговой таблице запроса.