Переход на 1С:ЗУП 3.1.10: разбираем критические ошибки обновления LTS-релиза и способы их решения

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

Выход редакции 1С:ЗУП 3.1.10 стал знаковым событием для пользователей и разработчиков. Эта версия получила статус LTS (Long Term Support) — ветки с длительным сроком поддержки, которая пришла на смену устаревшей версии 3.1.5. Переход на LTS-релизы всегда сопряжен с надеждами на стабильность, однако на практике первые сборки принесли немало сюрпризов. Пользователи столкнулись с серьезными архитектурными изменениями в учете штатного расписания, расчете НДФЛ и механизмах контроля данных.

В этой статье мы подробно проанализируем ключевые проблемы, возникшие при обновлении на ЗУП 3.1.10, выясним их технические причины и разберем по шагам готовые решения для исправления ошибок в работающих базах данных.

1. Архитектурная реформа штатного расписания: пропажа сотрудников из отчетов

Одной из самых обсуждаемых проблем перехода стала полная перестройка логики учета занятости позиций штатного расписания. Разработчики 1С отказались от старого регистра накопления ЗанятыеПозицииШтатногоРасписания. Вместо него в конфигурацию были внедрены периодические регистры сведений:

Суть проблемы: Сразу после обновления пользователи обнаружили, что отчет "Штатная расстановка" перестал видеть сотрудников, которые были приняты в программу с помощью документа НачальнаяШтатнаяРасстановка (Начальная расстановка сотрудников). Программа ошибочно проставляла дату окончания действия интервала для этих записей, из-за чего в отчетах позиции выглядели свободными.

Как решить проблему:

Для исправления ситуации в базах, обновленных до релиза 3.1.10.50, разработчики рекомендуют использовать встроенный механизм принудительного перезаполнения интервальных регистров. Выполним следующие действия по шагам:

  1. Перейдем в главное меню программы и откроем Все функции (или Функции для технического специалиста в новых версиях платформы).
  2. Найдем регистр сведений Занятость позиций ШР интервальный.
  3. Нажмем кнопку Еще в командной панели формы списка регистра.
  4. Выберем пункт Включить возможность редактирования.
  5. После этого в меню Еще появится дополнительная команда — нажмите Перезаполнить регистр.

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

2. Проблема возврата сотрудников из отпуска и «вечно свободные» ставки

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

Проанализируем ситуацию: в регистре сведений ЗанятостьПозицийШРИнтервальный запись возврата формировалась с некорректным видом занятости (вместо "Занята" фиксировалось значение "Свободно"). Из-за этого отчеты показывали ложные свободные ставки, пугая кадровиков и руководство компании.

Способ исправления: Данная ошибка носит платформенно-кодный характер и была исправлена в последующих сборках (начиная с релиза 3.1.10.78). Если вы вынуждены работать на более ранних релизах, временно поможет только ручная корректировка записей регистра возврата или временный отказ от использования флага "Освобождать ставку" в документах отклонений до момента установки актуального патча.

3. Ложные предупреждения подсистемы «Контроль ведения учета»

После обновления кадровики начали массово жаловаться на появление желтых предупреждающих треугольников ("индикаторов ошибок") на кадровых документах прошлых лет (вплоть до 2017 года). При попытке открыть или перепровести старые кадровые приказы (например, увольнения) программа выдавала сообщения о незаполненных реквизитах или ошибках в последовательности регистрации приказов.

Причина поведения системы: В ЗУП 3.1.10 была интегрирована обновленная версия Библиотеки стандартных подсистем (БСП) с механизмом «Контроль ведения учета». Программа в фоновом режиме начала автоматически сверять данные базы по жестким правилам валидации. Однако старые документы, созданные до внедрения этих правил или перенесенные из прошлых версий программ, не всегда соответствуют новым строгим требованиям.

Решение проблемы: Чтобы избавить пользователей от ложной паники и бесконечных проверок исторических данных, мы можем гибко перенастроить правила автоматического контроля:

  1. Перейдем в раздел Администрирование -> Обслуживание.
  2. Развернем группу Корректировка данных и выберем ссылку Правила проверки ведения учета.
  3. В открывшемся списке найдем правила, вызывающие наибольшее количество ложных срабатываний (например, проверки последовательности кадровых приказов или соответствия штатному расписанию).
  4. Отключим ненужные проверки целиком или настроим их выполнение по расписанию только для новых документов, сняв соответствующие флаги активности.

4. Сбои при расчете НДФЛ и задвоение налоговых вычетов

Не менее критичная ошибка коснулась расчета заработной платы и исчисления НДФЛ за июнь и июль. Бухгалтеры столкнулись с тем, что стандартные и социальные налоговые вычеты в документах начисления зарплаты перестали отображаться на вкладках расчета налога, хотя итоговая сумма НДФЛ рассчитывалась математически верно (с учетом вычетов). В следующем же месяце программа "сходила с ума" и предоставляла эти вычеты в двойном размере, либо полностью игнорировала их.

Выясним причину: Разработчики изменили структуру регистра сведений ПредоставленныеСтандартныеВычетыФизическимЛицам (и сопутствующих регистров НДФЛ), добавив новое ключевое измерение — МесяцПредоставленияВычета. В процессе обновления существующие исторические записи не всегда корректно сконвертировались под новую структуру данных. Программа потеряла связь между налоговым периодом и фактическим месяцем предоставления вычета.

Как исправить ситуацию в текущем периоде:

Если вы обнаружили, что в июньских или июльских документах начисления зарплаты вычеты "растворились" или задвоились, выполните следующие действия:

  1. Откройте проблемный документ НачислениеЗарплатыИВзносов.
  2. Перейдите на вкладку НДФЛ.
  3. Выделите строки по сотрудникам, у которых некорректно рассчитался налог или пропали вычеты.
  4. Нажмите кнопку Пересчитать НДФЛ на панели табличной части. Это принудительно перезапишет движения по регистру вычетов с учетом новой аналитики по месяцам предоставления.

5. Ошибка «ВидВремениЗамещаемыйПредставление» в списочных отсутствиях

При попытке создать документ Отсутствие (болезнь, прогул, неявка) на список сотрудников пользователи сталкивались с аварийным завершением работы формы и ошибкой:

Поле объекта не обнаружено (ВидВремениЗамещаемыйПредставление)

Причина: Данный сбой (официально зарегистрированный разработчиками под номером 10212226) произошел из-за банальной опечатки в коде экранной формы списочного документа. Разработчики расширили возможности работы со списочными неявками, но забыли объявить соответствующее представление замещаемого времени в общем модуле.

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

6. Изменения "под капотом" для разработчиков (обновление БСП)

Для программистов 1С, сопровождающих измененные и нетиповые конфигурации, переход на 3.1.10 также готовит немало работы. Рассмотрим технические аспекты оптимизации кода конфигурации:

Проанализируем пример того, как изменились вызовы некоторых стандартных функций:


// Старый вариант вызова в ЗУП 3.1.5 - 3.1.9:
Значение = ОбщегоНазначенияКлиентСервер.ПолучитьЗначениеРеквизитаОбъекта(Ссылка, "ИмяРеквизита");

// Новый оптимизированный вариант в ЗУП 3.1.10:
Значение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ИмяРеквизита");

Выводы и рекомендации

Переход на версию 3.1.10 (LTS) — шаг неизбежный, так как поддержка старых веток прекращается. Однако, учитывая масштабность изменений в регистрах штатного расписания и НДФЛ, выполнять это обновление на работающей базе "в лоб" крайне опасно.

Рекомендуемый регламент перехода:

  1. Создайте полную резервную копию рабочей базы данных.
  2. Выполните обновление на тестовой копии.
  3. Запустите обработку проверки ведения учета и проанализируйте выявленные ошибки.
  4. Проверьте отчеты "Штатная расстановка" и "Штатное расписание" на предмет корректности вывода сотрудников. При необходимости выполните перезаполнение интервального регистра сведений, как описано выше.
  5. Проконтролируйте расчет НДФЛ и предоставление стандартных вычетов в ближайшем расчетном периоде.
  6. Только после успешного тестирования всех критических участков кадрового учета и расчета заработной платы переносите обновление на рабочую базу данных.
← На главную