Имя: Пароль:
1C
1С v8
Учет компенсации доп. отпуска в документе увольнение из организации
0 Alex1979rak
 
17.07.12
05:20
Здравствуйте.
1С до сих пор не учитывает компенсацию дополнительного отпуска при увольнении сотрудников, хотя тема мульсируется уже много лет.
Может кто уже правил документ? Скиньте как лучше сделать.
1 laeg
 
17.07.12
07:08
А чем расчет компенсации дополнительного отпуска отличается от основного ?
2 Alex1979rak
 
17.07.12
07:27
А причем здесь расчет?
3 Alex1979rak
 
17.07.12
08:10
В модуле документа Увольнение из организации вроде все корректно, в общих модулях "ПроцедурыОбновленияИнформационнойБазы" и "ПроцедурыУправленияПерсоналом" Вид Дополнительный Отпуск присутствует, а в регистр накопления "ФактическиеОтпускаОрганизаций" содержит записи только ОсновногоОтпуска? Причем в документе регистраторе "НачисленияОтпускаСотрудникамОрганизаций" Дополнительный отпуск присутствует. Может просто дописать проводку документа по регистру?
4 laeg
 
17.07.12
08:57
Зачем ?
Остатки отпусков "почти корректно работают" с доп.отпусками.
При увольнении сотрудника, используется тот же самый расчет, что и в остатках отпуска, только учитывается основной отпуск.
Изменить всего один параметр, при запросе остатка - и полный остаток у вас в кармане.
5 Alex1979rak
 
17.07.12
10:10
А если немного подробней, где меняем один параметр. В модуле документа в Процедуре РассчитатьКоличествоДнейОтпуска запрос и так вроде выбирает все виды отпуска из справочника "Виды ежегодных отпусков".
А в гиганских запросах общих модулей без бутылки не разберешься.
6 laeg
 
17.07.12
12:20
В модуле документа "УвольнениеИзОрганизаций", есть процедура
Процедура РассчитатьКоличествоДнейОтпуска(СтрокаТЧ, СведенияОСотрудниках = Неопределено) Экспорт

в ней строчка:
Результат = ОстаткиОтпусков.ОстатокОтпускаСотрудникаНаДату(СтрокаТЧ.Сотрудник, СтрокаТЧ.ДатаУвольнения, Истина, СтрокаТЧ.ПорядокРасчетаОтпуска);
Она возвращает остаток только по основному отпуску

Для возврата полностью всех дней, можно оставить так:
Результат = ОстаткиОтпусков.ОстатокОтпускаСотрудникаНаДату(СтрокаТЧ.Сотрудник, СтрокаТЧ.ДатаУвольнения);
7 laeg
 
17.07.12
12:23
+(6)
Не знаю как в зупе, в упп нет выборки по всем видам отпусков


Процедура РассчитатьКоличествоДнейОтпуска(СтрокаТЧ, СведенияОСотрудниках = Неопределено) Экспорт
   
   Если Не ЗначениеЗаполнено(СтрокаТЧ.Сотрудник) ИЛИ Не ЗначениеЗаполнено(СтрокаТЧ.ДатаУвольнения) ИЛИ СтрокаТЧ.ПорядокРасчетаОтпуска.Пустая() Тогда
       Возврат;
   КонецЕсли;
   
   //Результат = ОстаткиОтпусков.ОстатокОтпускаСотрудникаНаДату(СтрокаТЧ.Сотрудник, СтрокаТЧ.ДатаУвольнения, Истина, СтрокаТЧ.ПорядокРасчетаОтпуска);
   Результат = ОстаткиОтпусков.ОстатокОтпускаСотрудникаНаДату(СтрокаТЧ.Сотрудник, СтрокаТЧ.ДатаУвольнения);
   
   СтрокаТЧ.РабочийГодС                            = Результат.РабочийГодС;
   СтрокаТЧ.РабочийГодПо                            = Результат.РабочийГодПо;
   СтрокаТЧ.ДнейЧасовКомпенсацииУдержанияОтпуска    = Результат.ОстатокНаДату * ?(Результат.ОстатокНаДату >= 0, 1, -1);
   СтрокаТЧ.ПризнакКомпенсацииОтпуска                = Результат.ОстатокНаДату >= 0;
   
   УвольнениеИзОрганизацийПереопределяемый.ДополнительноУточнитьДниКомпенсации(СтрокаТЧ, ПолучитьСведенияОСотрудниках(СведенияОСотрудниках, СтрокаТЧ.Сотрудник));
   
КонецПроцедуры



по идее она и не нужна, глобальная процедура и так считает остатки как свернуто так и развернуто по всем видам отпусков
8 Alex1979rak
 
18.07.12
02:20
Не то, но за напрвление поиска большое спасибо.
9 Alex1979rak
 
18.07.12
04:42
Прошу прощения у уважаемого Laeg, за поспешные выводы. У меня тестовая ЗиУП была релиза 2.5.49.1
Сейчас обновил до последней 2.5.52.3 и получилось. Хотя так и не понял что дает отказ от уточнения порядка расчета отпуска?
10 laeg
 
18.07.12
06:41
Передаваемые параметры в функцию, участвуют в Фильтрация при сборе данных и расчете остатка.
11 Alex1979rak
 
18.07.12
07:47
Еще раз благодарю за помощь, особенно за пояснения.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн