При работе с программными продуктами фирмы 1С, особенно с конфигурацией 1С:Зарплата и управление персоналом (ЗУП) версии 3.1, пользователи и технические специалисты часто сталкиваются с ситуацией, когда одновременно выпускаются обновления для нескольких разных веток программы. Например, в один день могут выйти новые сборки для версий 3.1.5, 3.1.6 и 3.1.7. Это вызывает логичные вопросы: на какую версию переходить, зачем поддерживать столько вариантов конфигурации одновременно и почему встроенный помощник обновлений иногда ведет себя некорректно, предлагая «откатиться» со старшей версии на младшую.
В этой статье мы подробно разберем логику версионирования 1С, рассмотрим концепцию длительного сопровождения (LTS) и выясним технические причины аномалий при автоматическом обновлении баз данных.
Для начала давайте разберем структуру номера релиза любой современной конфигурации 1С. Номер версии состоит из четырех групп чисел, разделенных точками. Общий формат выглядит как Редакция.Подредакция.Версия.Сборка (или Р.П.В.С). Проанализируем значение каждого разряда на примере конфигурации 1С:ЗУП:
3.1.5 и 3.1.7).Фирма 1С применяет практику параллельного сопровождения нескольких версий программного продукта. Давайте выясним, для чего это делается. Разработчики делят выпускаемые версии на два основных типа:
3.1.5. В ней не появляется новая сложная функциональность, которая потенциально может содержать скрытые ошибки. Главная задача LTS — стабильность. В этой ветке оперативно исправляются критические ошибки и поддерживаются изменения законодательства, чтобы бухгалтеры могли спокойно сдавать отчетность без риска сбоя расчетов.3.1.6, 3.1.7, а затем и 3.1.8. Здесь идет активное внедрение новых механизмов учета. Например, именно в этих версиях 1С обкатывала принципиально новый механизм учета перерасчетов НДФЛ, который существенно отличался от прежней логики версии 3.1.5.Параллельный выпуск обновлений для разных веток позволяет пользователям самостоятельно выбирать стратегию автоматизации. Консервативные компании, которым важна стабильность в отчетный период, остаются на LTS-ветке (например, 3.1.5) до конца года. Компании, которым необходим новый функционал здесь и сейчас, переходят на актуальные версии (3.1.7 и выше), соглашаясь на роль первопроходцев и тестировщиков новых механизмов.
Иногда системные администраторы и программисты сталкиваются со странным поведением встроенного помощника обновлений 1С. Например, находясь на актуальной версии 3.1.7.61, система выдает сообщение о доступности «обновления» до версии 3.1.5.272. Рассмотрим, почему это происходит.
Дело в том, что алгоритм автоматической проверки обновлений ориентируется не только на строгое математическое сравнение номеров версий, но и на календарную дату выпуска релиза, зафиксированную в файле описания обновлений на сервере 1С. Поскольку ветка 3.1.5 активно поддерживается, критическое исправление для нее (сборка 3.1.5.272) могло выйти на несколько дней позже, чем сборка 3.1.7.61. Помощник обновлений видит более «свежую» по дате публикацию и ошибочно предлагает ее пользователю в качестве целевой.
Для наглядности приведем пример логики, которой руководствуется конфигуратор при анализе обновлений (в упрощенном виде):
// Пример ошибочной логики сравнения обновлений в старых версиях платформы
Если ДатаВыходаНовогоРелиза > ДатаВыходаТекущегоРелиза Тогда
РекомендоватьКУстановке(НовыйРелиз); // Ошибка: не учитывается ветка конфигурации!
КонецЕсли;
В результате пользователь получает парадоксальное предложение заменить старшую версию на младшую. Разумеется, выполнять такое обновление «по воздуху» нельзя, так как это приведет к потере данных и замене метаданных на устаревшие.
Чтобы избежать проблем при обновлении 1С:ЗУП 3.1 в периоды параллельного существования нескольких веток, рекомендуем придерживаться следующего алгоритма действий:
3.1.7.х, вашим следующим шагом должен быть переход на актуальные сборки этой же ветки или на следующую эволюционную ветку (например, 3.1.8.х), но ни в коем случае не возврат на 3.1.5.х.Конфигурация -> Поддержка -> Обновить конфигурацию, укажите файл обновления (.cfu) нужной вам ветки вручную..cf) соответствующей версии.Помните, что перед любым обновлением критически важно создавать резервную копию информационной базы. Если вы планируете переходить с LTS-версии на новую функциональную ветку, обязательно выполните этот переход сначала на тестовой копии базы данных и проверьте корректность расчета заработной платы и НДФЛ на контрольных примерах.