При работе в клиент-серверном варианте 1С:Предприятие пользователи часто сталкиваются с тем, что при попытке загрузить адресный классификатор (например, файлы ГАР) система выдает ошибку «Доступ к файлу запрещен». На первый взгляд кажется, что права на папку настроены верно, и файл доступен для чтения, однако ошибка сохраняется. Давайте разберем, почему это происходит и как устранить данную проблему.
Основная причина заключается в том, что в клиент-серверной версии 1С процесс загрузки файла выполняется не под пользователем, который нажал кнопку «Загрузить» в интерфейсе, а от имени учетной записи, под которой запущена служба Сервер 1С:Предприятие. Чаще всего это стандартный пользователь USR1CV8.
Даже если файл лежит в «расшаренной» папке с правами «Полный доступ для всех», служба сервера 1С может не иметь к нему доступа из-за особенностей безопасности Windows или сетевых ограничений. Более того, платформа часто копирует загружаемый файл во временные директории сервера, где у учетной записи USR1CV8 могут отсутствовать права на запись.
Агент сервера 1С:Предприятие, имеет полные права доступа к папке, где лежит файл классификатора.C:\Temp\) и указать путь к нему при загрузке. Если загрузка пройдет успешно, значит, проблема была в сетевых правах доступа.rphost.exe, пытающиеся работать с архивами .zip. Попробуйте временно отключить антивирус или добавьте папку с 1С и рабочие каталоги в исключения.В ряде случаев стандартный механизм загрузки классификатора может некорректно обрабатывать пути к файлам в архитектуре «клиент-сервер». Если вы являетесь разработчиком, вы можете модифицировать модули, отвечающие за работу с файлами (часто это функционал БСП — Библиотека стандартных подсистем).
Разберем, на что стоит обратить внимание при анализе кода:
Система часто использует методы для проверки существования файлов, такие как НайтиФайлы. Если путь, передаваемый с клиента, не интерпретируется сервером корректно, следует использовать методы, работающие с ДвоичнымиДанными или временными хранилищами, чтобы передать файл на сервер как объект, а не как путь к сетевому ресурсу.
Рассмотрим примерную логику работы с файлом на стороне сервера:
// Пример получения файла через временное хранилище
АдресВоВременномХранилище = ПоместитьФайлВоВременноеХранилище(ВыбранныйФайл, УникальныйИдентификатор);
// Далее передаем адрес в серверный вызов, где файл будет обработан
ОбработатьФайлНаСервере(АдресВоВременномХранилище);
В серверной процедуре вы можете получить данные из хранилища и сохранить их во временный файл локально на сервере, используя объект Файл. Это гарантирует, что 1С работает с объектом, к которому у службы сервера точно есть права доступа.
Для обеспечения стабильной работы всегда проверяйте журнал событий Windows (Event Viewer). В разделе Приложения часто фиксируются ошибки доступа с указанием конкретного пути и того, какая служба или пользователь пытались получить доступ. Это поможет точно определить «проблемный» каталог.
Также помните, что современные конфигурации 1С поддерживают автоматическую загрузку классификатора через Интернет. Использование этого способа позволяет полностью избежать ручной работы с файлами, так как платформа сама скачивает и обрабатывает данные, что является наиболее надежным и рекомендуемым решением.
Если после выполнения всех проверок ошибка сохраняется, проанализируйте версию вашей БСП. Возможно, в вашей конфигурации требуется обновление подсистемы работы с файлами до актуальной версии, где были исправлены ошибки обработки путей в клиент-серверном режиме. Совместная работа администратора (проверка прав USR1CV8) и программиста (адаптация кода загрузки) — залог успешного решения данной проблемы.