Возврат на предыдущую версию платформы 1С:Предприятие 8.3 без потери баз

· 9 мин

Содержание

Откатить платформу 1С проще всего, не удаляя ничего: в списке баз откройте Изменить и в поле «Версия 1С:Предприятия» укажите прежний номер, например 8.3.22.1923. Если старая версия уже удалена, сначала поставьте её из дистрибутива, а новую уберите через «Программы и компоненты». Точка восстановления Windows нужна редко, а на сервере 1С возврат версии делают отдельной процедурой.

Выбор способа зависит от того, где сломалось. Одна база на одном компьютере — хватит закрепить версию. Новая версия мешает всем программам на машине — удаляйте её. Сервер 1С — меняйте версию агента сервера и всех клиентов разом.

Когда откат версии платформы 1С оправдан

Платформы 8.3 ставятся рядом друг с другом, каждая в свою папку: C:\Program Files\1cv8\8.3.24.1586, C:\Program Files\1cv8\8.3.22.1923 и так далее. Новая версия не затирает старую. Поэтому «откат» обычно означает просто вернуть запуск на прежнюю сборку.

Типовые поводы:

  • 🐞 после обновления база стала падать, тормозить или неверно печатать формы;
  • 🔌 перестало работать торговое оборудование, внешняя компонента или обработка обмена;
  • 🧩 сторонняя программа обращается к 1С через COM (V83.COMConnector) и ломается на новой версии;
  • 🖥️ клиент обновился сам, а сервер 1С остался на старой версии, и подключиться нельзя;
  • 📦 новую сборку поставили «на пробу», а отраслевая конфигурация её ещё не поддерживает.

Откат — временная мера. Типовые конфигурации раз в несколько релизов поднимают минимальную версию платформы. Через какое-то время старая сборка перестанет подходить, и проблему всё равно придётся решать на новой.

Подготовка: что проверить до отката платформы

Пять минут проверки избавят от ситуации, когда старая платформа просто не откроет базу.

1. Узнайте текущие версии. В режиме 1С:Предприятие откройте главное меню (значок с тремя полосками) → Справка → О программе. Там видна версия платформы и версия конфигурации. Запишите обе.

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

3. Посмотрите режим совместимости. В Конфигураторе откройте свойства корня конфигурации, поле «Режим совместимости». Если там «Версия 8.3.24», платформа 8.3.22 эту базу не откроет. Понижать режим совместимости типовой конфигурации нельзя — это ломает её обновление.

4. Сделайте резервную копию. Для файловой базы скопируйте папку с файлом 1Cv8.1CD при закрытой программе или выгрузите .dt через Конфигуратор. Для клиент-серверной — штатный бэкап СУБД.

5. Найдите дистрибутив старой версии. Если папка C:\Program Files\1cv8\<старая версия> на месте — дистрибутив не нужен. Если удалена — понадобится установочный комплект той же сборки и той же разрядности.

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

Быстрый откат без удаления: закрепить версию за базой

Этот способ безопасный и обратимый. Новую версию он не трогает, просто запускает конкретную базу на старой.

  1. Откройте окно запуска 1С со списком баз.
  2. Выделите базу и нажмите Изменить.
  3. Пролистайте мастер до последней страницы с параметрами запуска.
  4. В поле «Версия 1С:Предприятия» впишите номер нужной сборки.
  5. Нажмите Готово и запустите базу.

Номер можно указывать по-разному:

Что вписаноЧто запустится
8.3 или пустосамая новая установленная 8.3
8.3.22самая новая сборка из ветки 8.3.22
8.3.22.1923ровно эта сборка

Для отката нужен полный номер из четырёх чисел. Иначе при установке очередной сборки той же ветки база снова уйдёт на неё.

Настройка хранится в файле списка баз %APPDATA%\1C\1CEStart\ibases.v8i строкой Version=8.3.22.1923. Если баз много, этот файл удобно поправить один раз и разложить по рабочим местам.

Для разового запуска хватит ярлыка с прямым путём к нужной версии:

"C:\Program Files\1cv8\8.3.22.1923\bin\1cv8c.exe" ENTERPRISE /F"D:\Bases\Buh"

Здесь 1cv8c.exe — тонкий клиент, 1cv8.exe — толстый клиент и Конфигуратор. Для серверной базы вместо /F указывают /S"server\base".

Если старой версии на компьютере уже нет, сначала установите её. Новую при этом удалять не обязательно: обе версии спокойно живут рядом.

Удаление новой версии платформы через «Программы и компоненты»

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

  1. Закройте все сеансы 1С на компьютере, включая Конфигуратор и фоновые обработки.
  2. Нажмите Win + R, введите appwiz.cpl, нажмите Enter.
  3. Найдите строку «1С:Предприятие 8» с номером новой версии. 64-битная и 32-битная сборки идут отдельными строками, у 64-битной в названии есть x86-64.
  4. Нажмите Удалить и дождитесь окончания.
  5. Убедитесь, что старая версия осталась в списке. Если её нет — установите из дистрибутива.

То же самое можно сделать из PowerShell, запущенного от администратора. Сначала посмотрите, что установлено:

Get-Package -Name "1C*" | Select-Object Name, Version

Затем удалите конкретную сборку, подставив её номер:

Get-Package -Name "1C*" | Where-Object Version -like "8.3.24.1586*" | Uninstall-Package

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

Базы, список баз и пользовательские настройки при удалении платформы не пропадают. Удаляются только файлы программы из папки версии.

Ручная очистка: кэш, остатки папок и COM-компоненты

После смены версии часть проблем даёт не сама платформа, а её хвосты.

Кэш клиента

Кэш лежит в двух местах профиля пользователя:

  • %APPDATA%\1C\1cv8\ — папки с именами-идентификаторами вида 0a1b2c3d-...;
  • %LOCALAPPDATA%\1C\1cv8\ — такие же папки с локальными данными.

Закройте 1С и удалите папки-идентификаторы внутри этих каталогов. Сами каталоги и файлы настроек рядом оставьте. Есть и вариант мягче — запустить базу с параметром /ClearCache:

"C:\Program Files\1cv8\8.3.22.1923\bin\1cv8c.exe" ENTERPRISE /F"D:\Bases\Buh" /ClearCache

На терминальном сервере кэш свой у каждого пользователя. Чистите его в профиле того, у кого ошибка.

Остатки папки версии

Иногда после удаления в C:\Program Files\1cv8\ остаётся папка удалённой версии с несколькими файлами. Если в «Программах и компонентах» этой сборки уже нет, папку можно удалить вручную.

Не удаляйте папку srvinfo и папки версий, которые ещё установлены. В srvinfo хранятся данные кластера сервера 1С.

Регистрация COM-компонент

Это приём, о котором часто забывают. COM-соединитель comcntr.dll и библиотека консоли администрирования radmin.dll регистрируются в Windows одной версией. После удаления новой сборки регистрация может указывать на несуществующий файл. Внешние программы перестанут подключаться к 1С, а консоль кластера не откроется.

Перерегистрируйте библиотеки старой версии из командной строки от администратора:

regsvr32 "C:\Program Files\1cv8\8.3.22.1923\bin\comcntr.dll"
regsvr32 "C:\Program Files\1cv8\8.3.22.1923\bin\radmin.dll"

Разрядность библиотеки должна совпадать с разрядностью программы, которая ей пользуется. 32-битная программа обмена не увидит 64-битный comcntr.dll.

Реестр

Править реестр вручную ради отката не нужно. Если установщик сломался и сборка не удаляется и не ставится заново, воспользуйтесь средством устранения неполадок установки и удаления программ от Microsoft. Оно убирает «битые» записи установщика аккуратнее, чем ручная чистка веток реестра.

Точка восстановления Windows: когда она уместна

Восстановление системы (rstrui.exe) откатывает программы, драйверы и реестр на дату точки. Документы и базы 1С оно не трогает.

Способ подходит, если после установки платформы сломалось что-то вне 1С: драйвер ключа защиты, торговое оборудование, другая программа. Но вместе с платформой откатится всё, что ставили после точки: обновления, драйверы, другой софт.

СпособКогда выбиратьРиски
Закрепить версию за базойОдна или несколько баз, старая версия установленаПочти нет
Удалить новую версиюНовая сборка мешает всему компьютеруНужна регистрация COM, у других баз пропадёт новая версия
Точка восстановленияСломалось что-то в Windows после установкиОткатится всё, что ставили после точки
Переустановка старой версииУстановщик повреждён, версия не запускаетсяНужен дистрибутив той же сборки

На сервере 1С точкой восстановления не пользуйтесь. Откат затронет службы и может повредить данные кластера.

Откат платформы на сервере 1С

В клиент-серверном варианте действует жёсткое правило: версия клиента должна совпадать с версией сервера до последней цифры. Поэтому откатывают сразу всё: сервер, все рабочие места и терминальные серверы.

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

Порядок действий на сервере:

  1. Сделайте резервные копии баз средствами СУБД.
  2. В services.msc остановите службу «Агент сервера 1С:Предприятия 8.3», а если используется сервер администрирования (ras) — и его службу.
  3. Скопируйте папку srvinfo в отдельное место. Путь к ней указан в параметре -d командной строки службы.
  4. Установите старую версию сервера, если её нет, с опцией установки как службы Windows.
  5. Если служба осталась от новой версии, перенаправьте её на ragent.exe старой сборки. Имя службы возьмите в её свойствах, поле «Имя службы»:
sc config "<имя службы>" binPath= "\"C:\Program Files\1cv8\8.3.22.1923\bin\ragent.exe\" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d \"C:\Program Files\1cv8\srvinfo\""

Порты и путь -d оставьте теми, что были у службы до отката. Пробел после binPath= обязателен.

  1. Запустите службу и откройте консоль кластера. Перед этим перерегистрируйте radmin.dll старой версии, как описано выше.
  2. Поставьте ту же сборку клиента на все рабочие места и закрепите её за серверными базами.

Если в кластере несколько рабочих серверов, откатывают все до одной версии. Разные сборки внутри одного кластера не работают.

Веб-публикации

Если базы опубликованы на веб-сервере, публикация привязана к модулю конкретной версии платформы. Путь к модулю стоит в настройках Apache или IIS. После отката переопубликуйте базы утилитой webinst из папки bin старой версии или поправьте путь вручную и перезапустите веб-сервер.

Кэш сеансовых данных сервера

Если после отката в работе сервера появились странные ошибки, чистят кэш сеансовых данных. Это папки snccntx* в каталоге кластера внутри srvinfo\reg_1541. Удаляйте их только при остановленной службе агента сервера. Остальное содержимое reg_1541 не трогайте.

Если база не открылась после отката

Если что-то пошло не так, найдите свой симптом:

Диагностика: выберите симптом

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

Частые вопросы

Можно ли держать на одном компьютере несколько версий платформы?
Да. Каждая сборка ставится в свою папку, и для каждой базы можно выбрать свою версию в списке баз.
Пропадут ли базы после удаления новой версии платформы?
Нет. Удаляются только файлы программы. Базы, список баз и пользовательские настройки остаются на месте.
Как запретить 1С самой переходить на новую версию?
Закрепите за базой полный номер сборки. Тогда при установке новой версии база останется на прежней.
Нужна ли отдельная лицензия для старой версии платформы?
Нет. Лицензия привязана к компьютеру или ключу, а не к сборке платформы. После отката сохраняются те же лицензии.
Можно ли откатить только клиент, а сервер оставить на новой версии?
Нет. В клиент-серверном варианте клиент и сервер должны быть одной сборки, поэтому откатывают оба.