Переход сервера 1С:Предприятия 8.3 на новую версию платформы без потери баз
Содержание
Чтобы обновить сервер
1С 8.3, установите новую версию платформы рядом со старой, остановите службу «Агент сервера 1С:Предприятия 8.3», переключите её на ragent.exe из папки новой версии и запустите снова. Базы и настройки кластера при этом не трогаются: они лежат в базе СУБД и в каталоге srvinfo, а не в папке версии. Затем обновляют клиенты на рабочих местах до того же номера, перерегистрируют консоль администрирования и проверяют регламентные задания.
Простой для пользователей — от 10 до 30 минут, если всё подготовлено заранее. Основное время уходит не на установку, а на подготовку и проверку после запуска. Обновление конфигураций баз — отдельный шаг, его делают после смены платформы и только если новый релиз этого требует.
Что сделать до обновления сервера 1С
Платформу почти всегда обновляют по одной причине: новый релиз конфигурации требует версию платформы не ниже определённой. Поэтому сначала выясните, какая версия нужна. Требование указано в описании релиза конфигурации на портале обновлений (releases.1c.ru, доступ по договору ИТС).
Перед установкой пройдите по списку.
- 📋 Версия. Запишите текущую: она видна в консоли кластера и в имени папки
C:\Program Files\1cv8\8.3.xx.yyyy. - 🗄️ СУБД. Проверьте, что ваша версия PostgreSQL или MS SQL Server есть в списке поддерживаемых для нового релиза платформы. Для PostgreSQL нужна сборка, совместимая с 1С.
- 💾 Копии баз. Сделайте полные резервные копии средствами СУБД. Для больших баз это быстрее и надёжнее выгрузки
.dt. - 📁 Копия
srvinfo. Скопируйте каталог реестра кластера. По умолчанию этоC:\Program Files\1cv8\srvinfo, но путь мог быть изменён: смотрите параметр-dв строке запуска службы. - 🔑 Лицензии. Убедитесь, что программные лицензии лежат в
C:\ProgramData\1C\licensesи что их резервная копия есть. Смена версии платформы их не сбрасывает, но копия не помешает. - 🧪 Тест. По возможности обкатайте новую версию на тестовом сервере или хотя бы на копии самой нагруженной базы.
Пример копий средствами СУБД:
-- MS SQL Server: копия без нарушения цепочки бэкапов
BACKUP DATABASE [buh] TO DISK = N'D:\Backup\buh_before_platform.bak'
WITH COPY_ONLY, COMPRESSION;
# PostgreSQL: дамп в сжатом формате
pg_dump -U postgres -Fc -f /backup/buh_before_platform.dump buh
В MS SQL Server Express параметр COMPRESSION недоступен. Уберите его, копия просто будет больше по размеру.
Выберите окно для работ: вечер или выходной. Остановка службы оборвёт все сеансы, несохранённые документы пользователей пропадут.
Загрузка дистрибутива и установка новой версии сервера
Дистрибутив берут на портале обновлений в разделе «Технологическая платформа 8.3». Для сервера на Windows нужен полный 64-разрядный дистрибутив: в его названии есть «64-bit» и «для Windows». Версия должна совпадать до последней цифры с той, которую вы потом поставите клиентам.
Установка на Windows
- Распакуйте архив и запустите
setup.exeот имени администратора. - В списке компонентов оставьте нужное:
Сервер 1С:Предприятия 8 (x86-64),Администрирование сервера 1С:Предприятия, при наличии веб-публикаций —Модули расширения веб-сервера. - Флажок установки сервера как сервиса Windows ставьте, если хотите, чтобы установщик сам зарегистрировал службу. Пользователь службы по умолчанию —
USR1CV8. - Дождитесь окончания установки. Новая версия ляжет в отдельную папку
C:\Program Files\1cv8\8.3.xx.yyyy, старая останется на месте.
То, что старая версия не удаляется, — ваша страховка. Откат сводится к обратному переключению службы.
Установка на Linux
Начиная с версии 8.3.21 платформа для Linux ставится единым установщиком setup-full-<версия>-x86_64.run в каталог /opt/1cv8/x86_64/<версия>. Каждая версия получает свой systemd-юнит вида srv1cv8-<версия>@.service.
# остановить старую версию (сеансы оборвутся)
sudo systemctl stop srv1cv8-8.3.xx.yyyy@default
sudo systemctl disable srv1cv8-8.3.xx.yyyy@default
# включить и запустить новую
sudo systemctl enable srv1cv8-8.3.zz.wwww@default
sudo systemctl start srv1cv8-8.3.zz.wwww@default
Если сервер был поставлен до 8.3.21 из deb/rpm-пакетов, у службы другое имя и другой порядок обновления. Проверьте имеющиеся юниты командой systemctl list-units | grep 1cv8.
Как перевести службу агента сервера 1С 8.3 на новую версию
Это главный шаг. Служба запускает конкретный файл ragent.exe из папки конкретной версии. Пока строка запуска указывает на старую папку, сервер работает на старой платформе, сколько бы новых версий вы ни установили.
Посмотреть текущую строку запуска:
reg query "HKLM\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)" /v ImagePath
Строка выглядит примерно так:
"C:\Program Files\1cv8\8.3.xx.yyyy\bin\ragent.exe" -debug -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Способ 1. Правка пути в реестре
Самый быстрый и предсказуемый вариант.
- Предупредите пользователей и остановите службу «Агент сервера 1С:Предприятия 8.3 (x86-64)» в оснастке
services.msc. Все сеансы будут завершены. - Откройте
regeditи перейдите в веткуHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64). - В параметре
ImagePathзамените в пути только номер версии. Порты, диапазон и параметр-dне меняйте. - Запустите службу. В диспетчере задач должны появиться
ragent.exe,rmngr.exeиrphost.exeиз папки новой версии.
Способ 2. Перерегистрация службы через ragent
Подходит, если служба была повреждена или вы хотите зарегистрировать её заново с теми же параметрами.
rem 1. Снять службу старой версии (сеансы оборвутся)
"C:\Program Files\1cv8\8.3.xx.yyyy\bin\ragent.exe" -stop
"C:\Program Files\1cv8\8.3.xx.yyyy\bin\ragent.exe" -rmsrvc
rem 2. Зарегистрировать службу новой версии с прежними портами и каталогом
"C:\Program Files\1cv8\8.3.zz.wwww\bin\ragent.exe" -instsrvc -usr .\USR1CV8 -pwd ПАРОЛЬ -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
"C:\Program Files\1cv8\8.3.zz.wwww\bin\ragent.exe" -start
Параметр -d должен указывать на тот же каталог srvinfo, что и раньше. Укажете другой — сервер стартует с пустым кластером, и базы «пропадут» из консоли. Данные в СУБД целы, но список баз придётся возвращать.
| Способ | Когда выбирать | Риски |
|---|---|---|
Правка ImagePath | Плановое обновление, служба исправна | Опечатка в пути — служба не стартует |
Перерегистрация через ragent | Служба сломана, меняется учётная запись | Потеря параметров запуска, если не переписать их заранее |
| Флажок в установщике | Первая установка, тестовый сервер | Нужно проверить, на какую версию в итоге смотрит служба |
Брандмауэр
Если правила Windows Firewall созданы по пути к программе (ragent.exe, rmngr.exe, rphost.exe), после смены версии они перестанут действовать: путь другой. Создайте правила для новой папки или, надёжнее, откройте порты: 1540, 1541 и диапазон 1560–1591. Клиент сначала обращается к агенту на 1540, затем к менеджеру кластера на 1541 и к рабочим процессам в диапазоне.
Консоль администрирования, веб-публикации и клиенты
После смены версии сервера три вещи тоже нужно перевести на новый номер. Иначе пользователи увидят ошибки, хотя сам сервер работает.
Консоль кластера
Консоль администрирования серверов 1С работает через библиотеку radmin.dll той же версии, что и сервер. Старая библиотека к новому агенту не подключится.
regsvr32 "C:\Program Files\1cv8\8.3.zz.wwww\bin\radmin.dll"
Команду запускайте из командной строки от имени администратора на каждом компьютере, где открывают консоль. После этого перезапустите оснастку.
Клиенты на рабочих местах
Толстый и тонкий клиент должны быть той же версии, что и сервер, вплоть до номера сборки. Варианты обновления:
- 🖥️ установить новую платформу на каждый компьютер вручную;
- 📦 развернуть через групповые политики или систему управления ПО;
- 🔄 разрешить автоматическое обновление клиента: при подключении к серверу клиент скачивает подходящую версию, если на сервере выложен дистрибутив и у пользователя есть права на установку.
Терминальный сервер обновляют отдельно: на нём тоже должна стоять та же версия клиента.
Веб-сервер
Публикация на IIS или Apache ссылается на модуль расширения конкретной версии (wsisapi.dll или wsap24.dll). Переопубликуйте базы из Конфигуратора новой версии: Администрирование → Публикация на веб-сервере. Для Apache проверьте, что строка LoadModule в httpd.conf указывает на папку новой версии, и перезапустите службу Apache.
Обновление конфигураций баз после смены платформы
Смена платформы не меняет конфигурацию. Бухгалтерия, ЗУП или УТ остаются на прежнем релизе, просто запускаются на новой платформе. Обновлять конфигурацию нужно отдельно, если ради этого всё и затевалось.
Порядок для типовой конфигурации на поддержке:
- Откройте базу в Конфигураторе под администратором.
- Выберите
Конфигурация → Поддержка → Обновить конфигурациюи укажите файл обновления.cfu(или полный дистрибутив.cf). - Дождитесь сравнения и объединения. Если конфигурация дорабатывалась, разберите отличия в окне сравнения.
- Примените изменения:
Конфигурация → Обновить конфигурацию базы данных(F7). Здесь платформе нужен монопольный доступ к базе. - Запустите базу в режиме 1С:Предприятие под администратором. Программа выполнит обработчики обновления и покажет описание изменений.
Если релиз отстаёт больше чем на одно обновление, файл .cfu нового релиза может не подойти. В описании обновления перечислены версии, с которых на него можно перейти. Остальное проходят через промежуточные релизы.
В современных типовых конфигурациях часть обработки данных после обновления выполняется в фоне, уже при работе пользователей. Ход этих обработчиков виден в разделе Администрирование → Обслуживание. Пока они не завершились, отдельные отчёты могут показывать неполные данные.
Для нескольких баз удобнее пакетное обновление из командной строки или через обработку обновления из состава БСП. Но начинайте всегда с одной базы и проверки результата.
Регламентные и фоновые задания при обновлении
Регламентные задания (обмены, загрузка курсов, отправка отчётности, полнотекстовый индекс) запускаются сервером сами. Если задание стартует в момент обновления конфигурации, оно мешает получить монопольный доступ или пишет данные в полуобновлённую базу.
Блокировку ставят в свойствах информационной базы в консоли кластера:
- ⛔ Блокировка начала сеансов включена — новые пользователи не войдут. Можно задать время начала и окончания, текст сообщения и код разрешения для администратора.
- ⏸️ Блокировка регламентных заданий включена — сервер перестаёт запускать задания этой базы.
В типовых конфигурациях на БСП то же самое делается из самой программы: Администрирование → Обслуживание, пункт блокировки работы пользователей.
Что проверить после обновления:
- Снимите блокировку регламентных заданий. Забытая галочка — частая причина, по которой через неделю выясняется, что обмен с сайтом или банком не работал.
- Откройте в программе список регламентных заданий (в БСП — через
Администрирование → Обслуживание) и убедитесь, что задания стартуют без ошибок. - В консоли кластера посмотрите сеансы фоновых заданий: зависшее задание висит часами с одним и тем же статусом.
- Проверьте задания, завязанные на внешние компоненты и сертификаты: после смены платформы им иногда нужна повторная установка компоненты.
Ошибки после обновления сервера 1С и что с ними делать
Большинство проблем после смены версии сводится к несовпадению номеров: где-то осталась старая версия клиента, библиотеки или модуля.
Если после обновления что-то пошло не так, а время работ выходит, откатитесь: остановите службу, верните в ImagePath старый номер версии и запустите службу. Клиенты на рабочих местах при этом тоже должны вернуться на старую версию. Конфигурации, уже обновлённые до нового релиза, откатываются только из резервной копии базы.