Формирование отчета по времени
29.12.2011
11:00
#1
"Доброе время суток. У меня следующая проблема, разработали отчет по отработанному времени рабочих. Если допустим задать период с 01.01.2011 по 31.12.2011 и человек принят на предприятие 01.03.2011 то при формировании отчеты отработанные часы проставляются начиная с января месяца т.е как бы сдвигаются. Проверил запрос в консуле все нормально, отработанное время начинается с 01.03.2011. Как я понимаю ошибка допущена на стадии формирования таблицы.
на скриншоте помеченные желтым должны быть пустые, так как человек не работал в эти месяца.
Кусок кода отвечающего за формирование:
Помогите пожалуйста с решением проблемы. Заранее благодарен."
на скриншоте помеченные желтым должны быть пустые, так как человек не работал в эти месяца.
Кусок кода отвечающего за формирование:
Запрос.Текст = "ВЫБРАТЬ
| СУММА(РабочееВремяРаботниковОрганизацийОбороты.ЧасовОборот) КАК явка,
| РабочееВремяРаботниковОрганизацийОбороты.Сотрудник.Физлицо КАК Сотрудник,
| РабочееВремяРаботниковОрганизацийОбороты.Период КАК Период,
| РабочееВремяРаботниковОрганизацийОбороты.Сотрудник.ТекущееПодразделениеОрганизации КАК ПодразделениеОрганизации
|ИЗ
| РегистрНакопления.РабочееВремяРаботниковОрганизаций.Обороты(&НачПериод, &КонПериод, Месяц, (НЕ ВидИспользованияРабочегоВремени В (&СписокЗначенийВидВремени))) КАК РабочееВремяРаботниковОрганизацийОбороты
|
|СГРУППИРОВАТЬ ПО
| РабочееВремяРаботниковОрганизацийОбороты.Сотрудник.Физлицо,
| РабочееВремяРаботниковОрганизацийОбороты.Период,
| РабочееВремяРаботниковОрганизацийОбороты.Сотрудник.ТекущееПодразделениеОрганизации
|
|УПОРЯДОЧИТЬ ПО
| Период
|ИТОГИ
| СУММА(явка)
|ПО
| ПодразделениеОрганизации,
| Сотрудник,
| Период";
СписокЗначенийВидВремени = Новый СписокЗначений;
СписокЗначенийВидВремени.Добавить(Справочники.КлассификаторИспользованияРабочегоВремени.ВыходныеДни);
СписокЗначенийВидВремени.Добавить(Справочники.КлассификаторИспользованияРабочегоВремени.ВыходныеЧасы);
СписокЗначенийВидВремени.Добавить(Справочники.КлассификаторИспользованияРабочегоВремени.ВыходныеЧасыАдминистраторов);
СписокЗначенийВидВремени.Добавить(Справочники.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы);
СписокЗначенийВидВремени.Добавить(Справочники.КлассификаторИспользованияРабочегоВремени.Командировка);
Запрос.УстановитьПараметр("СписокЗначенийВидВремени",СписокЗначенийВидВремени);
Результат = Запрос.Выполнить();
НомерПП = 1;
ИтогЯвка = 0;
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаПодразделение = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ПодразделениеОрганизации");
Пока ВыборкаПодразделение.Следующий() Цикл
ОбластьСтрокаПодразделение = Макет.ПолучитьОбласть("СтрокаПодразделение|КолонкаСотрудник");
ОбластьСтрокаПодразделение.Параметры.Заполнить(ВыборкаПодразделение);
ТабДок.Вывести(ОбластьСтрокаПодразделение,ВыборкаПодразделение.Уровень());
Для н=0 по КолвоМесяцев Цикл
ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаПодразделение|КолонкаСтроки");
ТабДок.Присоединить(ОбластьСтрока);
КонецЦикла;
Выборка = ВыборкаПодразделение.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Сотрудник");
Пока Выборка.Следующий() Цикл
ОбластьСтрокаСотрудник = Макет.ПолучитьОбласть("Строка|КолонкаСотрудник");
ОбластьСтрокаСотрудник.Параметры.Заполнить(Выборка);
ОбластьСтрокаСотрудник.Параметры.НомерПП = НомерПП;
ТабДок.Вывести(ОбластьСтрокаСотрудник,Выборка.Уровень());
ЧасовНакопительно = 0;
ВыборкаПоПериодам = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Период");
Для н=0 по КолвоМесяцев Цикл
Если ВыборкаПоПериодам.Следующий() Тогда
ОбластьСтрока = Макет.ПолучитьОбласть("Строка|КолонкаСтроки");
ЧасовНакопительно = ЧасовНакопительно + ВыборкаПоПериодам.явка;
ОбластьСтрока.Параметры.Заполнить(ВыборкаПоПериодам);
ОбластьСтрока.Параметры.явкаНакоп = ЧасовНакопительно;
ТабДок.Присоединить(ОбластьСтрока);
Иначе
ОбластьСтрока = Макет.ПолучитьОбласть("Строка|КолонкаСтроки");
ТабДок.Присоединить(ОбластьСтрока);
КонецЕсли;
КонецЦикла;
ИтогЯвка = ИтогЯвка + Выборка.явка;
НомерПП = НомерПП + 1;
КонецЦикла;
КонецЦикла;
Помогите пожалуйста с решением проблемы. Заранее благодарен."
Читают тему
(гостей: 1)