Решение
Данное расширение автоматически при старте системы считывает актуальную версию из Метаданных конфигурации и принудительно записывает её в регистр сведений ВерсииПодсистем.
Преимущества:
-
Безопасно: Не требует снятия конфигурации с поддержки.
-
Просто: Не нужно искать обработки для «толстого клиента» или писать скрипты вручную.
-
Открытый код: Логика проста и прозрачна.
Обработка добавляет записи для:
-
Имени текущей конфигурации (например, БухгалтерияПредприятия).
-
Библиотеки стандартных подсистем (СтандартныеПодсистемы) — это часто необходимо для корректной работы обработчиков обновления БСП.
Инструкция по подключению
-
Скачайте файл расширения (или создайте его по коду ниже).
-
Зайдите в Конфигуратор проблемной базы.
-
Перейдите в меню Конфигурация -> Расширения конфигурации.
-
Добавьте новое расширение (или загрузите скачанное).
-
ВАЖНО: Снимите галочки:
-
Безопасный режим
-
Защита от опасных действий
(Без этого расширение не сможет записать данные в регистр).
-
-
Перезапустите 1С:Предприятие в пользовательском режиме.
-
После успешного запуска и начала процесса обновления удалите расширение из Конфигуратора, оно больше не нужно.
Программный код (для самостоятельного создания)
Если вы не хотите качать файл, вы можете создать расширение самостоятельно за 2 минуты.
1. Общий модуль
Создайте в расширении Общий модуль (например, ЛВ_Лечение).
Свойства: Сервер, Вызов сервера.
Процедура ЗаписатьВерсиюПринудительно() Экспорт
// 1. Получаем данные о текущей конфигурации
ИмяКонфы = Метаданные.Имя;
ВерсияКонфы = Метаданные.Версия;
// 2. Записываем версию для основной конфигурации
Набор = РегистрыСведений.ВерсииПодсистем.СоздатьНаборЗаписей();
Набор.Отбор.ИмяПодсистемы.Установить(ИмяКонфы);
Запись = Набор.Добавить();
Запись.ИмяПодсистемы = ИмяКонфы;
Запись.Версия = ВерсияКонфы;
Набор.Записать();
// 3. Записываем версию для БСП (СтандартныеПодсистемы)
// Это нужно, так как механизмы обновления часто ориентируются на неё
НаборБСП = РегистрыСведений.ВерсииПодсистем.СоздатьНаборЗаписей();
НаборБСП.Отбор.ИмяПодсистемы.Установить("СтандартныеПодсистемы");
ЗаписьБСП = НаборБСП.Добавить();
ЗаписьБСП.ИмяПодсистемы = "СтандартныеПодсистемы";
ЗаписьБСП.Версия = ВерсияКонфы;
НаборБСП.Записать();
КонецПроцедуры
2. Модуль управляемого приложения
В расширении откройте «Модуль управляемого приложения» и добавьте перехват события запуска.
&Перед("ПриНачалеРаботыСистемы")
Процедура ЛВ_ПриНачалеРаботыСистемы()
// Вызываем серверный метод лечения до начала стандартных проверок
ЛВ_Лечение.ЗаписатьВерсиюПринудительно();
КонецПроцедуры
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.415
Вступайте в нашу телеграмм-группу Инфостарт
