Предупреждения при загрузке больничных: Сотрудник уволен больше месяца назад, Сотрудник в месяце регистрации в отпуске. УПП 1.3

20.07.22

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

Это решение для УПП 1.3 (в ЗУП 2.5 и Комплексной автоматизации должно быть аналогично). Документ "Начисление по больничному листу" при нажатии на кнопку "Рассчитать" проверяется на два условия: 1) Сотрудник уволен больше месяца назад от даты начала больничного 2) В месяце больничного было начисление отпускных.

Задача от расчетчиков:

Документ "Начисление по больничному листу": при нажатии на кнопку "Рассчитать" нужно выполнить проверку на два условия

  1. Сотрудник уволен больше месяца назад от даты начала больничного 
  2. В периоде регистрации больничного были отпускные

Выдать предупреждение

Делюсь своим решением:

Процедура КнопкаРассчитатьВсеНажатие(Элемент)
	
	//МОЯ ВСТАВКА+
	СообщениеУвольнение = ПроверкаУвольнения(ДокументОбъект.Сотрудник, ДокументОбъект.ДатаНачалаСобытия);
	Если СообщениеУвольнение <> "" И СообщениеУвольнение <> Неопределено Тогда 
		Ответ = Вопрос(СообщениеУвольнение, РежимДиалогаВопрос.ДаНет);
		Если Ответ = КодВозвратаДиалога.Нет Тогда
			Возврат
		КонецЕсли;
	КонецЕсли;	

	СообщениеОтпуск = ПроверкаОтпуска(ДокументОбъект.Сотрудник, ДокументОбъект.ПериодРегистрации);
	Если СообщениеОтпуск <> "" И СообщениеОтпуск <> Неопределено Тогда 
		Ответ = Вопрос(СообщениеОтпуск, РежимДиалогаВопрос.ДаНет);
		Если Ответ = КодВозвратаДиалога.Нет Тогда
			Возврат
		КонецЕсли;
	КонецЕсли;	
	//МОЯ ВСТАВКА-
	
    // далее сохранен оригинальный код процедуры

КонецПроцедуры


//МОЯ ВСТАВКА+
Функция ПроверкаУвольнения(пСотрудник, пДатаНачалаСобытия) Экспорт
	
	Результат = "";
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	КадроваяИстория.Период КАК НеРаботаетС,
    	|	РАЗНОСТЬДАТ(КадроваяИстория.Период, &Период, МЕСЯЦ) КАК НеРаботаетМесяцев		
		|ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период) КАК КадроваяИстория
		|ГДЕ	КадроваяИстория.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
		|	И КадроваяИстория.Сотрудник = &Сотрудник 
		|";
	
	Запрос.УстановитьПараметр( "Сотрудник", пСотрудник);
	Запрос.УстановитьПараметр( "Период", ?(пДатаНачалаСобытия = Дата(1,1,1), ТекущаяДата(), КонецДня(пДатаНачалаСобытия)));
	
	РезультатЗапроса = Запрос.Выполнить();			
	Если НЕ РезультатЗапроса.Пустой() Тогда
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			Если ВыборкаДетальныеЗаписи.НеРаботаетМесяцев > 1 Тогда 
				Результат = пСотрудник.Наименование + " уволен " + Формат(ВыборкаДетальныеЗаписи.НеРаботаетС-24*60*60, "ДЛФ=Д") + " (Не работает " + Строка(ВыборкаДетальныеЗаписи.НеРаботаетМесяцев) + " мес.)" + 
							Символы.ПС + " Рассчитать?";
			КонецЕсли;	
		КонецЦикла;			
	КонецЕсли;
	
	Возврат Результат;
 
КонецФункции

Функция ПроверкаОтпуска(пСотрудник, пПериодРегистрации) Экспорт
	
	Результат = "";
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	НачислОтпуска.Номер КАК НомерДокумента, 
		|	НачислОтпуска.Дата КАК ДатаДокумента	
		|ИЗ 
		|	Документ.НачислениеОтпускаРаботникамОрганизаций КАК НачислОтпуска
		|ГДЕ 
		|	НачислОтпуска.ПериодРегистрации = &ПериодРегистрации И
		|	НачислОтпуска.Сотрудник = &Сотрудник 
		|";
	
	Запрос.УстановитьПараметр( "Сотрудник", пСотрудник);
	Запрос.УстановитьПараметр( "ПериодРегистрации", пПериодРегистрации);
	
	РезультатЗапроса = Запрос.Выполнить();			
	Если НЕ РезультатЗапроса.Пустой() Тогда
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			Результат = пСотрудник.Наименование + " отпуск - док.№ " + ВыборкаДетальныеЗаписи.НомерДокумента + " от " +  Формат(ВыборкаДетальныеЗаписи.ДатаДокумента, "ДЛФ=Д") + 
						Символы.ПС + " Рассчитать?";
		КонецЦикла;			
	КонецЕсли;
	
	Возврат Результат;
 
КонецФункции
//МОЯ ВСТАВКА-

 

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

Начисление по больничному листу загрузка больничных Уволен отпуск УПП 1.3

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Разработка Адаптация типовых решений Производство готовой продукции (работ, услуг) Розничная торговля 1С:Управление торговлей 10 Россия Платные (руб)

Доработка для 1С:Управление торговлей 10.3 (релиз 10.3.88.3) добавляет поддержку маркировки новых категорий товаров согласно постановлениям Правительства РФ 2025–2026 гг. Конфигурация УТ 10.3 снята с поддержки — новые маркируемые категории в типовую поставку больше не попадают. Доработка закрывает этот пробел: новые виды номенклатуры, обмен с ГИС МТ «Честный Знак». Поставляется в виде файла .cf

14640 руб.

23.04.2026    3421    27    13    

30

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

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

85400 руб.

11.07.2025    6327    6    1    

5

Зарплата Кадровый учет Бухгалтер Пользователь 1С 8.3 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Если не хотите ставить тяжёлую ЗУП? Нужен только табель и начисление по своим правилам? Рекомендуем этот модуль подключается к УТ, получаете табель, начисление и создание Расходный кассовый ордер/Списание безналичных денежных средств без типовой ЗУП

20740 руб.

27.04.2026    1316    5    0    

1

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

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

18800 руб.

01.11.2012    108013    134    1    

143

Адаптация типовых решений БСП (Библиотека стандартных подсистем) Кадровый учет ЭДО и ОФД 1C:Бухгалтерия 1С:Зарплата и кадры 7.7 1C:ERP 1С:ЗУП 1С:УТ 1С:ДО Платные (руб)

Наше расширение 1С Госключ обеспечивает интеграцию любой конфигурации 1С на базе БСП с мобильным приложением «Госключ», позволяя сотрудникам подписывать кадровые документы (КЭДО) и документы материальной ответственности (МОЛ, ПБ) усиленной электронной подписью прямо со смартфона. Решение автоматизирует формирование и отправку документов на подпись, отслеживает статусы подписания и хранит подписанные файлы непосредственно в базе 1С

25000 руб.

06.03.2026    2038    4    0    

5

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

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

20740 руб.

28.07.2016    73012    193    160    

159

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Решение позволяет автоматически заполнять отдельные реквизиты загружаемых банковских документов, основываясь на известных значениях реквизитов и тексте назначения платежа. Простая настройка, широкие возможности анализа назначения платежа без написания кода и сложных шаблонов.

9760 руб.

17.06.2025    4562    11    0    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DwellerNet 3 22.07.22 13:47 Сейчас в теме
Дата увольнения является последним рабочим днем. Так что период нужно сдвигать на 1 день.
AlenaBelousova; +1 Ответить
2. Vinzor 125 26.07.22 09:49 Сейчас в теме
По пересечению с "Отпуском". Мы у себя это реализовали по данным регистра расчетов "Основные начисления", учитывая пересечение даты начала и окончания болезни с датами начала и окончания периода действия отпусков. Это более точно.
AlenaBelousova; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация