Обновление опубликованной базы 1С:Предприятие: платформа, конфигурация и веб-сервер

· 9 мин

Содержание

Чтобы обновить веб-версию 1С, обновляют три вещи по очереди: платформу на сервере 1С и на веб-сервере, конфигурацию самой базы и публикацию на веб-сервере. Последний шаг забывают чаще всего. Модуль расширения веб-сервера лежит в папке конкретной версии платформы, например C:\Program Files\1cv8\8.3.24.1342\bin\wsap24.dll. Поставили новую платформу — публикацию нужно переделать, иначе веб-клиент останется на старой версии или перестанет открываться.

Если вы работаете в 1С:Фреш или у другого облачного провайдера, всё это делает провайдер, от пользователя ничего не требуется. Инструкция ниже — для собственной публикации 1С:Предприятия 8.3 на Apache или IIS.

Подготовка к обновлению веб-версии 1С

Сначала выясните, что именно вы обновляете. От этого зависит, нужно ли трогать веб-сервер.

Что обновляетсяНужна ли перепубликацияКто затронут
Только конфигурация (новый релиз БП, ЗУП, УТ)НетПользователи базы на время обновления
Платформа на сервере 1СДа, модуль веб-сервера должен быть той же версииВсе базы кластера
Платформа только на веб-сервере (файловая база)ДаВсе публикации на этом веб-сервере

Текущие версии удобно записать до начала работ. Версию кластера видно в консоли администрирования серверов и в свойствах службы агента: в пути к ragent.exe стоит номер платформы. Версию модуля на веб-сервере показывает строка LoadModule в httpd.conf или путь к wsisapi.dll в сопоставлениях обработчиков IIS. Релиз конфигурации — в окне «О программе» самой базы. Эти три номера пригодятся и для отката, и для разбора ошибок, если что-то пойдёт не так.

Перед началом проверьте пять вещей:

  • 💾 Резервная копия. Выгрузка .dt из Конфигуратора или бэкап средствами СУБД. Для файловой базы хватит копии каталога с 1Cv8.1CD.
  • 📄 Копия файлов публикации. Сохраните default.vrd из каталога публикации и конфигурационный файл веб-сервера (httpd.conf для Apache). При перепубликации default.vrd перезаписывается, а в нём бывают ручные правки: HTTP-сервисы, OData, параметры отладки.
  • 🔢 Совместимость релиза. В описании нового релиза конфигурации указана минимальная версия платформы. Ставьте платформу с номером не ниже указанного.
  • 🧩 Разрядность. Модуль веб-сервера должен совпадать по разрядности с веб-сервером. Для 64-битного Apache нужен 64-битный дистрибутив платформы.
  • 🕐 Окно для работ. Остановка службы сервера 1С и перезапуск веб-сервера обрывают сеансы. Предупредите пользователей и делайте это вне рабочего времени.

Сеансы веб-клиента обрываются без вопроса о сохранении. Несохранённые документы пользователи потеряют, поэтому предупреждение нужно отправить заранее, а не за пять минут.

Ручная установка новой платформы на сервер и веб-сервер

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

Сервер 1С:Предприятия

  1. Заблокируйте начало сеансов в консоли администрирования серверов: в свойствах информационной базы включите Блокировка начала сеансов включена, задайте сообщение и код разрешения.
  2. Остановите службу Агент сервера 1С:Предприятия 8.3. Все сеансы на этом сервере завершатся.
  3. Запустите установщик новой версии и отметьте компонент Сервер 1С:Предприятия 8. Установщик предложит зарегистрировать службу — соглашайтесь и укажите ту же учётную запись, от которой работала служба раньше.
  4. Проверьте в свойствах службы, что путь к ragent.exe ведёт в папку новой версии.
  5. Запустите службу и откройте консоль. Если консоль не видит кластер, зарегистрируйте radmin.dll новой версии командой regsvr32 от имени администратора.

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

Веб-сервер

На компьютере с Apache или IIS установите ту же версию платформы. В составе компонентов обязательно отметьте Модули расширения веб-сервера. Без них установщик не положит wsap24.dll и wsisapi.dll, и публиковать будет нечем.

На Linux модули веб-сервера ставятся компонентом ws единого установщика платформы. Файлы новой версии появятся в каталоге вида /opt/1cv8/x86_64/8.3.xx.xxxx/.

Если веб-сервер и сервер 1С стоят на одной машине, достаточно одной установки с обоими компонентами.

Пакетное и автоматическое обновление через командную строку

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

"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" DESIGNER ^
  /S "srv1c\buh" /N "Администратор" /P "пароль" ^
  /UC "update2024" /DisableStartupDialogs ^
  /UpdateCfg "D:\upd\1Cv8.cfu" /UpdateDBCfg ^
  /Out "D:\upd\log.txt"

Что делают параметры:

  • /S — адрес базы в виде сервер\имя_базы; для файловой базы вместо него /F "D:\Bases\buh";
  • /UC — код разрешения, тот же, что вы указали при блокировке сеансов;
  • /UpdateCfg — обновление конфигурации , находящейся на поддержке, из файла .cfu;
  • /UpdateDBCfg — перенос изменений в конфигурацию базы данных;
  • /Out — журнал выполнения, куда пишутся ошибки.

Такой .bat можно поставить в планировщик заданий Windows на ночь. После выполнения обязательно откройте журнал: пакетный режим не показывает окон с ошибками.

Пароль администратора в bat-файле лежит открытым текстом — храните файл в папке, доступной только администраторам, и удаляйте его после работ.

Для типовых конфигураций на БСП есть и встроенный помощник: Администрирование → Обслуживание → Обновление версии программы в БП 3.0, ЗУП 3.1 и УТ 11. Сам он скачивает обновления с сайта поддержки, но устанавливает их только из тонкого клиента под Windows. Из браузера помощник установку не запустит — откройте ту же базу тонким клиентом.

Обновление конфигурации базы, опубликованной в веб

Для публикации конфигурация обновляется так же, как для обычной базы. Веб-сервер в этом шаге не участвует.

  1. Откройте базу в Конфигураторе тонким клиентом или с сервера.
  2. Для типовой конфигурации без доработок: Конфигурация → Поддержка → Обновить конфигурацию, укажите файл .cfu или выберите поиск обновлений.
  3. Для доработанной конфигурации в том же окне программа предложит сравнение и объединение. Проверьте доработанные объекты в окне сравнения, прежде чем подтверждать.
  4. Выполните Конфигурация → Обновить конфигурацию базы данных (F7). На этом шаге нужен монопольный доступ: заблокируйте сеансы, если ещё не сделали этого.
  5. Запустите базу в режиме 1С:Предприятие. Типовая конфигурация выполнит обработчики обновления данных — дождитесь окончания, прежде чем пускать пользователей.

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

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

Перепубликация 1С на веб-сервере после обновления платформы

Это главный шаг, который превращает «обновили сервер» в «обновили веб-версию». У публикации два файла:

  • default.vrd в каталоге публикации — строка подключения к базе и настройки сервисов;
  • запись в конфигурации веб-сервера — путь к модулю 1С. Именно в ней зашит номер версии.

Через Конфигуратор

  1. Запустите Конфигуратор от имени администратора. Иначе он не сможет изменить httpd.conf или настройки IIS.
  2. Откройте базу и выберите Администрирование → Публикация на веб-сервере....
  3. Укажите те же имя публикации, веб-сервер и каталог, что были раньше.
  4. Перенесите отметки HTTP-сервисов, OData и веб-сервисов, если они были включены.
  5. Нажмите Опубликовать. Для Apache Конфигуратор предложит перезапустить веб-сервер — соглашайтесь, но помните про обрыв сеансов.

После этого сравните новый default.vrd с сохранённой копией и верните ручные правки.

Через webinst

Утилита webinst лежит в папке bin каждой версии платформы. Запускайте её из папки новой версии — тогда в настройки попадёт новый модуль. Пример для Apache 2.4:

cd "C:\Program Files\1cv8\8.3.25.1374\bin"
webinst -publish -apache24 -wsdir buh -dir "C:\Apache24\htdocs\buh" ^
  -connstr "Srvr=srv1c;Ref=buh;" -confPath "C:\Apache24\conf\httpd.conf"

Для IIS вместо -apache24 указывают -iis, параметр -confPath не нужен. Если в default.vrd много ручных правок, удобнее ключ -descriptor с путём к сохранённому файлу: утилита возьмёт настройки из него.

Ручная правка httpd.conf

Опытные администраторы часто просто меняют путь к модулю. В httpd.conf найдите строку LoadModule и замените номер версии:

LoadModule _1cws_module "C:/Program Files/1cv8/8.3.25.1374/bin/wsap24.dll"

Номера версий в примерах условные — подставьте свои. Строка LoadModule для 1С одна на весь Apache, поэтому все публикации на нём переходят на новую версию одновременно. Держать две версии платформы на одном экземпляре Apache не получится. Если базы нужно перевести в разное время, разносите их по разным веб-серверам. В IIS проще: публикации на разных версиях держат в разных пулах приложений.

После правки перезапустите службу Apache. На Linux то же самое: wsap24.so из /opt/1cv8/x86_64/<версия>/ и перезапуск командой systemctl restart apache2 или systemctl restart httpd — в зависимости от дистрибутива.

Проверка, что веб-клиент работает на новой версии

После перезапуска веб-сервера откройте публикацию в браузере и проверьте версию: Меню (☰) → Справка → О программе. В окне указана версия платформы и релиз конфигурации.

Если видите старый номер, почистите кэш браузера (Ctrl+F5 или удаление данных сайта). Веб-клиент кэширует скрипты, и после обновления браузер иногда держит старые файлы.

Перед тем как пустить пользователей
Выполнено: 0 / 5

Ошибки после обновления веб-версии 1С и как их устранить

Большинство сбоев после обновления сводятся к трём причинам: модуль не той версии, неверный путь в настройках веб-сервера и не перенесённые ручные правки. Выберите симптом:

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

Отдельно о частых ошибках при самом процессе:

  • ❌ Удалили старую платформу до перепубликации. Веб-клиент падает сразу. Удаляйте старую версию последней, когда всё проверено.
  • ❌ Обновили платформу только на сервере 1С. Тонкие клиенты на старой версии тоже перестанут подключаться — установите им ту же версию платформы.
  • ❌ Запустили Конфигуратор без прав администратора. Публикация «прошла», но httpd.conf не изменился.

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

Нужно ли пользователям что-то устанавливать после обновления веб-версии?
Нет. Веб-клиент загружается с веб-сервера при каждом входе. Достаточно обновить страницу, при необходимости очистить кэш браузера.
Можно ли обновить конфигурацию, не останавливая веб-сервер?
Да. Для обновления конфигурации веб-сервер останавливать не нужно — достаточно заблокировать сеансы в базе на время обновления структуры. Перезапуск веб-сервера нужен только после смены платформы.
Как откатиться, если новая платформа работает с ошибками?
Остановите службу сервера 1С, верните в её свойствах путь к ragent.exe старой версии и опубликуйте базы из папки старой платформы. Поэтому старую версию не удаляют сразу.
Сколько времени занимает обновление?
Перепубликация — несколько минут. Обновление конфигурации базы данных и обработчики обновления на базе в десятки гигабайт могут идти от получаса до нескольких часов, поэтому работы планируют на нерабочее время.
Как обновлять веб-версию, если баз несколько на одном Apache?
Все публикации на одном Apache работают с одной версией модуля 1С. Сначала обновите платформу на сервере 1С для всех баз, затем один раз поменяйте путь в LoadModule и перезапустите Apache.