8.х Табель учета рабочего времени

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Люсёк, 18 мар 2011.

  1. TopicStarter Overlay
    Люсёк
    Offline

    Люсёк

    Регистрация:
    20 дек 2010
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Делаю отчет Табель учета рабочего времени. Вроде почти сделала, но вот беда, если у сотрудника отработан не полный месяц, вместо пустых клеточек выводится предыдущая строка. Подскажите, как справится с этой бедой?)

    В табличный документ данные вывожу следующим образом:

    Код:
    ВыборкаПоСотруднику = ЗапросТабель.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "СотрудникНаименование");
    Пока ВыборкаПоСотруднику.Следующий() Цикл
    НомерПП=НомерПП+1;
    ОбластьСтрока.Параметры.НомерПП = НомерПП;
    ОбластьСтрока.Параметры.СотрудникНаименование = ВыборкаПоСотруднику.СотрудникНаименование;
    ВыборкаПоТабельномуНомеру = ВыборкаПоСотруднику.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ТабельныйНомер");		
    Пока ВыборкаПоТабельномуНомеру.Следующий() Цикл
    ОбластьСтрока.Параметры.ТабельныйНомер = ВыборкаПоТабельномуНомеру.ТабельныйНомер;
    ВыборкаПоДолжности = ВыборкаПоТабельномуНомеру.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Должность");
    Пока ВыборкаПоДолжности.Следующий() Цикл
    ОбластьСтрока.Параметры.Должность = ВыборкаПоДолжности.Должность;
    ДетальныеЗаписи = ВыборкаПоДолжности.Выбрать();			
    Пока ДетальныеЗаписи.Следующий() Цикл 						   
    
    НомерДня=Строка(День(ДетальныеЗаписи.ДатаТабеля));							
    
    Если ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.Работа <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда								</span>
    
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.Часов;
    
    ЧасыЗаМесяц = ЧасыЗаМесяц + ДетальныеЗаписи.Часов;
    ДниЗаМесяц = ДниЗаМесяц + 1;
    
    ИначеЕсли ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.ВыходныеДни Тогда
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;
    Выходные = Выходные+1;
    
    ИначеЕсли ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.Праздники <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда									</span>  
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;
    
    ЧасыПраздничные = ЧасыПраздничные + ДетальныеЗаписи.Часов;
    ДниПраздничные = ДниПраздничные + 1;
    
    ИначеЕсли ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.ОсновнойОтпуск 
    ИЛИ  ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.ДополнительныйОтпуск <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда									</span>  
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;
    Отпуск = Отпуск+1;
    
    ИначеЕсли ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.Болезнь <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда									</span> 
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;
    Больничный = Больничный+1;
    
    ИначеЕсли ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.ГосударственныеОбязанности <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда									</span>   
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;
    ГосудОбяз = ГосудОбяз+1;
    
    ИначеЕсли ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.НеоплачиваемыйОтпускПоРазрешениюРаботодателя <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда									</span>   
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;
    ОтпускНеоплачДО = ОтпускНеоплачДО+1;
    
    ИначеЕсли ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.Командировка <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда									</span>   
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;
    Командировка = командировка+1;
    
    ИначеЕсли ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.ОтпускНаОбучение <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда									</span>  
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;
    УчебныйОтпуск = УчебныйОтпуск+1;
    
    
    ИначеЕсли ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.Прогулы <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда									</span>   
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;
    Прогул = Прогул+1;
    
    
    ИначеЕсли ДетальныеЗаписи.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.НеявкиПоНевыясненнымПричинам <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда									</span>   
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;
    Невыход = Невыход+1;
    
    
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/иначе')">								Иначе									</span>  
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;	
    КонецЕсли; 					
    
    КонецЦикла;
    
    
    ОбластьСтрока.Параметры.ЧасыЗаМесяц = ЧасыЗаМесяц;
    ОбластьСтрока.Параметры.ДниЗаМесяц = ДниЗаМесяц;
    ОбластьСтрока.Параметры.ЧасыПраздничные = ЧасыПраздничные;
    ОбластьСтрока.Параметры.ДниПраздничные = ДниПраздничные;
    ОбластьСтрока.Параметры.Выходные = Выходные;
    ОбластьСтрока.Параметры.Отпуск = Отпуск;
    ОбластьСтрока.Параметры.Больничный = Больничный;
    ОбластьСтрока.Параметры.ГосудОбяз = ГосудОбяз;
    ОбластьСтрока.Параметры.ОтпускНеоплачДО = ОтпускНеоплачДО;
    ОбластьСтрока.Параметры.Командировки = Командировка;
    ОбластьСтрока.Параметры.УчебОтпуск = УчебныйОтпуск;
    ОбластьСтрока.Параметры.Прогул = Прогул;
    ОбластьСтрока.Параметры.Невыход = Невыход;
    ОбластьСтрока.Параметры.Всего = ДниЗаМесяц+Выходные+Отпуск+Больничный+ГосудОбяз+ОтпускНеоплачДО+Командировка+УчебныйОтпуск+Прогул+Невыход+ДниПраздничные;						
    ТабДокумент.Вывести(ОбластьСтрока);
    
    ЧасыЗаМесяц=0;
    ДниЗаМесяц=0;
    ЧасыПраздничные=0;
    ДниПраздничные=0;
    Выходные=0;
    Отпуск=0;
    Больничный=0;
    ГосудОбяз=0;
    ОтпускНеоплачДО=0;
    Командировка=0;
    УчебныйОтпуск=0;
    Прогул=0;
    Невыход=0;
    Всего=0;						
    
    КонецЦикла; 						
    КонецЦикла;
    КонецЦикла;
    

    Вложения:

  2. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Навскидку. Отладчиком посмотреть куда попадает при неотработанных днях. Допустим если сюда
    Код:
    Иначе                                      
    ОбластьСтрока.Параметры["Символ"+НомерДня] = ДетальныеЗаписи.БуквенныйКод;
    
    тогда заменить
    Код:
    Иначе                                      
    ОбластьСтрока.Параметры["Символ"+НомерДня] = "";
    

Поделиться этой страницей