Не работает если система оплаты Повременно-премиальная по окладу согласно табеля
Надо защарить так:
//Если (ФормаТрудаСотрудника = Перечисление.ФормыТруда.ТабельПодневнОклад) или (ФормаТрудаСотрудника = Перечисление.ФормыТруда.ТабельПочасОклад) или (ФормаТрудаСотрудника = Перечисление.ФормыТруда.ТабельПочасТариф) тогда
// Если ПустоеЗначение(ДокументТабель) = 0 тогда
// ДокументТабель.ПолучитьСтрокуПоНомеру(НомерВТабеле);
//
// Если ДокументТабель.ПолнотаВводаДанных = 1 Тогда
// //заполнение данных из табеля
// Для ДатаКалендаря = НачалоПериода по КонецПериода Цикл
//
// ПозицияМассива = ДатаЧисло(ДатаКалендаря);
//
// Часов = ДокументТабель.ПолучитьАтрибут("КолвоЧасов" + Формат(ПозицияМассива, "Ч(0)2.0"));
// Если Часов>0 Тогда
// Если ПустоеЗначение(КодЧасов [ПозицияМассива]) = 1 Тогда
// КодЧасов [ПозицияМассива] = "Я";
// КолвоЧасов[ПозицияМассива] = Часов;
// ИначеЕсли ((КодЧасов[ПозицияМассива]="РВ")и(КолвоЧасов[ПозицияМассива]=0))Тогда
// КолвоЧасов[ПозицияМассива]=Часов;
// КонецЕсли;
// ИначеЕсли КодЧасов [ПозицияМассива] <> "РВ" Тогда
//
// // Попробуем побороться с буквами "В", которые появляются в табеле после увольнения и перед принятием на работу.
// // Предусмотрим обработку случая когда сотрудника несколько раз принимали и увольняли в одном месяце.
// Если ПустоеЗначение(КодЧасов [ПозицияМассива]) = 1 Тогда
// ЗначениеСостоянияФизЛица = 0;
// ТаблицаРеквизитов.ВыбратьСтроки();
// Пока ТаблицаРеквизитов.ПолучитьСтроку() = 1 Цикл
// Если ТаблицаРеквизитов.Дата <= ДатаКалендаря Тогда
// ЗначениеСостоянияФизЛица = ТаблицаРеквизитов.СостояниеФизЛица;
// Иначе
// Прервать;
// КонецЕсли;
// КонецЦикла;
//
// // сотрудник должен быть в штате на эту дату.
// Если ПустоеЗначение(ЗначениеСостоянияФизЛица) = 0 Тогда
// КодЧасов[ПозицияМассива] = "В";
// КонецЕсли;
// КонецЕсли;
//
// КонецЕсли;
// КонецЦикла;
// КонецЕсли;
// КонецЕсли;
//Иначе
Если (ЕстьЗаписиПоЖР = 1) или (ТабШАБЛОН = 1) Тогда // Ильдар
Показать