Переход с устаревшей конфигурации «1С:Зарплата и управление персоналом» версии 2.5 на современную платформу 3.0 (3.1) часто сопровождается техническими сложностями. Одна из наиболее распространенных и неприятных проблем связана с расчетом среднего заработка для отпусков и командировок, когда на предприятии проводилась индексация окладов. Если в старой базе ЗУП 2.5 индексация не оформлялась специализированным документом, а проводилась простыми кадровыми перемещениями, в новой базе автоматический расчет индексации среднего заработка работать не будет.
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем логику работы регистров 1С и пошагово настроим корректный расчет среднего заработка «задним числом» без разрушения кадровой истории.
---
Для начала разберем внутренний механизм работы программы. При расчете среднего заработка для отпусков, командировок и других аналогичных событий программа обращается к специальным регистрам накопления, куда при переносе данных записывается вся историческая информация о доходах сотрудников.
Если в программе ЗУП 2.5 индексация оформлялась обычным документом Кадровое перемещение, система фиксировала лишь факт повышения оклада. При переносе данных в ЗУП 3.0 (который обычно выполняется в виде свертки данных за последние годы) программа переносит сведения о начислениях в технические документы Перенос данных с префиксом ЗП_СЗО (Средний заработок общий).
В этих документах для каждой записи о начислении (оклады, тарифные ставки и т.д.) предусмотрен специальный флаг «Индексируется». Так как в старой базе официальной индексации не было, перенос данных устанавливает этот признак в положение Ложь (флажок снят). Из-за этого программа считает, что данные суммы не подлежат коэффициенту индексации при расчете среднего заработка, даже если сам коэффициент будет внесен в систему.
---
Прежде чем переходить к корректировке регистров, нам необходимо убедиться, что в базе вообще включен механизм индексации. Без этой настройки программа будет игнорировать любые внесенные нами коэффициенты.
Выполним следующую последовательность действий:
После активации этой опции в программе станут доступны необходимые регистры и документы для регистрации коэффициентов повышения окладов.
---
Теперь нам предстоит решить ключевую техническую задачу — указать программе, что исторический заработок сотрудников за прошлые периоды (например, 2016–2017 гг.) подлежит индексации. Делать это вручную через интерфейс для каждого сотрудника за каждый месяц — колоссальный труд. Рассмотрим, как автоматизировать этот процесс.
Все исторические данные для расчета среднего заработка хранятся в регистре накопления Данные о начислениях для расчета среднего заработка (общий). Записи в этот регистр производятся документами Перенос данных с кодом ЗП_СЗО.
Для того чтобы массово установить признак Индексируется = Истина, программист может воспользоваться внешней обработкой, написав несложный код для изменения движений документов. Рассмотрим пример программного кода, который решает эту задачу:
ВыборкаДокументов = Документы.ПереносДанных.Выбрать();
Пока ВыборкаДокументов.Следующий() Цикл
// Нас интересуют только документы переноса данных по среднему заработку
Если Найти(ВыборкаДокументов.Номер, "ЗП_СЗО") > 0 Тогда
ОбъектДок = ВыборкаДокументов.ПолучитьОбъект();
// Создаем набор записей для изменения регистра накопления
НаборЗаписей = РегистрыНакопления.ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ОбъектДок.Ссылка);
НаборЗаписей.Прочитать();
Модифицирован = Ложь;
Для Каждого Запись Из НаборЗаписей Цикл
// Проверяем, относится ли запись к основному заработку, который должен индексироваться
Если Запись.Индексируется = Ложь Тогда
Запись.Индексируется = Истина;
Модифицирован = Истина;
КонецЕсли;
КонецЦикла;
// Записываем измененный набор в базу данных
Если Модифицирован Тогда
НаборЗаписей.Записать();
ВызватьИсключение "Документ " + ОбъектДок.Ссылка + " успешно обработан.";
КонецЕсли;
КонецЕсли;
КонецЦикла;
Применение этого кода позволит мгновенно пометить все исторические начисления сотрудников как подлежащие индексации. Если у вас нет возможности использовать программный код, эти изменения придется вносить вручную в документах Перенос данных по регистру Данные о начислениях для расчета среднего заработка (общий), однако это целесообразно делать только при небольшом штате сотрудников.
---
После того как мы указали программе, какие начисления можно индексировать, нам необходимо задать сами коэффициенты индексации. В ЗУП 3.0 для этого используется регистр сведений Коэффициенты индексации заработка.
Заполнить этот регистр «задним числом» правильнее всего также через документ Перенос данных:
Коэффициенты индексации заработка.Важное методологическое замечание: Не пытайтесь проводить индексацию за прошлые годы путем создания документов Индексация штатного расписания или Индексация заработка задним числом. Поскольку после 2017 года по сотрудникам уже были введены реальные кадровые документы (переводы, увольнения, приемы), проведение документов индексации «задним числом» приведет к блокировке проведения документов, конфликтам кадровой истории и хаосу в плановых начислениях.
---
После внесения изменений в регистры накопления и сведений нам необходимо заставить программу пересчитать вспомогательные таблицы среднего заработка. В ЗУП 3.0 для этого предусмотрен специальный встроенный механизм.
Рассмотрим, как его запустить:
Администрирование или запускаться автоматически при расчете документов).Этот процесс пересчитает данные во вспомогательных регистрах с учетом вновь введенных коэффициентов индексации и флагов индексируемого заработка.
---
Часто бухгалтеры замечают странное поведение программы: в расчет отпуска за 2017 год суммы попадают корректно (с учетом проведенной нами индексации), однако при формировании справок 2-НДФЛ или отчетов по НДФЛ за этот же 2017 год данные полностью отсутствуют.
Проанализируем эту ситуацию. Такое поведение программы является абсолютно нормальным и обусловлено особенностями «рекомендованного» переноса данных из ЗУП 2.5 в ЗУП 3.0:
---
Для успешного отражения индексации заработка «задним числом» после перехода на ЗУП 3.0 мы выполнили совместную работу по настройке системы:
Индексируется = Истина для исторических начислений в технических регистрах среднего заработка документов ЗП_СЗО.Коэффициенты индексации заработка через механизм переноса данных.Выполнение этих шагов гарантирует, что при оформлении очередных отпусков или командировок в ЗУП 3.0 программа автоматически и корректно проиндексирует заработок сотрудников за прошлые периоды, избавляя бухгалтеров от ручного пересчета сумм среднего заработка.