Почему при загрузке XML в 1С возникает ошибка «Указанный файл не существует» и как её исправить?

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

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

Разберем детально, почему платформа выдает такое сообщение и какими способами можно устранить эту проблему в различных сценариях работы.

Причина ошибки: разделение контекстов «клиент — сервер»

Проанализируем архитектуру работы базы данных в клиент-серверном варианте. Когда база 1С развернута на сервере (например, под управлением SQL Server или PostgreSQL), выполнение программного кода разделяется на две среды: клиентское приложение и рабочий процесс сервера 1С (rphost).

Если в настройках обработки выбран режим работы «На сервере», события развиваются следующим образом:

  1. Пользователь выбирает файл на своем локальном рабочем месте, например, по пути C:\Users\ИмяПользователя\Desktop\Выгрузка.xml.
  2. Этот текстовый путь передается на сервер 1С для непосредственного чтения.
  3. Серверная служба 1С пытается найти данный путь на своем локальном диске, то есть на диске физического сервера, где установлена платформа 1С.
  4. Так как файл расположен на персональном компьютере пользователя, сервер не находит его по указанному адресу и прерывает операцию с сообщением: «Указанный файл не существует».
  5. Дополнительно играет роль ограничение прав: системная учетная запись службы сервера 1С (как правило, USR1CV8) не имеет доступа к локальным дискам и пользовательским профилям рабочих станций в локальной сети.

Решение 1. Переключение режима выполнения на клиента (быстрое решение)

Рассмотрим самое простое и действенное решение, которое подходит для большинства рядовых загрузок небольшого и среднего объема. В самой обработке Универсальный обмен данными в формате XML предусмотрен переключатель контекста выполнения.

Разберем по шагам порядок действий:

  1. Откроем обработку Универсальный обмен данными в формате XML на вкладке «Загрузка данных».
  2. Найдем параметр «Режим выполнения» (или переключатель места выполнения алгоритмов).
  3. Переключим значение с варианта «На сервере» на вариант «На клиенте».
  4. Заново выберем файл выгрузки на локальном компьютере.
  5. Нажмем кнопку «Загрузить данные».

В этом режиме чтение файла будет производиться непосредственно процессом клиентского приложения, у которого есть полный доступ к файлам текущего пользователя операционной системы.

Решение 2. Использование сетевой папки с UNC-путем (для серверной загрузки)

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

Разберем по шагам настройку загрузки через общую сетевую папку:

  1. Создадим общую сетевую папку на выделенном файловом сервере или сервере 1С.
  2. В свойствах безопасности папки предоставим права на чтение учетной записи, от имени которой запущена служба сервера 1С:Предприятия (по умолчанию USR1CV8). Если служба работает под локальной учетной записью, ее необходимо перевести на доменного пользователя или настроить локальных пользователей с идентичными логинами и паролями.
  3. Поместим подготовленный файл обмена в этот каталог.
  4. При указании имени файла в обработке 1С пропишем сетевой UNC-путь в формате: \\ИмяСервера\ОбщаяПапка\Выгрузка.xml. Запрещено использовать буквы подключенных сетевых дисков (например, Z:\...), так как служба сервера их не видит.
  5. Запустим загрузку в режиме «На сервере».

Решение 3. Локальное размещение файла на диске сервера 1С

Если нет возможности настроить общий сетевой ресурс, рассмотрим альтернативный вариант серверной загрузки:

  1. Скопируем файл с данными напрямую на физический диск сервера, где работает кластер 1С (например, по пути D:\Exchange\Выгрузка.xml).
  2. Убедимся, что у пользователя USR1CV8 есть права на чтение каталога D:\Exchange.
  3. В обработке загрузки данных укажем локальный путь сервера D:\Exchange\Выгрузка.xml и выберем режим «На сервере».

Обратите внимание: если сервер 1С работает под управлением операционной системы семейства Linux, пути формата Windows (с обратными слешами \ и буквами дисков) сервер обработать не сможет. В таком случае путь задается по стандартам POSIX (например, /opt/exchange/data.xml), с обязательным соблюдением регистра символов в именах папок и файлов.

Ограничения тонкого клиента и внешние обработчики

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

  1. Режим работы клиента: В тонком клиенте прямое чтение файлов с диска кодом конфигурации ограничено. В современных конфигурациях для передачи файла на сервер используются функции ПоместитьВоВременноеХранилище и ПолучитьФайлИзВременногоХранилища. Если используется устаревшая внешняя обработка обмена, не адаптированная под тонкий клиент, ее рекомендуется открывать в режиме толстого клиента.
  2. Безопасный режим и профили безопасности: В правилах обмена могут содержаться произвольные алгоритмы (обработчики событий «Перед выгрузкой», «После загрузки»). Если база работает с ограничениями профилей безопасности кластера серверов, серверный вызов стороннего кода из файла может блокироваться платформой. В таком случае потребуется либо снять флаги использования внешних обработчиков, либо настроить профиль безопасности информационной базы в консоли кластера 1С.
← На главную