Расчет остатков отпуска (включая дополнительные) при увольнении, Зарплата и управление персоналом КОРП 2.5

23.08.19

Учетные задачи - Зарплата

Обработка заполнения табличной части остатками Основного отпуска + Дополнительными (из карточки должности сотрудника на момент увольнения). Исправление в модуле, либо внешняя обработка заполнения табличной части документа. Код открыт (в описании).

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Расчет остатков отпуска (включая дополнительные) при увольнении, Зарплата и управление персоналом КОРП 2.5:
.epf 6,60Kb
1 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

     Типовая редакция конфигурации "Зарплата и управление персоналом КОРП 2.5" не выполняет расчет остатков дополнительных отпусков при увольнении (в т.ч. например обязательно положенные северные отпуска). Согласно модуля расчета отпусков основным ежегодным отпуском для расчета является отпуск используемый в основном виде расчета "Оплата отпуска по календарным дням" (реквизит ежегодные отпуска).

Для скачивания предлагаю обработку подключения к табличной части "Сотрудники организации" документа "Увольнение из организации".

Для тех кто открывал конфигурацию для изменения, предлагаю свое решение, можно внести исправление в модуль документа.

Исправил 1 процедуру, добавил 1 функцию.

Все изменения в модуле документа "Увольнения из организации".

 

1) Процедура "РассчитатьКоличествоДнейОтпуска" (свой блок в рамках //&&&)

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

2) Добавил функцию, куда передаю свое значение отпуска (дополнительного из должности):

//&&& 
Функция ОстаткиОтпуска_ОстатокОтпускаСотрудникаНаДату(Сотрудник, ДатаОстатков = '00010101', ЭтоРасчетПриУвольнении = Ложь, ПорядокРасчетаОсновногоОтпуска = Неопределено, ВидДополнительногоОтпуска, КоличествоДнейДополнительногоОтпуска = 0) Экспорт 
	
	Если Не ЗначениеЗаполнено(Сотрудник) Тогда
		Возврат 0;
	КонецЕсли;
	
	Если Не ЗначениеЗаполнено(ДатаОстатков) Тогда
		ДатаОстатков = НачалоДня(ТекущаяДатаСеанса());
	КонецЕсли;
	
	ТаблицаДанных = ОстаткиОтпусков.ОписаниеТаблицыДанных();
	
	Строка = ТаблицаДанных.Добавить();
	Строка.Сотрудник							= Сотрудник;
	Строка.ДатаОстатков							= НачалоДня(ДатаОстатков);
	Строка.ЭтоРасчетПриУвольнении				= ЭтоРасчетПриУвольнении;
	Строка.ОтборПоВидуЕжегодногоОтпуска			= ВидДополнительногоОтпуска;
	
	Результат = ОстаткиОтпусков.ОстаткиОтпусков(ТаблицаДанных)[0];
	
	ОстаткиВРазрезеРабочихЛетИВидовОтпусков = Новый Массив;
	Для Каждого РабочийГод Из Результат.ДанныеРасчета Цикл
		Если РабочийГод.ДоступноДляСписанияВЭтомГоду = 0 Тогда
			Продолжить;
		КонецЕсли;
		ОстаткиВРазрезеРабочихЛетИВидовОтпусков.Добавить(Новый Структура("ВидЕжегодногоОтпуска, ОсталосьДней, РабочийГодС, РабочийГодПо, ПоследнийРабочийГод",
			РабочийГод.ВидЕжегодногоОтпуска, РабочийГод.ДоступноДляСписанияВЭтомГоду, РабочийГод.ДатаНачала, РабочийГод.ДатаОкончания, РабочийГод.ПоследнийРабочийГод));
	КонецЦикла;
	
	Возврат Новый Структура("ОстатокНаДату, РабочийГодС, РабочийГодПо, Примечание, ОстаткиВРазрезеВидовОтпусков, ОстаткиВРазрезеРабочихЛетИВидовОтпусков",
		Результат.ОстатокНаДату, Результат.РабочийГодС, Результат.РабочийГодПо, Результат.Примечание, Результат.ОстатокНаДатуПоВидамЕжегодныхОтпусков, ОстаткиВРазрезеРабочихЛетИВидовОтпусков);
	
КонецФункции

В модуль документа не стал добавлять комментарии при расчете, во внешней обработке заполнения табличной части, они есть:

Результат расчета по сотруднику: ******* *************** ************************
    Остаток основного отпуска: 4,670
    Остаток дополнительного отпуска (Доп.отпуск за работу в местностях с особыми климатическими условиями, дн/год:16,000): 2,670
Всего остаток отпуска: 7,340

 

Тестировалось на конфигурации: Зарплата и управление персоналом КОРП, редакция 2.5 (2.5.143.1).

Вступайте в нашу телеграмм-группу Инфостарт

Остатки отпуска Увольнение дополнительный отпуск

См. также

Зарплата Роли и права Системный администратор Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5940 руб.

27.05.2021    49321    394    119    

300

Зарплата Консолидация данных 1С:Зарплата и Управление Персоналом 3.x Россия Управленческий учет Платные (руб)

Расширение для создания и настройки обмена с консолидированной базой ЗУП. Код разработки под определенные требования проекта.

84000 руб.

11.07.2025    1327    2    0    

1

Зарплата Кадровый учет Бухгалтер 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Предлагаем расширить возможности конфигурации 1С:УНФ 3.0 в части ведения кадрового учета. С помощью данного расширения в конфигурацию будут добавлены новые документы: "Отпуск" и "Командировка". Документы облегчат работу кадровика и расчетчика, а также повысят эффективность работы за счет оптимизации и упрощения процесса ведения учета.

43200 руб.

31.10.2024    2289    2    0    

2

SALE! 50%

Зарплата Регламентированный учет и отчетность Бухгалтер 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Здравоохранение, медицина, стоматология Россия Платные (руб)

Подсистема (расширение) конфигурации Зарплата и кадры государственного учреждения, редакция 3.1 для формирования формы №30 федерального статистического наблюдения "Сведения о медицинской организации" в редакции Приказов Росстата I) от 30.12.2020 №863, II) от 27.12.2022 N 985, III) от 25.12.2023 N 681 и IV) от 29.11.2025 №594.

18000 12600 руб.

26.10.2021    18696    23    13    

19

Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Бизнес-аналитик Пользователь Руководитель проекта 1С:Предприятие 8 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Торговля и склад 7.7 Бытовые услуги, сервис Оптовая торговля, дистрибуция, логистика Электротехника и микроэлектроника Управленческий учет Платные (руб)

Модуль или расширение «Сервисный центр для 1С» позволяет принимать в ремонт оборудование (компьютеры, бытовая техника и т.п.), оформлять заявки инженеров на посещение клиентов и вести начисление заработной платы для сотрудников. Позволяет наладить автоматизированный учет в сервисном центре на уже существующей базе.

16800 руб.

01.11.2012    102108    121    1    

132

Перенос данных 1C Зарплата Бюджетный учет Программист Бухгалтер 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Обработки для быстрого перехода с конфигураций «КАМИН:Расчет зарплаты для бюджетных учреждений 3.5» и «КАМИН:Зарплата для бюджетных учреждений 5.5» на конфигурацию «Зарплата и кадры государственного учреждения».

12000 руб.

28.07.2016    66279    176    148    

144
Для отправки сообщения требуется регистрация/авторизация