К статье
Практический материал

Администрирование · 10 мин

Как обновлять базы 1С на веб-сервере

Пошаговое руководство по обновлению баз 1С, опубликованных на веб-сервере: подготовка, обновление конфигурации, публикация, проверка и типичные ошибки.

Обновление базы 1С, опубликованной на веб-сервере, отличается от обычного обновления файловой или клиент-серверной базы тем, что после обновления конфигурации нужно привести в соответствие публикацию: файл настройки публикации, права доступа веб-сервера и актуальность модулей расширения веб-сервисов. Если пропустить этот шаг, пользователи, работающие через браузер или мобильные приложения, получат ошибки несовпадения версий или перестанут подключаться вообще.

Порядок действий зависит от архитектуры: база может быть файловой (опубликована напрямую через Apache или IIS) или клиент-серверной (работает через кластер серверов 1С, а веб-сервер служит точкой входа). В обоих случаях обновление конфигурации выполняется штатно — через конфигуратор, — но момент обновления публикации и перезапуска веб-сервера имеет свои особенности.

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

Подготовка: резервная копия и анализ обновления

Перед любыми действиями снимите резервную копию. Для файловой базы достаточно скопировать файл 1Cv8.1CD при остановленной работе пользователей, либо сделать выгрузку в dt через конфигуратор. Для клиент-серверной базы используйте средства СУБД (например, pg_dump для PostgreSQL или backup в MS SQL) — это быстрее и надёжнее выгрузки dt для больших баз.

Убедитесь, что обновление подходит для вашей текущей версии конфигурации. В поставке обновления есть файл с описанием порядка обновления (обычно 1cv8upd.htm): в нём перечислены версии, с которых возможен переход. Если ваша версия старше, потребуется последовательно установить промежуточные обновления.

Проверьте, не доработана ли конфигурация. Если база снята с поддержки или в неё внесены изменения, обновление потребует сравнения и объединения, а доработанные объекты придётся переносить вручную. Это существенно увеличивает время и риски, поэтому такие обновления лучше сначала отрабатывать на копии.

Проверка версии платформы 1С

Каждое обновление конфигурации рассчитано на определённую минимальную версию платформы 1С:Предприятие — она указана в описании обновления. Если на сервере установлена более старая платформа, сначала обновите её, причём на всех компонентах: сервере 1С, веб-сервере (модуль расширения веб-сервера) и клиентских машинах.

Особое внимание уделите модулю расширения веб-сервера (wsap24.dll для IIS или mod_1cws для Apache): его версия должна совпадать с версией платформы, под которой работает база. Несовпадение версий модуля и платформы — частая причина того, что после обновления веб-клиент перестаёт запускаться.

Завершение сеансов пользователей веб-сервера

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

Для клиент-серверной базы откройте консоль кластера серверов, найдите базу и установите блокировку сеансов с сообщением пользователям, затем принудительно завершите активные сеансы. Для файловой базы, опубликованной на веб-сервере, проще всего временно остановить сайт в IIS или виртуальный хост в Apache — это гарантированно отсекёт новые подключения.

Не забудьте про регламентные задания и внешние обмены: если база обменивается данными через веб-сервисы или HTTP, внешние системы могут создавать сеансы во время обновления. Отключите такие интеграции на время работ.

Порядок действий перед обновлением
  1. 1
    Создайте и проверьте резервную копию базы
  2. 2
    Убедитесь, что версия платформы соответствует требованиям обновления
  3. 3
    Установите блокировку сеансов и завершите активные подключения
  4. 4
    Остановите регламентные задания и внешние обмены
  5. 5
    Предупредите пользователей о времени простоя

Обновление конфигурации в конфигураторе

Откройте базу в конфигураторе (для файловой базы — напрямую, для клиент-серверной — через кластер) и выполните «Конфигурация → Поддержка → Обновить конфигурацию», указав файл обновления из поставки. Дождитесь завершения сравнения и объединения, при необходимости настройте правила объединения для доработанных объектов.

После обновления конфигурации выполните «Обновить конфигурацию базы данных» (F7). На этом этапе платформа реструктуризует таблицы и выполняет обработчики обновления данных. На больших базах это может занять значительное время — не прерывайте процесс, прерывание реструктуризации может повредить базу.

Затем запустите базу в режиме предприятия под пользователем с полными правами — отложенные обработчики обновления выполняются именно в этом режиме. Дождитесь их завершения, проверив статус в разделе «Результаты обновления программы» (в типовых конфигурациях на БСП). Только после этого обновление считается завершённым.

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

Обновление публикации на веб-сервере

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

Повторная публикация делается из конфигуратора: «Администрирование → Публикация на веб-сервере». Проверьте имя публикации, каталог, список публикуемых веб-сервисов и флаги публикации тонкого и веб-клиента. Конфигуратор обновит файл default.vrd и настройки веб-сервера.

После публикации перезапустите веб-сервер: для IIS выполните iisreset или перезапустите пул приложений, для Apache — перезапуск службы. Без перезапуска веб-сервер может продолжать использовать кэшированные модули старой версии.

bash
# Перезапуск IIS
iisreset

# Перезапуск Apache (Linux)
systemctl restart apache2

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

Проверка результата и возврат пользователей

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

Проверьте журнал регистрации на наличие ошибок после обновления, а также логи веб-сервера — ошибки 500 или обращения к несуществующим сервисам укажут на проблемы публикации. Только после успешной проверки снимите блокировку сеансов и разрешите пользователям вход.

Контрольные точки

Как проверить результат

Версия конфигурации в веб-клиенте
Норма

Совпадает с номером установленного обновления

Тревожный признак

Показывается старая версия или ошибка несовместимости

Запуск через браузер
Норма

База открывается, формы работают штатно

Тревожный признак

Ошибка 500, пустая страница, требование обновить платформу

Веб-сервисы и обмены
Норма

Сервисы отвечают, обмены проходят

Тревожный признак

Ошибки доступа к сервисам, таймауты

Журнал регистрации
Норма

Нет массовых ошибок после обновления

Тревожный признак

Повторяющиеся ошибки обработчиков или фоновых заданий

Типичные ошибки и как их избежать

Самая частая проблема — пользователи веб-клиента видят ошибку несовпадения версий после обновления. Причина обычно в том, что веб-сервер не перезапущен и использует старый модуль расширения, либо на веб-сервере не обновлена платформа. Решение — обновить модуль расширения и перезапустить веб-сервер.

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

Третья группа ошибок связана с правами: учётная запись, под которой работает пул приложений IIS или Apache, должна иметь доступ к каталогу публикации и, для файловой базы, к каталогу с базой. После переноса публикации или смены учётных данных права нужно проверить заново.

Типичные ошибки
01
Не перезапущен веб-сервер после обновления платформы — веб-клиент падает с ошибкой версии
02
Обновление при активных сеансах — ошибка монопольного доступа или повреждение базы
03
Забыта повторная публикация веб-сервисов — интеграции перестают работать
04
Не дождались завершения отложенных обработчиков — пользователи видят неполные данные
05
Нет проверенной резервной копии — при сбое откат невозможен
Итог

Что важно запомнить

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

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

Можно ли обновлять базу без остановки веб-сервера?

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

Нужно ли заново публиковать базу после каждого обновления конфигурации?

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

Почему после обновления веб-клиент требует другую версию платформы?

Модуль расширения веб-сервера остался от старой версии платформы. Обновите платформу на веб-сервере, перерегистрируйте модуль расширения и перезапустите веб-сервер.

Как откатить обновление, если что-то пошло не так?

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

Чем отличается обновление файловой и клиент-серверной базы на веб-сервере?

Само обновление конфигурации идентично. Различия в управлении сеансами: для клиент-серверной базы используется консоль кластера с блокировкой сеансов, для файловой — остановка сайта на веб-сервере. Резервное копирование клиент-серверной базы лучше делать средствами СУБД.