Почему возникает ошибка "Файл не обнаружен" при синхронизации ЗУП и БП через прямое подключение и как ее исправить?

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

При работе с клиент-серверной версией 1С часто настраивают синхронизацию данных между конфигурациями, например, между «Зарплатой и Управлением Персоналом» (ЗУП) и «Бухгалтерией предприятия» (БП). Для корректного переноса данных иногда требуется доработка типового обмена сотрудниками или специальная регистрация физического лица для обмена из ЗУП 3.1, но одним из самых удобных способов транспорта данных остается прямое подключение. Однако именно с ним может возникнуть специфическая ошибка: при запуске обмена из ЗУП система выдает сообщение «Файл не обнаружен 'C:\Users\имя_пользователя\AppData\Local\Temp\Exchange...\{...}.xml' [ОшибкаДоступаКЛокальномуФайлу]». При этом, что самое интересное, синхронизация, запущенная из Бухгалтерии, проходит успешно.

В этой статье мы подробно разберем, почему возникает такая ситуация и как шаг за шагом ее исправить. Проблема кроется не в настройках самой 1С, а в правах доступа на уровне операционной системы сервера.

Выясним причину: как работает прямое подключение?

Чтобы понять корень проблемы, нужно разобраться в механизме прямого подключения. Когда вы запускаете синхронизацию из ЗУП, эта база данных инициирует COM-соединение с базой Бухгалтерии. На сервере 1С за этот процесс отвечает специальное приложение COM+, которое обычно называется V83.COMConnector (цифры могут меняться в зависимости от версии платформы).

Ключевой момент заключается в том, что это приложение COM+ запускается от имени определенного пользователя операционной системы. В то же время, сама служба «Агент сервера 1С:Предприятие» работает под другим пользователем (в примере из ошибки это 1c_service).

Ошибка [ОшибкаДоступаКЛокальномуФайлу] возникает потому, что:

  1. Процесс обмена, инициированный из ЗУП, пытается создать временный файл выгрузки.
  2. Он пытается сделать это в системной папке Temp того пользователя, под которым работает сервер 1С (C:\Users\1c_service\AppData\Local\Temp\).
  3. Однако сам процесс создания файла выполняется от имени пользователя, указанного в настройках компоненты V83.COMConnector.
  4. Именно у этого пользователя нет прав на запись в папку Temp пользователя службы 1С.

Когда же вы запускаете обмен из БП, COM-соединение устанавливается в обратную сторону, и контекст безопасности оказывается другим, поэтому ошибка не возникает. Теперь, когда причина ясна, рассмотрим шаги для ее устранения.

Решение 1: Настройка прав для пользователя COM+ приложения (Основное решение)

Это наиболее правильный и надежный способ решения проблемы. Нам нужно дать пользователю, от имени которого работает COM-компонента, необходимые права на временную папку службы 1С.

Шаг 1. Определяем пользователя службы сервера 1С

Сначала нужно точно узнать, под каким пользователем работает агент сервера. Путь к временной папке из текста ошибки уже дает нам эту информацию. В ошибке Файл не обнаружен 'C:\Users\1c_service\AppData\Local\Temp\...' имя пользователя — 1c_service. Если вы не уверены, откройте на сервере оснастку «Службы» (Services), найдите службу «Агент сервера 1С:Предприятие 8.3» и посмотрите ее свойства на вкладке «Вход в систему».

Шаг 2. Определяем пользователя COM-компоненты

Теперь найдем пользователя, который отвечает за COM-соединение. Для этого на сервере 1С выполним следующие действия:

  1. Откройте «Панель управления» → «Администрирование» → «Службы компонентов».
  2. В открывшемся окне в дереве слева перейдите по пути: «Службы компонентов» → «Компьютеры» → «Мой компьютер» → «Приложения COM+».
  3. Найдите в списке приложение с именем, похожим на V83.COMConnector.
  4. Нажмите на нем правой кнопкой мыши и выберите «Свойства».
  5. Перейдите на вкладку «Удостоверение» (Identity).

Здесь вы увидите, от имени какого пользователя запускается компонента. Это может быть «Текущий пользователь», «Системная учетная запись» или «Указанный пользователь». Запомните этого пользователя.

Шаг 3. Предоставляем права доступа

Остался последний шаг — выдать права пользователю из Шага 2 на папку пользователя из Шага 1.

  1. Откройте «Проводник» на сервере и перейдите в папку пользователя службы 1С, например, C:\Users\1c_service\. Обратите внимание, что папка AppData по умолчанию скрыта, поэтому вам может понадобиться включить отображение скрытых файлов и папок в настройках Проводника.
  2. Найдите папку AppData\Local\Temp, нажмите на ней правой кнопкой мыши и выберите «Свойства».
  3. Перейдите на вкладку «Безопасность» и нажмите кнопку «Изменить...».
  4. Нажмите «Добавить...», введите имя пользователя, которого вы определили на Шаге 2, и нажмите «ОК».
  5. Выделите добавленного пользователя в списке и в нижнем окне установите для него флажок «Полный доступ» в колонке «Разрешить».
  6. Нажмите «Применить» и «ОК» во всех окнах.

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

Решение 2: Перерегистрация COM-библиотеки 1С

Иногда, особенно после обновления платформы 1С:Предприятие, регистрация COM-компоненты в системе может быть нарушена. Это также может приводить к ошибкам доступа. В этом случае поможет принудительная перерегистрация. Если же стандартный механизм продолжает давать сбои, альтернативой может стать отдельная синхронизация справочников Физические лица и Сотрудники из ЗУП в Бухгалтерию через COM соединение.

Для перерегистрации выполните следующие действия:

  1. Запустите командную строку (cmd.exe) от имени администратора на сервере 1С.
  2. Сначала отменим регистрацию текущей библиотеки. Укажите путь к папке bin вашей актуальной версии платформы 1С.
    
    regsvr32 /u "C:\Program Files\1cv8\8.3.25.1374\bin\comcntr.dll"
    
  3. После успешного выполнения команды зарегистрируем библиотеку заново.
    
    regsvr32 "C:\Program Files\1cv8\8.3.25.1374\bin\comcntr.dll"
    
  4. После перерегистрации обязательно перезапустите службу «Агент сервера 1С:Предприятие 8.3».

Важно: если на сервере установлено несколько версий платформы, убедитесь, что вы используете путь к той версии, на которой работают ваши базы. Наличие нескольких версий само по себе может вызывать конфликты, поэтому рекомендуется удалять старые, неиспользуемые платформы.

Временное решение: переход на обмен через файловый каталог

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

  1. Создайте на сервере или в сети папку, к которой есть доступ на чтение и запись у пользователей обеих баз.
  2. В настройках синхронизации в ЗУП и БП измените способ обмена с «Прямое подключение» на «Синхронизация данных через универсальный формат (через файл)» — для этого подойдёт синхронизация ЗУП 3.1 с Бухгалтерией 3.0.
  3. Укажите путь к созданной папке.

Этот способ менее удобен, так как требует ручного запуска или настройки регламентных заданий в обеих базах. Кроме того, при использовании универсального формата иногда возникают свои сложности, например, может понадобиться исправление зацикливания синхронизации, но в целом файловый обмен более устойчив к проблемам с правами COM-доступа и может служить надежным временным решением — в этом поможет двусторонняя синхронизация по правилам EnterpriseData.

← На главную