Пути в 1С без ошибок: от списка баз до кода обработки

· 9 мин

Содержание

Путь к файлу в 1С прописывают в одном из четырёх мест: в окне добавления информационной базы, в адресе хранилища конфигурации, в строке запуска 1cv8.exe (ключи /F, /S, /WS) или в коде через ПолучитьРазделительПути(). Для файловой базы указывают каталог, а не сам файл 1Cv8.1CD. Для сетевых ресурсов надёжнее UNC-вид \\сервер\папка, чем буква подключённого диска.

Типичная ситуация: бухгалтер переехал на новый компьютер, база лежит на общем диске Z:, а 1С пишет, что не находит её. У коллеги та же папка подключена как Y:, у сервера 1С буквы нет вовсе. Путь, прописанный один раз через UNC, снимает все три проблемы сразу.

Локальный и сетевой путь: в чём разница для 1С

1С 8.3 понимает три вида адреса информационной базы. От вида зависит, где лежат данные и кто к ним обращается.

ВидПримерГде хранятся данные
Локальный каталогD:\1C\BuhНа диске этого компьютера
Сетевой каталог (UNC)\\fs01\1c$\BuhВ общей папке файлового сервера
Сервер 1С:Предприятияsrv1c + имя базы buhВ СУБД, путь к файлу не нужен
Веб-публикацияhttp://web01/buhЗа веб-сервером

Для файлового варианта внутри каталога лежит файл 1Cv8.1CD. Его имя менять нельзя, и в путь его не дописывают.

📌 Что учесть при выборе вида пути:

  • 💻 Локальный путь быстрее всего, но база доступна только с одного ПК.
  • 🌐 UNC-путь одинаков на всех компьютерах сети и не зависит от того, какая буква кому назначена.
  • 🔤 Буква диска (Z:\1C\Buh) работает, пока у каждого пользователя диск подключён одинаково. Службы Windows подключённых букв не видят.
  • 🖥️ Клиент-серверная база вообще не про файлы: указывают имя кластера и имя базы.

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

  1. В окне запуска 1С нажмите Добавить.
  2. Выберите Добавление в список существующей информационной базы.
  3. Введите имя базы для списка.
  4. Тип расположения — На данном компьютере или на компьютере в локальной сети.
  5. В поле каталога укажите папку, где лежит 1Cv8.1CD, или выберите её кнопкой с многоточием.
  6. Оставьте предложенную версию платформы или задайте нужную и нажмите Готово.

Кнопка выбора каталога открывает стандартный проводник. Если перейти через «Сеть» к общей папке, в поле сразу попадёт UNC-путь вида \\fs01\1c$\Buh.

Пути к хранилищу конфигурации

Хранилище нужно, когда конфигурацию дорабатывают несколько разработчиков. Адрес хранилища — тоже путь, и у него три формы.

Форма адресаПримерКогда подходит
Каталог (локальный или UNC)\\fs01\repo\buh2–3 разработчика в одной сети
Сервер хранилищаtcp://srv1c/buhКоманда побольше, хранилище на отдельной машине
Веб-публикацияhttp://web01/repo/repo.1ccrУдалённые разработчики, доступ через HTTP

Подключение к хранилищу

  1. Откройте базу в режиме Конфигуратора.
  2. Меню Конфигурация → Хранилище конфигурации → Подключиться к хранилищу.
  3. В поле «Путь хранилища» введите адрес из таблицы.
  4. Укажите пользователя и пароль хранилища.
  5. Подтвердите замену конфигурации базы конфигурацией из хранилища, если 1С это предложит.

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

Каталог или сервер хранилища

У файлового хранилища на общей папке есть ограничение: каждый разработчик должен иметь в ней права на запись. Любой из них может случайно удалить файлы руками в проводнике.

Сервер хранилища (crserver) снимает эту проблему. Он слушает порт 1542 по умолчанию, а корневой каталог задаётся при запуске службы. В адресе tcp://srv1c/buh часть buh — это подпапка внутри корневого каталога сервера, а не путь на диске клиента.

Если порт сервера хранилища изменён, его пишут в адресе: tcp://srv1c:1600/buh. Без порта клиент постучится на 1542 и не дождётся ответа.

UNC-пути и права на сетевые ресурсы

UNC — это адрес вида \\имя_сервера\имя_ресурса\папка. Он работает из любого места сети без подключения дисков. Для 1С это самый надёжный способ прописать путь к сетевому файлу.

Главная тонкость — от чьего имени идёт обращение. Тут правила разные.

Кто открывает файлУчётная записьЧто нужно
Файловая база у пользователяПользователь WindowsЧтение и запись в папку базы
Код на клиентеПользователь WindowsПрава пользователя на ресурс
Код на сервере 1СУчётная запись службы сервера 1С (по умолчанию USR1CV8)Права этой учётной записи на ресурс
Регламентное заданиеУчётная запись службыТо же

Отсюда типичная загадка: обработка выгрузки работает у программиста в файловой базе, а на рабочем сервере падает с ошибкой доступа. Код на сервере выполняется от имени службы, а у USR1CV8 нет прав на \\fs01\exchange.

🛠️ Как это исправить:

  • 👤 Запустить службу сервера 1С от доменной учётной записи и дать ей права на общую папку.
  • 📂 Либо выдать права на ресурс локальной учётной записи службы, если сервер и общая папка на одной машине.
  • 🚫 Не использовать в серверном коде буквы дисков: у службы нет подключённого Z:.

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

Общий список баз для всего офиса

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

  1. Настройте список баз на одном компьютере.
  2. Скопируйте файл ibases.v8i в общую папку, например \\fs01\1c$\bases.v8i.
  3. На рабочих местах откройте в окне запуска Настройка и добавьте этот файл в список общих информационных баз.

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

Пути в параметрах запуска и конфигурационных файлах

1С не хранит список баз в реестре Windows. Все пути лежат в обычных текстовых файлах в профиле пользователя.

ФайлГде лежитЧто в нём
ibases.v8i%APPDATA%\1C\1CEStart\Список баз и строки подключения
1cestart.cfg%APPDATA%\1C\1CEStart\Настройки окна запуска, ссылки на общие списки

Строка подключения в ibases.v8i

Файл можно открыть Блокнотом. Каждая база — отдельный блок:

[Бухгалтерия ООО Север]
Connect=File="\\fs01\1c$\Buh";
Folder=/
Version=8.3

[Зарплата (сервер)]
Connect=Srvr="srv1c";Ref="zup";
Folder=/

В File= пишут каталог файловой базы, в Srvr= — имя сервера 1С, в Ref= — имя базы в кластере. Для веб-публикации используется ws="http://web01/buh".

Чтобы общий список подключался без ручной настройки, в 1cestart.cfg добавляют строку:

CommonInfoBases=\\fs01\1c$\bases.v8i

Файл можно разослать групповой политикой или скриптом входа.

Путь в командной строке

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

  • 📁 /F — каталог файловой базы.
  • 🖥️ /S — сервер и имя базы через обратную косую черту.
  • 🌐 /WS — адрес веб-публикации.
  • 👤 /N и /P — имя пользователя и пароль.

Примеры для bat-файла:

rem Открыть файловую базу в режиме предприятия
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"\\fs01\1c$\Buh" /N"Администратор" /P"пароль"

rem Выгрузить серверную базу в файл .dt с журналом
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S"srv1c\buh" /N"Администратор" /P"пароль" /DumpIB"E:\Backup\buh.dt" /Out"E:\Backup\dump.log"

Номер версии в пути к 1cv8.exe подставьте свой: он совпадает с именем папки установленной платформы.

Если в пути есть пробелы, значение берут в кавычки прямо после ключа, без пробела: /F"D:\Базы 1С\Склад". Пробел между ключом и кавычкой ломает разбор строки.

К хранилищу из командной строки подключаются ключами /ConfigurationRepositoryF (адрес), /ConfigurationRepositoryN (пользователь) и /ConfigurationRepositoryP (пароль). Это удобно для ночного обновления тестовой базы из хранилища командой /ConfigurationRepositoryUpdateCfg.

Каталог шаблонов конфигураций и обновлений

Сюда установщики типовых конфигураций и обновлений распаковывают файлы. По умолчанию это %APPDATA%\1C\1cv8\tmplts, то есть папка в профиле каждого пользователя.

Список каталогов шаблонов задаётся в окне запуска: кнопка Настройка, поле со списком каталогов шаблонов конфигураций и обновлений. Если обновления ставит один администратор на всех, удобно добавить общий каталог \\fs01\1c$\tmplts. Тогда распакованное обновление будет видно из Конфигуратора на любом компьютере.

Пути к файлам в коде конфигурации и обработках

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

Четыре правила для путей в коде

  • 🧭 Определитесь с контекстом. &НаСервере видит файловую систему сервера, &НаКлиенте — компьютера пользователя.
  • ➗ Разделитель берите из платформы. ПолучитьРазделительПути() вернёт \ на Windows и / на Linux.
  • 🗂️ Временные файлы не пишите в произвольную папку. ПолучитьИмяВременногоФайла("xlsx") выдаст уникальное имя в каталоге временных файлов, после работы файл удаляют через УдалитьФайлы().
  • 📌 Не зашивайте путь в код. Храните его в константе или настройке, чтобы при переезде сервера не править конфигурацию.

Пример: запись файла в сетевую папку на сервере

&НаСервереБезКонтекста
Функция ПолныйПуть(Каталог, ИмяФайла)
	Разделитель = ПолучитьРазделительПути();
	Если Прав(Каталог, 1) <> Разделитель Тогда
		Каталог = Каталог + Разделитель;
	КонецЕсли;
	Возврат Каталог + ИмяФайла;
КонецФункции

&НаСервереБезКонтекста
Функция ВыгрузитьОтчет(Каталог)
	ПапкаНазначения = Новый Файл(Каталог);
	Если Не ПапкаНазначения.Существует() Тогда
		Возврат "Каталог не найден или нет доступа: " + Каталог;
	КонецЕсли;

	Текст = Новый ТекстовыйДокумент;
	Текст.ДобавитьСтроку("Выгрузка от " + Формат(ТекущаяДатаСеанса(), "ДФ=dd.MM.yyyy"));
	Текст.Записать(ПолныйПуть(Каталог, "vygruzka.txt"), КодировкаТекста.UTF8);
	Возврат "Готово";
КонецФункции

Вызов с клиента: Сообщить(ВыгрузитьОтчет("\\fs01\exchange\buh"));. Проверка Существует() сразу отделяет ошибку пути и прав от ошибки в самой выгрузке.

Если файл выбирает пользователь

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

Внешнюю обработку тоже открывают по пути. Если путь \\fs01\epf\obrabotka.epf прописан в справочнике дополнительных обработок, а файл переместили, обработку придётся загрузить заново.

Почему 1С не видит путь: разбор ошибок

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

Диагностика: выберите симптом

Длинные пути и кириллица

Кириллица и пробелы в путях 1С 8.3 не мешают, если путь корректно взят в кавычки. Проблемы дают очень длинные пути: глубоко вложенные папки на общем диске упираются в ограничение Windows на длину пути. Держите базы и хранилища в коротких каталогах верхнего уровня: D:\1C\Buh, \\fs01\1c$\Buh.

Символ $ в конце имени ресурса (1c$) скрывает папку из сетевого обзора. Путь работает как обычно, но случайный пользователь не наткнётся на базы в «Сети».

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

Можно ли перенести файловую базу в другую папку без переустановки?
Да. Закройте базу у всех пользователей, скопируйте каталог целиком и поменяйте путь в списке баз или в ibases.v8i.
Где посмотреть путь к уже подключённой базе?
Выделите базу в окне запуска: путь отображается внизу окна. Также его видно в ibases.v8i в строке Connect.
Нужен ли путь к файлу для клиент-серверной базы?
Нет. Указывают имя кластера серверов 1С и имя базы. Расположение файлов данных определяет СУБД.
Можно ли хранить файловую базу на сетевом диске NAS?
Можно, если NAS поддерживает протокол SMB и корректные блокировки файлов. Для нескольких активных пользователей надёжнее клиент-серверный вариант.
Стоит ли всем разработчикам подключаться к хранилищу по одному адресу?
Хранилище одно на всех. Если один подключён через локальный путь, а другой через UNC к той же папке, это работает, но при переносе хранилища путь у каждого придётся менять отдельно. UNC или tcp-адрес избавляет от этого.