К статье
Практический материал

Администрирование · 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
    Откройте окно запуска 1С:Предприятие
  2. 2
    Выделите нужную базу одним кликом, не запуская её
  3. 3
    Посмотрите строку с параметром File= в нижней части окна
  4. 4
    Если окна нет — откройте %APPDATA%\1C\1CEStart\ibases.v8i в блокноте

Как узнать, где хранится присоединенный файл

К документам, элементам справочников и другим объектам в типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) можно прикреплять файлы: сканы, договоры, изображения. Ключевой момент: по умолчанию эти файлы сохраняются внутрь информационной базы, и пути к ним на диске не существует. Узнать «где лежит файл» в этом случае нельзя — можно только открыть его из 1С или сохранить копию на диск.

Чтобы сохранить присоединенный файл, откройте список присоединенных файлов объекта (кнопка со скрепкой или команда «Присоединенные файлы»), выделите файл и используйте команду «Сохранить как». Платформа предложит выбрать каталог — после сохранения путь к копии будет тем, который вы указали сами.

Исключение — конфигурации, где администратор включил хранение файлов в томах на диске. Тогда файлы физически лежат в каталогах томов, а в базе хранятся только ссылки. Расположение томов настраивается в разделе администрирования (обычно «Настройки работы с файлами» → «Тома хранения файлов»), где и указан путь к каждому тому.

Как узнать путь к файлу в коде 1С

Разработчику или администратору, работающему со встроенным языком, доступны штатные средства платформы. Объект Файл позволяет проверить существование файла и получить его свойства: полное имя, путь без имени файла, имя, расширение. Например, конструкция Файл = Новый Файл("D:\Docs\akt.pdf"); Сообщить(Файл.Путь); выведет каталог, в котором лежит файл.

Для системных каталогов есть отдельные функции: КаталогВременныхФайлов() возвращает путь к временному каталогу (на клиенте или сервере — в зависимости от того, где выполняется код), КаталогПрограммы() — каталог установки платформы. Путь к файловой базе из кода можно получить через СтрокаСоединенияИнформационнойБазы() — она вернёт строку вида File="D:\Bases\Trade";.

При интерактивном выборе файла пользователем используйте диалог ДиалогВыбораФайла. После того как пользователь укажет файл, свойство ПолноеИмяФайла диалога содержит полный путь к выбранному файлу — его можно сохранить в реквизит или использовать для дальнейшей обработки.

bsl
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
Сообщить(СтрокаСоединения); // File="D:\Bases\Trade";

Файл = Новый Файл("D:\Docs\akt.pdf");
Если Файл.Существует() Тогда
    Сообщить(Файл.Путь);      // D:\Docs\
    Сообщить(Файл.Имя);       // akt.pdf
    Сообщить(Файл.Расширение); // .pdf
КонецЕсли;

Сообщить(КаталогВременныхФайлов());

Путь к внешней обработке или отчету

Когда внешняя обработка (.epf) или отчет (.erf) открывается через «Файл → Открыть», путь к ней — тот, который вы указали в диалоге открытия. Если обработка подключена через механизм «Дополнительные отчеты и обработки» в типовой конфигурации, её файл загружается в базу, и исходный путь после загрузки не хранится в интерфейсе — сохраняется только имя файла и его содержимое.

Из кода путь к выполняемой внешней обработке можно получить через свойство ИспользуемоеИмяФайла объекта ВнешняяОбработка — оно доступно в модуле самой обработки через ЭтотОбъект.ИспользуемоеИмяФайла. Это удобно, когда рядом с обработкой лежат сопутствующие файлы (шаблоны, настройки) и нужно построить путь к ним относительно обработки.

Различия файлового и клиент-серверного режимов

В файловом режиме код, выполняемый на клиенте, работает с файловой системой того же компьютера, поэтому пути вида D:\... доступны напрямую. В клиент-серверном режиме сервер 1С — отдельный процесс (часто на другой машине), и код, выполняющийся «на сервере», видит диски сервера, а не компьютера пользователя. Путь C:\Users\... в серверном коде укажет на диск сервера, что часто становится источником ошибок.

Из-за этого передача файлов между клиентом и сервером выполняется через механизм временного хранилища: ПоместитьВоВременноеХранилище() и НачатьПомещениеФайла(). Прямое обращение к клиентскому пути из серверного кода в клиент-серверной базе не сработает — файл по этому пути на сервере просто не найдется.

Типичные ошибки
01
Попытка найти присоединенный файл на диске, хотя он хранится внутри базы — файл нужно сохранять командой «Сохранить как»
02
Использование клиентского пути в серверном коде клиент-серверной базы — сервер не видит диски пользователя
03
Обращение к файлу по сетевому пути без проверки доступности шары — перед работой проверяйте существование через Новый Файл() и метод Существует()
04
Поиск пути к дополнительной обработке после её загрузки в базу — исходный файл на диске уже не связан с копией в базе

Как проверить результат и типичные ограничения

После того как вы получили путь, проверьте его корректность: для файловой базы откройте каталог в проводнике — там должен находиться файл 1Cv8.1CD и служебные подкаталоги. Для путей из кода убедитесь, что Файл.Существует() возвращает Истина, прежде чем выполнять операции чтения или записи.

Учитывайте права доступа: служба агента сервера 1С обычно работает под отдельной учетной записью, и у неё может не быть прав на сетевые каталоги, доступные пользователю. Если операция с файлом «без причины» завершается ошибкой только в клиент-серверном режиме, почти всегда дело в правах учетной записи сервера или в неверном пути относительно сервера.

Ещё одно ограничение — веб-клиент. В браузере прямой доступ к файловой системе клиента сильно ограничен, и многие операции с путями требуют расширения работы с файлами либо выполняются через диалоги загрузки и скачивания.

Контрольные точки

Как проверить результат

Каталог файловой базы
Норма

В каталоге есть файл 1Cv8.1CD и служебные папки

Тревожный признак

Каталог пуст или содержит только резервные копии — это не рабочая база

Путь в коде
Норма

Новый Файл(путь).Существует() возвращает Истина

Тревожный признак

Метод возвращает Ложь — путь неверен или файл недоступен

Серверный код с файлом
Норма

Операция выполняется без ошибок

Тревожный признак

Ошибка доступа — проверьте права учетной записи сервера и правильность пути

Итог

Что важно запомнить

Путь к файловой базе виден в окне запуска или в файле ibases.v8i. Присоединенные файлы обычно хранятся внутри базы и извлекаются командой «Сохранить как». В коде используйте объект Файл, СтрокаСоединенияИнформационнойБазы() и КаталогВременныхФайлов(), а в клиент-серверном режиме помните, что сервер видит свои диски, а не диски пользователя.

Частые вопросы

Где физически находится файл, прикрепленный к документу в 1С?

В типовых конфигурациях по умолчанию — внутри информационной базы в виде двоичных данных, отдельного файла на диске нет. Исключение — настроенные тома хранения файлов, пути к которым задаются в разделе администрирования «Настройки работы с файлами».

Как узнать путь к базе, если окно запуска не открывается?

Откройте в блокноте файл %APPDATA%\1C\1CEStart\ibases.v8i — в нём перечислены все базы списка с параметрами подключения, включая пути к файловым базам. Также путь можно увидеть в свойствах ярлыка, если он запускает конкретную базу напрямую.

Можно ли узнать путь к базе, находясь внутри открытой 1С?

Да, программно: функция СтрокаСоединенияИнформационнойБазы() возвращает строку подключения, где для файловой базы указан параметр File с путём. Через интерфейс без инструментов разработчика эта информация обычно недоступна.

Почему код с правильным путём не находит файл в клиент-серверной базе?

Серверный код выполняется на сервере 1С и видит его файловую систему, а не диски вашего компьютера. Передавайте файл через временное хранилище (НачатьПомещениеФайла / ПоместитьВоВременноеХранилище) либо используйте путь, доступный с сервера.

Как узнать, откуда была загружена внешняя обработка?

Если обработка открыта через «Файл → Открыть», путь — тот, что вы указали в диалоге. Если она загружена в справочник дополнительных отчетов и обработок, исходный путь не сохраняется — в базе хранится сам файл, и связь с исходным расположением теряется.

Работает ли получение путей в веб-клиенте?

Ограниченно. Браузер не даёт прямого доступа к файловой системе, поэтому выбор файлов выполняется через стандартные диалоги загрузки, а полный локальный путь в большинстве случаев недоступен — доступно только имя файла и его содержимое.