В процессе эксплуатации 1С:Зарплата и управление персоналом (версия 3.1.14) многие пользователи столкнулись с неприятной ситуацией: при расчете заработной платы программа начинает массово сторнировать суммы по отпускам по уходу за ребенком, начисленные за периоды, предшествующие вступлению региона в Пилотный проект ФСС (Прямые выплаты). Разберем по шагам, почему это происходит и как исправить ситуацию, не прибегая к ручным корректировкам в каждом документе.
Основная причина кроется в глубоком изменении архитектуры учета пособий, которое произошло в ветке 3.1.14. В отличие от предыдущей версии 3.1.10, новая версия получила переработанный алгоритм определения права на пособие. Теперь система более жестко контролирует связку между документом ОтпускПоУходуЗаРебенком и настройками в Учетной политике организации.
Рассмотрим подробнее механизмы, которые провоцируют сторно:
Перерасчеты пуст, в системе могут существовать скрытые записи в регистре сведений ОчередьРасчета. При обновлении метаданных документов ОтпускПоУходуЗаРебенком старой структуры программа инициирует проверку всей цепочки движений по сотруднику с самого начала отпуска.Прежде всего, убедимся, что дата перехода на прямые выплаты установлена корректно. Перейдем в настройки организации, на закладку Учетная политика и другие настройки, и выберем ссылку Учетная политика. Проверим вкладку Пособия ФСС. Дата начала действия выплат ФСС должна строго соответствовать законодательному акту для вашего региона (например, 01.07.2019).
Если дата указана верно, но сторно все равно происходит, значит, проблема в механизме регистрации перерасчетов, который игнорирует историю изменений этой настройки.
Проанализируем ситуацию в регистрах. Часто пользователь не видит причин для сторно в интерфейсе, но они «сидят» в базе данных. Выполним следующие действия:
ПерерасчетыЗарплаты (или РегистрСведений.Перерасчеты).Важный момент: Обычное удаление строк в документе НачислениеЗарплатыИВзносов на вкладке «Доначисления, перерасчеты» не поможет — при следующем расчете сторно вернется снова, так как задание в регистре останется.
Если очистка регистров не помогает или записи появляются снова, воспользуемся методом «закрытия» старого периода для системы. Создадим документ ИзменениеУсловийОплатыОтпускаПоУходуЗаРебенком.
Разберем алгоритм действий:
ИзменениеУсловийОплатыОтпускаПоУходуЗаРебенком текущей датой (например, первым числом месяца, за который ведется расчет).Этот простой шаг заставляет систему создать новую точку актуальности для плановых начислений и пособий. Программа перестает пытаться «дотянуться» до движений 2017–2018 годов, так как цепочка расчетов теперь официально прерывается (и возобновляется) новым документом текущего периода.
В некоторых случаях сторно является следствием некорректного обновления кэша конфигурации, из-за чего алгоритм Retroactive Pay работает по старым правилам метаданных. Рекомендуется выполнить очистку серверного и клиентского кэша, а также запустить Тестирование и исправление базы данных с флагами «Проверка логической целостности» и «Пересчет итогов».
Стоит отметить, что в сборках 3.1.14.166 и 3.1.14.183 была официально зафиксирована ошибка, при которой механизм автоматического доначисления игнорировал границы Пилотного проекта. Если вы используете именно эти релизы, наиболее эффективным решением будет обновление до версии 3.1.14.200 и выше или до ветки 3.1.18 / 3.1.23. В этих версиях разработчики 1С выпустили патчи, исправляющие некорректное поведение алгоритма при расчете отпуска по уходу.
Для устранения сторно по отпускам по уходу за ребенком в 1С:ЗУП 3.1.14 мы рекомендуем придерживаться следующего плана: сначала проверить корректность даты в учетной политике, затем очистить записи в регистре перерасчетов, и если это не помогло — ввести документ ИзменениеУсловийОплатыОтпускаПоУходуЗаРебенком. В большинстве случаев это позволяет избежать ручных правок в начислении зарплаты и корректно закрыть вопрос с «фантомными» долгами прошлых лет.