Как исправить ошибку 1С, когда база требует несуществующую версию платформы (например, 98.55.43)

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

В этой статье мы подробно разберем, почему возникает этот сбой, проанализируем внутренние механизмы работы конфигурации, которые приводят к блокировке, и рассмотрим пошаговые методы решения проблемы — от простых манипуляций в Конфигураторе до написания обходного кода и использования механизмов расширений.

Выясняем причину: почему 1С требует версию 98.55.43?

Для начала важно понять ключевой технологический факт: платформа 1С:Предприятие сама по себе никогда не выдаст системную ошибку с требованием такой версии. Данное сообщение генерируется не технологической платформой, а программным кодом самой конфигурации (как правило, построенной на базе БСП — Библиотеки стандартных подсистем или БИП — Библиотеки интернет-поддержки).

Давайте проанализируем основные причины, из-за которых в вашей базе может прописаться такая «версия-призрак»:

  1. Сбой при загрузке классификаторов и обновлений (БИП). В современных типовых конфигурациях работает регламентное задание, которое периодически обращается к серверам обновлений 1С. Оно запрашивает актуальные требования к минимальным и рекомендуемым версиям платформ. Если во время получения этих данных произошел сетевой сбой, данные были искажены прокси-сервером или файрволом, либо на стороне серверов обновлений произошла техническая накладка, система записывает поврежденные «мусорные» данные в локальные константы. В результате строка парсится некорректно, превращаясь в условную версию 98.55.43.
  2. Оставленный разработчиками «заглушка-тест». Иногда при подготовке релизов или при интеграции сторонних модулей программисты жестко прописывают в код заведомо невыполнимые требования по версии платформы (например, чтобы протестировать логику работы механизма предупреждений). Если эта ветка кода случайно уходит в рабочую базу, пользователи получают блокировку.
  3. Ручное изменение констант или повреждение кэша. Сбои в кэше метаданных или случайное изменение администратором константы, отвечающей за контроль версий, также могут привести к аналогичному поведению системы.

Поскольку проверка версии платформы выполняется исключительно при запуске клиентского приложения (в режиме «1С:Предприятие»), Конфигуратор этой блокировке не подвержен. Мы можем без препятствий запустить базу в режиме конфигуратора под любой установленной платформой и приступить к устранению проблемы.

Ниже мы разберем по шагам четыре действенных способа решения этой проблемы.


Способ 1. Изменение константы через «Функции для технического специалиста»

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

Рассмотрим, как это сделать, если база все же дает зайти под учетной записью с полными правами (или если мы запускаем систему в аварийном режиме):

  1. Запустим базу в режиме «1С:Предприятие».
  2. Откроем главное меню и перейдем в раздел «Функции для технического специалиста» (в старых версиях — «Все функции»). Если этот пункт меню недоступен, его необходимо включить в настройках параметров системы (Меню — Настройки — Параметры — установить флажок «Отображать команду "Функции для технического специалиста"»).
  3. В открывшемся окне найдем ветку «Константы».
  4. Нам необходимо найти две ключевые константы:
    • МинимальнаяВерсияПлатформы
    • РекомендуемаяВерсияПлатформы
  5. Откроем их и посмотрим на значения. Если там записана та самая странная версия 98.55.43, очистим это поле или заменим его на реально существующую рабочую версию (например, 8.3.22.1709 или ту, под которой вы сейчас работаете).
  6. Сохраним изменения и перезапустим программу.

Способ 2. Обход проверки через расширение конфигурации (Рекомендуемый)

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

Выполним следующие шаги:

  1. Запустим базу данных в режиме Конфигуратора.
  2. В главном меню перейдем по пути: Конфигурация — Расширения конфигурации.
  3. В открывшемся списке нажмем кнопку «Добавить». Оставим имя по умолчанию или назовем его, например, ОбходПроверкиПлатформы. Назначение выберем «Адаптация».
  4. В свойствах созданного расширения обязательно снимите флажки «Безопасный режим» и «Защита от опасных действий» (иначе расширение не сможет выполнить код переопределения параметров).
  5. В дереве метаданных основной конфигурации найдем общий модуль, отвечающий за настройку базовых параметров системы при запуске. Обычно это модуль ОбщегоНазначенияПереопределяемый.
  6. Нажмем на него правой кнопкой мыши и выберем пункт «Добавить в расширение».
  7. Откроем этот модуль внутри нашего расширения и добавим в него процедуру-перехватчик, которая принудительно подменит требуемую версию платформы на ту, под которой система фактически запускается в данный момент. Напишем следующий код:

&После("ПриОпределенииОбщихПараметровБазовойФункциональности")
Процедура ИмяРаш_ПриОпределенииОбщихПараметровБазовойФункциональности(ОбщиеПараметры) Экспорт
    
    СистемнаяИнформация = Новый СистемнаяИнформация;
    ТекущаяВерсия = СистемнаяИнформация.ВерсияПриложения;
    
    // Принудительно устанавливаем текущую версию платформы в качестве требуемой
    ОбщиеПараметры.Вставить("МинимальнаяВерсияПлатформы", ТекущаяВерсия);
    ОбщиеПараметры.Вставить("РекомендуемаяВерсияПлатформы", ТекущаяВерсия);
    
КонецПроцедуры
  1. Применим изменения, нажав клавишу F7 (Обновить конфигурацию базы данных).
  2. Запустим режим «1С:Предприятие». База успешно откроется, проигнорировав ошибочную константу.

После того как работоспособность системы будет восстановлена, вы сможете спокойно зайти в константы (как описано в Способе 1), очистить неверные данные, а затем отключить или полностью удалить созданное расширение.


Способ 3. Очистка констант через временный код при запуске

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

Рассмотрим этот алгоритм по шагам:

  1. В Конфигураторе откроем дерево метаданных, нажмем правой кнопкой мыши на корневой элемент конфигурации и выберем «Открыть модуль управляемого приложения» (для старых конфигураций — модуль обычного приложения).
  2. Найдем предопределенную процедуру ПриНачалеРаботыСистемы. Если ее нет, создадим ее.
  3. В самом начале тела этой процедуры пропишем временный код для принудительной очистки значений констант в базе данных:

Процедура ПриНачалеРаботыСистемы()
    
    // Временный код для очистки некорректных версий платформы
    Попытка
        Константы.РекомендуемаяВерсияПлатформы.Установить("");
        Константы.МинимальнаяВерсияПлатформы.Установить("");
        ЗаписьЖурналаРегистрации("ОбходОшибки", УровеньЖурналаРегистрации.Информация,,, "Константы версий успешно очищены.");
    Исключение
        ЗаписьЖурналаРегистрации("ОбходОшибки", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
    КонецПопытки;

КонецПроцедуры
  1. Обновим конфигурацию базы данных с помощью клавиши F7.
  2. Запустим режим «1С:Предприятие». При старте системы код выполнится, константы очистятся, и программа успешно откроется.
  3. Вернемся в Конфигуратор, удалим этот временный код из модуля управляемого приложения и снова обновим конфигурацию (F7), чтобы не замедлять последующие запуски системы лишними операциями записи.

Способ 4. Очистка кэша и отключение автоматических обновлений

Иногда даже после ручной очистки констант ошибка может повторяться. Это связано с тем, что некорректные метаданные могут кэшироваться локально на компьютере пользователя или сервере 1С:Предприятия.

Чтобы окончательно закрепить результат, выполним комплексную очистку системы:

  1. Очистим локальный кэш платформы. Для этого закроем все запущенные сеансы 1С. Перейдем в каталоги хранения кэша текущего пользователя:
    • %userprofile%\AppData\Local\1C\1Cv8
    • %userprofile%\AppData\Roaming\1C\1Cv8
    Удалим все папки с длинными буквенно-цифровыми именами (например, 8e029ba3-818a-4467...). Это сбросит кэшированные настройки и заставит платформу пересчитать параметры конфигурации при следующем запуске.
  2. Отключим автоматический мониторинг обновлений платформы. Чтобы предотвратить повторное скачивание ошибочных данных из интернета, в режиме «1С:Предприятие» перейдем в раздел Администрирование — Интернет-поддержка и услуги. Найдем пункт, отвечающий за автоматическую проверку обновлений платформы, и отключим его. Это обезопасит базу от повторного занесения поврежденных версий в будущем.

Проанализировав все вышеописанные методы, можно сделать вывод: паниковать при возникновении ошибки с версией 98.55.43 не стоит. Это классическая программная коллизия, которая легко устраняется силами администратора или программиста через инструменты Конфигуратора без потери данных и долгого ожидания технической поддержки.

← На главную