Пути в 1С без ошибок: от списка баз до кода обработки
Содержание
Путь к файлу в 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С нажмите
Добавить. - Выберите
Добавление в список существующей информационной базы. - Введите имя базы для списка.
- Тип расположения —
На данном компьютере или на компьютере в локальной сети. - В поле каталога укажите папку, где лежит
1Cv8.1CD, или выберите её кнопкой с многоточием. - Оставьте предложенную версию платформы или задайте нужную и нажмите
Готово.
Кнопка выбора каталога открывает стандартный проводник. Если перейти через «Сеть» к общей папке, в поле сразу попадёт UNC-путь вида \\fs01\1c$\Buh.
Пути к хранилищу конфигурации
Хранилище нужно, когда конфигурацию дорабатывают несколько разработчиков. Адрес хранилища — тоже путь, и у него три формы.
| Форма адреса | Пример | Когда подходит |
|---|---|---|
| Каталог (локальный или UNC) | \\fs01\repo\buh | 2–3 разработчика в одной сети |
| Сервер хранилища | tcp://srv1c/buh | Команда побольше, хранилище на отдельной машине |
| Веб-публикация | http://web01/repo/repo.1ccr | Удалённые разработчики, доступ через HTTP |
Подключение к хранилищу
- Откройте базу в режиме Конфигуратора.
- Меню
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу. - В поле «Путь хранилища» введите адрес из таблицы.
- Укажите пользователя и пароль хранилища.
- Подтвердите замену конфигурации базы конфигурацией из хранилища, если 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С требует её перезапуска. Все сеансы пользователей при этом оборвутся, поэтому делайте это вне рабочего времени и предупредите людей заранее.
Общий список баз для всего офиса
Когда пользователей больше пяти, прописывать пути руками на каждом ПК неудобно. Решение — общий файл списка баз.
- Настройте список баз на одном компьютере.
- Скопируйте файл
ibases.v8iв общую папку, например\\fs01\1c$\bases.v8i. - На рабочих местах откройте в окне запуска
Настройкаи добавьте этот файл в список общих информационных баз.
После этого базы из общего файла появятся у всех. Поменять путь к базе можно в одном месте.
Пути в параметрах запуска и конфигурационных файлах
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$) скрывает папку из сетевого обзора. Путь работает как обычно, но случайный пользователь не наткнётся на базы в «Сети».