Как правильно изменить и обновить файловую базу 1С, опубликованную на веб-сервере Apache?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет IT и автоматизация бизнеса
← На главную

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

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

Почему веб-сервер блокирует вход в Конфигуратор?

Рассмотрим ситуацию: все пользователи закрыли свои сеансы (браузеры или тонкие клиенты), но при попытке войти в программу через Конфигуратор система выдает ошибку монопольного доступа или бесконечно ожидает освобождения базы. Выясним причину этого поведения.

Веб-сервер Apache удерживает активное соединение с файлом базы данных 1Cv8.1CD через загруженные библиотеки расширения 1С (такие как wsap22.dll или wsap24.dll). Это реализовано разработчиками платформы намеренно: кэширование соединений позволяет существенно ускорить обработку последующих HTTP/HTTPS-запросов от веб-клиентов. Даже если в текущий момент ни один пользователь не авторизован в системе, процессы веб-сервера продолжают держать файлы базы данных открытыми. Именно поэтому запущенная служба Apache не позволяет получить монопольный доступ, необходимый для обновления конфигурации базы данных.

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

Проанализируем правильную и безопасную последовательность действий для внесения изменений в опубликованную файловую базу данных:

  1. Завершение работы пользователей. Прежде всего необходимо убедиться, что все активные сеансы завершены. Сделать это можно через консоль администрирования (если используется клиент-серверный вариант) или просто скоординировав действия с пользователями.
  2. Остановка веб-сервера Apache. Чтобы гарантированно снять все блокировки с файла 1Cv8.1CD, необходимо остановить службу веб-сервера. В операционной системе Windows это можно сделать через оснастку "Службы" (название службы обычно Apache2.4) или с помощью командной строки, запущенной от имени администратора, выполнив команду: net stop Apache2.4
  3. Контроль временных файлов. Перейдем в каталог с файловой базой данных и проверим отсутствие временных файлов блокировок (таких как 1Cv8.1CL или 1Cv8.cdn). Их отсутствие подтверждает, что база данных полностью освобождена.
  4. Создание резервной копии. Это критически важный шаг перед любым обновлением. Выполнять резервное копирование рекомендуется путем создания архивной копии каталога базы данных силами архиваторов или стандартным средством 1С через Администрирование — Выгрузить информационную базу. Использование технологий теневого копирования (VSS) на «горячей» базе без остановки веб-сервера крайне нежелательно, так как это может привести к получению битого или рассогласованного архива.
  5. Внесение изменений и обновление конфигурации. Теперь, когда база свободна и защищена резервной копией, запустим Конфигуратор. Выполним необходимые действия: сравнение и объединение конфигураций, редактирование кода или загрузку новой конфигурации из файла. После этого обязательно выполним обновление конфигурации базы данных, нажав клавишу F7 (или выбрав пункт меню Конфигурация — Обновить конфигурацию базы данных).
  6. Запуск веб-сервера. После успешного применения изменений закроем Конфигуратор и запустим службу Apache обратно. В командной строке для этого используется команда: net start Apache2.4

После выполнения этих шагов пользователи смогут продолжить работу в обновленной системе.

Нужно ли переопубликовывать базу данных на веб-сервере?

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

Сценарий 1: Изменился только прикладной код или метаданные. Если вы исправили ошибку в отчете, добавили новый документ или обновили релиз конфигурации без изменения версии самой платформы 1С:Предприятие, переопубликовывать базу не требуется. Файл публикации default.vrd, который лежит в каталоге публикации, хранит лишь метаданные подключения (путь к базе, настройки веб-сервисов). Эти настройки не меняются при изменении конфигурации 1С. Достаточно просто перезапустить Apache.

Сценарий 2: Обновилась версия платформы 1С:Предприятие на сервере. В этом случае переопубликация строго обязательна. При обновлении релиза платформы (например, переходе с версии 8.3.22 на 8.3.24) меняется физический путь к библиотеке подключения веб-сервера. Если не выполнить повторную публикацию, в конфигурационном файле Apache (httpd.conf) останется путь к старой библиотеке wsap24.dll. Это приведет к тому, что веб-сервер либо откажется запускаться, либо база продолжит функционировать на старом релизе платформы, что вызовет конфликты при подключении пользователей.

Важные тонкости настройки веб-сервера Apache 2.4

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

Во-первых, обратите внимание на синтаксис конфигурационного файла Apache при работе с версией 2.4. В старых версиях (2.2) для ограничения доступа использовались директивы:

Order allow,deny
Allow from All

В Apache 2.4 применяется современный синтаксис безопасности:

Require all granted

Иногда при автоматической публикации из Конфигуратора система может некорректно прописать устаревшие директивы в конфигурационные файлы, из-за чего служба Apache откажется запускаться после обновления. В таком случае необходимо вручную отредактировать файл httpd.conf, приведя директивы к стандарту версии 2.4.

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

  1. Создадим на сервере архив формата .zip, содержащий дистрибутив тонкого клиента нужной версии.
  2. В файле конфигурации веб-сервера настроим виртуальный каталог (Alias), указывающий на папку с этим архивом.
  3. При публикации базы в Конфигураторе на вкладке "Дополнительные" установим флаг "Публиковать дистрибутив тонкого клиента" и пропишем путь к созданному архиву.

После этого при несовпадении версий у пользователя тонкий клиент автоматически скачает обновление с веб-сервера Apache и установит его без участия системного администратора.

Рекомендации по автоматизации обслуживания

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

Использование автоматизации гарантирует, что все регламентные операции будут выполнены корректно, а база данных всегда будет находиться в актуальном и работоспособном состоянии.

← На главную