Имя: Пароль:
1C
1С v8
Чисто уточнить: ЗУП так и не умеет компенсировать доп. отпуск при увольнении?
0 IamAlexy
 
28.01.13
02:12
Собственно в увольнениях организаций так и не отображаются дни за доп отпуск в днях для компенсации ?
1 360i
 
28.01.13
04:23
(0) Не умеет
2 shuhard
 
28.01.13
07:36
(0) угу
не ленись - допиши 5 строчек кода
3 IamAlexy
 
28.01.13
07:47
(2) да чо то там не  5 строк..
оно адским запросом собирается который сам отпуск возвращает но возвращает по немуо статок 0 дней..
4 shuhard
 
28.01.13
08:03
(3) видимо у меня слишком старый релиз УПП, но такая заплатка работает =)
Строка = ТаблицаПериодов.Добавить();
   Строка.НомерСтроки                = 1;
   Строка.Сотрудник                = СтрокаТЧ.Сотрудник;
   Строка.ВидЕжегодногоОтпуска        = ВидЕжегодногоОтпуска;
   Строка.ДатаНачала                = СтрокаТЧ.ДатаУвольнения + ДлинаСуток;
   Строка.ДатаОкончания            = СтрокаТЧ.ДатаУвольнения + ДлинаСуток;
   Строка.ДатаРасчетаПриУвольнении    = СтрокаТЧ.ДатаУвольнения;
   //
   Строка = ТаблицаПериодов.Добавить();
   Строка.НомерСтроки                = 2;
   Строка.Сотрудник                = СтрокаТЧ.Сотрудник;
   Строка.ВидЕжегодногоОтпуска        = Справочники.ВидыЕжегодныхОтпусков.НайтиПоКоду("000000002"); // гальюнок
   Строка.ДатаНачала                = СтрокаТЧ.ДатаУвольнения + ДлинаСуток;
   Строка.ДатаОкончания            = СтрокаТЧ.ДатаУвольнения + ДлинаСуток;
   Строка.ДатаРасчетаПриУвольнении    = СтрокаТЧ.ДатаУвольнения;
   //    
   ВыборкаПоОтпускам = ПроцедурыУправленияПерсоналом.ПодготовитьДанныеПоРегламентированнымОтпускам(ТаблицаПериодов, Ссылка);
   
       
   Если ВыборкаПоОтпускам.Следующий() Тогда
       СтрокаТЧ.РабочийГодС                            = ВыборкаПоОтпускам.ДатаНачалаРабочегоГода;
       СтрокаТЧ.РабочийГодПо                            = СтрокаТЧ.ДатаУвольнения;
       СтрокаТЧ.ДнейЧасовКомпенсацииУдержанияОтпуска    = ВыборкаПоОтпускам.Количество * ?(ВыборкаПоОтпускам.Количество >= 0, 1, -1);
       СтрокаТЧ.ПризнакКомпенсацииОтпуска                = ВыборкаПоОтпускам.Количество >= 0;
       УвольнениеИзОрганизацийПереопределяемый.ДополнительноУточнитьДниКомпенсации(СтрокаТЧ, ПолучитьСведенияОСотрудниках(СведенияОСотрудниках, СтрокаТЧ.Сотрудник));
   Иначе
       СтрокаТЧ.РабочийГодС                            = Дата(1,1,1);
       СтрокаТЧ.РабочийГодПо                            = Дата(1,1,1);
       СтрокаТЧ.ДнейЧасовКомпенсацииУдержанияОтпуска    = 0;
       СтрокаТЧ.ПризнакКомпенсацииОтпуска                = Ложь;
   КонецЕсли;
   //
   ВыборкаПоОтпускам.Сбросить();
   ДнейЧасовКомпенсацииУдержанияОтпуска=0;
   Пока ВыборкаПоОтпускам.Следующий()  Цикл
       ДнейЧасовКомпенсацииУдержанияОтпуска=ДнейЧасовКомпенсацииУдержанияОтпуска+ВыборкаПоОтпускам.Количество;
   КонецЦикла;    

   СтрокаТЧ.ДнейЧасовКомпенсацииУдержанияОтпуска    = ДнейЧасовКомпенсацииУдержанияОтпуска; // гальюнок
   
   
   Если мОкруглятьДниОтпускаПриКомпенсации = Неопределено Тогда
       мОкруглятьДниОтпускаПриКомпенсации = Константы.ОкруглятьДниОтпускаПриКомпенсации.Получить();
   КонецЕсли;
   Если мОкруглятьДниОтпускаПриКомпенсации Тогда
       СтрокаТЧ.ДнейЧасовКомпенсацииУдержанияОтпуска = Цел(СтрокаТЧ.ДнейЧасовКомпенсацииУдержанияОтпуска) +
           ?(Цел(СтрокаТЧ.ДнейЧасовКомпенсацииУдержанияОтпуска) = СтрокаТЧ.ДнейЧасовКомпенсацииУдержанияОтпуска, 0, 1);
   КонецЕсли;
5 Homer
 
28.01.13
08:03
в НачислениеОтпускаРаботникамОрганизаций сделал реквизит ВидКомпенсацииОтпуска и дописал при расчете
   Если КомпенсацияОтпуска и ЗначениеЗаполнено(ВидКомпенсацииОтпуска)Тогда
       Для Каждого Строка из Начисления Цикл
           Если НЕ Строка.Сторно и  
               (Строка.ВидРасчета = ПланыВидовРасчета.ДополнительныеНачисленияОрганизаций.КомпенсацияОтпускаКалендарныеДниБезУвольнения
               или Строка.ВидРасчета = ПланыВидовРасчета.ДополнительныеНачисленияОрганизаций.КомпенсацияОтпускаШестидневкаБезУвольнения) Тогда
               Строка.ВидРасчета = ВидКомпенсацииОтпуска;
           КонецЕсли;
       КонецЦикла;
   КонецЕсли;
6 Homer
 
28.01.13
08:04
(4) ВыборкаПоОтпускам = ПроцедурыУправленияПерсоналом.ПодготовитьДанныеПоРегламентированнымОтпускам(ТаблицаПериодов, Ссылка) этого уже нет
7 shuhard
 
28.01.13
08:07
(6) речь о  кадровом документе
8 Homer
 
28.01.13
08:12
(7) сейчас этой процедуры нету
9 shuhard
 
28.01.13
08:20
(8) и чё ?
10 IamAlexy
 
28.01.13
08:24
та суть в том что оно наличие отпуска видит, видит что он положен - дни там ноль..
11 Homer
 
28.01.13
08:25
(9) она не правильно отрабатывает данные на примере дикретников (по крайне мере у меня).
12 Tanis
 
28.01.13
08:31
У декретников разве есть доп.отпуск? Он же идет за отработанные дни (за вредность или профессию или т.п). Уточните в законах должен ли он быть у декретников?! У них вроде и основной за период декрета не должен быть...
13 Homer
 
28.01.13
08:35
эта процедура не правильно рассчитывает остаток отпуска у декретников
14 IamAlexy
 
28.01.13
08:44
(13) да оно собственно любой допотпуск неправильно рассчитывает..
например для районов крайнего севера который...
15 IamAlexy
 
28.01.13
11:22
на крайних релизах ктонить делал ?
16 shuhard
 
11.02.13
22:09
(15) сегодня на 1.3.35.1 сделал, но вместо предложенного в (5)  реквизита сделал булев
и вынес в предусмотренную 1С процедуру в общем модуле:
УвольнениеИзОрганизацийПереопределяемый.ДополнительноУточнитьДниКомпенсации