Обновление технологической платформы «1С:Предприятие» — процесс ответственный, и, к сожалению, не всегда он проходит гладко. Переход на более свежий релиз (например, с ветки 8.3.14 на 8.3.15) может сопровождаться непредвиденными ошибками в работе конфигурации, падением производительности, зависанием сеансов или проблемами с отображением интерфейса. В таких ситуациях у администраторов и разработчиков возникает закономерный вопрос: можно ли безопасно откатить платформу назад на старую стабильную версию и как сделать это без потери накопленных данных? В этой статье мы подробно разберем механику процесса отката, проанализируем возможные риски и составим пошаговую инструкцию по безопасному переходу на предыдущую версию платформы.
Прежде чем приступать к решительным действиям, давайте разберем, как именно функционирует система запуска «1С:Предприятие 8». В отличие от самих конфигураций (прикладных решений), на одном сервере или рабочем компьютере пользователя может быть одновременно установлено несколько разных версий технологической платформы 1С. За управление этим процессом отвечает универсальный загрузчик — утилита 1cestart.exe.
Когда вы запускаете ярлык 1С на рабочем столе, стартует именно загрузчик. Он анализирует список информационных баз и параметры конкретной базы, которую вы хотите открыть. По умолчанию загрузчик ищет самую новую установленную версию платформы на данном компьютере и запускает базу под ее управлением. Соответственно, чтобы «вернуться» на старую платформу, физически удалять новую версию (например, 8.3.15.1700) во многих случаях не обязательно. Достаточно лишь перенаправить загрузчик на нужный нам релиз. Сделать это можно через изменение свойств конкретной информационной базы в списке запуска, где в поле «Версия платформы» принудительно прописывается конкретный релиз, например, 8.3.14.1854.
Возврат на старую версию платформы пройдет абсолютно безболезненно и без потерь данных только при одном ключевом условии: если при переходе на новую платформу у вас не менялся «Режим совместимости» самой конфигурации в Конфигураторе.
Рассмотрим эту ситуацию подробнее:
РежимСовместимости было изменено на «8.3.15» (или «Не использовать»), то платформа выполнила реструктуризацию базы данных. В таблицы были записаны новые метаданные, возможно, изменились типы полей или логика хранения информации. При попытке запустить такую базу на старой платформе (например, 8.3.14) система выдаст критическую ошибку и откажется открывать базу, сославшись на то, что конфигурация требует более новую версию платформы.Если режим совместимости все-таки был изменен, то для отката платформы нам придется сначала запустить базу на новой платформе в режиме «Конфигуратор», вручную понизить свойство РежимСовместимости до прежнего уровня, запустить процедуру реструктуризации и сохранения метаданных, и только после этого осуществлять запуск на старом релизе платформы. Внимание! Понижение режима совместимости на работающей базе — операция с повышенным риском утери данных (особенно если в конфигурации уже использовались новые типы данных и механизмы, специфичные для свежей платформы). В этом случае откат крайне рекомендуется производить только путем восстановления базы из архивной копии (бэкапа), сделанной строго до обновления платформы.
Проанализируем еще один важный аспект — использование расширений конфигурации (файлы с расширением .cfe). Современные конфигурации 1С активно используют расширения для кастомизации функционала под нужды конкретного предприятия. У каждого расширения также есть свойство РежимСовместимости.
Если при переходе на платформу 8.3.15 ваши расширения были адаптированы под новые возможности платформы (или их режим совместимости был автоматически или вручную повышен), то после отката платформы назад на 8.3.14 эти расширения перестанут подключаться. Программа будет выдавать ошибки при запуске. Решением в данной ситуации является ручное понижение режима совместимости в свойствах каждого активного расширения конфигурации через Конфигуратор на новой платформе перед ее удалением, либо восстановление версий расширений из бэкапа. Для упрощения работы с адаптацией модификаций пригодится инструмент для обновления расширения конфигурации.
При понижении версии технологической платформы пользователи нередко сталкиваются с неприятной системной ошибкой «Ошибка формата потока» (Stream format error) при попытке открыть базу. Выясним основные причины этой проблемы:
1Cv8.1CD (для файлового варианта) или структуру индексов на SQL-сервере (для клиент-серверного варианта). Старая версия платформы при чтении этих данных сталкивается с неизвестным ей форматом записи и аварийно завершает работу с ошибкой формата потока.Смена версии платформы в любую сторону (как в сторону повышения, так и в сторону понижения релиза) очень часто сопровождается нестабильным поведением программы из-за конфликта старых кэшированных данных. Платформа активно кэширует конфигурацию, формы, настройки пользователей и метаданные на локальном компьютере для ускорения работы. Если запустить базу на старой платформе после того, как с ней поработала новая платформа, старый кэш гарантированно вызовет ошибки.
После отката платформы строго обязательно нужно очистить кэш. Для этого выполним следующие действия:
Local и Roaming в каталоге пользователя по следующим путям:%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
reg_1841 на сервере приложений 1С), предварительно остановив службу сервера «1С:Предприятие».При переходе между версиями платформ может нарушиться работоспособность индексов полнотекстового поиска данных (ППД). Чтобы избежать некорректных результатов поиска или зависания программы при вводе поисковых запросов, после успешного запуска базы на старой платформе рекомендуется выполнить полное обновление индекса. Для этого перейдем в режим «1С:Предприятие» под правами администратора, откроем панель «Управление полнотекстовым поиском», нажмем кнопку «Очистить индекс», а затем запустим процедуру «Обновить индекс» заново.
Рассмотрим по шагам детальный и самый безопасный алгоритм возврата к предыдущей версии платформы 1С:
1Cv8.1CD в безопасное место. Если база клиент-серверная — сделайте бэкап базы данных средствами вашей СУБД (MS SQL Server, PostgreSQL и др.). Дополнительно сделайте выгрузку информационной базы в файл резервной копии (формат .dt) через Конфигуратор.РежимСовместимости установлен в значение, поддерживаемое старой платформой (например, «8.3.14» или ниже). Если режим совместимости был повышен — верните его на старое значение, сохраните конфигурацию базы данных и закройте Конфигуратор.1cv8.exe.snccntx и временные файлы в каталоге службы сервера) и на рабочих станциях пользователей (папки Local\1C\1Cv8 и Roaming\1C\1Cv8).8.3.14.1854). В этом случае новая платформа останется установленной на ПК, но запускаться будет именно старая. Запуск можно также производить из командной строки, явно указав параметр версии:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\1C_Bases\MyBase" /AppVersion 8.3.14.1854
ragent.exe). При необходимости перерегистрируйте службу сервера 1С на старый релиз платформы.Подводя итог, можно с уверенностью сказать: возврат на предыдущую платформу 1С вполне возможен и при соблюдении мер предосторожности проходит абсолютно бесследно для ваших данных. Главное — всегда иметь под рукой свежие бэкапы, следить за режимом совместимости конфигурации и не забывать очищать кэш на всех рабочих местах после завершения процедуры отката.