Всем привет! Обнаружил поведение которое не могу объяснить. При начислении зарплаты за первую половину месяца, по определенному сотруднику, не учлось, что он пошел в отпуск. При начислении ему зарплаты за весь месяц, все отработало корректно. Пошел смотреть в чем же здесь дело. Механизм расчета и выполняемый код, в обоих случаях одинаковый:
1. Обработка менеджера расчета заполняет плановые начисления и записывает их в регистр.
2. Смотрит даты начала и даты окончания у таблицы ФактическийПериодДействия регистра расчета по этим начислениям
3. Рассчитывает отработанное время исходя из того как были вытеснены текущие начисления
4. Отменяет записанные в регистр записи
Все работает корректно, если начислять ЗП за полный месяц, тогда записи фактического периода действия вычисляются верно. Но по какой-то причине, платформа(менеджер регистра?) перестает видеть отклонения, если период окончания у записи меньше чем 20е число. То есть пункт 2 говорит, что фактический период действия совпадает с периодом действия записи(хотя это не так). В случае с начислением за первую половину месяца у нас период окончания 15е. Данная ошибка воспроизводится не во всех случаях. Закономерность выявить пока не удалось.
Вопрос: Что делать и куда копать, чтобы аванс сотрудникам начислялся всегда верно?
1. Обработка менеджера расчета заполняет плановые начисления и записывает их в регистр.
2. Смотрит даты начала и даты окончания у таблицы ФактическийПериодДействия регистра расчета по этим начислениям
3. Рассчитывает отработанное время исходя из того как были вытеснены текущие начисления
4. Отменяет записанные в регистр записи
Все работает корректно, если начислять ЗП за полный месяц, тогда записи фактического периода действия вычисляются верно. Но по какой-то причине, платформа(менеджер регистра?) перестает видеть отклонения, если период окончания у записи меньше чем 20е число. То есть пункт 2 говорит, что фактический период действия совпадает с периодом действия записи(хотя это не так). В случае с начислением за первую половину месяца у нас период окончания 15е. Данная ошибка воспроизводится не во всех случаях. Закономерность выявить пока не удалось.
Вопрос: Что делать и куда копать, чтобы аванс сотрудникам начислялся всегда верно?
По теме из базы знаний
- Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория
- Странное поведение склонений в 1С: ЗУП 3.1
- Корректировки выплаты в ЗУП 3.1/ЗГУ 3.1 (начиная с версии 3.1.10)
- Признаки и причины неуспешных внедрений 1С: ERP
- Идеальное место работы для ЗУПера... Какое оно?! Часть 2. Как оценить специалиста ЗУП
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5) Это происходит в один момент времени. Запись ложится с датой окончания до 20 числа один фактический период, после - другой. Все было отменено ради тестов по этому сотруднику. Отпуск отменен и проведен заново. Если пишешь в регистр, запись с 1 по 30, запрос к таблице фактического периода (как и должен быть по отклонениям с 1 по 9) возвращает правильный результат. Если пишешь в запись с 1-по 15 другой(как будто нет отклонений вообще). Как писал выше, необязательно по 15. Я вытащил набор записей в обработку для тестов и оказалось, что неправильно возвращает до 19 числа. Почему именно 19е, сие тайна великая есть. Еще в любом случае правильно рассчитывается фактический период, если отпуск сдвинуть до 23го числа. Не понимаю ничего. Понимаю, что бред какой-то Но не могу понять, ЧЯДНТ.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот