Как правильно считать рабочий год для принятого сотрудника. Подозрение на ошибку в расчетах ЗУП 3.1.7.87

1. jobkostya1c_ERP 100 26.07.18 17:43 Сейчас в теме
Здравствуйте, Форумчане. Вопрос следующий (только начал ЗУП 3.1 серьезно изучать, даже готовлюсь к специалисту-консультанту "для себя"): если допустим сотрудник принят 30.01.2017, то рабочий год для него (в течение которого ему полагаются 28 календарных дней основного ежегодного отпуска) будет таким:
1) С 30.01.2017 По 29.01.2018 (первый год)
2) С 30.01.2018 По 29.01.2019 (второй год).
Примечание: точно нет никаких отклонений, влияющих на сдвиг. Нет никаких отпусков за свой счет. Только командировки и обычные ежегодные отпуска?
Суть проблемы вот в чем ЗУП 3.1.7.87 упорно считает вот так:
1) С 30.01.2017 по 29.01.2018 (это был ввод остатков - данные регистра "Заработанные права на отпуска". Внедрение было с 01.02.2018 г. с ЗУП 2.5 до ЗУП 3.1 Что там делали, я не знаю.
2) С 30.01.2018 По 01.02.2019
И таких кто принят до начала внедрения ЗУП 3.1 - несоклько человек. Выловил запросом по разнице конечной даты. Причем на несколько дней еще "дальше".
У вновь принятых сотрудников - все в порядке.

Еще, может, ли это быть из-за изменения новой методики расчета правил расчета заработанных отпусков в ЗУП 3.1.7? Кто из методологов в курсе подобных аномалий?

По технической части если это ошибка или где-то что-то пропустили из отклонений особых проблем подкорректировать нет.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. GSokolov 320 28.07.18 10:44 Сейчас в теме
(1) Проблема с остатками возникает при переносе из-за несоответствия даты, на которую переносятся остатки с датой окончания рабочего года сотрудника. 1С всех переносит с остатками на дату переноса и записывает остатки на эту дату. В результате из-за правил подсчёта стажа с округлением до полного месяца может как "потеряться", так и "приобрестись" до половины месяца стажа, который, прибавляясь к текущему остатку сдвигает стаж на месяц, что и проявляется в виде искажения прав на отпуск. ЗУП корректно учитывает остатки, только если остаток за последний рабочий год введён на дату окончания этого последнего рабочего года. Если перенос был обычным способом, без переноса документов, то попробуйте откорректировать дату ввода остатков (Дата остатка) в регистре Начальные остатки отпусков на окончание последнего рабочего года с корректировкой действительного остатка в днях за этот год на дату начала работы в программе. Остаток должен быть без дробной части, как и положено при остатке в полных календарных днях отпуска, в т.ч. если часть уже была использована.
M.Flint; jobkostya1c_ERP; +2 Ответить
2. jobkostya1c_ERP 100 26.07.18 18:01 Сейчас в теме
Привожу пример правильных и неправильных записей регистра "Заработанные права на отпуск" ЗУП 3.1.7.87.
Может, быть, это уже давняя ошибка для "переходных" периодов. Где-то вскользь уже что-то писали или я что-то пропустил?
Прикрепленные файлы:
3. jobkostya1c_ERP 100 26.07.18 18:38 Сейчас в теме
Примерно таким вот запросом очень грубо удалется выловить десяток-другой из сотен
ВЫБРАТЬ
	Т.Сотрудник.Код КАК ТабНомер,
	Т.Сотрудник КАК Сотрудник,
	Т.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДЕНЬ(ЕСТЬNULL(Т.ДатаНачала, &ТекДата))) КАК ДЕНЬНАЧ,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МЕСЯЦ(ЕСТЬNULL(Т.ДатаНачала, &ТекДата))) КАК МЕСНАЧ,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДЕНЬ(ЕСТЬNULL(Т.ДатаОкончания, &ТекДата))) КАК ДЕНЬОК,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МЕСЯЦ(ЕСТЬNULL(Т.ДатаОкончания, &ТекДата))) КАК МЕСЯЦОК
ИЗ
	РегистрСведений.ЗаработанныеПраваНаОтпуска КАК Т
ГДЕ
	НЕ Т.Сотрудник В
				(ВЫБРАТЬ
					ВлЗап.Сотрудник КАК Сотрудник
				ИЗ
					РегистрСведений.СостоянияСотрудников.СрезПоследних(&ТекДата, Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Увольнение)) КАК ВлЗап)

СГРУППИРОВАТЬ ПО
	Т.Сотрудник,
	Т.ВидЕжегодногоОтпуска,
	Т.Сотрудник.Код

ИМЕЮЩИЕ
	(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДЕНЬ(ЕСТЬNULL(Т.ДатаНачала, &ТекДата))) > 1
		ИЛИ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МЕСЯЦ(ЕСТЬNULL(Т.ДатаНачала, &ТекДата))) > 1
		ИЛИ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДЕНЬ(ЕСТЬNULL(Т.ДатаОкончания, &ТекДата))) > 1
		ИЛИ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МЕСЯЦ(ЕСТЬNULL(Т.ДатаОкончания, &ТекДата))) > 1)

УПОРЯДОЧИТЬ ПО
	Т.Сотрудник.Наименование
Показать
4. Stref75 27.07.18 09:24 Сейчас в теме
Когда делали перенос наверняка сотрудников переносили Начальной штатной расстановкой. В этом документе когда вводятся остатки отпусков по умолчанию дата остатка берется с даты документа. Нужно для каждого сотрудника свою указать дату. Также опытным путем установлено, что день даты остатка должен быть на день меньше даты приема сотрудника. (напр. принят 5 числа - дата остатка 4).
В своей организации тоже правил всех перемещенных, правда делал для них документ Ввод остатков отпусков с нужной датой. Основные отпуск теперь нормально считаются.
С вредниками есть проблемы, т.к. для них нужно периоды отсутствий учитывать
jobkostya1c_ERP; +1 Ответить
6. jobkostya1c_ERP 100 01.08.18 11:39 Сейчас в теме
(4) Вы правду угадали
Когда делали перенос наверняка сотрудников переносили Начальной штатной расстановкой.
Не наверняка, а точно :)
7. jobkostya1c_ERP 100 01.08.18 16:44 Сейчас в теме
(4)
правда делал для них документ Ввод остатков отпусков с нужной датой

Не понимаю до конца смысл ввода остатка отпуска на нужную дату: обычно же на всех на "дату среза" / ввода начальных остатков.
8. Stref75 02.08.18 06:49 Сейчас в теме
(7) тоже так думал изначально, что должна быть единая дата среза. Допустим на конец месяца всем занес остатки и успокоился. Так и делал вначале. Но так не работает. Остатки считались неверно. Нужно для каждого свою дату вводить, которая зависит от даты приема сотрудника. Смещение на минус один день влияет на расчет остатка при половине месяца.
jobkostya1c_ERP; M.Flint; +2 Ответить
9. jobkostya1c_ERP 100 02.08.18 09:17 Сейчас в теме
(8) Спасибо, буду думать как автоматизировать.
Хотя для 10-20 человек это не проблема и руками.
Оставьте свое сообщение

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