При сопровождении программных продуктов на платформе «1С:Предприятие 8», в частности конфигурации «Зарплата и Управление Персоналом» (ЗУП) редакции 3.1, технические специалисты регулярно сталкиваются с дилеммой: какую ветку обновлений выбрать для клиента? Часто на форумах и в профессиональных сообществах можно встретить рекомендации «сидеть на старой стабильной ветке» и не спешить с переходом на новые релизы из-за возможных программных ошибок («глюков»).
Однако в экосистеме решений «1С» действуют строгие правила жизненного цикла программных продуктов. Игнорирование этих правил и затягивание процесса обновления может привести к тому, что организация потеряет возможность сдавать регламентированную отчетность и обмениваться данными с контролирующими органами (ФНС, ФСС, ПФР). В этой статье мы подробно рассмотрим структуру веток обновлений 1С:ЗУП 3.1, проанализируем причины неизбежного перехода на ветку 3.1.10 и разберем технические нюансы, с которыми могут столкнуться программисты и системные администраторы.
Для того чтобы принять взвешенное решение об обновлении, необходимо понимать, как фирма «1С» позиционирует различные ветки конфигурации. Разработчики используют стратегию параллельного выпуска двух типов версий:
3.1.5, а ей на смену пришла 3.1.10.3.1.8, 3.1.9, 3.1.11 и другие. В этих версиях фирма «1С» активно внедряет и обкатывает новые функциональные возможности, оптимизирует механизмы расчета и интерфейс. Поддержка каждой такой промежуточной ветки прекращается практически сразу после выхода следующего релиза. Жизненный цикл промежуточных веток крайне короток.Проанализируем хронологию и динамику поддержки релизов. Например, стабильный релиз ветки 3.1.8 (а именно 3.1.8.246) вышел в январе 2019 года, и после этого развитие ветки полностью прекратилось. В то же время даже старую LTS-ветку 3.1.5 разработчики продолжали регулярно обновлять (выпускались релизы 3.1.5.421, 3.1.5.442, 3.1.5.463 и 3.1.5.481) для обеспечения совместимости с новыми требованиями ФНС и ФСС. Это наглядно показывает, что оставаться на промежуточных ветках вроде 3.1.8 или 3.1.9 в долгосрочной перспективе невозможно — они быстро теряют актуальность и остаются без законодательных обновлений.
Выясним, почему попытка остаться на версиях 3.1.8 или 3.1.9 обречена на неудачу. Основная причина кроется в прекращении их технологической поддержки со стороны вендора. Как только фирма «1С» объявляет о прекращении развития ветки, исправление ошибок и добавление новых форм отчетности в ней больше не производится.
Рассмотрим конкретный пример. В середине 2019 года сдавать отчетность и работать без сбоев можно было только на ветках 3.1.5 (которая находилась на финальной стадии поддержки) и новой LTS-ветке 3.1.10. Все промежуточные релизы ветки 3.1.9 перестали получать критические исправления. Таким образом, у специалиста, обслуживающего клиента на версии 3.1.8 или 3.1.9, оставался единственный логичный путь — перевод информационной базы на ветку 3.1.10.
Посмотрим на практические доработки, которые появились в ветке 3.1.10 и отсутствовали в предыдущих промежуточных релизах. Одним из наиболее чувствительных участков работы расчетного отдела является взаимодействие с Фондом социального страхования (ФСС) по электронным листкам нетрудоспособности (ЭЛН). В ветке 3.1.10 разработчики реализовали важнейшие изменения в механизмах обмена:
Если организация активно работает с больничными листами и напрямую взаимодействует с ФСС, отсутствие этих доработок в старых ветках (таких как 3.1.9) неизбежно приводило к лавинообразному росту ошибок и сбоям в работе расчетной службы.
Рассмотрим ситуацию, с которой сталкиваются программисты при обновлении сильно измененных («перелохмаченных») конфигураций. Переход с веток 3.1.5, 3.1.8 или 3.1.9 на ветку 3.1.10 сопровождается серьезными архитектурными изменениями в структуре метаданных и коде конфигурации.
1. Кардинальное изменение учета штатного расписания.
В версии 3.1.10 разработчики «1С» полностью переписали логику контроля и учета занятых ставок. Был полностью ликвидирован и удален регистр накопления ЗанятыеПозицииШтатногоРасписания. Вместо него разработчики внедрили три новых регистра сведений:
ЗанятостьПозицийШтатногоРасписанияЗанятостьПозицийШтатногоРасписанияИспрЗанятостьПозицийШтатногоРасписанияИнтервальныйДля программиста это означает, что все кастомные доработки, самописные отчеты, внешние печатные формы или интеграционные механизмы, которые обращались к старому регистру накопления, гарантированно перестанут функционировать и будут вызывать критические ошибки СУБД.
Проанализируем пример изменения запроса. Если ранее для получения занятых ставок использовался простой запрос к виртуальной таблице остатков регистра накопления:
ВЫБРАТЬ
ЗанятыеПозиции.ШтатнаяЕдиница КАК ПозицияШтатногоРасписания,
ЗанятыеПозиции.КоличествоСтавокОстаток КАК КоличествоСтавок
ИЗ
РегистрНакопления.ЗанятыеПозицииШтатногоРасписания.Остатки(&Период, ) КАК ЗанятыеПозиции
То после обновления на 3.1.10 этот запрос необходимо переписать с использованием новых регистров сведений, учитывая интервальный характер хранения данных о занятости позиций:
ВЫБРАТЬ
ЗанятостьПозиций.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
ЗанятостьПозиций.КоличествоСтавок КАК КоличествоСтавок
ИЗ
РегистрСведений.ЗанятостьПозицийШтатногоРасписания КАК ЗанятостьПозиций
ГДЕ
ЗанятостьПозиций.Период = &Период
2. Обновление Библиотеки стандартных подсистем (БСП).
В ветке 3.1.10 была значительно обновлена версия встроенной БСП. В рамках рефакторинга кода многие процедуры и функции общего назначения были перемещены между общими модулями. Например, некоторые служебные методы перекочевали из модуля ОбщегоНазначенияКлиентСервер в модуль ОбщегоНазначения. Если ваши кастомные алгоритмы используют старые пути обращения к функциям БСП, их придется перепроверить и скорректировать вручную.
Выясним, почему после обновления на 3.1.10 у пользователей могут начать «плыть» расчеты по НДФЛ или возникать трудности при проведении текущих кадровых документов.
В новой ветке 3.1.10 существенно ужесточен автоматический контроль корректности ведения учета. Программа начинает строго сопоставлять кадровые документы со штатным расписанием по новым регистрам сведений. Если в информационной базе присутствовали скрытые ошибки прошлых периодов (например, некорректно перенесенные данные при переходе с редакции 2.5, "зависшие" кадровые переводы, незакрытые исправления документов за прошлые годы), система может заблокировать проведение новых документов или начать неверно рассчитывать налоги.
При возникновении таких проблем не стоит пытаться откатить обновление. Необходимо детально проанализировать движения проблемных сотрудников по регистрам сведений занятости позиций штатного расписания и исправить исторические кадровые документы (перепровести их или ввести корректирующие документы-исправления).
Не забудьте, что переход на актуальную ветку 3.1.10 накладывает жесткие требования к версии технологической платформы «1С:Предприятие 8.3». Попытка запустить обновленную конфигурацию на устаревших релизах платформы приведет к непредсказуемому поведению интерфейса (особенно на управляемых формах), ошибкам при выполнении фоновых и регламентных заданий, а также к невозможности завершить реструктуризацию базы данных в процессе обновления в режиме «Предприятие».
Перед началом обновления обязательно ознакомьтесь с файлом ReadMe.txt или разделом «Важная информация» в дистрибутиве релиза и обновите платформу на сервере и рабочих станциях пользователей до рекомендуемой версии.
Разберем по шагам безопасный алгоритм обновления информационной базы клиента:
ЗанятыеПозицииШтатногоРасписания и обращениям к измененным общим модулям БСП..dt или средствами СУБД MS SQL / PostgreSQL).3.1.5 -> 3.1.8 -> 3.1.9 -> 3.1.10). На каждом промежуточном этапе обязательно запускайте базу в режиме «Предприятие» под правами администратора для выполнения обработок обновления данных.3.1.10 запустите процедуру «Тестирование и исправление» в Конфигураторе для пересчета итогов и проверки логической целостности базы данных.Подводя итог, можно с уверенностью утверждать: несмотря на возможные временные трудности и необходимость адаптации доработок, переход на ветку 3.1.10 является единственным верным и безальтернативным решением для обеспечения стабильной работы и своевременной сдачи регламентированной отчетности организации.