Переходить ли с ЗУП 3.1.5 на ЗУП 3.1.8 или 3.1.9: разбираем ошибки нового расчета зарплаты, перевод печатных форм на СКД и подготовку к отчетности

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Налоговый учет IT и автоматизация бизнеса
← На главную

Переход со старых стабильных версий программы на новые промежуточные релизы всегда вызывает массу опасений у разработчиков и практикующих бухгалтеров. Особенно остро эта проблема встала при завершении жизненного цикла ветки ЗУП 3.1.5, которая являлась версией длительного сопровождения (LTS). Пользователи столкнулись с дилеммой: оставаться на стабильной, но устаревающей версии 3.1.5, либо мигрировать на революционные, но на тот момент сырые релизы 3.1.8 и 3.1.9.

В этой статье мы подробно проанализируем все технические нюансы перехода, рассмотрим критические ошибки нового менеджера расчета зарплаты, разберем причины поломки внешних печатных форм из-за внедрения СКД и найдем способы обхода возникающих проблем.

Законодательный тупик версии 3.1.5: почему остаться не получится

Основным аргументом сторонников консервативного подхода было нежелание экспериментировать на работающей базе. Однако фирма «1С» четко обозначила границы поддержки ветки 3.1.5: выпуск обновлений для нее был прекращен после сдачи отчетности за 2018 год. Это означает, что любые изменения законодательства, вступившие в силу с 1 января 2019 года, в этой версии не поддерживаются.

Рассмотрим подробнее ситуацию с Расчетом по страховым взносам (РСВ). Хотя сам бланк отчета за 1 квартал 2019 года остался прежним, с начала 2019 года кардинально изменились правила расчета самих взносов. Большинство организаций, применявших пониженные тарифы на упрощенной системе налогообложения (УСН), ЕНВД или патенте, лишились этих льгот и были обязаны перейти на общий тариф. Без обновления конфигурации до актуальных версий (3.1.9 и выше) автоматический расчет взносов по новым тарифам и корректное заполнение регламентированного отчета РСВ стали невозможными. Таким образом, переход на новые релизы стал обязательным условием для сдачи отчетности.

Новый менеджер расчета зарплаты в ЗУП 3.1.9 и его проблемы

Начиная с версии 3.1.9, разработчики «1С» полностью переписали ядро системы — Менеджер расчета зарплаты. Целью этой глобальной переработки была оптимизация производительности программы при проведении расчетных документов и ускорение расчета налога на доходы физических лиц (НДФЛ). Однако на практике это привело к возникновению ряда серьезных ошибок:

  1. Массовое сторнирование НДФЛ: В релизах 3.1.9.106 и 3.1.9.107 из-за архитектурных недоработок нового менеджера при расчете зарплаты за первые месяцы 2019 года программа могла ошибочно сторнировать весь исчисленный НДФЛ за предыдущий 2018 год. В релизе 3.1.9.108 эту ошибку исправили, но осадок у пользователей остался.
  2. Проблемы с расчетом аванса: Документ Начисление за первую половину месяца мог заполняться пустыми строками без видимых причин, игнорируя фактически отработанное сотрудниками время.
  3. Сбои при расчете детских вычетов: Возникали ситуации, когда программа двоила или, наоборот, не применяла стандартные вычеты на детей по сотрудникам, которые одновременно являлись штатными работниками и исполнителями по договорам гражданско-правового характера (ГПХ).

Обход проблем с помощью константы «без оптимизации»

Для оперативного решения проблем с расчетом зарплаты разработчики «1С» предусмотрели временный механизм отключения нового алгоритма. В настройках расчета зарплаты была добавлена специальная константа «Выполнять расчет зарплаты без оптимизации».

Проанализируем, как эта настройка влияет на поведение системы. При установке данного флага программа принудительно перенаправляет вызовы расчетных механизмов на старый, проверенный временем алгоритм, хранящийся в общем модуле МенеджерРасчетаЗарплатыАрхивный. Схематично это выглядит следующим образом:


Если ПолучитьФункциональнуюОпцию("ВыполнятьРасчетЗарплатыБезОптимизации") Тогда
    // Используется старый стабильный алгоритм расчета
    МенеджерРасчета = МенеджерРасчетаЗарплатыАрхивный.Создать();
Иначе
    // Используется новый оптимизированный алгоритм 3.1.9
    МенеджерРасчета = МенеджерРасчетаЗарплаты.Создать();
КонецЕсли;

Важное предупреждение на будущее: Использование этой константы спасало расчетчиков на этапе релизов 3.1.9, однако в долгосрочной перспективе это привело к новым трудностям. Например, в последующих версиях (в частности, в ветке 3.1.10) при включенном режиме «без оптимизации» возникали критические ошибки обновления среднего заработка. Более того, при переходе на прогрессивную ставку НДФЛ 15% старый менеджер расчета перестал поддерживаться. Окончательно эта константа была удалена разработчиками только в версии ЗУП 3.1.18, когда новый оптимизированный расчет был доведен до стабильного состояния.

Перевод кадровых печатных форм на СКД: почему ломаются доработки

Еще один неприятный сюрприз, с которым столкнулись программисты при переходе на ЗУП 3.1.9, — это перевод макетов встроенных кадровых приказов (прием, перевод, увольнение) на систему компоновки данных (СКД).

Выясним причину массового выхода из строя внешних печатных форм (ВПФ). Ранее разработчики при создании внешних форм часто обращались к экспортным процедурам и функциям общих модулей конфигурации для получения данных о сотруднике, организации и окладах. В версии 3.1.9 структура этих модулей была кардинально переработана, многие служебные функции были удалены или переименованы.

Для того чтобы ваши внешние печатные формы продолжали работать после обновления, необходимо придерживаться следующих правил:

В КОРП-версии программы, начиная с релиза 3.1.8, появился альтернативный инструмент — «Настраиваемые печатные формы». Он позволяет добавлять дополнительные реквизиты в макеты кадровых приказов силами пользователей без написания кода, что снижает зависимость от программистов при обновлениях.

Ошибки заполнения табеля при временных переводах

Рассмотрим еще одну документированную ошибку, которая проявилась в релизах 3.1.9.108 и 3.1.9.109. Проблема связана с заполнением документа Табель в случаях, когда у сотрудника зарегистрировано несколько последовательных временных кадровых переводов друг за другом.

В этом случае программа могла некорректно распределять и «задваивать» отработанные часы по различным позициям штатного расписания. В качестве временного решения программистам приходилось вручную корректировать движения документа по регистру накопления ДанныеОтработанногоВремениСотрудников либо оперативно ставить патчи от «1С».

Стратегия перехода: пошаговый план для администратора и программиста

Если вы приняли решение о переходе с ЗУП 3.1.5 на более новые релизы, рекомендуем выполнять этот процесс по шагам, минимизируя риски простоя работы расчетной службы:

  1. Подготовка резервной копии: Создайте полную резервную копию информационной базы. Если база работает в клиент-серверном варианте, сделайте бэкап средствами СУБД (MS SQL или PostgreSQL).
  2. Тестирование на копии: Выполните обновление на копии базы данных. Обратите особое внимание на переходные релизы. Напрямую обновиться с очень старой версии 3.1.5 на финальные релизы 3.1.9 может не получиться, потребуется промежуточное обновление (например, сначала на последний подрелиз 3.1.8).
  3. Анализ кастомного кода и ВПФ: Запустите проверку конфигурации и протестируйте работу всех критически важных внешних отчетов, обработок и печатных форм. Все выявленные ошибки в коде ВПФ необходимо исправить до обновления рабочей базы.
  4. Проверка расчета НДФЛ: Проведите тестовый расчет зарплаты за текущий месяц на обновленной копии. В случае обнаружения некорректных сторнирующих записей по НДФЛ за прошлые периоды, воспользуйтесь временным решением — включите константу Выполнять расчет зарплаты без оптимизации.
  5. Переход на версию LTS 3.1.10: Если вы хотите избежать частых обновлений промежуточных релизов, оптимальной стратегией будет переход на версию ЗУП 3.1.10. Она официально стала следующей версией длительного сопровождения (LTS) после 3.1.5, вобрав в себя все исправления ошибок линейки 3.1.9 и обеспечив стабильную поддержку законодательства.

Таким образом, переход с ЗУП 3.1.5 — это вынужденный, но необходимый шаг. Главное — подходить к этому процессу подготовленными, детально анализировать изменения в архитектуре расчетов и своевременно адаптировать доработки под новые требования платформы.

← На главную