Обход ошибки обновления: Запуск программы невозможен...

30.01.26

База данных - Обновление 1С

Описание проблемы При запуске «1С:Бухгалтерия» (или других типовых конфигураций) после неудачного обновления, загрузки cf или восстановления базы, может возникать блокирующая ошибка: Запуск приложения невозможен: Обновление на текущую версию допустимо только с версии 3.0.XX.XX и выше. (Недопустимая попытка обновления с версии 0.0.0.0) Это происходит потому, что в регистре сведений ВерсииПодсистем отсутствует запись о текущей конфигурации. Платформа видит метаданные новой версии, но «пустой» регистр (версию 0.0.0.0), из-за чего считает обновление невозможным (слишком большой скачок версий).

Решение

Данное расширение автоматически при старте системы считывает актуальную версию из Метаданных конфигурации и принудительно записывает её в регистр сведений ВерсииПодсистем.

Преимущества:

  1. Безопасно: Не требует снятия конфигурации с поддержки.

  2. Просто: Не нужно искать обработки для «толстого клиента» или писать скрипты вручную.

  3. Открытый код: Логика проста и прозрачна.

Обработка добавляет записи для:

  • Имени текущей конфигурации (например, БухгалтерияПредприятия).

  • Библиотеки стандартных подсистем (СтандартныеПодсистемы) — это часто необходимо для корректной работы обработчиков обновления БСП.


Инструкция по подключению

  1. Скачайте файл расширения (или создайте его по коду ниже).

  2. Зайдите в Конфигуратор проблемной базы.

  3. Перейдите в меню Конфигурация -> Расширения конфигурации.

  4. Добавьте новое расширение (или загрузите скачанное).

  5. ВАЖНО: Снимите галочки:

    •  Безопасный режим

    •  Защита от опасных действий
      (Без этого расширение не сможет записать данные в регистр).

  6. Перезапустите 1С:Предприятие в пользовательском режиме.

  7. После успешного запуска и начала процесса обновления удалите расширение из Конфигуратора, оно больше не нужно.


Программный код (для самостоятельного создания)

Если вы не хотите качать файл, вы можете создать расширение самостоятельно за 2 минуты.

1. Общий модуль

Создайте в расширении Общий модуль (например, ЛВ_Лечение).

Свойства: Сервер, Вызов сервера.

 

Процедура ЗаписатьВерсиюПринудительно() Экспорт
	
	// 1. Получаем данные о текущей конфигурации
	ИмяКонфы = Метаданные.Имя;       
	ВерсияКонфы = Метаданные.Версия; 
	
	// 2. Записываем версию для основной конфигурации
	Набор = РегистрыСведений.ВерсииПодсистем.СоздатьНаборЗаписей();
	Набор.Отбор.ИмяПодсистемы.Установить(ИмяКонфы);
	
	Запись = Набор.Добавить();
	Запись.ИмяПодсистемы = ИмяКонфы;
	Запись.Версия        = ВерсияКонфы;
	
	Набор.Записать();
	
	// 3. Записываем версию для БСП (СтандартныеПодсистемы)
	// Это нужно, так как механизмы обновления часто ориентируются на неё
	НаборБСП = РегистрыСведений.ВерсииПодсистем.СоздатьНаборЗаписей();
	НаборБСП.Отбор.ИмяПодсистемы.Установить("СтандартныеПодсистемы");
	
	ЗаписьБСП = НаборБСП.Добавить();
	ЗаписьБСП.ИмяПодсистемы = "СтандартныеПодсистемы";
	ЗаписьБСП.Версия        = ВерсияКонфы;
	
	НаборБСП.Записать();
	
КонецПроцедуры

2. Модуль управляемого приложения

В расширении откройте «Модуль управляемого приложения» и добавьте перехват события запуска.

 

&Перед("ПриНачалеРаботыСистемы")
Процедура ЛВ_ПриНачалеРаботыСистемы()
	
	// Вызываем серверный метод лечения до начала стандартных проверок
	ЛВ_Лечение.ЗаписатьВерсиюПринудительно();
	
КонецПроцедуры

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.415

Вступайте в нашу телеграмм-группу Инфостарт

Ошибка обновления ВерсииПодсистем Бухгалтерия Восстановление базы БСП Обновление конфигурации Сбой обновления Недопустимая попытка обновления Администрирование Исправление ошибок Версия конфигурации Метаданные 8.3 Потеря версии Регистр сведений Запуск приложения невозможен Решение проблем