Ситуация, когда после неудачного обновления 1С:Бухгалтерия в режиме «1С:Предприятие» программа выдает сообщение о невозможности запуска из-за версии 3.0.1.13, является одной из самых стрессовых для администратора или бухгалтера. Особенно критично это выглядит, когда кнопка «Вернуться к конфигурации базы данных» в Конфигураторе оказывается серой и неактивной. Проанализируем причины этой проблемы и разберем пошагово методы восстановления работоспособности базы данных.
Разберем природу этого загадочного номера версии. Версия 3.0.1.13 — это не реальный релиз, с которого пытались обновиться, а техническая «точка отсчета», зашитая в коде конфигурации (в частности, в «Библиотеке стандартных подсистем»).
Рассмотрим механизм возникновения ошибки: при первом запуске после обновления конфигурации (нажатия F7 в Конфигураторе или автоматического применения в режиме Предприятия) должны запуститься обработчики обновления. Если на этом этапе происходит критический сбой (зависание, выключение компьютера, ошибка в коде), программа не успевает прописать в регистр сведений актуальный номер версии. При следующем запуске система видит, что старые данные уже не актуальны, а новые еще не записаны, и по умолчанию подставляет минимально возможную версию из кода — 3.0.1.13. В результате мы получаем логический тупик: конфигурация требует версию не ниже 3.0.61.37, а видит «древнюю» техническую заглушку.
Выясним причину блокировки штатного механизма отката. В Конфигураторе 1С существует два состояния конфигурации: «основная» (то, что правит программист) и «конфигурация базы данных» (то, в чем работают пользователи). Кнопка возврата активна только до тех пор, пока вы внесли изменения в основную конфигурацию, но НЕ применили их к базе данных (не нажали «синий бочонок» или F7). Если обновление выполнялось через пользовательский режим или вы уже согласились с обновлением конфигурации БД, основная конфигурация и БД становятся идентичными. Откатываться конфигуратору просто не к чему — старая структура уже затерта новой.
Если обновление запускалось из режима «1С:Предприятие», программа могла создать временную копию перед началом процесса. Проанализируем, где ее искать:
Win + R и введите команду %temp%.1Cv8Update... или файлы с расширением .1CD, имеющие в названии дату и время сбоя.1Cv8.1CD (или упакованный в ZIP архив) прямо в папке временных файлов пользователя.1Cv8.1CD и попробуйте подключить как новую информационную базу.Если копии нет, а данные за период после последнего архива (например, за полгода) терять нельзя, придется вмешаться в логику проверки версии. Проанализируем этот метод подробнее:
Суть метода заключается в том, чтобы заставить программу «поверить», что версия в регистре сведений соответствует требуемой. Для этого используется механизм расширений конфигурации. Однако стоит помнить, что в Базовых версиях 1С расширения работают только при наличии лицензии ПРОФ на компьютере специалиста (но даже в этом случае их использование ограничено лицензионным соглашением).
Алгоритм действий программиста:
ОбновлениеИнформационнойБазыВызовСервера или связанных с БСП).&Вместо подменить возвращаемое значение версии на нужную (например, ту, что была до обновления — 3.0.90.59).Разберем, как можно попытаться восстановить данные в самой базе без расширений. Проблема кроется в некорректных данных в регистре сведений ВерсииПодсистем.
Рассмотрим вариант запуска программы с параметром, игнорирующим проверку:
/C СтартОбновленияОбъектов. Иногда это позволяет «протолкнуть» зависшие обработчики.ВерсииПодсистем актуальные номера версий для основной конфигурации и всех подсистем БСП.Пример кода для принудительной установки версии (использовать только в крайнем случае через внешнюю обработку):
Процедура УстановитьВерсиюПодсистемы(ИмяПодсистемы, НомерВерсии)
Запись = РегистрыСведений.ВерсииПодсистем.СоздатьМенеджерЗаписи();
Запись.ИмяПодсистемы = ИмяПодсистемы;
Запись.Прочитать();
Запись.ИмяПодсистемы = ИмяПодсистемы;
Запись.Версия = НомерВерсии;
Запись.ПланОбновления = "";
Запись.Записать(Истина);
КонецПроцедуры
Если структура базы повреждена, но данные (таблицы) целы, можно попробовать «накатить» чистую конфигурацию нужного релиза:
1cv8.cf от релиза, который был у вас до сбоя (в вашем случае 3.0.90.59).Посмотрим на ситуацию со стороны системного администрирования. Ошибка «3.0.1.13» практически всегда является следствием отсутствия контроля над процессом обновления. Чтобы этого избежать, следуйте правилам:
1Cv8.1CD в архив..cfu).В завершение отметим: если вы не являетесь опытным программистом 1С и столкнулись с ошибкой версии 3.0.1.13 при отсутствии свежего архива, лучшим решением будет обращение к специалистам. Самостоятельные попытки «прожать» обновление могут привести к безвозвратной потере данных в таблицах, даже если саму оболочку программы удастся запустить.