Где на самом деле хранится информационная база 1С и как добраться до её файлов
Содержание
Быстрее всего найти базу 1С на сервере через строку подключения. Выделите базу в окне запуска 1С:Предприятия: внизу окна будет File="D:\Bases\Buh" (файловая база) или Srvr="srv1c";Ref="buh" (клиент-серверная). В первом случае ищите в этой папке файл 1Cv8.1CD. Во втором базы как файла нет: данные лежат в СУБД, а имя базы в MS SQL или PostgreSQL смотрят в консоли кластера.
Частая ошибка — искать на сервере 1С папку с именем из Ref. Её там нет. Ref — это имя базы в кластере, а таблицы хранятся на сервере СУБД, который может стоять на другой машине. Ниже — все способы вычислить точный путь к файлам и для файлового, и для серверного варианта.
Файловая или клиент-серверная: определяем тип базы
От типа зависит, что вы вообще ищете: папку с файлом или базу в СУБД.
| Признак | Файловая база | Клиент-серверная база |
|---|---|---|
| Строка подключения | File="путь к каталогу" | Srvr="сервер";Ref="имя" |
| Где данные | один файл 1Cv8.1CD | таблицы в MS SQL, PostgreSQL или другой СУБД |
| Журнал регистрации | папка 1Cv8Log рядом с 1Cv8.1CD | каталог кластера в srvinfo |
| Чем администрировать | проводник, права на папку | консоль администрирования серверов, rac |
Есть и третий вариант — веб-строка ws="http://server/buh". Это база, опубликованная на веб-сервере. Сама база при этом всё равно файловая или серверная, и это видно в файле публикации default.vrd (о нём ниже).
Путь к базе в окне запуска и в работающей программе
В окне запуска 1С:Предприятия
- Запустите ярлык 1С:Предприятие (это
1cestart.exe). - Выделите нужную базу в списке одним щелчком.
- Прочитайте строку внизу окна под списком — это и есть строка подключения.
- Чтобы скопировать путь, нажмите Изменить: на первом шаге мастера видно тип подключения, на втором — каталог или пару «кластер серверов + имя базы».
Если в строке стоит буква сетевого диска (Z:\Bases\Buh), на сервере этот путь не существует. Откройте командную строку на рабочем месте и выполните net use — команда покажет, какой сетевой ресурс скрывается за буквой Z:.
Из открытой базы
Если база уже запущена, путь можно узнать, не выходя из неё. В интерфейсе «Такси» откройте главное меню (кнопка с тремя полосками в заголовке окна) и выберите Справка → О программе. В окне есть строка с информационной базой и её строкой подключения.
В Конфигураторе то же окно открывается через Справка → О программе. Программисту хватит одной строки во встроенном языке:
Сообщить(СтрокаСоединенияИнформационнойБазы());
Функция возвращает ту же строку File=... или Srvr=...;Ref=..., что и окно запуска.
Файлы списка баз: ibases.v8i и 1cestart.cfg
Список баз в окне запуска хранится не в реестре Windows, а в обычных текстовых файлах. Это удобно, когда 1С на компьютере не запускается или баз в списке десятки.
📁 Где лежат файлы:
%APPDATA%\1C\1CEStart\ibases.v8i— личный список баз пользователя;%APPDATA%\1C\1CEStart\1cestart.cfg— настройки стартера, в том числе ссылки на общие списки баз;%ALLUSERSPROFILE%\1C\1CEStart\1cestart.cfg— настройки для всех пользователей компьютера.
Откройте ibases.v8i блокнотом. Каждая база — отдельный блок:
[Бухгалтерия предприятия]
Connect=Srvr="srv1c";Ref="buh_2024";
ID=6f1c2a8e-...
Folder=/
Строка Connect= и есть ответ на вопрос, где база. Если в 1cestart.cfg есть строка CommonInfoBases=\\fs01\1c\ibases.v8i, список баз раздаётся из общего файла. Откройте его — там те же блоки для всех сотрудников.
Базы, опубликованные на веб-сервере
Для строки ws="http://..." найдите на сервере IIS или Apache каталог публикации. В нём лежит файл default.vrd. Атрибут ib внутри содержит настоящую строку подключения:
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
base="/buh"
ib="Srvr="srv1c";Ref="buh_2024";">
Кавычки в XML записаны как ", читается это как Srvr="srv1c";Ref="buh_2024";.
Как найти базу 1С на сервере через консоль администрирования
Для клиент-серверной базы главный инструмент — Консоль администрирования серверов 1С:Предприятия. Она показывает, на каком сервере СУБД лежат данные и как называется база в СУБД.
Пошагово
- Откройте консоль на сервере 1С или на машине администратора.
- Раскройте ветку:
Central 1C:Enterprise 8.3 servers → имя сервера → Кластеры → кластер → Информационные базы. - Найдите базу с именем из
Ref. - Откройте её свойства. Консоль попросит логин и пароль администратора информационной базы — это пользователь 1С с административными правами, а не администратор Windows.
- Посмотрите поля Сервер баз данных, Тип СУБД и База данных.
Поле База данных — это имя базы в MS SQL или PostgreSQL. Оно может не совпадать с Ref: в кластере база называется buh, а в СУБД — buh_prod_2019. Именно его потом ищут на сервере СУБД.
Если консоль не открывается и пишет, что класс не зарегистрирован, зарегистрируйте компонент консоли от имени администратора: regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll". Версия в пути должна совпадать с версией сервера 1С.
Через утилиту rac
На Linux или без графической консоли то же самое делают через сервер администрирования ras и клиент rac. Служба ras должна быть запущена (по умолчанию порт 1545).
rac cluster list
rac infobase summary list --cluster=<uuid кластера>
Первая команда даёт идентификатор кластера, вторая — список баз с их UUID. Подробные свойства базы, включая сервер и имя базы в СУБД, выводит команда rac infobase info с параметрами кластера, базы и учётной записи администратора базы. Точный набор ключей смотрите в rac help infobase.
Где физически лежат файлы базы на сервере СУБД
Зная сервер и имя базы из консоли, можно дойти до файлов на диске. Это нужно, когда кончается место, переносите базу или проверяете бэкапы.
MS SQL Server
Подключитесь к серверу через SQL Server Management Studio и выполните запрос:
SELECT name, physical_name, size * 8 / 1024 AS size_mb
FROM sys.master_files
WHERE database_id = DB_ID('buh_prod_2019');
Запрос покажет два или больше файла: .mdf с данными и .ldf с журналом транзакций, с полными путями и размером в мегабайтах.
PostgreSQL
Здесь у базы нет отдельного файла с её именем. Каталог данных и номер базы узнают так:
SHOW data_directory;
SELECT oid, datname FROM pg_database WHERE datname = 'buh_prod_2019';
Файлы базы лежат в подкаталоге base/<oid> внутри каталога данных. Если oid равен 16384, путь будет вида /var/lib/postgresql/<версия>/main/base/16384.
Не копируйте и не переносите файлы СУБД при работающей службе. Для переноса и резервной копии используйте средства СУБД (backup в MS SQL, pg_dump в PostgreSQL) или выгрузку .dt из Конфигуратора.
Каталог srvinfo и реестр кластера 1CV8Clst.lst
Сервер 1С хранит описание кластера в рабочем каталоге srvinfo. Оттуда можно вытащить список всех баз, даже когда консоль недоступна.
Где искать srvinfo
| Система | Каталог по умолчанию |
|---|---|
| Windows | C:\Program Files\1cv8\srvinfo |
| Linux | /home/usr1cv8/.1cv8/1C/1cv8 |
Путь мог быть изменён при установке. Точное значение задаёт ключ -d в командной строке службы агента сервера (ragent.exe). Посмотреть его в PowerShell:
Get-CimInstance Win32_Service |
Where-Object { $_.PathName -like "*ragent*" } |
Select-Object Name, PathName
В выводе будет что-то вроде -d "D:\1C\srvinfo" — это и есть рабочий каталог. Там же видны порты: -port 1540 и -regport 1541.
Что внутри
📂 Основное содержимое:
reg_1541— каталог кластера; число в имени совпадает с портом менеджера кластера;reg_1541\1CV8Clst.lst— реестр кластера: список баз, серверов СУБД и имён баз данных;reg_1541\<GUID>— подкаталоги по одному на каждую базу, имя — её уникальный идентификатор.
Файл 1CV8Clst.lst текстовый, но в одну длинную строку со скобками. Откройте его копию в редакторе и найдите имя базы: рядом будут её GUID, сервер СУБД и имя базы данных.
Не правьте 1CV8Clst.lst вручную на работающем сервере. Испорченный реестр приводит к тому, что кластер не стартует и все базы недоступны. Для анализа делайте копию.
Поиск через журнал регистрации и открытые файлы
Когда строки подключения под рукой нет, базу вычисляют по следам, которые она оставляет на диске.
По журналу регистрации
У файловой базы журнал лежит в папке 1Cv8Log рядом с 1Cv8.1CD. У серверной — в srvinfo\reg_1541\<GUID>\1Cv8Log.
Отсюда приём: если известен GUID базы (из 1CV8Clst.lst или rac infobase summary list), откройте подкаталог с этим GUID. По дате изменения файлов журнала видно, живая база или заброшенная. Это помогает, когда в кластере три базы с похожими именами и непонятно, в какой реально работают.
По поиску файла 1Cv8.1CD
Для файловых баз ищите сам файл данных. В PowerShell:
Get-ChildItem -Path D:\ -Filter 1Cv8.1CD -Recurse -ErrorAction SilentlyContinue |
Select-Object FullName, @{n='SizeMB';e={[math]::Round($_.Length/1MB)}}, LastWriteTime
На Linux: find / -name 1Cv8.1CD 2>/dev/null. Найдутся и рабочие базы, и забытые копии. Свежая дата LastWriteTime подсказывает, какая из них используется.
По открытым файлам и процессам
Если база в общей папке, откройте на сервере fsmgmt.msc → Открытые файлы. Там видно, какой пользователь держит открытым какой 1Cv8.1CD, и полный путь к нему.
Второй способ — Монитор ресурсов (resmon). На вкладке ЦП в поле поиска раздела Связанные дескрипторы введите 1Cv8.1CD. Монитор покажет процесс (1cv8.exe или 1cv8c.exe) и полный путь к открытой базе.
Служебные файлы блокировки рядом с 1Cv8.1CD появляются, пока база открыта. Не удаляйте их, пока в базе работают люди: оборвутся сеансы, а незаписанные данные пропадут. Сначала убедитесь через «Открытые файлы», что базу никто не держит.
Почему базу не находят: частые ошибки
- 🔍 Ищут папку с именем из
Refна сервере 1С. Данные серверной базы — в СУБД, путь к ним даёт только консоль кластера или реестр1CV8Clst.lst. - 🗂 Путают имя базы в кластере и в СУБД. Бэкап делают с
buh, а рабочая база в SQL называется иначе. В итоге копируется пустая или тестовая база. - 💾 Берут путь с сетевым диском.
Z:\существует только у пользователя; на сервере нужен локальный путь общей папки (видно вfsmgmt.msc→ Общие ресурсы). - 🔐 Не хватает прав. В свойства базы в консоли не пускает без пароля администратора информационной базы. В каталог
srvinfoбез прав локального администратора тоже не попасть. - 🧭 Смотрят не тот кластер. Если на сервере работают две версии платформы или несколько кластеров на разных портах, у каждого свой каталог
reg_<порт>. - 📋 Открывают общий список баз и правят его. Изменение в общем
ibases.v8iпоCommonInfoBasesсразу видят все пользователи — меняйте его осознанно.