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

Администрирование · 11 мин

Как прописать путь в 1С: к файлам, каталогам и базе данных

Как правильно указать путь в 1С: к файлам, каталогам и информационной базе. Файловый и клиент-серверный режим, сетевые пути, типичные ошибки и примеры кода.

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

Ключевой момент, который нужно понять до начала работы: путь всегда существует «от имени» какого-то процесса и на каком-то компьютере. Путь, указанный в настройках обмена, будет искаться на том компьютере, где выполняется код — на клиенте или на сервере 1С. Именно из-за непонимания этого различия возникает большинство ошибок вида «каталог не обнаружен», хотя пользователь «точно видит папку у себя на диске».

Ниже разобраны основные сценарии: подключение базы по пути, указание каталогов обмена, работа с путями в коде, сетевые пути, а также проверка результата и типичные ошибки.

Как указать путь к информационной базе при подключении

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

Важно указывать именно каталог, а не сам файл 1Cv8.1CD. Если в поле пути попадёт полный путь с именем файла, база не откроется. Правильный вариант выглядит так: D:\Bases\Trade, а неправильный — D:\Bases\Trade\1Cv8.1CD.

Если база лежит на сетевом ресурсе, путь указывается в формате UNC: \\Server\Bases\Trade. Подключение сетевого диска (например, Z:) тоже работает, но менее надёжно: буква диска может не подключиться при входе пользователя, и база «пропадёт» из списка. UNC-путь от этой проблемы свободен.

Добавление файловой базы в список
  1. 1
    Откройте стартер 1С (ярлык «1С:Предприятие»).
  2. 2
    Нажмите кнопку «Добавить» и выберите добавление существующей базы.
  3. 3
    Введите понятное имя базы — оно будет отображаться в списке.
  4. 4
    Укажите каталог базы через кнопку обзора или вручную.
  5. 5
    Завершите мастер и запустите базу для проверки.

Как прописать путь к файлу или каталогу в настройках обмена

Во многих типовых конфигурациях — обмен с банком, выгрузка каталога на сайт, синхронизация между базами — требуется указать каталог обмена или файл выгрузки. Эти поля обычно находятся в настройках соответствующего обмена: например, «Администрирование → Обмены данными» или в карточке настройки синхронизации.

Здесь действует главное правило: каталог должен существовать и быть доступен тому процессу, который выполняет обмен. Если обмен запускается интерактивно пользователем, путь проверяется на компьютере пользователя. Если обмен выполняется регламентным заданием в клиент-серверной базе, путь проверяется на сервере 1С — и локальная папка «C:\Обмен» пользователя серверу недоступна и невидима.

Поэтому для автоматических обменов используйте сетевой каталог с UNC-путём, например \\Server1C\Exchange\Bank. Убедитесь, что у учётной записи, под которой работает служба сервера 1С (обычно специальная учётная запись USR1CV8), есть права на чтение и запись в этот каталог — и на уровне общего доступа, и на уровне файловой системы NTFS.

Как указать путь в коде 1С: встроенный язык

При разработке или доработке конфигурации пути задаются строками. Для работы с файлами и каталогами используются объекты «Файл», «ДиалогВыбораФайла», а также методы для поиска файлов. Простейший пример проверки существования каталога:

Каталог = Новый Файл("\\Server\Exchange\Upload");

Если Не Каталог.Существует() Тогда

Сообщить("Каталог обмена недоступен: " + Каталог.ПолноеИмя);

КонецЕсли;

Обратите внимание на разделители. В строках встроенного языка 1С обратный слэш не требует экранирования, в отличие от многих других языков, поэтому путь пишется как есть: "C:\Temp\file.txt". Прямой слэш «/» тоже допустим — платформа корректно обрабатывает оба варианта, что упрощает переносимость кода между Windows и Linux.

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

bsl
ПутьКФайлу = "\\Server\Exchange\order.xml";
Файл = Новый Файл(ПутьКФайлу);
Если Файл.Существует() Тогда
    Сообщить("Файл найден, размер: " + Файл.Размер());
Иначе
    Сообщить("Файл не найден: " + ПутьКФайлу);
КонецЕсли;

Файловый и клиент-серверный режим: где выполняется код

В файловом режиме всё просто: код выполняется на компьютере пользователя, и любой путь интерпретируется относительно этого компьютера. Если пользователь видит папку в проводнике — 1С её тоже увидит (при наличии прав).

В клиент-серверном режиме код делится на клиентский и серверный. Директивы компиляции &НаКлиенте и &НаСервере определяют, где выполняется процедура. Запись файла в процедуре &НаСервере произойдёт на диске сервера, а не на компьютере пользователя. Чтобы передать файл между клиентом и сервером, используются механизмы временного хранилища: ПоместитьВоВременноеХранилище и ПолучитьИзВременногоХранилища, либо методы работы с файлами в асинхронном режиме.

Практический вывод: если обработка формирует файл, который должен получить пользователь, формируйте его на сервере во временном хранилище, а затем сохраняйте на клиенте через диалог сохранения. Прямая запись на диск клиента с сервера невозможна в принципе — это ограничение архитектуры, а не ошибка настройки.

Где указывать путь

Локальный путь (C:\, D:\)

Подходит для файлового режима и интерактивной работы на конкретном компьютере. Не работает для серверных регламентных заданий.

Сетевой UNC-путь (\\Сервер\Папка)

Универсальный вариант для клиент-серверного режима и обменов. Требует настройки прав доступа для учётной записи сервера 1С.

Временное хранилище

Для передачи файлов между клиентом и сервером в коде. Не требует сетевых папок, но файл живёт ограниченное время.

Пути к внешним обработкам, отчётам и лицензиям

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

Путь к файлам лицензий обычно не требует ручной настройки: платформа сама размещает их в служебных каталогах (например, в папке conf каталога установки или в профиле пользователя). Вмешательство в эти каталоги нужно только при переносе лицензий или восстановлении после сбоя, и делать это следует аккуратно, с резервной копией.

Список информационных баз стартера хранится в файле ibases.v8i в профиле пользователя. Зная это, можно централизованно распространять список баз пользователям — скопировав подготовленный файл в их профили, вместо ручного добавления путей на каждом рабочем месте.

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

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

Для сетевых путей проверяйте доступность именно от имени той учётной записи, под которой будет выполняться операция. Самый надёжный способ для серверных заданий — временно включить в настройках обмена запись протокола или журнала и посмотреть, какую ошибку возвращает задание. Текст «каталог не обнаружен» почти всегда означает либо неверный путь, либо отсутствие прав.

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

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

Существование пути
Норма

Проводник или 1С открывает каталог без ошибок

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

Сообщение «путь не найден» или «каталог не обнаружен»

Права доступа
Норма

В папке можно создать и удалить тестовый файл

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

Ошибка «отказано в доступе» при записи

Работа регламентного задания
Норма

Задание завершается без ошибок, файлы появляются в каталоге

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

В журнале регистрации ошибки доступа к файлам

Типичные ошибки при указании путей

Первая и самая распространённая ошибка — указание локального пути для серверного процесса, о ней подробно сказано выше. Вторая — указание пути к файлу там, где ожидается каталог, и наоборот. Внимательно читайте подпись поля: «Каталог обмена» и «Файл выгрузки» — разные сущности.

Третья группа ошибок связана с правами: путь верный, но учётная запись не имеет доступа. Помните, что права проверяются в двух местах — на вкладке «Доступ» общей папки и на вкладке «Безопасность» файловой системы. Ограничение на любой из них заблокирует запись. Четвёртая ошибка — использование подключённого сетевого диска в настройках обмена: буква диска существует только в сессии конкретного пользователя, и служба сервера её не увидит.

Типичные ошибки
01
Локальный путь C:\Обмен в настройках регламентного обмена — задание падает, так как папка ищется на сервере.
02
Путь к файлу вместо каталога при добавлении базы — база не открывается из списка.
03
Сетевой диск Z:\ вместо UNC-пути — путь недоступен для службы сервера и после перелогина пользователя.
04
Нет прав на запись для учётной записи сервера — файлы не создаются, хотя путь существует.
05
Двойные обратные слэши в середине пути или лишние пробелы в конце строки — путь не распознаётся.
Итог

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

Путь в 1С всегда привязан к тому, кто его использует: пользователю на клиенте или службе сервера 1С. Для автоматических обменов используйте UNC-пути с правами для учётной записи сервера, проверяйте доступность тестовой записью файла и не забывайте, что в файловом и клиент-серверном режимах один и тот же путь означает разные места.

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

Как узнать путь к текущей информационной базе?

Выделите базу в списке стартера 1С и нажмите кнопку настройки или посмотрите строку в нижней части окна списка — там отображается путь подключения. В клиент-серверном режиме вместо пути будут указаны имя сервера и имя базы. Также путь виден в файле ibases.v8i в профиле пользователя.

Почему 1С пишет «каталог не обнаружен», хотя папка существует?

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

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

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

Какой путь указывать для обмена между двумя базами 1С?

Если обмен идёт через каталог, создайте сетевую папку, доступную обеим базам (или серверу, если базы клиент-серверные), и укажите её UNC-путь в настройках синхронизации с обеих сторон. Альтернатива — прямое подключение через COM или веб-сервисы, тогда каталог не нужен вовсе.

Как передать файл с сервера 1С на компьютер пользователя?

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

Где хранится список баз, чтобы не прописывать пути на каждом компьютере?

Список хранится в файле ibases.v8i в профиле пользователя (обычно в папке AppData\Roaming\1C\1CEStart). Подготовленный файл с нужными путями можно скопировать в профили других пользователей вручную или через групповые политики — базы появятся в списке автоматически.