При работе с файлами .xlsx в серверной среде 1С:Предприятие 8 часто возникает критическая ошибка, сопровождающаяся сообщением «Схема не зарегистрирована». Эта проблема особенно актуальна для клиент-серверных архитектур на базе MS SQL, когда функционал загрузки данных корректно отрабатывает в файловой базе или на других серверах, но отказывается работать на конкретном узле. Давайте вместе разберемся в причинах этого поведения и способах устранения ошибки.
Основная причина возникновения ошибки кроется в разнице между клиентским и серверным окружением. Когда пользователь выбирает файл на своем рабочем столе, путь к нему (например, C:\Users\User\Desktop\file.xlsx) является локальным для компьютера пользователя. Если код 1С, выполняющийся на сервере (в процессе rphost.exe), пытается открыть этот же путь, он сталкивается с тем, что:
COM (или драйвер ACE OLEDB), который пытается прочитать файл, не имеет доступа к требуемым системным папкам от имени пользователя, под которым запущена служба 1С.Самая распространенная ошибка — попытка передачи пути к файлу вместо передачи самого файла. Чтобы сервер «увидел» файл, его необходимо поместить во временное хранилище 1С. Рассмотрим алгоритм действий:
ПоместитьФайл.ПолучитьФайлИзХранилища.Пример реализации передачи данных:
// На стороне клиента
АдресВХранилище = "";
ПоместитьФайл(АдресВХранилище, ВыбранныйФайл, , Ложь);
// Вызов серверной процедуры
ОбработкаОбъект.ЗаполнитьИзФайла(АдресВХранилище);
Если архитектура приложения предполагает работу с файлами на общих сетевых ресурсах, убедитесь, что путь к файлу указан в формате UNC (например, \\Server\Share\file.xlsx). Учетная запись, от имени которой запущена служба 1C:Enterprise Server Agent (обычно это USR1CV8), должна иметь полные права доступа к указанной сетевой папке.
Если передача файла реализована верно, но ошибка остается, обратим внимание на технические настройки сервера:
Microsoft Access Database Engine совпадает с разрядностью платформы 1С. Если у вас установлена 64-битная 1С, драйвер должен быть также 64-битным.USR1CV8 имеет права на запись в папку Temp и наличие необходимых подкаталогов профиля (например, Desktop в системном профиле), так как драйверы COM часто обращаются к этим ресурсам при инициализации.dcomcnfg, чтобы обеспечить корректную работу объекта Excel.Application под учетной записью службы сервера.Для того чтобы окончательно убедиться, в чем именно причина, рекомендуем выполнить следующие действия:
DistributedCOM или ACE OLEDB.Process Monitor и отфильтруйте события по процессу rphost.exe. Это позволит увидеть в реальном времени, к какому файлу или ключу реестра обращается система и где она получает отказ в доступе (ACCESS DENIED).Применяя данные рекомендации, вы сможете локализовать проблему и обеспечить стабильную работу загрузки Excel-файлов в вашей информационной системе.