Как исправить ошибку Недопустимая попытка обновления в 1С:Бухгалтерия

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

При работе с программными продуктами 1С, особенно при попытке реанимировать старые базы данных или перейти на новые редакции, часто возникает критическая ошибка: «Запуск программы невозможен: Обновление на текущую версию допустимо только с версии X и выше». При этом в скобках указывается версия Y, которая значительно ниже требуемой. Разберем детально, почему это происходит и как восстановить работоспособность базы, сохранив данные.

Выясним причину возникновения ошибки

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

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

Если выполнить несколько обновлений в Конфигураторе подряд, не запуская программу в пользовательском режиме между ними, то «версия конфигурации» станет актуальной, а «версия данных» останется старой. В итоге при запуске система видит, что данные соответствуют, например, релизу 3.0.49.27, а текущая конфигурация 3.0.90.53 умеет работать с данными не старше 3.0.61.37. Процедуры обновления для более старых версий из кода новой конфигурации просто удалены разработчиками для оптимизации объема конфигурации.

Решение №1: Последовательный откат и правильное обновление

Самый надежный и правильный метод — это восстановление последовательности. Рассмотрим пошагово, как это сделать:

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

Поскольку автоматическое обновление через интернет или .cfu файлы может не сработать, нам потребуется полный файл конфигурации (.cf) того релиза, на котором база «застряла» (в примере автора это 3.0.49.27).

Для Базовых версий процедура загрузки .cf файла ограничена. Попробуем следующий алгоритм:

  1. Зайдем в Конфигуратор.
  2. Перейдем в меню Конфигурация — Поддержка — Обновить конфигурацию.
  3. Выберем Выбор файла обновления и укажем путь к .cf файлу нужного релиза.
  4. Если система позволит применить изменения, мы вернем структуру метаданных в соответствие с версией данных.

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

Решение №2: Использование «узловых» релизов

Проанализируем стратегию перехода. Нельзя обновлять базу с релиза 2019 года сразу на релиз 2024 года. В истории развития 1С:Бухгалтерии существуют так называемые «узловые релизы» (checkpoint releases). Это версии, на которые обязательно нужно зайти и выполнить обновление данных, прежде чем двигаться дальше.

Обычно такими релизами являются последние версии минорных веток (например, последний релиз 3.0.60.х, затем 3.0.75.х и т.д.). При обновлении внимательно читайте файл 1cv8upd.htm, входящий в состав дистрибутива — там всегда указано, с каких именно версий допустим переход.

Решение №3: Технический хак через изменение кода (для версий ПРОФ)

Если у вас версия ПРОФ или вы временно перевели Базовую в ПРОФ (путем изменения типа лицензии), можно принудительно заставить систему пропустить проверку версии. Внимание: этот метод опасен и может привести к логической порче данных, используйте его только для просмотра старых данных!

Разберем, какой код отвечает за проверку. Нам нужно найти общий модуль, отвечающий за обновление. Обычно это ОбновлениеИнформационнойБазыКлиентПереопределяемый или аналогичный в зависимости от версии БСП.

Найдем процедуру ПриОпределенииВозможностиОбновления. Там будет примерно следующий код:


Процедура ПриОпределенииВозможностиОбновления(Знач ВерсияДанных) Экспорт
    ДопустимаяВерсия = "3.0.61.37"; 
    // Если ВерсияДанных меньше ДопустимаяВерсия, вызывается исключение
КонецПроцедуры

Специалисты иногда временно меняют значение ДопустимаяВерсия на ту, которая указана в ошибке как «текущая версия данных» (например, 3.0.49.27). Это позволит программе начать процесс обновления. Однако помните: если в коде текущего релиза нет обработчика для данных версии 3.0.49.27, то данные, которые должны были трансформироваться, могут быть просто потеряны или заполнены некорректно.

Решение №4: Перенос данных через XML

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

  1. Создадим новую чистую базу актуального релиза (того же, до которого вы обновили проблемную базу).
  2. Воспользуемся обработкой «Универсальный обмен данными в формате XML».
  3. В проблемной базе выгрузим данные (справочники, документы) без выгрузки конфигурации.
  4. В новой базе загрузим эти данные.

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

Особенности перехода с Бухгалтерии 2.0 на 3.0

Часто ошибка «Недопустимая попытка обновления с версии 3.0.1.13» возникает при неправильном переходе с редакции 2.0 на 3.0. Рассмотрим важный нюанс: для такого перехода нельзя использовать обычный файл обновления .cfu или стандартный .cf от тройки.

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

Рекомендации по предотвращению проблемы

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

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

← На главную