Формирование отчета по времени

Новая тема
"Доброе время суток. У меня следующая проблема, разработали отчет по отработанному времени рабочих. Если допустим задать период с 01.01.2011 по 31.12.2011 и человек принят на предприятие 01.03.2011 то при формировании отчеты отработанные часы проставляются начиная с января месяца т.е как бы сдвигаются. Проверил запрос в консуле все нормально, отработанное время начинается с 01.03.2011. Как я понимаю ошибка допущена на стадии формирования таблицы.

http://imageshack.us/photo/my-images/694/566jh.jpg/

Ячейки
на скриншоте помеченные желтым должны быть пустые, так как человек не работал в эти месяца.

Кусок кода отвечающего за формирование:



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




Помогите пожалуйста с решением проблемы. Заранее благодарен."
Что-то не видно в коде условия на дату принятия сотрудника ни в запросе, ни в цикле обхода выборки данных?
Ощущение, что даты у этих проблемных просто сдвинуты назад.

В цикле
> Для н=0 по КолвоМесяцев Цикл
Если сотрудник работал с марта, то нулевой месяц у него будет март, т.к. он в запросе будет первым, и он будет записываться в первый столбец, который собственно не март, а январь.
Читают тему
(гостей: 1)

Быстрый переход