Администрирование · 9 мин
Как узнать путь к файлу в 1С
Как узнать путь к файлу в 1С: свойства элемента, присоединенные файлы, путь к базе данных, код на встроенном языке и типичные ошибки при поиске.
Задача узнать путь к файлу в 1С возникает в разных ситуациях: нужно найти, где физически лежит база данных, определить расположение присоединенного к документу файла, выяснить, откуда загружается внешняя обработка, или получить путь к каталогу временных файлов в коде. Универсальной кнопки «показать путь» в интерфейсе нет, поэтому способ зависит от того, какой именно файл вас интересует.
Важно понимать принципиальную разницу: файлы, прикрепленные к элементам справочников и документов, в типовых конфигурациях обычно хранятся не в файловой системе, а внутри самой базы данных в виде двоичных данных. Поэтому «путь» к ним в классическом смысле может отсутствовать — файл существует только внутри информационной базы и извлекается оттуда по запросу.
Ниже разобраны все практические сценарии: от простого просмотра пути к базе в окне запуска до программного получения путей через встроенный язык. Отдельно рассмотрены файловый и клиент-серверный варианты работы, так как поведение платформы в них заметно различается.
Как узнать путь к файлу базы данных 1С
Самый частый сценарий — определить, где на диске или в сети лежит файловая информационная база. Откройте окно запуска 1С (ярлык «1С:Предприятие»), выделите нужную базу в списке, но не запускайте её. В нижней части окна отобразится строка с параметром File= — это и есть полный путь к каталогу базы, например File="D:\Bases\Trade".
Если список баз большой или окно запуска недоступно, путь можно посмотреть в конфигурационном файле списка баз. Он хранится в профиле пользователя: %APPDATA%\1C\1CEStart\ibases.v8i. Откройте файл блокнотом — для каждой базы в секции указан параметр Connect с путём.
Для клиент-серверной базы вместо пути к каталогу вы увидите параметры Srvr и Ref — имя сервера и имя базы на нём. Физическое расположение файлов данных в этом случае определяется настройками СУБД (MS SQL Server, PostgreSQL и др.), и смотреть его нужно уже средствами самой СУБД, а не 1С.
- 1Откройте окно запуска 1С:Предприятие
- 2Выделите нужную базу одним кликом, не запуская её
- 3Посмотрите строку с параметром File= в нижней части окна
- 4Если окна нет — откройте %APPDATA%\1C\1CEStart\ibases.v8i в блокноте
Как узнать, где хранится присоединенный файл
К документам, элементам справочников и другим объектам в типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) можно прикреплять файлы: сканы, договоры, изображения. Ключевой момент: по умолчанию эти файлы сохраняются внутрь информационной базы, и пути к ним на диске не существует. Узнать «где лежит файл» в этом случае нельзя — можно только открыть его из 1С или сохранить копию на диск.
Чтобы сохранить присоединенный файл, откройте список присоединенных файлов объекта (кнопка со скрепкой или команда «Присоединенные файлы»), выделите файл и используйте команду «Сохранить как». Платформа предложит выбрать каталог — после сохранения путь к копии будет тем, который вы указали сами.
Исключение — конфигурации, где администратор включил хранение файлов в томах на диске. Тогда файлы физически лежат в каталогах томов, а в базе хранятся только ссылки. Расположение томов настраивается в разделе администрирования (обычно «Настройки работы с файлами» → «Тома хранения файлов»), где и указан путь к каждому тому.
Как узнать путь к файлу в коде 1С
Разработчику или администратору, работающему со встроенным языком, доступны штатные средства платформы. Объект Файл позволяет проверить существование файла и получить его свойства: полное имя, путь без имени файла, имя, расширение. Например, конструкция Файл = Новый Файл("D:\Docs\akt.pdf"); Сообщить(Файл.Путь); выведет каталог, в котором лежит файл.
Для системных каталогов есть отдельные функции: КаталогВременныхФайлов() возвращает путь к временному каталогу (на клиенте или сервере — в зависимости от того, где выполняется код), КаталогПрограммы() — каталог установки платформы. Путь к файловой базе из кода можно получить через СтрокаСоединенияИнформационнойБазы() — она вернёт строку вида File="D:\Bases\Trade";.
При интерактивном выборе файла пользователем используйте диалог ДиалогВыбораФайла. После того как пользователь укажет файл, свойство ПолноеИмяФайла диалога содержит полный путь к выбранному файлу — его можно сохранить в реквизит или использовать для дальнейшей обработки.
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
Сообщить(СтрокаСоединения); // File="D:\Bases\Trade";
Файл = Новый Файл("D:\Docs\akt.pdf");
Если Файл.Существует() Тогда
Сообщить(Файл.Путь); // D:\Docs\
Сообщить(Файл.Имя); // akt.pdf
Сообщить(Файл.Расширение); // .pdf
КонецЕсли;
Сообщить(КаталогВременныхФайлов());Путь к внешней обработке или отчету
Когда внешняя обработка (.epf) или отчет (.erf) открывается через «Файл → Открыть», путь к ней — тот, который вы указали в диалоге открытия. Если обработка подключена через механизм «Дополнительные отчеты и обработки» в типовой конфигурации, её файл загружается в базу, и исходный путь после загрузки не хранится в интерфейсе — сохраняется только имя файла и его содержимое.
Из кода путь к выполняемой внешней обработке можно получить через свойство ИспользуемоеИмяФайла объекта ВнешняяОбработка — оно доступно в модуле самой обработки через ЭтотОбъект.ИспользуемоеИмяФайла. Это удобно, когда рядом с обработкой лежат сопутствующие файлы (шаблоны, настройки) и нужно построить путь к ним относительно обработки.
Различия файлового и клиент-серверного режимов
В файловом режиме код, выполняемый на клиенте, работает с файловой системой того же компьютера, поэтому пути вида D:\... доступны напрямую. В клиент-серверном режиме сервер 1С — отдельный процесс (часто на другой машине), и код, выполняющийся «на сервере», видит диски сервера, а не компьютера пользователя. Путь C:\Users\... в серверном коде укажет на диск сервера, что часто становится источником ошибок.
Из-за этого передача файлов между клиентом и сервером выполняется через механизм временного хранилища: ПоместитьВоВременноеХранилище() и НачатьПомещениеФайла(). Прямое обращение к клиентскому пути из серверного кода в клиент-серверной базе не сработает — файл по этому пути на сервере просто не найдется.
Как проверить результат и типичные ограничения
После того как вы получили путь, проверьте его корректность: для файловой базы откройте каталог в проводнике — там должен находиться файл 1Cv8.1CD и служебные подкаталоги. Для путей из кода убедитесь, что Файл.Существует() возвращает Истина, прежде чем выполнять операции чтения или записи.
Учитывайте права доступа: служба агента сервера 1С обычно работает под отдельной учетной записью, и у неё может не быть прав на сетевые каталоги, доступные пользователю. Если операция с файлом «без причины» завершается ошибкой только в клиент-серверном режиме, почти всегда дело в правах учетной записи сервера или в неверном пути относительно сервера.
Ещё одно ограничение — веб-клиент. В браузере прямой доступ к файловой системе клиента сильно ограничен, и многие операции с путями требуют расширения работы с файлами либо выполняются через диалоги загрузки и скачивания.
Как проверить результат
В каталоге есть файл 1Cv8.1CD и служебные папки
Каталог пуст или содержит только резервные копии — это не рабочая база
Новый Файл(путь).Существует() возвращает Истина
Метод возвращает Ложь — путь неверен или файл недоступен
Операция выполняется без ошибок
Ошибка доступа — проверьте права учетной записи сервера и правильность пути
Что важно запомнить
Путь к файловой базе виден в окне запуска или в файле ibases.v8i. Присоединенные файлы обычно хранятся внутри базы и извлекаются командой «Сохранить как». В коде используйте объект Файл, СтрокаСоединенияИнформационнойБазы() и КаталогВременныхФайлов(), а в клиент-серверном режиме помните, что сервер видит свои диски, а не диски пользователя.
Частые вопросы
Где физически находится файл, прикрепленный к документу в 1С?
В типовых конфигурациях по умолчанию — внутри информационной базы в виде двоичных данных, отдельного файла на диске нет. Исключение — настроенные тома хранения файлов, пути к которым задаются в разделе администрирования «Настройки работы с файлами».
Как узнать путь к базе, если окно запуска не открывается?
Откройте в блокноте файл %APPDATA%\1C\1CEStart\ibases.v8i — в нём перечислены все базы списка с параметрами подключения, включая пути к файловым базам. Также путь можно увидеть в свойствах ярлыка, если он запускает конкретную базу напрямую.
Можно ли узнать путь к базе, находясь внутри открытой 1С?
Да, программно: функция СтрокаСоединенияИнформационнойБазы() возвращает строку подключения, где для файловой базы указан параметр File с путём. Через интерфейс без инструментов разработчика эта информация обычно недоступна.
Почему код с правильным путём не находит файл в клиент-серверной базе?
Серверный код выполняется на сервере 1С и видит его файловую систему, а не диски вашего компьютера. Передавайте файл через временное хранилище (НачатьПомещениеФайла / ПоместитьВоВременноеХранилище) либо используйте путь, доступный с сервера.
Как узнать, откуда была загружена внешняя обработка?
Если обработка открыта через «Файл → Открыть», путь — тот, что вы указали в диалоге. Если она загружена в справочник дополнительных отчетов и обработок, исходный путь не сохраняется — в базе хранится сам файл, и связь с исходным расположением теряется.
Работает ли получение путей в веб-клиенте?
Ограниченно. Браузер не даёт прямого доступа к файловой системе, поэтому выбор файлов выполняется через стандартные диалоги загрузки, а полный локальный путь в большинстве случаев недоступен — доступно только имя файла и его содержимое.