Шановне панство, потребую вашої допомоги. При редагуванні, не мною створенного, кода документа, не можу зрозуміти однієї речі: чому не вираховується значення "сверхурочных" в таблиці значень?
Попробую пояснить. з таблиці значень в форму заносяьтся дані, і в залежності від дати створення документу потрібно або всіх працівників вивести, або деякіх, це все здійснюється. але при виборці деякіх працівників не заповнюється колонки з значеннями. Додаю код процедури "заполнить", яка заповнює форму.
Процедура Заполнить3()
Если ТекущийДокумент().Проведен()=1 Тогда Предупреждение("Скасуйте проведення"); Возврат; КонецЕсли;
    Если КоличествоСтрок()<>0 тогда
        Если Вопрос("Будемо робити розрахунок по новому?","Да+Нет")="Нет" Тогда Возврат; КонецЕсли;
    КонецЕсли;
    УдалитьСтроки();

    ТЗрег = СоздатьОбъект("ТаблицаЗначений");
    ТЗрег.Очистить();
    ТЗрег.НоваяКолонка("Сотрудник","Справочник.Сотрудники");
    ТЗрег.НоваяКолонка("Должность","Справочник.Должности");
    ТЗрег.НоваяКолонка("День"     ,"Дата");
    ТЗрег.НоваяКолонка("Маршрут"  ,"Справочник.Маршруты");
    ТЗрег.НоваяКолонка("Тариф"    ,"Справочник.Тарифы");
    ТЗрег.НоваяКолонка("Машина"   ,"Справочник.Машины");
    ТЗрег.НоваяКолонка("ТипМашины","Справочник.ТипыМашин");
    ТЗрег.НоваяКолонка("ОтработаноДней"   ,"Число",15,0);
    ТЗрег.НоваяКолонка("НевиходДней"      ,"Число",15,0);
    ТЗрег.НоваяКолонка("ВиходнихДней"     ,"Число",15,0);
    ТЗрег.НоваяКолонка("РаботаУвиходной"  ,"Число",15,0);
    ТЗрег.НоваяКолонка("ОтработаноВремени","Число",15,0);
    
    Рег = СоздатьОбъект("Регистр.Время");
    Если ПолучитьДатуТА()>ДатаДок тогда
    РассчитатьРегистрыПо(ДатаДок);
    КонецЕсли;

    ТекстЗапроса="
    |Период с {НачМесяца(ДатаДок)} по (ДатаДок);
    |РегСотрудник           = Регистр.Время.Сотрудник;
    |РегУчетноеСобытие      = Регистр.Время.УчетноеСобытие;
    |РегВремяУчета          = Регистр.Время.ВремяУчета;
    |РегВремяПоДням         = Регистр.Время.ВремяПоДням;
    |РегВремяПоВремениСуток = Регистр.Время.ВремяПоВремениСуток;
    |РегМаршрут             = Регистр.Время.Маршрут;
    |РегТариф               = Регистр.Время.Тариф;
    |РегМашина              = Регистр.Время.Машина;
        |РегДатаДок             = Регистр.Время.ДатаДок;
    |РегМинутыВыб           = Регистр.Время.Минуты;
    |Условие(РегВремяПоДням.Выбран()=1);
    
    |Группировка РегСотрудник Без Групп;
    |Группировка РегУчетноеСобытие Без Групп;
    |Группировка РегВремяУчета;
    |Группировка РегВремяПоДням;
    |Группировка РегВремяПоВремениСуток;
    |Группировка РегМаршрут Без Групп;
    |Группировка РегТариф Без Групп;
    |Группировка РегМашина Без Групп;
    |Группировка РегДатаДок;
    
    |Функция Сума  = Сумма(РегМинутыВыб);
    |";
    
    Запрос=СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапроса)=0 тогда Предупреждение("Запит не виконано!"); Возврат; КонецЕсли;
        Рег = СоздатьОбъект("Регистр.Невыходы");
    Если ПолучитьДатуТА()>ДатаДок тогда
        РассчитатьРегистрыПо(ДатаДок);
    КонецЕсли;
    
    ТекстЗапросаНевиход="
    |Период с {НачМесяца(ДатаДок)} по (ДатаДок);
    |РегСотрудник       = Регистр.Невыходы.Сотрудник;
    |РегМаршрут         = Регистр.Невыходы.Маршрут;
    |РегТариф           = Регистр.Невыходы.Тариф;
    |РегПричинаНевыхода = Регистр.Невыходы.ПричинаНевыхода;
    |РегДатаДок         = Регистр.Невыходы.ДатаДок;
    |РегМинутыВыб       = Регистр.Невыходы.Минуты;
    |РегФл              = Регистр.Невыходы.Фл;

    |Группировка РегСотрудник Без Групп;
    |Группировка РегМаршрут Без Групп;
    |Группировка РегТариф Без Групп;
    |Группировка РегПричинаНевыхода Без Групп;
    |Группировка РегДатаДок;
    
    |Функция Сума   = Сумма(РегМинутыВыб);
    |Функция СумаФл = Сумма(РегФл);
    |";
    
    ЗапросНевиход=СоздатьОбъект("Запрос");
    Если ЗапросНевиход.Выполнить(ТекстЗапросаНевиход)=0 тогда Предупреждение("Запит не виконано!"); Возврат; КонецЕсли;
    Пока Запрос.Группировка("РегСотрудник")=1 Цикл  
           если (датадок<>конмесяца(датадок)) и (датадок=запрос.регсотрудник.датаувольнения) тогда
            Пока Запрос.Группировка("РегУчетноеСобытие")=1 Цикл
                Пока Запрос.Группировка("РегВремяУчета")=1 Цикл
                    Пока Запрос.Группировка("РегВремяПоДням")=1 Цикл
                        Пока Запрос.Группировка("РегВремяПоВремениСуток")=1 Цикл
                            Пока Запрос.Группировка("РегМаршрут")=1 Цикл
                                Пока Запрос.Группировка("РегТариф")=1 Цикл
                                    Пока Запрос.Группировка("РегМашина")=1 Цикл
                                        Пока Запрос.Группировка("РегДатаДок")=1 Цикл
                                            ТЗрег.НоваяСтрока();
                                            ТЗрег.Сотрудник = Запрос.РегСотрудник;
                                            ТЗрег.Должность = Запрос.РегСотрудник.Должность.Получить(Запрос.РегДатаДок);
                                            ТЗрег.Маршрут   = Запрос.РегМаршрут;
                                            ТЗрег.Тариф     = Запрос.РегТариф;
                                            ТЗрег.Машина    = Запрос.РегМашина;
                                            Если Запрос.РегМашина.Выбран()=1 Тогда ТЗрег.ТипМашины = Запрос.РегМашина.ТипМашины; КонецЕсли;
                                            ТЗрег.День      = Запрос.РегДатаДок;
                                            Состояние("Робота "+Запрос.РегДатаДок+" "+Запрос.РегСотрудник);
                                            ТЗрег.ОтработаноВремени = Запрос.Сума;
                                            ТЗрег.ОтработаноДней    = 1;
                                            Если Запрос.РегВремяПоДням=Перечисление.ВремяПоДням.Выходные Тогда
                                                ТЗрег.РаботаУвиходной = Запрос.Сума;
                                            КонецЕсли;
                                        КонецЦикла;
                                    КонецЦикла;
                                КонецЦикла;
                            КонецЦикла;
                        КонецЦикла;
                    КонецЦикла;
                КонецЦикла;
            КонецЦикла;
        иначе
            Если (датадок=конмесяца(датадок)) и ((датадок<запрос.регсотрудник.датаувольнения) или (датадок=запрос.регсотрудник.датаувольнения) или (Запрос.регсотрудник.датаувольнения=дата(0))) тогда
                Пока Запрос.Группировка("РегУчетноеСобытие")=1 Цикл
                    Пока Запрос.Группировка("РегВремяУчета")=1 Цикл
                        Пока Запрос.Группировка("РегВремяПоДням")=1 Цикл
                            Пока Запрос.Группировка("РегВремяПоВремениСуток")=1 Цикл
                                Пока Запрос.Группировка("РегМаршрут")=1 Цикл
                                    Пока Запрос.Группировка("РегТариф")=1 Цикл
                                        Пока Запрос.Группировка("РегМашина")=1 Цикл
                                            Пока Запрос.Группировка("РегДатаДок")=1 Цикл
                                                ТЗрег.НоваяСтрока();
                                                ТЗрег.Сотрудник = Запрос.РегСотрудник;
                                                ТЗрег.Должность = Запрос.РегСотрудник.Должность.Получить(Запрос.РегДатаДок);
                                                ТЗрег.Маршрут   = Запрос.РегМаршрут;
                                                ТЗрег.Тариф     = Запрос.РегТариф;
                                                ТЗрег.Машина    = Запрос.РегМашина;
                                                Если Запрос.РегМашина.Выбран()=1 Тогда ТЗрег.ТипМашины = Запрос.РегМашина.ТипМашины; КонецЕсли;
                                                ТЗрег.День      = Запрос.РегДатаДок;
                                                Состояние("Робота "+Запрос.РегДатаДок+" "+Запрос.РегСотрудник);
                                                ТЗрег.ОтработаноВремени = Запрос.Сума;
                                                ТЗрег.ОтработаноДней    = 1;
                                                Если Запрос.РегВремяПоДням=Перечисление.ВремяПоДням.Выходные Тогда
                                                    ТЗрег.РаботаУвиходной = Запрос.Сума;
                                                КонецЕсли;
                                            КонецЦикла;
                                        КонецЦикла;
                                    КонецЦикла;
                                КонецЦикла;
                            КонецЦикла;
                        КонецЦикла;
                    КонецЦикла;
                КонецЦикла;
            конецесли;
        конецесли;  
    КонецЦикла;
    Пока ЗапросНевиход.Группировка("РегСотрудник")=1 Цикл
        если (датадок<>конмесяца(датадок)) и (датадок=запросневиход.регсотрудник.датаувольнения) тогда
            Пока ЗапросНевиход.Группировка("РегМаршрут")=1 Цикл
                Пока ЗапросНевиход.Группировка("РегТариф")=1 Цикл
                    Пока ЗапросНевиход.Группировка("РегПричинаНевыхода")=1 Цикл
                        Пока ЗапросНевиход.Группировка("РегДатаДок")=1 Цикл
                            ТЗрег.НоваяСтрока();
                            ТЗрег.Сотрудник = ЗапросНевиход.РегСотрудник;
                            ТЗрег.Должность = ЗапросНевиход.РегСотрудник.Должность.Получить(ЗапросНевиход.РегДатаДок);
                            ТЗрег.Маршрут   = ЗапросНевиход.РегМаршрут;
                            ТЗрег.Тариф     = ЗапросНевиход.РегТариф;
                            ТЗрег.День      = ЗапросНевиход.РегДатаДок;
                            Состояние("Невихiд "+ЗапросНевиход.РегДатаДок+" "+ЗапросНевиход.РегСотрудник);
                            ТЗрег.НевиходДней  = 1;
                            Если (ЗапросНевиход.РегПричинаНевыхода.Код="1") или (ЗапросНевиход.РегПричинаНевыхода.Код="10") Тогда // виходной или Прогули
                                ТЗрег.ВиходнихДней  = 1;
                            КонецЕсли;
                        КонецЦикла;
                    КонецЦикла;
                КонецЦикла;
            КонецЦикла;
        иначе
            Если (датадок=конмесяца(датадок)) и ((датадок<запрос.регсотрудник.датаувольнения) или (датадок=запрос.регсотрудник.датаувольнения) или (Запрос.регсотрудник.датаувольнения=дата(0))) тогда
                Пока ЗапросНевиход.Группировка("РегМаршрут")=1 Цикл
                    Пока ЗапросНевиход.Группировка("РегТариф")=1 Цикл
                        Пока ЗапросНевиход.Группировка("РегПричинаНевыхода")=1 Цикл
                            Пока ЗапросНевиход.Группировка("РегДатаДок")=1 Цикл
                                ТЗрег.НоваяСтрока();
                                ТЗрег.Сотрудник = ЗапросНевиход.РегСотрудник;
                                ТЗрег.Должность = ЗапросНевиход.РегСотрудник.Должность.Получить(ЗапросНевиход.РегДатаДок);
                                ТЗрег.Маршрут   = ЗапросНевиход.РегМаршрут;
                                ТЗрег.Тариф     = ЗапросНевиход.РегТариф;
                                ТЗрег.День      = ЗапросНевиход.РегДатаДок;
                                Состояние("Невихiд "+ЗапросНевиход.РегДатаДок+" "+ЗапросНевиход.РегСотрудник);
                                ТЗрег.НевиходДней  = 1;
                                Если (ЗапросНевиход.РегПричинаНевыхода.Код="1") или (ЗапросНевиход.РегПричинаНевыхода.Код="10") Тогда // виходной или Прогули
                                    ТЗрег.ВиходнихДней  = 1;
                                КонецЕсли;
                            КонецЦикла;                                                
                        КонецЦикла;
                    КонецЦикла;
                КонецЦикла;
            конецесли;
        конецесли;
    КонецЦикла;
    ТЗрег.Свернуть("Сотрудник,Должность,Маршрут,Тариф,Машина,ТипМашины,День","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗрег.Сортировать("+Сотрудник,+Должность,+Маршрут,+Тариф,+Машина,+День");
    ТЗдень = СоздатьОбъект("ТаблицаЗначений");
    ТЗдень.Очистить();
    ТЗрег.Выгрузить(ТЗдень);
    ТЗдень.Свернуть("Сотрудник,Должность,День","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗдень.ВыбратьСтроки();
Пока ТЗдень.ПолучитьСтроку()=1 Цикл
        Состояние("7 - 1. "+Окр(100/7*ТЗдень.НомерСтроки/ТЗдень.КоличествоСтрок(),2)+"%");
        Если ТЗдень.ПолучитьЗначение(ТЗдень.НомерСтроки,"ОтработаноДней")>1 Тогда ТЗдень.УстановитьЗначение(ТЗдень.НомерСтроки,"ОтработаноДней",1); КонецЕсли;
        Если ТЗдень.ПолучитьЗначение(ТЗдень.НомерСтроки,"НевиходДней")>1 Тогда ТЗдень.УстановитьЗначение(ТЗдень.НомерСтроки,"НевиходДней",1);
        Если ТЗдень.ПолучитьЗначение(ТЗдень.НомерСтроки,"ВиходнихДней")>0 Тогда ТЗдень.УстановитьЗначение(ТЗдень.НомерСтроки,"ВиходнихДней",0); КонецЕсли;
        КонецЕсли;
    КонецЦикла;  
  ТЗсверхурочные = СоздатьОбъект("ТаблицаЗначений");
    ТЗсверхурочные.Очистить();
    ТЗдень.Выгрузить(ТЗсверхурочные);
    ТЗсверхурочные.Свернуть("Сотрудник,Должность","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗсверхурочные.Сортировать("+Сотрудник,+Должность");
    ТЗсверхурочные.ВставитьКолонку("СверхУрочные",,"Число",15,0);
    ТЗсверхурочные.ВставитьКолонку("РаботаУвиходнойОплата",,"Число",15,0);
    ТЗмашина = СоздатьОбъект("ТаблицаЗначений");
    ТЗмашина.Очистить();
    ТЗрег.Выгрузить(ТЗмашина);
    ТЗмашина.Свернуть("Сотрудник,Должность,Маршрут,Тариф,Машина,ТипМашины","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗмашина.Сортировать("+Сотрудник,+Должность,-ТипМашины,+Тариф,-ОтработаноВремени,+Машина,+Маршрут");
    к = 0; КолСтрТЗсверхурочные = ТЗсверхурочные.КоличествоСтрок();
    Для сч=1 по КолСтрТЗсверхурочные Цикл
        Состояние("7 - 2. "+(Окр(100/7,2)+Окр(100/7*сч/(КолСтрТЗсверхурочные-к),2))+"%");
        ОтработаноВремени = ТЗсверхурочные.ПолучитьЗначение(сч-к,"ОтработаноВремени");                          
        ОтработаноДней    = ТЗсверхурочные.ПолучитьЗначение(сч-к,"ОтработаноДней");
        ВиходнихДней      = ТЗсверхурочные.ПолучитьЗначение(сч-к,"ВиходнихДней");
        РаботаУвиходной   = ТЗсверхурочные.ПолучитьЗначение(сч-к,"РаботаУвиходной");
        Сверхурочние = ОтработаноВремени - Константа.НормаМинут.Получить(ДатаДок)/ДатаЧисло(ДатаДок)*(ОтработаноДней+ВиходнихДней);
                Если (Сверхурочние-РаботаУвиходной>0) или (РаботаУвиходной>0) Тогда
            //Если (Сверхурочние>0) или (ТЗсверхурочные.ПолучитьЗначение(сч-к,"РаботаУвиходной")>0) Тогда
            
            Если Сверхурочние-РаботаУвиходной>0 Тогда
                ТЗсверхурочные.УстановитьЗначение(сч-к,"СверхУрочные",Сверхурочние-РаботаУвиходной);
                Если РаботаУвиходной>0 Тогда
                    ТЗсверхурочные.УстановитьЗначение(сч-к,"РаботаУвиходнойОплата",РаботаУвиходной);
                КонецЕсли;
            Иначе
                Если Сверхурочние>0 Тогда
                    ТЗсверхурочные.УстановитьЗначение(сч-к,"РаботаУвиходнойОплата",Сверхурочние);
                КонецЕсли;
            КонецЕсли;
    Иначе
            кМашина = 0;
            Для счМашина=1 по ТЗмашина.КоличествоСтрок() Цикл
                Если ТЗсверхурочные.ПолучитьЗначение(сч-к,"Сотрудник")=ТЗмашина.ПолучитьЗначение(счМашина-кМашина,"Сотрудник") Тогда
                    Если ТЗсверхурочные.ПолучитьЗначение(сч-к,"Должность")=ТЗмашина.ПолучитьЗначение(счМашина-кМашина,"Должность") Тогда
                        ТЗмашина.УдалитьСтроку(счМашина-кМашина); кМашина = кМашина+1;
                    КонецЕсли;
                КонецЕсли;
            КонецЦикла;
            ТЗсверхурочные.УдалитьСтроку(сч-к); к = к+1;  
        КонецЕсли;
    КонецЦикла;
    кМашина = 0; КолСтрТЗмашина = ТЗмашина.КоличествоСтрок();

    Для счМашина=1 по КолСтрТЗмашина Цикл
        Состояние("7 - 3. "+(Окр(100/7,2)+Окр(100/7,2)+Окр(100/7*счМашина/(КолСтрТЗмашина-кМашина),2))+"%");
        Если (ТЗмашина.ПолучитьЗначение(счМашина-кМашина,"ОтработаноДней")=0) и (ТЗмашина.ПолучитьЗначение(счМашина-кМашина,"ОтработаноВремени")=0) Тогда
            ТЗмашина.УдалитьСтроку(счМашина-кМашина); кМашина = кМашина+1;
        КонецЕсли;
    КонецЦикла;
    Сотр_1 = "";
    Должность_1 = "";
    Маршрут_1 = "";
    Тариф_1 = "";
    Машина_1 = "";
    ТипМашины_1 = ""; КолСтрТЗмашина = ТЗмашина.КоличествоСтрок();
    сообщить("  "+ТЗмашина.КоличествоСтрок());  
    ТЗмашина.выбратьстроку();
    Для сч=1 по КолСтрТЗмашина Цикл
        Состояние("7 - 4. "+(Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7*сч/(КолСтрТЗмашина),2))+"%");
        Если СокрЛП(ТЗмашина.ПолучитьЗначение(сч,"ТипМашины"))<>"" Тогда
            Если Сотр_1<>ТЗмашина.ПолучитьЗначение(сч,"Сотрудник") Тогда
                Сотр_1      = ТЗмашина.ПолучитьЗначение(сч,"Сотрудник");
                Должность_1 = ТЗмашина.ПолучитьЗначение(сч,"Должность");
                Тариф_1     = ТЗмашина.ПолучитьЗначение(сч,"Тариф");
                ТипМашины_1 = ТЗмашина.ПолучитьЗначение(сч,"ТипМашины");
                Машина_1    = ТЗмашина.ПолучитьЗначение(сч,"Машина");
                Маршрут_1   = ТЗмашина.ПолучитьЗначение(сч,"Маршрут");
            Иначе
                Если Должность_1<>ТЗмашина.ПолучитьЗначение(сч,"Должность") Тогда
                    Должность_1 = ТЗмашина.ПолучитьЗначение(сч,"Должность");
                    Тариф_1     = ТЗмашина.ПолучитьЗначение(сч,"Тариф");
                    ТипМашины_1 = ТЗмашина.ПолучитьЗначение(сч,"ТипМашины");
                    Машина_1    = ТЗмашина.ПолучитьЗначение(сч,"Машина");
                    Маршрут_1   = ТЗмашина.ПолучитьЗначение(сч,"Маршрут");
                Иначе
                    Если Тариф_1<>ТЗмашина.ПолучитьЗначение(сч,"Тариф") Тогда
                        Тариф_1     = ТЗмашина.ПолучитьЗначение(сч,"Тариф");
                        ТипМашины_1 = ТЗмашина.ПолучитьЗначение(сч,"ТипМашины");
                        Машина_1    = ТЗмашина.ПолучитьЗначение(сч,"Машина");
                        Маршрут_1   = ТЗмашина.ПолучитьЗначение(сч,"Маршрут");
                    КонецЕсли;
                    Если ТипМашины_1<>ТЗмашина.ПолучитьЗначение(сч,"ТипМашины") Тогда
                        ТипМашины_1 = ТЗмашина.ПолучитьЗначение(сч,"ТипМашины");
                        Машина_1    = ТЗмашина.ПолучитьЗначение(сч,"Машина");
                        Маршрут_1   = ТЗмашина.ПолучитьЗначение(сч,"Маршрут");
                    КонецЕсли;
                    ТЗмашина.УстановитьЗначение(сч,"Сотрудник",Сотр_1);
                    ТЗмашина.УстановитьЗначение(сч,"Должность",Должность_1);
                    ТЗмашина.УстановитьЗначение(сч,"Тариф",Тариф_1);
                    ТЗмашина.УстановитьЗначение(сч,"ТипМашины",ТипМашины_1);
                    ТЗмашина.УстановитьЗначение(сч,"Машина",Машина_1);
                    ТЗмашина.УстановитьЗначение(сч,"Маршрут",Маршрут_1);
                КонецЕсли;
            КонецЕсли;
        Иначе
        КонецЕсли;
    КонецЦикла;
    ТЗмашина.Свернуть("Сотрудник,Должность,Маршрут,Тариф,Машина,ТипМашины","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗмашина.Сортировать("+Сотрудник,+Должность,+ТипМашины,+Тариф,-ОтработаноВремени,+Машина,+Маршрут");
    НомСтр = 0;
    Сотр_1 = "";
    Должность_1 = "";
    Маршрут_1 = "";
    Тариф_1 = "";
    Машина_1 = "";
    ТипМашины_1 = "";
    Для сч=1 по ТЗмашина.КоличествоСтрок() Цикл
        Состояние("7 - 5. "+(Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7*сч/(ТЗмашина.КоличествоСтрок()),2))+"%");
        Если СокрЛП(ТЗмашина.ПолучитьЗначение(сч,"ТипМашины"))="" Тогда
            НомСтр = сч;
            Сотр_1      = ТЗмашина.ПолучитьЗначение(сч,"Сотрудник");
            Должность_1 = ТЗмашина.ПолучитьЗначение(сч,"Должность");
            Тариф_1     = ТЗмашина.ПолучитьЗначение(сч,"Тариф");
            Маршрут_1   = ТЗмашина.ПолучитьЗначение(сч,"Маршрут");
        Иначе
            Если НомСтр>0 Тогда
                Нашол = 0;
                Для сч1=1 по ТЗмашина.КоличествоСтрок() Цикл
                    Если ТЗмашина.ПолучитьЗначение(сч1,"Сотрудник")<>Сотр_1 Тогда Продолжить; КонецЕсли;
                    Если ТЗмашина.ПолучитьЗначение(сч1,"Должность")<>Должность_1 Тогда Продолжить; КонецЕсли;
                    Если СокрЛП(ТЗмашина.ПолучитьЗначение(сч1,"ТипМашины"))="" Тогда Продолжить; КонецЕсли;
                    Если ТЗмашина.ПолучитьЗначение(сч1,"Тариф")=Тариф_1 Тогда
                        Если Нашол=0 Тогда Нашол=сч1; КонецЕсли;
                    КонецЕсли;
                КонецЦикла;
                Если Нашол>0 Тогда
                    Тариф_1     = ТЗмашина.ПолучитьЗначение(Нашол,"Тариф");
                    ТипМашины_1 = ТЗмашина.ПолучитьЗначение(Нашол,"ТипМашины");
                    Машина_1    = ТЗмашина.ПолучитьЗначение(Нашол,"Машина");
                    Маршрут_1   = ТЗмашина.ПолучитьЗначение(Нашол,"Маршрут");
                    ТЗмашина.УстановитьЗначение(НомСтр,"Тариф",Тариф_1);
                    ТЗмашина.УстановитьЗначение(НомСтр,"ТипМашины",ТипМашины_1);
                    ТЗмашина.УстановитьЗначение(НомСтр,"Машина",Машина_1);
                    ТЗмашина.УстановитьЗначение(НомСтр,"Маршрут",Маршрут_1);
                Иначе
                    Нашол_1 = 0;
                    Для сч1=1 по ТЗмашина.КоличествоСтрок() Цикл
                        Если ТЗмашина.ПолучитьЗначение(сч1,"Сотрудник")<>Сотр_1 Тогда Продолжить; КонецЕсли;
                        Если ТЗмашина.ПолучитьЗначение(сч1,"Должность")<>Должность_1 Тогда Продолжить; КонецЕсли;
                        Если СокрЛП(ТЗмашина.ПолучитьЗначение(сч1,"ТипМашины"))="" Тогда Продолжить; КонецЕсли;
                        Если СокрЛП(ТЗмашина.ПолучитьЗначение(сч1,"Машина"))<>"" Тогда
                            Если Нашол_1=0 Тогда Нашол_1=сч1; КонецЕсли;
                        КонецЕсли;
                    КонецЦикла;
                    Если Нашол_1>0 Тогда
                        Тариф_1     = ТЗмашина.ПолучитьЗначение(Нашол_1,"Тариф");
                        ТипМашины_1 = ТЗмашина.ПолучитьЗначение(Нашол_1,"ТипМашины");
                        Машина_1    = ТЗмашина.ПолучитьЗначение(Нашол_1,"Машина");
                        Маршрут_1   = ТЗмашина.ПолучитьЗначение(Нашол_1,"Маршрут");
                        ТЗмашина.УстановитьЗначение(НомСтр,"Тариф",Тариф_1);
                        ТЗмашина.УстановитьЗначение(НомСтр,"ТипМашины",ТипМашины_1);
                        ТЗмашина.УстановитьЗначение(НомСтр,"Машина",Машина_1);
                        ТЗмашина.УстановитьЗначение(НомСтр,"Маршрут",Маршрут_1);
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    ТЗмашина.Свернуть("Сотрудник,Должность,Маршрут,Тариф,Машина,ТипМашины","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗмашина.Сортировать("+Сотрудник,+Должность,+ТипМашины,+Тариф,-ОтработаноВремени,+Машина,+Маршрут");
    ТЗсверхурочные.ВставитьКолонку("КолСтрМашина",,"Число",15,0);
    Сотр_2 = ""; Должность_2 = ""; КолСтрМашина = 0;
    ТЗмашина.ВыбратьСтроки();
    Пока ТЗмашина.ПолучитьСтроку()=1 Цикл
        Состояние("7 - 6. "+(Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7*ТЗмашина.НомерСтроки/(ТЗмашина.КоличествоСтрок()),2))+"%");
        Если Сотр_2="" Тогда
            КолСтрМашина = 1;
            Сотр_2       = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Сотрудник");
            Должность_2  = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность");
        Иначе
            Если ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Сотрудник")<>Сотр_2 Тогда
                Если КолСтрМашина>0 Тогда
                    ТЗсверхурочные.ВыбратьСтроки();
                    Пока ТЗсверхурочные.ПолучитьСтроку()=1 Цикл
                        Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник")=Сотр_2 Тогда
                            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Должность")=Должность_2 Тогда
                                ТЗсверхурочные.УстановитьЗначение(ТЗсверхурочные.НомерСтроки,"КолСтрМашина",КолСтрМашина);
                            КонецЕсли;
                        КонецЕсли;
                    КонецЦикла;
                КонецЕсли;
                КолСтрМашина = 1;
                Сотр_2       = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Сотрудник");
                Должность_2  = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность");
            Иначе
                Если ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность")<>Должность_2 Тогда
                    Если КолСтрМашина>0 Тогда
                        ТЗсверхурочные.ВыбратьСтроки();
                        Пока ТЗсверхурочные.ПолучитьСтроку()=1 Цикл
                            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник")=Сотр_2 Тогда
                                Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Должность")=Должность_2 Тогда
                                    ТЗсверхурочные.УстановитьЗначение(ТЗсверхурочные.НомерСтроки,"КолСтрМашина",КолСтрМашина);
                                КонецЕсли;
                            КонецЕсли;
                        КонецЦикла;
                    КонецЕсли;
                    КолСтрМашина = 1;
                    Должность_2  = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность");
                Иначе
                    КолСтрМашина = КолСтрМашина+1;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Если КолСтрМашина>0 Тогда
        ТЗсверхурочные.ВыбратьСтроки();
        Пока ТЗсверхурочные.ПолучитьСтроку()=1 Цикл
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник")=Сотр_2 Тогда
                Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Должность")=Должность_2 Тогда
                    ТЗсверхурочные.УстановитьЗначение(ТЗсверхурочные.НомерСтроки,"КолСтрМашина",КолСтрМашина);
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    ТЗсверхурочные.ВыбратьСтроки();
    Пока ТЗсверхурочные.ПолучитьСтроку()=1 Цикл
        Состояние("7 - 7. "+(Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7*ТЗсверхурочные.НомерСтроки/(ТЗсверхурочные.КоличествоСтрок()),2))+"%");
        СумаНадурочних = 0; КолСтрМашина = 0; СумаВиходних = 0;
        Надурочние = 0; Виходние = 0;
        ТЗмашина.ВыбратьСтроки();
        Пока ТЗмашина.ПолучитьСтроку()=1 Цикл
            Надурочние = 0; Виходние = 0;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник")<>ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Сотрудник") Тогда Продолжить; КонецЕсли;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Должность")<>ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность") Тогда Продолжить; КонецЕсли;
            КолСтрМашина = КолСтрМашина+1;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"СверхУрочные")<>0 Тогда
                Надурочние = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"СверхУрочные")/ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"ОтработаноВремени")*ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"ОтработаноВремени");
            КонецЕсли;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходнойОплата")<>0 Тогда
                Виходние = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходнойОплата")/ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходной")*ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"РаботаУвиходной");
            КонецЕсли;
            НоваяСтрока();
            Сотрудник    = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник");
            ТН           = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник").Код;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"СверхУрочные")-СумаНадурочних-Окр(Надурочние,0)>=0 Тогда
                Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"КолСтрМашина")=КолСтрМашина Тогда
                    СверхУрочные = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"СверхУрочные")-СумаНадурочних;
                Иначе
                    СверхУрочные = Окр(Надурочние,0);
                    СумаНадурочних = СумаНадурочних+Окр(Надурочние,0);
                КонецЕсли;
            Иначе
                СверхУрочные = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"СверхУрочные")-СумаНадурочних;
                
                СумаНадурочних = СумаНадурочних+Окр(СверхУрочные,0);
            КонецЕсли;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходнойОплата")-СумаВиходних-Окр(Виходние,0)>=0 Тогда
                Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"КолСтрМашина")=КолСтрМашина Тогда
                    Выходные = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходнойОплата")-СумаВиходних;
                Иначе
                    Выходные     = Окр(Виходние,0);
                    СумаВиходних = СумаВиходних+Окр(Виходние,0);
                КонецЕсли;
            Иначе
                Выходные     = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходнойОплата")-СумаВиходних;
                
                СумаВиходних = СумаВиходних+Окр(Выходные,0);
            КонецЕсли;
            Машина       = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Машина");
            Маршрут      = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Маршрут");
            Должность    = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность");
        КонецЦикла;
        ТЗсверхурочные.выбратьстроку();
    КонецЦикла;