Как вернуть платформу 1С к предыдущей версии без потери данных?

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

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

Физика процесса: Как устроен запуск разных версий платформы

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

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

Критический фактор: Режим совместимости конфигурации

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

Рассмотрим эту ситуацию подробнее:

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

Влияние расширений конфигурации

Проанализируем еще один важный аспект — использование расширений конфигурации (файлы с расширением .cfe). Современные конфигурации 1С активно используют расширения для кастомизации функционала под нужды конкретного предприятия. У каждого расширения также есть свойство РежимСовместимости.

Если при переходе на платформу 8.3.15 ваши расширения были адаптированы под новые возможности платформы (или их режим совместимости был автоматически или вручную повышен), то после отката платформы назад на 8.3.14 эти расширения перестанут подключаться. Программа будет выдавать ошибки при запуске. Решением в данной ситуации является ручное понижение режима совместимости в свойствах каждого активного расширения конфигурации через Конфигуратор на новой платформе перед ее удалением, либо восстановление версий расширений из бэкапа. Для упрощения работы с адаптацией модификаций пригодится инструмент для обновления расширения конфигурации.

Риски повреждения базы данных и «Ошибка формата потока»

При понижении версии технологической платформы пользователи нередко сталкиваются с неприятной системной ошибкой «Ошибка формата потока» (Stream format error) при попытке открыть базу. Выясним основные причины этой проблемы:

  1. Изменение внутренней структуры таблиц и индексов. Переход между минорными релизами платформы (даже внутри одной ветки, например, с 8.3.14 на 8.3.15) может неявно изменять формат физического хранения таблиц в файле базы данных 1Cv8.1CD (для файлового варианта) или структуру индексов на SQL-сервере (для клиент-серверного варианта). Старая версия платформы при чтении этих данных сталкивается с неизвестным ей форматом записи и аварийно завершает работу с ошибкой формата потока.
  2. Использование неофициальных патчей защиты. Если на новой платформе использовались сторонние средства обхода лицензионной защиты, а на старой платформе они отсутствуют (или наоборот), это может вызывать конфликты при чтении заголовков файлов базы данных и приводить к сбоям структуры. Мы настоятельно рекомендуем использовать только официальные лицензионные ключи защиты 1С.

Очистка локального и серверного кэша: Обязательный шаг

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

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

%LocalAppData%\1C\1Cv8 (например, C:\Users\ИмяПользователя\AppData\Local\1C\1Cv8)

%AppData%\1C\1Cv8 (например, C:\Users\ИмяПользователя\AppData\Roaming\1C\1Cv8)

Для автоматизации этого процесса на множестве рабочих мест администраторы часто используют простой командный скрипт (батник), который можно запускать при входе пользователя в систему — для этого также подойдёт программа централизованного администрирования и обновления рабочих мест 1С:


@echo off
echo Очистка локального кэша 1С...
rmdir /s /q "%LocalAppData%\1C\1Cv8"
rmdir /s /q "%AppData%\1C\1Cv8"
echo Очистка кэша завершена успешно!
pause

Индексы полнотекстового поиска

При переходе между версиями платформ может нарушиться работоспособность индексов полнотекстового поиска данных (ППД). Чтобы избежать некорректных результатов поиска или зависания программы при вводе поисковых запросов, после успешного запуска базы на старой платформе рекомендуется выполнить полное обновление индекса. Для этого перейдем в режим «1С:Предприятие» под правами администратора, откроем панель «Управление полнотекстовым поиском», нажмем кнопку «Очистить индекс», а затем запустим процедуру «Обновить индекс» заново.

Пошаговый алгоритм безопасного отката платформы

Рассмотрим по шагам детальный и самый безопасный алгоритм возврата к предыдущей версии платформы 1С:

  1. Создание полной резервной копии. Это самый важный шаг, без которого любые манипуляции с платформой категорически запрещены. Если у вас файловая база — физически скопируйте файл 1Cv8.1CD в безопасное место. Если база клиент-серверная — сделайте бэкап базы данных средствами вашей СУБД (MS SQL Server, PostgreSQL и др.). Дополнительно сделайте выгрузку информационной базы в файл резервной копии (формат .dt) через Конфигуратор.
  2. Проверка режима совместимости. Откройте базу в режиме «Конфигуратор» на текущей новой платформе. Зайдите в свойства корневого элемента конфигурации и убедитесь, что свойство РежимСовместимости установлен в значение, поддерживаемое старой платформой (например, «8.3.14» или ниже). Если режим совместимости был повышен — верните его на старое значение, сохраните конфигурацию базы данных и закройте Конфигуратор.
  3. Завершение всех активных сеансов. Убедитесь, что все пользователи вышли из базы. В клиент-серверном варианте зайдите в консоль администрирования серверов 1С и принудительно завершите все активные сеансы и соединения с базой данных — для этого подойдёт программа управления сеансами и соединениями 1С. Если база работает в файловом режиме — проверьте диспетчер задач на наличие зависших процессов 1cv8.exe.
  4. Остановка служб (для серверного варианта). На сервере приложений 1С зайдите в службу управления Windows и остановите службу «Агент сервера 1С:Предприятия 8.3».
  5. Очистка кэша. Удалите файлы кэша на сервере 1С (папка snccntx и временные файлы в каталоге службы сервера) и на рабочих станциях пользователей (папки Local\1C\1Cv8 и Roaming\1C\1Cv8).
  6. Настройка запуска старой платформы. У вас есть два пути запуска базы на старой платформе:
    • Путь А (рекомендуемый): В свойствах информационной базы в списке запуска 1С в поле «Версия платформы» укажите точный номер старого релиза (например, 8.3.14.1854). В этом случае новая платформа останется установленной на ПК, но запускаться будет именно старая. Запуск можно также производить из командной строки, явно указав параметр версии:
    
    "C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\1C_Bases\MyBase" /AppVersion 8.3.14.1854
    
    • Путь Б: Полностью деинсталлируйте новую версию платформы (8.3.15) через панель управления Windows («Программы и компоненты»). Убедитесь, что на компьютере установлена старая платформа (8.3.14). Загрузчик 1С автоматически начнет использовать старую платформу как единственную доступную.
  7. Запуск службы сервера (для серверного варианта). Запустите службу «Агент сервера 1С:Предприятия 8.3» на сервере. Обратите внимание, что служба сервера должна быть запущена из исполняемых файлов именно старой версии платформы (проверить это можно в свойствах службы Windows, обратив внимание на путь к исполняемому файлу ragent.exe). При необходимости перерегистрируйте службу сервера 1С на старый релиз платформы.
  8. Первый запуск в режиме Конфигуратора и тестирование. Запустите базу на старой платформе в режиме «Конфигуратор». Перейдите в меню «Администрирование» — «Тестирование и исправление». Выберите пункты «Реиндексация таблиц информационной базы» и «Проверка логической целостности». Запустите процесс. Это позволит исключить любые мелкие скрытые дефекты таблиц, возникшие при переходе туда и обратно.
  9. Запуск пользователей. Если тестирование завершилось успешно и без критических ошибок — база готова к работе. Вы можете запускать пользователей в обычном режиме «1С:Предприятие».

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

← На главную