Как узнать сервер 1С, СУБД и каталог файлов информационной базы

· 9 мин

Содержание

Серверная база 1С находится в двух местах сразу. Сервер 1С:Предприятия хранит только её регистрацию: имя, адрес кластера и параметры подключения к СУБД. Сами данные лежат в базе MS SQL Server или PostgreSQL, а уже СУБД держит файлы на диске. Поэтому путь ищут по цепочке: строка подключения у пользователя → свойства базы в кластере → файлы в СУБД.

Начать проще всего с окна запуска 1С. Выделите базу в списке: внизу окна появится строка вида Srvr="srv-1c";Ref="buh";. Здесь srv-1c — адрес сервера 1С, buh — имя информационной базы в кластере. Если вместо этого видите File="D:\Bases\Buh", база файловая, и искать её надо в указанном каталоге.

Какая у вас база: файловая, серверная или через веб

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

Начало строкиТипГде лежат данные
File="..."файловаякаталог с файлом 1Cv8.1CD
Srvr="...";Ref="...";клиент-сервернаябаза в СУБД, зарегистрирована в кластере 1С
ws="http://..."через веб-серверза публикацией скрывается файловая или серверная база

Внутри уже запущенной программы та же информация есть в окне Справка → О программе. Там показан сервер и имя базы (или каталог для файловой).

Разработчику путь отдаёт функция СтрокаСоединенияИнформационнойБазы(). Её удобно вывести через Сообщить() во внешней обработке, если доступ к окну запуска закрыт.

Нестандартный порт пишут через двоеточие: Srvr="srv-1c:1641". Это значит, что кластер зарегистрирован не на 1541, а на 1641. Запомните это: дальше пригодится, когда будете искать каталог кластера.

Что показывает строка подключения?

Свойства базы в консоли администрирования серверов 1С

Имя базы в кластере и имя базы данных в СУБД могут не совпадать. База buh в 1С вполне может храниться в SQL под именем buh_2019_copy. Поэтому реальное имя смотрят только в свойствах базы в кластере.

Порядок действий:

  1. Запустите Администрирование серверов 1С Предприятия из меню «Пуск». Консоль ставится вместе с сервером 1С.
  2. Если сервера нет в дереве, добавьте его: правой кнопкой по Central 1C:Enterprise 8.3 servers → Создать → Центральный сервер 1С:Предприятия 8.3, укажите имя компьютера и порт агента (по умолчанию 1540).
  3. Раскройте сервер → Кластеры → нужный кластер → Информационные базы.
  4. Правой кнопкой по базе → Свойства. Консоль запросит логин и пароль администратора этой информационной базы.
  5. В окне свойств смотрите поля Сервер баз данных, Тип СУБД, База данных и Пользователь сервера БД.

Поле Сервер баз данных бывает с именем экземпляра: sql-srv\SQL2019. Значит, на сервере стоит именованный экземпляр SQL Server, а не экземпляр по умолчанию.

Если консоль не открывается и пишет об ошибке компоненты, перерегистрируйте radmin.dll из каталога bin той версии платформы, что стоит на сервере: regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll" от имени администратора. Версия консоли и сервера должна совпадать.

То же самое из командной строки через rac

На Linux и на серверах без графической консоли используют утилиту rac. Ей нужна запущенная служба ras (сервер администрирования, порт по умолчанию 1545).

rac cluster list
rac infobase summary list --cluster=<uuid-кластера>
rac infobase info --cluster=<uuid-кластера> --infobase=<uuid-базы> \
    --infobase-user=Администратор --infobase-pwd=пароль

Первая команда выдаёт идентификатор кластера, вторая — список баз с их идентификаторами. Третья показывает полные свойства, среди них db-server, dbms и db-name. Если формат параметров в вашей версии отличается, смотрите rac help infobase.

Где сервер 1С хранит список баз

Реестр кластера лежит в каталоге srvinfo. Внутри есть папка reg_<порт менеджера>, обычно reg_1541, а в ней файл 1CV8Clst.lst со списком баз и их параметрами подключения к СУБД.

Где искать srvinfo:

  • 🪟 Windows: откройте services.msc, свойства службы «Агент сервера 1С:Предприятия 8.3». В строке исполняемого файла после ключа -d указан каталог, часто C:\Program Files\1cv8\srvinfo.
  • 🐧 Linux: по умолчанию /home/usr1cv8/.1cv8/1C/1cv8. Точный путь виден в параметрах запуска ragent (ps aux | grep ragent).

Файл 1CV8Clst.lst читают только глазами. Править его руками при работающем агенте нельзя: можно потерять регистрацию всех баз кластера.

Где лежат файлы базы в Microsoft SQL Server

Узнав имя базы данных и сервер СУБД, переходим к файлам. В SQL Server у каждой базы минимум два файла: данные .mdf и журнал транзакций .ldf.

Через SQL Server Management Studio:

  1. Подключитесь к серверу из поля Сервер баз данных.
  2. В Обозревателе объектов раскройте Базы данных, правой кнопкой по нужной → Свойства.
  3. Перейдите на страницу Файлы. Колонки Путь и Имя файла дают полный адрес каждого файла.

Быстрее запросом:

SELECT name, physical_name, size * 8 / 1024 AS size_mb
FROM sys.master_files
WHERE database_id = DB_ID('buh');

Размер в sys.master_files хранится в страницах по 8 КБ, поэтому умножаем на 8 и делим на 1024, чтобы получить мегабайты. База на 40 000 страниц — это 312 МБ.

Если путь при установке не меняли, файлы лежат в каталоге вида C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA. Номер MSSQL16 зависит от версии SQL Server, а MSSQLSERVER меняется на имя экземпляра, если он именованный.

Если имя базы данных неизвестно

Бывает, что пароля администратора информационной базы нет, а на SQL Server десятки баз. Базу 1С отличают по служебным таблицам: в каждой есть Config, Params, DBSchema и IBVersion. Обычные таблицы данных названы по шаблону _Reference12, _Document45 и так далее.

Чтобы сузить круг, отсортируйте базы по размеру и по дате последнего изменения данных. Рабочая база, в которой каждый день проводят документы, обычно самая крупная из похожих. Окончательно подтверждает выбор только сверка со свойствами базы в кластере.

Файлы .mdf и .ldf нельзя скопировать, пока SQL Server держит базу. Даже если копирование удалось через теневую копию, такой файл может не подключиться. Для переноса делайте резервную копию средствами SQL (BACKUP DATABASE) или выгрузку .dt из Конфигуратора.

Как найти базу 1С в PostgreSQL на диске

В PostgreSQL файлы базы не названы её именем. Каталог данных кластера СУБД содержит папку base, а в ней подкаталоги с числовыми именами — это идентификаторы баз (OID).

Подключитесь через psql или pgAdmin и выполните:

SHOW data_directory;

SELECT oid, datname, pg_size_pretty(pg_database_size(datname)) AS size
FROM pg_database
WHERE datname = 'buh';

Допустим, data_directory вернул /var/lib/pgpro/1c-16/data, а oid базы равен 16384. Тогда файлы таблиц лежат в /var/lib/pgpro/1c-16/data/base/16384.

Каталог данных зависит от сборки и ОС:

СборкаТипичный каталог данных
Postgres Pro для 1С на Linux/var/lib/pgpro/1c-<версия>/data
PostgreSQL из репозитория Debian/Ubuntu/var/lib/postgresql/<версия>/main
Сборки для Windowsпапка data внутри каталога установки

Таблица даёт ориентир, а точный ответ всегда у команды SHOW data_directory.

Базу могли положить в отдельное табличное пространство на другом диске. Проверьте:

SELECT spcname, pg_tablespace_location(oid) FROM pg_tablespace;

Пустой путь у pg_default и pg_global — норма: они живут в основном каталоге данных.

Копировать каталог base/<oid> отдельно бессмысленно: без остальных файлов кластера PostgreSQL он не поднимется. Для копии одной базы используют pg_dump или выгрузку .dt.

Автономный сервер и файловая база, открытая «как серверная»

Иногда база выглядит серверной, хотя никакого кластера и СУБД нет. Так бывает с автономным сервером ibsrv, который появился в платформе 8.3.14. Он обслуживает одну базу и отдаёт её по HTTP, а данные хранит в обычной файловой базе.

Где искать данные в этом случае:

  • 🔎 Посмотрите, с какими параметрами запущен процесс ibsrv: путь к базе передаётся ключом --db-path.
  • 📁 Если ibsrv настраивали через файл конфигурации, путь к базе записан в нём. Полный список ключей выдаёт ibsrv --help.
  • 🌐 У пользователей такая база подключена как веб-база (ws="http://..."), без Srvr=.

Второй частый случай — файловая база в общей сетевой папке. Строка подключения File="\\fs01\Bases\Buh" значит, что база лежит на файловом сервере fs01 в каталоге Bases\Buh. Сервер в сети есть, но «серверной» в терминах 1С она не становится: кластер 1С и СУБД ей не нужны.

Списки баз, параметры запуска и публикации на веб-сервере

Когда к консоли кластера доступа нет, адрес базы находят по следам на рабочих местах.

Файл ibases.v8i

Список баз пользователя хранится в %APPDATA%\1C\1CEStart\ibases.v8i. Вставьте эту строку в адресную строку Проводника: переменная %APPDATA% раскроется в папку текущего пользователя. Файл текстовый, у каждой базы есть строка Connect=.

[Бухгалтерия]
Connect=Srvr="srv-1c";Ref="buh";
ID=...

Общие списки баз из 1cestart.cfg

Администраторы часто раздают базы централизованно. Тогда в файле 1cestart.cfg (лежит рядом с ibases.v8i, а общий — в C:\ProgramData\1C\1CEStart) есть строка CommonInfoBases= с путём к общему .v8i на сетевом ресурсе. Откройте этот файл и найдите в нём нужную базу.

Ярлыки и параметры командной строки

Ярлык может запускать базу напрямую. Откройте свойства ярлыка и посмотрите поле Объект:

  • /S srv-1c\buh — серверная база buh на сервере srv-1c;
  • /F "D:\Bases\Buh" — файловая база;
  • /IBConnectionString — дальше идёт строка подключения целиком.

Опубликованная база: файл default.vrd

Если у пользователей ws="http://...", ищите каталог публикации на веб-сервере. Для IIS это обычно папка внутри C:\inetpub\wwwroot, для Apache — каталог из директивы Alias в конфигурации. В каталоге публикации лежит default.vrd, а в нём атрибут ib со строкой подключения:

<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
       base="/buh"
       ib="Srvr=&quot;srv-1c&quot;;Ref=&quot;buh&quot;;"/>

Дальше идите по цепочке выше: консоль кластера → СУБД → файлы.

Ошибки, из-за которых ищут не там или копируют не то

ОшибкаЧем оборачиваетсяКак правильно
Ищут на сервере 1С файл базыФайла там нет, на сервере 1С только реестр и кэшиСмотреть сервер СУБД в свойствах базы
Считают, что имя в кластере = имя в SQLБэкап делают не той базыБрать поле База данных из свойств
Не замечают порт в Srvr="srv:1641"Ищут базу в reg_1541 и не находятОткрыть reg_1641 или нужный кластер в консоли
Путают сервер 1С и сервер СУБДСтавят задачи обслуживания не на ту машинуСервер СУБД — поле Сервер баз данных
Копируют 1Cv8.1CD при работающих пользователяхКопия битая, при открытии ошибка форматаКопировать после выхода всех, или выгружать .dt
Удаляют папки сеансовых данных в srvinfo «для порядка»Пропадает регистрация базЧистить только по инструкции и при остановленной службе

Последний пункт стоит разобрать подробнее. Очистка сеансовых данных сервера 1С действительно помогает при части сбоев. Но её делают только при остановленной службе агента, после предупреждения пользователей: все сеансы оборвутся. Каталог reg_<порт> и файл 1CV8Clst.lst при этом не трогают.

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

Можно ли узнать, где лежит база, без прав администратора кластера?
Адрес сервера и имя базы видно в окне запуска и в ibases.v8i. Сервер СУБД и имя базы данных в консоли кластера покажут только с паролем администратора информационной базы.
Как узнать размер серверной базы 1С?
В MS SQL — колонка размера в sys.master_files или процедура sp_spaceused в контексте базы. В PostgreSQL — функция pg_database_size.
Почему в консоли кластера нет базы, к которой подключаются пользователи?
Скорее всего, вы открыли не тот кластер или не тот сервер. Проверьте порт в строке подключения и адрес из Srvr=: он может указывать на другую машину.
Где на сервере 1С лежит кэш, а где база?
Кэш и сеансовые данные лежат в каталоге srvinfo сервера 1С. Данные базы там не хранятся, они всегда в СУБД.
Можно ли перенести базу, просто скопировав файлы СУБД на другой сервер?
Надёжнее через резервную копию СУБД или выгрузку .dt. После переноса базу заново регистрируют в кластере нового сервера и указывают новый сервер СУБД.