Фактический период действия больничного

1. Roootru 5 27.08.24 07:03 Сейчас в теме
Здравствуйте.
Платформа: 1С:Предприятие 8.3 (8.3.22.2239)
Конфигурация: Зарплата и управление персоналом, редакция 3.1 (3.1.29.38)

"Уперся в стену" при формировании фактического периода действий. А если конкретно то при получении записей виртуальной таблицы (ФактическийПериодДействия) регистра расчета.

На первом рисунке я для наглядности показываю результат запроса в котором обращаюсь к таблице "Начисления", чтобы показать действующие периоды действия по всем видам расчета (не фактические периоды, а просто периоды действия прошу обратить внимание). Единственный отбор при построении запроса был по измерению "Сотрудник".
Рисунок 1

Далее показываю уже результат запроса к виртуальной таблице "ФактическийПериодДействия", в котором в параметрах виртуальной таблицы был так же установлен отбор по измерению "Сотрудник".
Рисунок 2

По рисунку 2 видим что фактический период действия больничного у нас встает только с 01.08.2024, хотя больничный должен был вытеснить все остальные согласно записям рисунка 1, т.е. период действия у больничного должен совпадать с фактическим периодом действия. И получается что до 01.08 записи по больничному не попадают в фактический период действия.

Чтобы сразу исключить излишки вопросов напишу что смотрел:
1. На момент получения фактический периодов действия были получены в отладке таблицы хранящие вытесняющие виды расчета для каждого из начисленных видов расчета. И каждый вид расчета имеет в вытесняющих оба вида расчета ("Больничный" и "Больничный за счет работодателя"). Кроме "Премия за дополнительные задачи", ее никто не вытесняет, она никого не вытесняет.
2. Сторнирующие записи присутствуют, ведь без них фактический период действия больничного не должен работать (ведь период регистрации у него август, а не июль). Все это можете увидеть на рисунке 1.
3. Было проведено много экспериментов, удалось проверить что документ премия как то "ломает" получение ФПД (фактич. периода действия): в "надбавка за территориальный стаж" проставлена настройка по расчету в документах разовых начислений, в документе "Премия" рассчитаны премия и территориалка и каждый имеет собственный период действия, по умолчанию он за полный месяц (с 01.07 по 31.07 в данном контексте). Если проставить у надбавки период с 01.07 по 30.07 (т.е. конец периода теперь не 31 а 30) рисунок 1 и 2 будут теперь выглядеть вот так:

Или же это тоже "симптом", а не "первоисточник болезни"
4. Была произведена реиндексация и перерасчет итогов с помощью инструментов тестирования в конфигураторе. До конца внутренней кухни формирования данной виртуальной таблицы я не знаю, может быть этот пункт был ни к чему.

Вообщем если я какой то очевидный момент пропустил при формировании ФПД то буду благодарен за помощь
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. nomad_irk 76 18.09.24 10:51 Сейчас в теме
(1) Прикрепляйте скрины прямо к сообщению, ссылки на внешние ресурсы могут не работать.
Попробуйте поменять версию платформы.
5. Roootru 5 19.09.24 03:42 Сейчас в теме
2. romulanin 18.09.24 10:44 Сейчас в теме
У меня было что-то подобное дорабатывал исключение начислений в процедуре РассчитатьЗарплатуСлужебный, ФПД стал некорректно формироваться, пришлось добавлять сами виды расчета в ФПД в процедуре ФПДПоОписаниюПолучаемыхЗаписей

Больничный = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Больничный");
	БольничныйЗаСчетРаботодателя = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Больничный за счет работодателя");
	Для каждого стр из НаборНачисления цикл
		Если стр.ВидРасчета = Больничный или стр.ВидРасчета = БольничныйЗаСчетРаботодателя тогда
			Отбор = Новый Структура();
			Отбор.Вставить("НомерСтроки",стр.НомерСтроки);
			Отбор.Вставить("ПериодДействияНачало",стр.ПериодДействияНачало);
			Отбор.Вставить("ПериодДействияКонец",стр.ПериодДействияКонец);
			Отбор.Вставить("Регистратор",стр.Регистратор);
			Строки = ФПД.НайтиСтроки(Отбор);
			Если Строки.Количество() = 0 Тогда
				Отбор = Новый Структура();
				Отбор.Вставить("НомерСтроки",стр.НомерСтроки);
				Отбор.Вставить("ПериодДействияНачало",стр.ПериодДействияНачало);
				//Отбор.Вставить("ПериодДействияКонец",стр.ПериодДействияКонец);
				Отбор.Вставить("Регистратор",стр.Регистратор);
				Строки = ФПД.НайтиСтроки(Отбор);
				Если Строки.Количество() = 1 и Строки[0].ПериодДействияКонец <> стр.ПериодДействияКонец Тогда
					 Строки[0].ПериодДействияКонец = стр.ПериодДействияКонец;
					 Продолжить;
				КонецЕсли;
				НоваяСтрока = ФПД.Добавить();
				ЗаполнитьЗначенияСвойств(НоваяСтрока,стр);
			КонецЕсли;	
		КонецЕсли;	
	КонецЦикла;	
Показать
4. Roootru 5 19.09.24 02:25 Сейчас в теме
(2) Впринципе интересный вариант, главные быть уверенным что нет начислений вытесняющих больничные (если такие конечно существуют). У вас давно это было? На какой платформе работали в то время, не помните? Логического объяснения ситуации я так и не нашел и на тот момент просто обошелся тем что уменьшил периода действия одного из вытесняемых начислений на один день и (что странно) ФПД больничных сформировался как надо и вытеснил все что нужно.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот