Почему сервер 1С не видит сетевую папку при настройке синхронизации и как это исправить?

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

При настройке обмена данными между конфигурациями (например, между ЗУП и Охраной Труда), используя инструменты для универсальной выгрузки и загрузки данных, многие специалисты сталкиваются с парадоксальной ситуацией: каталог обмена прекрасно открывается через проводник Windows, но при нажатии кнопки "Проверить подключение" в 1С система выдает ошибку: "Каталог обмена не существует". Рассмотрим подробнее, почему это происходит и как настроить доступ так, чтобы синхронизация заработала стабильно.

Выясняем причину: разница в контексте выполнения и отладка обмена через Универсальный формат

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

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

Шаг 1. Переход на использование UNC-путей

Частая ошибка — указывать путь к папке через букву диска, например Z:\Exchange_1C\. Посмотрим на это глазами сервера: диск Z: подключен в вашей пользовательской сессии. Для службы сервера 1С никаких сетевых дисков не существует. Поэтому всегда используйте полные пути в формате UNC:

\\ИмяСервера\ИмяПапки\

Даже если папка находится на том же сервере, где стоит 1С, использование UNC-пути часто помогает избежать проблем с правами в будущем при переносе базы.

Шаг 2. Настройка прав учетной записи службы 1С

Теперь разберем самое важное — права доступа. Выясним, под каким пользователем запущена служба 1С. Для этого откроем services.msc (Службы), найдем "Агент сервера 1С:Предприятия" и заглянем во вкладку "Вход в систему".

Если используется доменная сеть:
Самым правильным решением будет создать в домене отдельную сервисную учетную запись (например, 1c_service) и запустить службу сервера 1С от её имени. После этого этой учетке нужно дать права "Изменение" и "Чтение" на сетевую папку обмена на целевом сервере.

Если домена нет (Рабочая группа):
В этом случае нам придется прибегнуть к хитрости. Чтобы сервер 1С смог авторизоваться на другом компьютере, выполним следующие действия:

  1. На сервере, где лежит папка, создадим локального пользователя с точно таким же именем и паролем, как и USR1CV8 на сервере 1С.
  2. Дадим этому пользователю права на папку.
  3. Windows при попытке доступа сравнит логины и пароли, и, если они совпадут, пропустит службу внутрь папки.

Шаг 3. Проверка прав NTFS и Shared-доступа

Многие забывают, что для сетевой папки существует два уровня "замков". Проанализируем оба:

  1. Общий доступ (Share Permissions): Нажмите правой кнопкой на папку — Свойства — Доступ — Расширенная настройка — Разрешения. Убедитесь, что пользователю (или группе) выданы права "Изменение".
  2. Безопасность (NTFS Permissions): Вкладка "Безопасность" в свойствах папки. Здесь также должны быть права "Изменение", "Чтение и выполнение", "Список содержимого папки", "Чтение" и "Запись".

Шаг 4. Локальные политики безопасности

Бывает так, что даже при правильных правах Windows блокирует вход. Проверим политики безопасности на сервере, где находится папка (через secpol.msc):

Тестирование доступа программным способом

Чтобы окончательно убедиться, что сервер 1С видит папку, мы можем создать простую внешнюю обработку и выполнить на сервере следующий код:


&НаСервере
Процедура ПроверитьДоступНаСервере()
    ПутьКФайлу = "\\ServerName\Exchange\test.txt";
    Файл = Новый Файл(ПутьКФайлу);
    Если Файл.Существует() Тогда
        Сообщить("Сервер видит файл!");
    Иначе
        Попытка
            Текст = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8);
            Текст.ЗаписатьСтроку("Проверка доступа");
            Текст.Закрыть();
            Сообщить("Файл успешно создан сервером!");
        Исключение
            Сообщить("Ошибка доступа: " + ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
КонецПроцедуры

Этот тест покажет реальную картину от имени сервера, а не от вашего имени.

Дополнительные нюансы

Антивирусы и Брандмауэры: Иногда сетевой экран блокирует протокол SMB для системных служб. Попробуем временно отключить антивирус на обоих серверах, чтобы исключить этот фактор.

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

Фоновые задания: Помните, что интерактивная проверка подключения и реальный обмен, запускаемый по расписанию — это разные процессы. Реальный обмен делает МенеджерКластера или РабочийПроцесс. Убедитесь, что все процессы кластера 1С имеют одинаковые права к ресурсу.

Подведем итог: в 99% случаев проблема решается либо использованием UNC-путей вместо дисков, либо предоставлением прав NTFS/Share конкретному пользователю, от имени которого запущена служба 1C:Enterprise Server Admin.

← На главную