Как настроить синхронизацию базы 1С, опубликованной на веб-сервере, через сетевую папку?

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

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

Выясним причину: почему сетевая папка «исчезает» при публикации

Для начала проанализируем ситуацию с точки зрения безопасности операционной системы. Когда вы запускаете 1С как обычное приложение (толстый или тонкий клиент), процесс 1cv8.exe выполняется от имени вашей учетной записи. Вы авторизованы в домене или локальной сети, и у вас есть права доступа к сетевому ресурсу \\Server\Exchange. В таких сценариях полезен лаунчер для 1C с проверкой доменной авторизации.

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

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

Настройка прав для веб-сервера IIS

Если ваша база опубликована на IIS, нам необходимо изменить «удостоверение» (Identity) пула приложений, чтобы веб-сервер мог обращаться к сетевым ресурсам. Выполним следующие действия:

  1. Откроем «Диспетчер служб IIS».
  2. Перейдем в раздел Пулы приложений.
  3. Найдем в списке тот пул, который используется для вашей публикации 1С (обычно его имя совпадает с именем публикации или используется DefaultAppPool).
  4. Нажмем правой кнопкой мыши на пуле и выберем Дополнительные параметры.
  5. В разделе «Модель управления процессами» найдем пункт Удостоверение (Identity).
  6. Вместо стандартного ApplicationPoolIdentity укажем Особая учетная запись и нажмем «Установить».
  7. Здесь необходимо ввести логин и пароль пользователя (желательно доменного), у которого гарантированно есть полные права доступа (чтение/запись) к сетевой папке обмена.

После внесения изменений обязательно перезапустим пул приложений. Теперь процесс веб-сервера будет «представляться» сети как указанный вами пользователь, и доступ к папке \\Kassa\obmen будет открыт.

Настройка прав для веб-сервера Apache

В случае с Apache ситуация аналогична, но настройка производится через службы Windows. Для автоматизации развертывания можно использовать установщик Apache HTTP Server для Windows, а ниже мы рассмотрим подробнее ручной процесс:

  1. Нажмем Win + R и введем services.msc для открытия списка служб.
  2. Найдем службу с именем Apache2.4 (или другой версии).
  3. Щелкнем правой кнопкой мыши и выберем Свойства.
  4. Перейдем на вкладку Вход в систему.
  5. Переключим флажок с «С системной учетной записью» на С учетной записью.
  6. Укажем данные пользователя (формат .\ИмяПользователя для локальных или DOMAIN\User для доменных), который имеет доступ к сетевой папке.
  7. Нажмем «ОК» и перезапустим службу Apache.

Проанализируем риски: Изменение учетной записи службы на пользовательскую повышает права веб-сервера. Убедитесь, что этот пользователь также имеет права на папку, в которой физически лежит база данных 1С и временные файлы Windows (C:\Windows\Temp), иначе публикация перестанет работать вовсе.

Особенности использования UNC-путей

При настройке синхронизации в интерфейсе 1С крайне важно правильно указывать путь к каталогу обмена. Забудьте про существование сетевых дисков типа Z:\ или X:\. Службы Windows не видят диски, которые вы подключили вручную в своем сеансе пользователя.

Используйте только полные UNC-пути. Пример правильного указания пути в настройках синхронизации:


\\ComputerName\SharedFolder\ExchangeData

Если вы укажете Z:\Obmen, система выдаст ошибку «Каталог не обнаружен», так как для веб-сервера диска Z: не существует.

Альтернативное решение: Переход на FTP-протокол

Как справедливо заметили участники обсуждения на форуме, использование сетевых папок (SMB) для веб-сервера — это часто путь к возникновению проблем с безопасностью и стабильностью. Еще одним надежным вариантом являются обмены через брокеры, но классическим профессиональным решением считается использование FTP-сервера.

Рассмотрим, почему это лучше:

  1. Изоляция: 1С просто передает файл по протоколу, не требуя от операционной системы прав на доступ к удаленной файловой системе.
  2. Универсальность: FTP работает одинаково хорошо и на Windows, и на Linux.
  3. Стабильность: Исключаются проблемы «двойного прыжка» (Double Hop), когда сервер не может передать ваши полномочия дальше третьему компьютеру в сети.

Для реализации этого метода достаточно поднять службу FTP на том же сервере, где находится папка обмена, и в настройках синхронизации 1С выбрать тип транспорта «FTP-ресурс», указав адрес, логин и пароль.

Самый современный метод: Синхронизация через веб-сервис

Поскольку одна из ваших баз уже опубликована на веб-сервере, использование посредников в виде папок или FTP-серверов вовсе необязательно. 1С поддерживает прямой обмен данными по протоколу HTTP/HTTPS.

Посмотрим на алгоритм настройки:

  1. В подчиненном узле при настройке синхронизации выберите вариант «Синхронизация через интернет».
  2. Укажите адрес вашей публикации (например, http://server.com/base_name).
  3. Введите логин и пароль пользователя 1С, у которого есть права на выполнение обмена.

В этом случае данные будут передаваться напрямую из одной базы в другую через HTTP-запросы. Это исключает любые ошибки, связанные с правами доступа к папкам на уровне Windows.

Проблема «Двойного прыжка» (Double Hop)

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

Если вы столкнулись с такой ситуацией, решением будет либо использование локальной папки на самом веб-сервере (с последующим копированием файлов скриптом), либо настройка доверенного делегирования в контроллере домена (Active Directory), что уже является задачей для квалифицированного системного администратора.

Подведем итог: Основная проблема заключается в несовпадении контекста безопасности пользователя и веб-службы. Настройте запуск IIS/Apache от имени пользователя с сетевыми правами или перейдите на более современные протоколы обмена (FTP или HTTP), чтобы навсегда забыть о проблемах с доступом к сетевым папкам.

← На главную