Как устроена система релизов в 1С:ЗУП 3.1 и как правильно обновлять конфигурацию?

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

При обслуживании конфигурации «1С:Зарплата и Управление Персоналом» (редакция 3.1) специалисты часто сталкиваются с ситуацией, когда на портале обновлений одновременно публикуются сборки разных подредакций: 3.1.2.хх, 3.1.3.хх, 3.1.4.хх и 3.1.5.хх. Разберем, чем обусловлено такое параллельное существование веток, как устроена политика поддержки фирмы «1С» и как безопасно выполнять обновление информационной базы без потери данных по НДФЛ и взносам.

Принципы версионирования и поддержки в 1С:ЗУП 3.1

Разработчики фирмы «1С» одновременно поддерживают не более двух подредакций конфигурации. Модель выпуска обновлений строится на разделении версий на две категории:

  1. Подредакция длительного сопровождения (LTS / Long-Term Support): предназначена для пользователей, которым важна максимальная стабильность и минимальные изменения в интерфейсе и алгоритмах в течение года. В такой версии поддерживаются изменения законодательства, но новые функциональные возможности практически не добавляются. Примером такой подредакции являлась 3.1.2.
  2. Текущая подредакция: развивается динамично, включает новые функциональные возможности, изменения законодательства и доработки механизмов учета. Подредакция 3.1.3 была текущей, затем ей на смену пришла 3.1.4, которую позже сменила 3.1.5.

После завершения цикла текущей версии она снимается с поддержки, и фирма «1С» выпускает очередное обновление для длительной версии, либо объявляет новую стабильную подредакцию гарантированной версией длительного сопровождения на весь календарный год.

Причины искажения НДФЛ при переходе на подредакцию 3.1.4

Проанализируем техническую причину, по которой при обновлении с подредакций 3.1.2 или 3.1.3 на 3.1.4 у многих пользователей возникли проблемы с расчетом НДФЛ. Главным архитектурным изменением подредакции 3.1.4 стал ввод обязательного учета разреза «Категория дохода» в регистрах накопления учета НДФЛ и выплатных документах.

При запуске процедуры обновления информационной базы автоматически срабатывают фоновые обработчики, которые заполняют реквизит КатегорияДохода в ранее проведенных документах и регистрах. Если в базе за прошлые периоды присутствовали межрасчетные начисления (отпуска, больничные, премии), ручные корректировки или вычеты, алгоритм обработчика мог ошибочно распределить категории. В результате при проведении новых документов расчета зарплаты система видела расхождения по категориям за прошлые месяцы и пыталась выполненить автоматический перерасчет (сторнирование) налога.

Разбор работы обработчиков обновления НДФЛ

Посмотрим на пример кода из общего модуля УчетФактическиПолученныхДоходовРасширенный, который регистрирует специализированные обработчики обновления для заполнения и проверки категорий дохода:


Процедура ЗарегистрироватьОбработчикиОбновления()
    Обработчик = Обработчики.Добавить();
    Обработчик.Версия = "3.1.4.170";
    Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
    Обработчик.Идентификатор = Новый УникальныйИдентификатор("bcec81c3-956c-43b8-b78b-b01fc1f46e2e");
    Обработчик.Комментарий = НСтр("ru='Заполняет ""Категорию дохода"" в ведомостях'");
    Обработчик.Процедура = "УчетФактическиПолученныхДоходовРасширенный.ВедомостиЗаполнитьКатегориюДоходаВНДФЛ";

    Обработчик = Обработчики.Добавить();
    Обработчик.Версия = "3.1.4.171";
    Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
    Обработчик.Идентификатор = Новый УникальныйИдентификатор("bcec81c3-956c-43b8-b78b-b01fc1f46e2e");
    Обработчик.Комментарий = НСтр("ru='Проверяет заполнение категории дохода в ведомостях'");
    Обработчик.Процедура = "УчетФактическиПолученныхДоходовРасширенный.ВедомостиУточнитьКатегориюДоходаВНДФЛ";

    Обработчик = Обработчики.Добавить();
    Обработчик.Версия = "3.1.4.165";
    Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
    Обработчик.Идентификатор = Новый УникальныйИдентификатор("457db1e7-c30b-4de3-9961-5191413b79d2");
    Обработчик.Комментарий = НСтр("ru='Заполняет категорию дохода в строках НДФЛ зарегистрированных как перенос затрат'");
    Обработчик.Процедура = "УчетФактическиПолученныхДоходовРасширенный.ЗаполнитьКатегорииДоходаВБухучетНачисленияУдержанияПереносаЗатрат";

    Обработчик = Обработчики.Добавить();
    Обработчик.Версия = "3.1.4.166";
    Обработчик.Процедура = "УчетФактическиПолученныхДоходовРасширенный.ИсправитьРаспределениеНДФЛВДокументах";
    Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
    Обработчик.Идентификатор = Новый УникальныйИдентификатор("ded281c4-b7db-4b22-959b-76b972832e3f");
    Обработчик.Комментарий = НСтр("ru = 'Проверка распределения НДФЛ в документах после обновления НДФЛ.'");

    Обработчик = Обработчики.Добавить();
    Обработчик.Версия = "3.1.4.167";
    Обработчик.Процедура = "УчетФактическиПолученныхДоходовРасширенный.ИсправитьДвиженияБухучетНДФЛДокуменов";
    Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
    Обработчик.Идентификатор = Новый УникальныйИдентификатор("06f719c0-902d-4a18-a25e-b06019e6aceb");
    Обработчик.Комментарий = НСтр("ru = 'Проверка распределения НДФЛ в движениях после обновления НДФЛ.'");
КонецПроцедуры

Эти процедуры последовательно модифицируют данные в регистрах. Если последовательность обновления была нарушена или использовался релиз со сырыми алгоритмами, обработчики завершались с ошибкой или фиксировали некорректные распределения.

Рекомендации по выполнению обновления и исправлению ошибок

Рассмотрим пошаговый порядок действий для безопасного перехода на новые версии ЗУП 3.1:

  1. Предварительное тестирование на копии: Категорически не рекомендуется обновлять рабочую базу напрямую. Сделайте копию информационной базы, выполните обновление на ней и проверьте расчет первой зарплаты.
  2. Проверка отчетов по НДФЛ: До расчета зарплаты сформируйте отчеты «Подробный анализ НДФЛ по сотруднику» и «Анализ НДФЛ по документам-основаниям». Убедитесь, что у сотрудников отсутствуют пустые категории дохода за прошлые периоды.
  3. Запрет массового перепроведения: Никогда не перепроводите документы прошлых закрытых периодов после обновления. Это разрушает последовательность движения по регистрам Учет доходов для исчисления НДФЛ и Расчеты налогоплательщиков с бюджетом по НДФЛ.
  4. Использование корректных релизов: Для перехода с устаревших подредакций или устаревшей конфигурации «Зарплата и Управление Персоналом» ред. 2.5 используйте только финальные свежие исправительные сборки текущей подредакции (например, релизы уровня 3.1.4.167 и выше), в которых исправлены критические ошибки обработчиков.
  5. Корректировка через специализированный документ: При возникновении пересортицы по категориям доходов вносите исправления документом Операция учета НДФЛ, а не редактированием первичных начислений.
← На главную