Новая платформа и релиз конфигурации для баз 1С, опубликованных через IIS или Apache
Содержание
Базы 1С на веб-сервере обновляют в два слоя: сначала платформу (сервер 1С и модуль веб-расширения в IIS или Apache), потом конфигурацию каждой базы. Модуль веб-сервера жёстко привязан к каталогу конкретной версии платформы, поэтому после установки новой версии публикацию нужно переопубликовать или поправить путь к модулю — иначе браузер получит ошибку 500.
Типичная картина: поставили свежую платформу, обновили релиз, а утром веб-клиент не открывается, тонкий клиент ругается на несовпадение версий. Ниже порядок, при котором так не будет, и команды для пакетного обновления без ручной работы в Конфигураторе.
Подготовка: окно работ, резервная копия, порядок обновления
Обновление опубликованной базы почти всегда требует остановки работы пользователей. Планируйте окно заранее и сообщите время.
Порядок действий, который работает для файловых и клиент-серверных баз:
- 📌 Проверить требования нового релиза конфигурации к платформе: в описании релиза указан минимальный номер версии платформы.
- 📌 Сделать резервную копию каждой базы.
- 📌 Обновить платформу на сервере 1С (для клиент-серверного варианта) и на веб-сервере.
- 📌 Переопубликовать базы или исправить путь к модулю веб-расширения.
- 📌 Обновить конфигурацию каждой базы.
- 📌 Проверить вход через браузер и тонкий клиент, затем снять блокировку.
Какую копию делать
Для клиент-серверной базы надёжнее всего копия средствами СУБД: BACKUP DATABASE в MS SQL или pg_dump в PostgreSQL. Она снимается быстро и без монопольного доступа.
Для файловой базы достаточно скопировать каталог с файлом 1Cv8.1CD, когда в базе никого нет. Выгрузка в .dt через Конфигуратор (Администрирование → Выгрузить информационную базу) подходит обоим вариантам, но на больших базах идёт долго.
Не начинайте обновление конфигурации без проверенной копии. Если обновление структуры прервётся на середине, откатиться можно только из копии.
Как остановить работу пользователей
- 🔒 Клиент-серверная база
. В консоли администрирования серверов откройте свойства информационной базы, включите блокировку начала сеансов, задайте время и код разрешения. Код потом передаётся Конфигуратору ключом
/UC. - 🔒 Типовые конфигурации на БСП (Бухгалтерия, ЗУП, УТ). В режиме Предприятия есть форма «Блокировка работы пользователей» в разделе
Администрирование. Она завершает сеансы с предупреждением и не пускает новых пользователей. - 🔒 Файловая база через веб-сервер. Здесь есть тонкость, о которой забывают: соединения с файлом базы держит не компьютер пользователя, а процесс веб-сервера (
w3wp.exeу IIS,httpd.exeу Apache). Даже когда все закрыли браузер, сеанс может висеть до истечения тайм-аута.
Для файловой базы на IIS проще всего остановить пул приложений публикации или выполнить iisreset. Для Apache — перезапустить службу.
Перезапуск IIS или Apache обрывает веб-сеансы всех опубликованных на этом сервере баз, а не одной. Делайте это только в согласованное окно, когда пользователи предупреждены.
Как обновить платформу 1С на сервере и веб-сервере
Новая версия платформы ставится в отдельный каталог вида C:\Program Files\1cv8\8.3.xx.yyyy\. Старая остаётся рядом, пока вы её не удалите. Это удобно: при проблемах можно вернуть путь к прежней версии за пару минут.
Сервер 1С (клиент-серверный вариант)
- Остановите службу агента сервера 1С текущей версии. Все сеансы всех баз кластера будут разорваны — только в окно работ.
- Запустите установщик новой версии, отметьте компоненты «Сервер 1С:Предприятия» и «Модули расширения веб-сервера», включите установку сервера как службы.
- Проверьте в оснастке «Службы», что агент запущен из каталога новой версии.
- Откройте консоль администрирования новой версии и убедитесь, что кластер и список баз на месте.
Настройки кластера и список баз хранятся в каталоге данных сервера, а не в каталоге версии, поэтому при штатной установке они сохраняются.
Веб-сервер
На машину с IIS или Apache ставится та же версия с компонентом «Модули расширения веб-сервера». Версия модуля на веб-сервере должна совпадать с версией сервера 1С до последней цифры. Иначе веб-клиент не подключится к кластеру.
Учитывайте разрядность. 64-битный модуль работает в 64-битном Apache и в пуле IIS с выключенным параметром «Разрешить 32-разрядные приложения». Для 32-битной платформы этот параметр в пуле включают.
Перепубликация баз в IIS и Apache после смены версии
Публикация хранит путь к модулю старой версии. Есть два способа перевести её на новую.
| Способ | Когда подходит | Риски |
|---|---|---|
| Повторная публикация из Конфигуратора | 1-3 базы, есть доступ к рабочему столу сервера | Можно случайно сбросить ручные правки default.vrd |
Утилита webinst из каталога новой версии | Много баз, нужен скрипт | Нужно точно указать каталог и строку соединения |
| Ручная правка пути к модулю | Публикаций десятки, default.vrd настроен вручную | Опечатка в пути кладёт все базы сразу |
Из Конфигуратора
Запустите Конфигуратор новой версии от имени администратора Windows, подключитесь к базе и откройте Администрирование → Публикация на веб-сервере. Проверьте имя, каталог и тип веб-сервера, нажмите «Опубликовать». Конфигуратор перезапишет ссылку на модуль своей версии.
Утилитой webinst
Утилита лежит в каталоге bin каждой версии. Запуск из нового каталога публикует базу с новым модулем:
cd "C:\Program Files\1cv8\8.3.xx.yyyy\bin"
webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;"
Для Apache 2.4 вместо -iis указывают -apache24 и путь к httpd.conf ключом -confpath. Если публикаций много, сведите такие строки в один bat-файл и храните его рядом с инструкцией по обновлению.
Ручная правка пути
В Apache путь к модулю задаётся одной строкой в httpd.conf:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.xx.yyyy/bin/wsap24.dll"
В IIS путь к wsisapi.dll записан в сопоставлении обработчиков: в диспетчере IIS на уровне сайта или в файле web.config в каталоге публикации. Замените номер версии и перезапустите веб-сервер.
Старую версию платформы не удаляйте в тот же день. Если что-то пойдёт не так, вернуть старый путь в httpd.conf быстрее, чем переустанавливать.
Обновление конфигурации опубликованной базы
Главное правило: Конфигуратор не подключается к базе по http. Обновлять конфигурацию через адрес публикации нельзя — только прямым подключением: путь к каталогу для файловой базы или сервер\имя_базы для клиент-серверной.
Поэтому администратор обновляет базу на самом сервере или с машины, которая видит сервер 1С напрямую. Пользователи веб-клиента в этом не участвуют.
Через Конфигуратор
- Откройте Конфигуратор с прямым подключением к базе.
- Если в базе включена блокировка начала сеансов, добавьте в строку запуска код разрешения.
- Выполните
Конфигурация → Поддержка → Обновить конфигурациюи укажите файл.cfuили.cfнового релиза. - Сравните, примите изменения и выполните
Конфигурация → Обновить конфигурацию базы данных(F7). - Запустите базу в режиме Предприятия под администратором: типовая конфигурация выполнит обработчики обновления данных.
Шаг 5 часто пропускают. Пока обработчики не отработали, пользователи увидят форму «Обновление версии программы» при входе, а на больших базах это может занять от нескольких минут до часа.
Через мастер в режиме Предприятия
В типовых конфигурациях есть обработка «Обновление версии программы» в разделе Администрирование (подраздел зависит от релиза: «Интернет-поддержка и сервисы» или «Обслуживание»). Она сама скачивает релизы и запускает Конфигуратор в пакетном режиме.
Мастер работает только из тонкого клиента : из браузера Конфигуратор запустить нельзя. Подключайтесь тонким клиентом напрямую к базе, а не через веб-публикацию.
В пакетном режиме
Для нескольких баз удобнее скрипт. Ключи /UpdateCfg и /UpdateDBCfg делают то же, что шаги 3-4:
set V8="C:\Program Files\1cv8\8.3.xx.yyyy\bin\1cv8.exe"
rem копия базы в .dt
%V8% DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /UC 123 /DumpIB "D:\backup\buh.dt" /Out "D:\logs\buh_dump.log" /DisableStartupDialogs
rem загрузка обновления и обновление структуры
%V8% DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /UC 123 /UpdateCfg "D:\upd\1Cv8.cfu" /UpdateDBCfg /Out "D:\logs\buh_upd.log" /DisableStartupDialogs
Для файловой базы вместо /S пишут /F "D:\Bases\buh". Файл, указанный в /Out, — первое, что открывают при сбое.
Пароль администратора в bat-файле в открытом виде. Храните скрипт в каталоге, доступном только администраторам сервера.
Хранилище конфигурации и расширения при обновлении
База подключена к хранилищу
Если доработанная база подключена к хранилищу, накатывать релиз прямо на рабочую базу нельзя: изменения разойдутся с хранилищем.
Рабочая схема:
- Обновите релиз на копии базы разработчика, подключённой к хранилищу: захватите объекты, выполните обновление, разрешите конфликты с доработками.
- Поместите изменения в хранилище.
- На рабочей базе выполните
Конфигурация → Хранилище конфигурации → Обновить конфигурацию из хранилища. - Обновите конфигурацию базы данных.
Так в рабочее окно попадает только последний шаг. Объединение с доработками делается заранее, без простоя пользователей.
Расширения конфигурации
Расширения (появились в платформе 8.3.6) после смены релиза могут стать неприменимыми: изменился перехваченный метод, переименовался объект. Тогда при входе пользователь увидит сообщение о том, что расширение не применено.
Что проверить после обновления:
- 🧩 Список расширений в Конфигураторе:
Конфигурация → Расширения конфигурации. Откройте каждое и выполните проверку. - 🧩 Расширения, подключённые в режиме Предприятия, видны в типовых конфигурациях в разделе
Администрирование → Печатные формы, отчеты и обработки → Расширения. - 🧩 Исправленное расширение загружается файлом
.cfe. Загрузка и обновление конфигурации базы данных — два отдельных шага.
Пользователи получают обновлённые расширения при следующем входе. Веб-клиенту достаточно переоткрыть вкладку.
Автообновление тонкого клиента и обновление по расписанию
После смены версии на сервере у пользователей остаётся старый тонкий клиент. Подключиться он не сможет: версия клиента и сервера должна совпадать.
Раздача дистрибутива через веб-публикацию
Тонкий клиент, подключённый по http, умеет сам обновиться, если на веб-сервере лежит дистрибутив нужной версии.
- Скопируйте дистрибутив тонкого клиента новой версии в каталог, доступный по http, например
C:\inetpub\wwwroot\distr\8.3.xx.yyyy\. - Укажите этот адрес в настройках публикации: в диалоге публикации есть поле адреса дистрибутива, в файле
default.vrdоно сохраняется атрибутомpubdst. - Пользователь при входе увидит предложение обновить клиент . Для установки нужны права локального администратора или заранее настроенная установка через групповые политики.
Веб-клиенту ничего обновлять не нужно. Но браузер может держать в кеше старые скрипты: если после обновления форма выглядит странно, помогает Ctrl+F5 или очистка кеша для адреса публикации.
Обновление конфигурации по расписанию
Регулярное ночное обновление строят на пакетном скрипте из раздела выше. Его запускают через «Планировщик заданий» Windows под учётной записью с правами на базу:
- 🕑 Сначала скрипт включает блокировку сеансов (консоль кластера или ключи
rac, справку смотрите вrac help). - 🕑 Затем делает копию и только после её успешного создания запускает обновление.
- 🕑 Результат пишется в лог
/Out, который утром проверяет администратор.
Не ставьте автоматическое обновление сразу на все базы. Пусть ночной скрипт обновляет тестовую копию, а на рабочие базы релиз уходит после проверки.
Диагностика ошибок после обновления и где смотреть логи
wsisapi.dll или wsap24.dll по старому пути. Проверьте путь в сопоставлении обработчиков IIS или в строке LoadModule в httpd.conf, затем перезапустите веб-сервер.Где лежат логи
| Что смотреть | Где | Что там искать |
|---|---|---|
| Лог пакетного запуска | файл из ключа /Out | Ошибки загрузки .cfu и обновления структуры |
| Журнал регистрации базы | Администрирование → Обслуживание → Журнал регистрации | Ошибки обработчиков обновления данных |
| Журналы IIS | C:\inetpub\logs\LogFiles | Коды ответов 500, 404 по адресу публикации |
| Журнал Apache | logs\error.log в каталоге Apache | Ошибки загрузки модуля 1С |
| Журнал событий Windows | раздел «Приложение» | Падения w3wp.exe, httpd.exe, rphost.exe |
| Технологический журнал 1С | настраивается файлом logcfg.xml в каталоге conf платформы | Исключения сервера и веб-расширения |
Технологический журнал включайте на время разбора и выключайте после: на нагруженном сервере он быстро занимает диск.
Частые вопросы
Можно ли обновить конфигурацию из браузера?
Нужно ли переопубликовывать базы, если обновлялась только конфигурация?
Можно ли держать на одном веб-сервере базы разных версий платформы?
wsisapi.dll, если каждой выделен отдельный пул приложений.