Администрирование · 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Создайте и проверьте резервную копию базы
- 2Убедитесь, что версия платформы соответствует требованиям обновления
- 3Установите блокировку сеансов и завершите активные подключения
- 4Остановите регламентные задания и внешние обмены
- 5Предупредите пользователей о времени простоя
Обновление конфигурации в конфигураторе
Откройте базу в конфигураторе (для файловой базы — напрямую, для клиент-серверной — через кластер) и выполните «Конфигурация → Поддержка → Обновить конфигурацию», указав файл обновления из поставки. Дождитесь завершения сравнения и объединения, при необходимости настройте правила объединения для доработанных объектов.
После обновления конфигурации выполните «Обновить конфигурацию базы данных» (F7). На этом этапе платформа реструктуризует таблицы и выполняет обработчики обновления данных. На больших базах это может занять значительное время — не прерывайте процесс, прерывание реструктуризации может повредить базу.
Затем запустите базу в режиме предприятия под пользователем с полными правами — отложенные обработчики обновления выполняются именно в этом режиме. Дождитесь их завершения, проверив статус в разделе «Результаты обновления программы» (в типовых конфигурациях на БСП). Только после этого обновление считается завершённым.
Отложенные обработчики обновления на больших базах могут работать часами в фоновом режиме. Запускайте их в нерабочее время и не открывайте доступ пользователям, пока все обработчики не перейдут в состояние «Выполнено».
Обновление публикации на веб-сервере
После обновления базы проверьте публикацию. Если версия платформы не менялась и структура публикации прежняя, часто достаточно перезапустить веб-сервер. Но если платформа обновлялась или менялись веб-сервисы в конфигурации, публикацию нужно выполнить заново.
Повторная публикация делается из конфигуратора: «Администрирование → Публикация на веб-сервере». Проверьте имя публикации, каталог, список публикуемых веб-сервисов и флаги публикации тонкого и веб-клиента. Конфигуратор обновит файл default.vrd и настройки веб-сервера.
После публикации перезапустите веб-сервер: для IIS выполните iisreset или перезапустите пул приложений, для Apache — перезапуск службы. Без перезапуска веб-сервер может продолжать использовать кэшированные модули старой версии.
# Перезапуск IIS
iisreset
# Перезапуск Apache (Linux)
systemctl restart apache2Если публикация выполняется вручную через файл default.vrd, проверьте, что в нём актуальны строки подключения к базе, имя публикации и список сервисов. Ошибка в пути к базе или устаревший список сервисов приведёт к тому, что часть функциональности через веб работать не будет.
Проверка результата и возврат пользователей
Откройте базу через веб-браузер по адресу публикации и убедитесь, что запускается актуальная версия конфигурации: сверьте номер версии в разделе «О программе». Проверьте работу тонкого клиента через веб-сервер, если он используется, и вызовите ключевые веб-сервисы, задействованные в интеграциях.
Проверьте журнал регистрации на наличие ошибок после обновления, а также логи веб-сервера — ошибки 500 или обращения к несуществующим сервисам укажут на проблемы публикации. Только после успешной проверки снимите блокировку сеансов и разрешите пользователям вход.
Как проверить результат
Совпадает с номером установленного обновления
Показывается старая версия или ошибка несовместимости
База открывается, формы работают штатно
Ошибка 500, пустая страница, требование обновить платформу
Сервисы отвечают, обмены проходят
Ошибки доступа к сервисам, таймауты
Нет массовых ошибок после обновления
Повторяющиеся ошибки обработчиков или фоновых заданий
Типичные ошибки и как их избежать
Самая частая проблема — пользователи веб-клиента видят ошибку несовпадения версий после обновления. Причина обычно в том, что веб-сервер не перезапущен и использует старый модуль расширения, либо на веб-сервере не обновлена платформа. Решение — обновить модуль расширения и перезапустить веб-сервер.
Вторая распространённая ошибка — обновление при активных сеансах. Обновление конфигурации базы данных завершается ошибкой монопольного доступа, а при принудительном прерывании может оставить базу в состоянии, требующем восстановления из копии. Всегда проверяйте список сеансов перед началом.
Третья группа ошибок связана с правами: учётная запись, под которой работает пул приложений IIS или Apache, должна иметь доступ к каталогу публикации и, для файловой базы, к каталогу с базой. После переноса публикации или смены учётных данных права нужно проверить заново.
Что важно запомнить
Обновление базы на веб-сервере — это обычное обновление конфигурации плюс три дополнительных шага: завершение веб-сеансов, актуализация публикации и перезапуск веб-сервера. Резервная копия и проверка на тестовой базе обязательны.
Частые вопросы
Можно ли обновлять базу без остановки веб-сервера?
Нет. Обновление конфигурации базы данных требует монопольного доступа, а активные веб-сеансы его блокируют. Минимально необходимо завершить все сеансы и заблокировать новые; для файловой базы надёжнее временно остановить сайт на веб-сервере.
Нужно ли заново публиковать базу после каждого обновления конфигурации?
Не обязательно. Если версия платформы не менялась и состав веб-сервисов прежний, достаточно перезапуска веб-сервера. Повторная публикация нужна при обновлении платформы, изменении сервисов или параметров публикации.
Почему после обновления веб-клиент требует другую версию платформы?
Модуль расширения веб-сервера остался от старой версии платформы. Обновите платформу на веб-сервере, перерегистрируйте модуль расширения и перезапустите веб-сервер.
Как откатить обновление, если что-то пошло не так?
Штатного отката обновления конфигурации нет. Единственный надёжный способ — восстановить базу из резервной копии, сделанной до обновления. Поэтому копия должна быть создана и проверена заранее.
Чем отличается обновление файловой и клиент-серверной базы на веб-сервере?
Само обновление конфигурации идентично. Различия в управлении сеансами: для клиент-серверной базы используется консоль кластера с блокировкой сеансов, для файловой — остановка сайта на веб-сервере. Резервное копирование клиент-серверной базы лучше делать средствами СУБД.