1С:Предприятие 8.2 /
Разработчикам /
Клиент-серверное взаимодействие и вопросы безопасности
Доступ к файловой системе из кода конфигурации
Особенности работы с файлами на сервере 1С:Предприятия
1.1. При обращении из кода конфигурации к файлам и каталогам файловой системы следует иметь в виду, что доступ к ним ограничен правами пользователя операционной системы, от имени которого запущено приложение:
- если доступ к файловой системе осуществляется средствами встроенного языка на клиенте, то он выполняется под правами пользователя, от имени которого запущено приложение (тонкий, толстый или веб-клиент). Как правило, это текущий пользователь операционной системы, однако запуск мог быть выполнен и от имени другого пользователя.
- если доступ к файловой системе осуществляется средствами встроенного языка на сервере, то:
- при использовании веб-клиента с файловой информационной базой доступ ограничен правами пользователя, от имени которого запущен веб-сервер.
- при использовании клиент-серверной информационной базы, доступ ограничен правами пользователя, от имени которого запущен сервер 1С:Предприятия .
1.2. В частности, не следует выполнять запись каких-либо файлов в каталоге исполняемых файлов 1С:Предприятия (получаемого с помощью метода КаталогПрограммы), поскольку доступ к этому каталогу на запись может иметься только у пользователя операционной системы с административными правами. В подобных случаях, для записи файлов следует использовать временный каталог операционной системы, который можно получить методом КаталогВременныхФайлов.
Использование метода КаталогПрограммы оправдано только для чтения или запуска файлов каталога исполняемых файлов 1С:Предприятия. Например, для запуска копии тонкого клиента 1С:Предприятия текущей версии, допустимо использовать:
ЗапуститьПриложение(КаталогПрограммы() + "1cv8s.exe");
Работа с временными файлами
2.1. При необходимости создать файл, время существования которого не превышает время работы сеанса, следует использовать метод ПолучитьИмяВременногоФайла. После окончания работы с файлом, необходимо его удалить. В противном случае, файл будет удален не раньше окончания работы процесса, в котором он был создан. При работе на сервере 1С:Предприятия это может привести к исчерпанию свободного места на диске, на котором раположен каталог временных файлов.
Например:
ФайлВыгрузки = ПолучитьИмяВременногоФайла("xml"); ДанныеФайла.Записать(ФайлВыгрузки); // Работа с файлом // … // Удаляем временный файл Попытка УдалитьФайлы(ФайлВыгрузки); Исключение ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие с возможной ошибкой'"), УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки;
См. также: Использование Журнала регистрации
Не следует использовать другие способы именования временных файлов. Т.к. при использовании функции платформы, файл будет гарантированно удален при следующем запуске платформы (даже при аварийном завершении платформы).
2.2. В редких случаях, при необходимости создания временных файлов, время существования которых связано с каким-либо процессом или событием, и не должно быть ограничено временем работы сеанса, следует удалять такие файлы самостоятельно. При этом следует учитывать нештатный сценарий работы, например из-за преждевременного, аварийного завершения процесса или в случае, если ожидаемое событие не наступило по каким-либо причинам.
Например, требуется работать с временными файлами при нескольких последовательных вызовах web-сервиса. Рекомендуется следующий подход:
- При создании файлов их имена заносятся во вспомогательный регистр с сохранением времени создания;
- При штатном прохождении процесса, последняя операция, которой были нужны файлы, удаляет их записи во вспомогательном регистре перед своим завершением;
- Вспомогательное регламентное задание периодически проверяет наличие записей во вспомогательном регистре, время существования которых заведомо превышает время штатного завершения процесса. При обнаружении таких записей, задание удаляет временные файлы и записи о них.
Особенности работы с файлами на сервере 1С:Предприятия
3. При работе с файлами на сервере 1С:Предприятия, не следует сохранять временные файлы на время, больше одного серверного вызова, т.к. при следующем серверном вызове этих файлов уже может не оказаться на ожидаемом месте.
Такое поведение объясняется архитектурой кластера серверов 1С:Предприятия – код на встроенном языке выполняется рабочими процессами. В общем случае, рабочих процессов может быть больше одного, и у каждого из них может быть своя файловая система (т.к. разные рабочие процессы могут располагаться на разных рабочих серверах). В то же время, серверные вызовы одного и того же сеанса могут обрабатываться разными рабочими процессами (вследствие автоматической балансировки нагрузки, автоматического перезапуска или по другим причинам). Кроме того, при настроенном резервировании кластеров 1С:Предприятия, в случае переключения на резервный кластер будут использоваться его рабочие процессы.
При необходимости сохранить данные между серверными вызовами (в пределах одного сеанса) следует использовать временное хранилище платформы (методы ПоместитьВоВременноеХранилище, ПолучитьИзВременногоХранилища и пр.).
См. также
Тренинг-семинар «Как получить работу бухгалтера»
Курсы бухгалтеров с трудоустройством
Курсы программирования 1С:Предприятие 8.2
Другие материалы по теме:
процесс, файлы, клиент, буфер обмена, копировать, файл, время, конфигурирование, работы, пример, регистр
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Клиент-серверное взаимодействие и вопросы безопасности
Другие материалы по теме:
Доступ к файловой системе из кода конфигурации
Использование параметров сеанса
Подготовка внешних компонент для загрузки в конфигурацию
Нас находят: 1с работа с файлом на сервере, 1C сервер 8 3 работа с файловой системой, 1с доступ к файловой системе, как из 1С настроить доступ к файлам на диске, v8 доступ к файлам в клиент-серверном, КаталогВременныхФайлов() как работает на сервере 1с, 1с работа с файлами сервер, создать файл с административными правами в 1с, сервер 1с доступ к файловой системе, работа с файлами на сервере 1с предприятия
Мы на Facebook