helpf.pro
Регистрация
 0 
Распечатать

1С 8.x : Подписка на событие, Проверка состояния работников при перемещении и увольнении

Необходимо при Увольнении или Перемещении работников проверять - работает ли сотрудник? или он в отпуске, болеет и т.д.?

Для решение этого создадим в разделе Подписки на события, подписку "ПриПроведенииПроверкаСостоянияРаботников"
title

и укажем в её свойствах:
title

А это код обработки из Обработчика:
Код 1C v 8.х
 //Проверка Состояния Сотрудников // для обработчика Подписка на Событие
Процедура ПриПроведенииПроверкаСостоянияРаботниковОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
ОчиститьСообщения();
Если ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.УвольнениеИзОрганизаций") Тогда
Для Каждого Сотр из Источник.РаботникиОрганизации Цикл
Сост=РегистрыСведений.СостояниеРаботниковОрганизаций.ПолучитьПоследнее(Сотр.ДатаУвольнения, Новый Структура("Сотрудник",Сотр.Сотрудник));
Если НЕ Сост.Состояние = Перечисления.СостоянияРаботникаОрганизации.Работает Тогда
Если Сост.СостояниеЗавершения = Перечисления.СостоянияРаботникаОрганизации.Работает и Сотр.ДатаУвольнения < Сост.ПериодЗавершения Тогда
Сообщить("Сотрудник "+Строка(Сотр.Сотрудник)+" на "+Формат(Сотр.ДатаУвольнения, "ДЛФ=DD")+ " - "+Строка(Сост.Состояние)+"! Можно уволить после "+Формат(Сост.ПериодЗавершения, "ДЛФ=DD") , СтатусСообщения.ОченьВажное);
Отказ = Истина; // Запрет проведения
ИначеЕсли НЕ Сост.СостояниеЗавершения = Перечисления.СостоянияРаботникаОрганизации.Работает и Сотр.ДатаУвольнения < Сост.ПериодЗавершения Тогда
Сообщить("Сотрудник "+Строка(Сотр.Сотрудник)+" на "+Формат(Сотр.ДатаУвольнения, "ДЛФ=DD")+ " - "+Строка(Сост.Состояние)+"!", СтатусСообщения.ОченьВажное);
Отказ = Истина; // Запрет проведения
КонецЕсли;
КонецЕсли;
КонецЦикла;
ИначеЕсли ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.КадровоеПеремещениеОрганизаций") Тогда
Для Каждого Сотр из Источник.РаботникиОрганизации Цикл
Сост=РегистрыСведений.СостояниеРаботниковОрганизаций.ПолучитьПоследнее(Сотр.ДатаНачала, Новый Структура("Сотрудник",Сотр.Сотрудник));
Если НЕ Сост.Состояние = Перечисления.СостоянияРаботникаОрганизации.Работает Тогда
Если Сост.СостояниеЗавершения = Перечисления.СостоянияРаботникаОрганизации.Работает и Сотр.ДатаНачала < Сост.ПериодЗавершения Тогда
Сообщить("Сотрудник "+Строка(Сотр.Сотрудник)+" на "+Формат(Сотр.ДатаНачала, "ДЛФ=DD")+ " - "+Строка(Сост.Состояние)+"! Можно переместить после "+Формат(Сост.ПериодЗавершения, "ДЛФ=DD") , СтатусСообщения.ОченьВажное);
Отказ = Истина; // Запрет проведения
ИначеЕсли НЕ Сост.СостояниеЗавершения = Перечисления.СостоянияРаботникаОрганизации.Работает и Сотр.ДатаНачала < Сост.ПериодЗавершения Тогда
Сообщить("Сотрудник "+Строка(Сотр.Сотрудник)+" на "+Формат(Сотр.ДатаНачала, "ДЛФ=DD")+ " - "+Строка(Сост.Состояние)+"!", СтатусСообщения.ОченьВажное);
Отказ = Истина; // Запрет проведения
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 21937
 0 
Распечатать
Возможно, вас также заинтересует
Ввод данных по командировкам в программе ЗУП 0
Ввод сведений о командировках в программе 1С: Зарплата и управление персоналом 8 (ред.30) осуществляется в Разделе Кадры - Все кадровые документы - Создать - Командировка Откроется документ: Ввод сведений о командировках в программ
ФСС НС и ПЗ 0
Подскажите с сумм, превышающих предельную величину базы (415000,00) для начисления страховых взносов и с компенсации за неиспользованный отпуск при увольнении берутся ли взносы в ФСС НС и ПЗ? Это не страховые взносы! На них ограничение не распрост
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.