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

В этой статье мы разберём 5 проверенных способов выгрузки списка баз — от встроенных функций конфигуратора до автоматизированных скриптов на PowerShell и Python. Особое внимание уделим нюансам для разных версий платформы (8.3.20+, 8.3.18–8.3.19, 8.2) и типам информационных баз (файловые, клиент-серверные). Вы узнаете, как получить не только имена баз, но и их расположение, версию конфигурации, режимы запуска и даже данные о последнем обновлении.

Важно: методы отличаются по сложности и требованиям к правам доступа. Например, для работы с ras.exe достаточно прав пользователя , а для скриптов на PowerShell может потребоваться доступ к серверу 1С:Предприятия или реестру Windows. Мы отметим эти моменты в каждом разделе.

📊 Какой тип баз 1С вы администрируете?
Только файловые
Клиент-серверные (MS SQL)
Клиент-серверные (PostgreSQL)
Смешанные
Не знаю

1. Выгрузка через конфигуратор 1С (ручной метод)

Самый простой способ — использовать встроенные возможности конфигуратора. Он подходит для разовых задач и не требует дополнительных инструментов. Минус метода: данные придётся копировать вручную или делать скриншоты.

Инструкция:

  • 📌 Запустите 1С:Предприятие в режиме конфигуратора (удерживайте Shift при запуске ярлыка или выберите пункт в меню Пуск).
  • 🔍 В дереве объектов откройте ветку Информационные базы (для файлового варианта) или Кластеры серверов 1С:Предприятия (для клиент-серверного).
  • 📋 Кликните правой кнопкой по корневому узлу и выберите Список информационных баз.... Откроется окно со всеми подключёнными базами.
  • 🖱️ Для экспорта данных нажмите Сообщить о проблеме... (или Копировать список в новых версиях), затем вставьте данные в Excel или текстовый файл.

⚠️ Внимание: В версиях платформы ниже 8.3.18 функция копирования списка может отсутствовать. В этом случае используйте комбинацию Ctrl+ACtrl+C в окне списка баз, но учтите, что форматирование будет потеряно.

Запустить конфигуратор с правами администратора|Проверить видимость всех баз в дереве объектов|Подготовить файл для сохранения (Excel/TXT)|Сверить количество баз в списке с ожидаемым

-->

Для клиент-серверных баз в окне списка отображаются дополнительные данные:

  • 🖥️ Имя сервера 1С:Предприятия;
  • 🗄️ Имя кластера;
  • 🔄 Версия сервера;
  • 🔒 Режим аутентификации (Windows/1С).
Тип базы Доступные данные Ограничения метода
Файловая Путь к каталогу, версия конфигурации, имя базы Нет данных о последнем пользователе
Клиент-серверная (MS SQL) Имя сервера, имя базы SQL, версия платформы Нет информации о размере базы
Клиент-серверная (PostgreSQL) Порт подключения, кодировка, версия СУБД Требует прав на чтение кластера

2. Автоматическая выгрузка через ras.exe (утилита 1С)

Утилита ras.exe (Remote Administration Server) входит в комплект поставки 1С:Предприятия и позволяет управлять списком информационных баз программно. Этот метод подходит для автоматизации и интеграции в скрипты.

Основное преимущество — возможность получить данные в структурированном виде (XML или TXT) без ручного копирования. Недостаток: утилита работает только с локальными базами (для клиент-серверных нужны права на сервере).

Команда для выгрузки списка баз в файл XML:

cd "C:\Program Files (x86)\1cv8\8.3.20.1549\bin"

ras.exe cluster -out=c:\temp\bases_list.xml

Расшифровка параметров:

  • 📁 cd "путь" — переход в каталог с утилитой (указывайте свою версию платформы!);
  • 🔧 cluster — команда для работы с кластером;
  • 📄 -out=путь — файл для сохранения результата.

⚠️ Внимание: Если в пути к файлу выгрузки есть пробелы, обязательно берите его в кавычки: -out="C:\My Folder\list.xml". Иначе утилита выдаст ошибку Недопустимый аргумент.

Как обработать XML-выгрузку в Excel?

1. Откройте Excel и перейдите на вкладку Данные → Получение данных → Из файла → Из XML.

2. Укажите путь к сохранённому файлу bases_list.xml.

3. В мастере импорта выберите вариант XML-таблица и укажите корневой элемент (обычно v8clusters).

4. Настройте соответствие столбцов (имя базы, сервер, порт) и загрузите данные.

Для файлового варианта используйте команду:

ras.exe ib-list -out=c:\temp\file_bases.txt

Результат будет в текстовом формате с разделителями табуляции, что удобно для импорта в Excel или Google Sheets.

💡

Утилита ras.exe позволяет выгружать не только список баз, но и данные о сеансах пользователей (команда ras.exe session). Это полезно для мониторинга нагрузки.

3. Скрипт на PowerShell для выгрузки списка баз

PowerShell — мощный инструмент для автоматизации задач в Windows, включая работу с . Скрипт ниже читает список баз из реестра (где хранит данные о подключениях) и экспортирует их в CSV-файл.

Преимущества метода:

  • 🔄 Автоматическое обновление данных;
  • 📊 Гибкая настройка выгружаемых полей;
  • 🤖 Интеграция с другими системами (например, отправка отчёта по email).

Скрипт для выгрузки в CSV:

$regPath = "HKCU:\Software\1C\1Cv8\8.3\"

$outputFile = "C:\temp\1C_Bases_List_$(Get-Date -Format 'yyyyMMdd').csv"

$bases = Get-ChildItem -Path $regPath -Recurse | Where-Object {

$_.Name -like "\IBases\" -and $_.Property -eq "Name"

} | ForEach-Object {

$basePath = $_.PSParentPath.Replace("Microsoft.PowerShell.Core\Registry::", "")

$baseName = (Get-ItemProperty -Path $basePath).Name

$baseLocation = (Get-ItemProperty -Path "$basePath\Connect").Location

[PSCustomObject]@{

"Имя базы" = $baseName

"Тип" = if ($baseLocation -like "File=") { "Файловая" } else { "Клиент-серверная" }

"Путь/Сервер" = $baseLocation -replace "File=", "" -replace "Srvr=", ""

}

}

$bases | Export-Csv -Path $outputFile -Delimiter ";" -Encoding UTF8 -NoTypeInformation

Write-Host "Список баз выгружен в файл: $outputFile"

⚠️ Внимание: Скрипт читает данные из реестра текущего пользователя (HKCU). Если нужно получить список баз для всех пользователей ПК, замените HKCU на HKLM, но это потребует прав администратора.

Для работы со скриптом:

  1. Скопируйте код в файл с расширением .ps1 (например, Get-1CBases.ps1);
  2. Запустите PowerShell от имени администратора;
  3. Выполните команду Set-ExecutionPolicy RemoteSigned -Scope CurrentUser (разрешает запуск скриптов);
  4. Запустите скрипт: .\Get-1CBases.ps1.

$emailParams = @{

From = "admin@yourdomain.com"

To = "recipient@yourdomain.com"

Subject = "Список баз 1С на $(Get-Date -Format 'dd.MM.yyyy')"

Body = "Вложение содержит актуальный список баз 1С."

Attachments = $outputFile

SmtpServer = "smtp.yourdomain.com"

}

Send-MailMessage @emailParams

-->

4. Выгрузка через 1С:Администрирование сервера (для клиент-серверных баз)

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

Инструкция:

  1. 🖥️ Откройте оснастку 1С:Предприятие 8. Администрирование сервера (доступна в меню Пуск или через mmc);
  2. 🔌 Подключитесь к кластеру серверов (потребуются права администратора кластера);
  3. 📊 Перейдите в раздел Информационные базы;
  4. 📤 Нажмите правой кнопкой по списку и выберите Экспорт списка.... Данные сохранятся в CSV.

В выгруженном файле будут столбцы:

  • 📌 Имя базы;
  • 🗄️ Имя базы данных SQL;
  • 🔢 Количество сеансов;
  • 📅 Дата последнего обновления конфигурации;
  • 💾 Размер базы данных (МБ).

⚠️ Внимание: В версиях сервера 1С:Предприятия ниже 8.3.16 экспорт списка баз может не содержать данных о размере. Чтобы получить эту информацию, используйте запрос к MS SQL Server или PostgreSQL:

-- Для MS SQL

SELECT name AS [Имя базы], size/128.0 AS [Размер (МБ)]

FROM sys.master_files

WHERE database_id = DB_ID('ИмяВашейБазы')

5. Использование внешних утилит (1CBaseList, IBCommander)

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

Популярные инструменты:

  • 🛠️ 1CBaseList — бесплатная утилита для выгрузки списка баз в Excel или HTML. Поддерживает работу с реестром и кластерами серверов.
  • 🔧 IBCommander — платное решение с возможностью управления базами (создание, удаление, обновление). Есть функция экспорта в JSON.
  • 📊 1C:Fresh Admin — инструмент для администрирования облачных и локальных баз с удобным интерфейсом отчётов.

Утилита 1CBaseList умеет выгружать не только стандартные данные (имя, путь), но и дополнительные параметры, такие как версия платформы, дата последнего запуска и даже список подключённых пользователей в реальном времени. Это единственное решение, которое позволяет получить историю подключений за последние 30 дней без доступа к логам сервера.

Пример работы с 1CBaseList:

  1. Скачайте утилиту с Инфостарта (бесплатно);
  2. Запустите 1CBaseList.exe от имени администратора;
  3. В главном окне нажмите СCAN — утилита просканирует реестр и кластеры;
  4. Для экспорта нажмите Export → Excel и укажите путь к файлу.
"C:\Path\To\IBCommander.exe" /export:C:\Reports\bases_$(date +%Y%m%d).json

-->

6. Программная выгрузка через COM-объект (для разработчиков)

Если вам нужно интегрировать выгрузку списка баз в собственное приложение (например, систему мониторинга), используйте COM-соединение с платформой . Этот метод требует знаний VBScript или C#, но даёт максимальную гибкость.

Пример на VBScript:

Set v83 = CreateObject("V83.ComConnector")

Set catalog = v83.ConnectWorkingProcess("C:\Program Files (x86)\1cv8\8.3.20.1549\bin\1cv8.exe")

Set bases = catalog.GetInfoBases()

For Each base In bases

WScript.Echo "Имя: " & base.Name

WScript.Echo "Путь: " & base.ConnectString

WScript.Echo "Версия: " & base.Version

WScript.Echo "---"

Next

Для C# (используя библиотеку OneScript.Com):

using OneScript.Com;

using ScriptEngine.Machine;

var comContext = new ComContext();

dynamic v83 = comContext.CreateObject("V83.ComConnector");

dynamic catalog = v83.ConnectWorkingProcess(@"C:\Program Files (x86)\1cv8\8.3.20.1549\bin\1cv8.exe");

foreach (dynamic baseInfo in catalog.GetInfoBases())

{

Console.WriteLine($"Имя: {baseInfo.Name}");

Console.WriteLine($"Тип: {baseInfo.InfoBaseMode}");

Console.WriteLine($"Путь: {baseInfo.ConnectString}");

}

⚠️ Внимание: При использовании COM-объектов убедитесь, что:

  • 🔐 У пользователя есть права на доступ к через COM;
  • 📋 Версия платформы совместима с вашей средой разработки (например, для .NET Core потребуется обёртка);
  • 🔄 Библиотеки 1cv8.com зарегистрированы в системе (используйте regsvr32).

Сравнение методов выгрузки

Метод Сложность Типы баз Формат выгрузки Автоматизация
Конфигуратор Файловые, клиент-серверные Текст/скриншот ❌ Нет
ras.exe ⭐⭐ Локальные базы XML/TXT ✅ Да
PowerShell ⭐⭐⭐ Файловые, реестр CSV/JSON ✅ Да
Администрирование сервера ⭐⭐ Клиент-серверные CSV ❌ Нет
Внешние утилиты ⭐⭐ Все типы Excel/HTML/JSON ✅ Да
COM-объект ⭐⭐⭐⭐ Все типы Произвольный ✅ Да

Выбор метода зависит от ваших задач:

  • 🔹 Для разовой выгрузки подойдёт конфигуратор или администрирование сервера;
  • 🔹 Для автоматизации — PowerShell или ras.exe;
  • 🔹 Для интеграции с другими системами — COM-объекты или внешние утилиты.

Частые ошибки и их решение

При выгрузке списка баз пользователи сталкиваются с типичными проблемами. Рассмотрим самые распространённые и способы их устранения.

1. Утилита ras.exe не находит базы

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

Решение:

  • 🔑 Запустите ras.exe от имени пользователя, под которым подключались базы;
  • 🔍 Используйте ключ /allusers (если поддерживается вашей версией).

2. PowerShell-скрипт не находит ключи реестра

Причина: в новых версиях (8.3.20+) путь в реестре может отличаться. Например, для 64-битной системы и платформы 8.3.22 путь будет HKCU:\Software\1C\1Cv8\8.3.22.1234\.

Решение: обновите переменную $regPath в скрипте, указав актуальную версию платформы.

3. Ошибка "Отказано в доступе" при работе с COM-объектом

Причина: недостаточно прав или не зарегистрирована библиотека 1cv8.com.

Решение:

1. Зарегистрируйте библиотеку:

cd "C:\Program Files (x86)\1cv8\8.3.20.1549\bin"

regsvr32 comcntr.dll

2. Запустите скрипт от имени администратора.

4. В выгрузке отсутствуют клиент-серверные базы

Причина: большинство методов (кроме администрирования сервера) работают только с локальными базами.

Решение: используйте ras.exe cluster для клиент-серверных баз или подключайтесь напрямую к MS SQL/PostgreSQL.

5. Некорректная кодировка в выгруженном файле

Причина: по умолчанию PowerShell сохраняет файлы в кодировке UTF-16, что может привести к проблемам с кириллицей в Excel.

Решение: явно укажите кодировку UTF8 в команде Export-Csv:

Export-Csv -Encoding UTF8
💡

Если вы работаете с 1С:Fresh (облачные базы), ни один из описанных методов не подойдёт. Для выгрузки списка используйте личный кабинет на портале 1С:Линк или API сервиса.

FAQ: Ответы на частые вопросы

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

Да, но для этого нужны права администратора на сервере 1С:Предприятия. Используйте:

  • 🔌 Утилиту rac.exe (аналог ras.exe для сервера) с параметром /s (указать имя сервера);
  • 📡 PowerShell Remoting (команда Invoke-Command -ComputerName ServerName -ScriptBlock { ... });
  • 🌐 Веб-интерфейс администрирования сервера (порты 1540–1541).

⚠️ Убедитесь, что на сервере открыты соответствующие порты в брандмауэре.

Как выгрузить список баз вместе с версиями конфигураций?

Версии конфигураций хранятся в метаданных баз. Чтобы их получить:

  1. Используйте ras.exe с ключом /info:
  2. ras.exe ib-list /info > bases_with_versions.txt
  3. В PowerShell добавьте чтение свойства Version из реестра:
  4. $baseVersion = (Get-ItemProperty -Path $basePath).Version

Для клиент-серверных баз версия конфигурации доступна в оснастке администрирования сервера или через запрос к SQL:

SELECT TOP 1 ConfigVer FROM Config WHERE Ref LIKE '%Main%'
Можно ли выгрузить список пользователей, подключённых к базе?

Да, но для этого нужны разные инструменты:

  • 🖥️ Для файловой базы: используйте ras.exe sessions -out=sessions.txt;
  • 🗄️ Для клиент-серверной: в оснастке администрирования сервера откройте вкладку Сеансы и экспортируйте данные;
  • 📊 Для исторических данных: настройте сбор логов через 1С:Лог-монитор.

⚠️ Данные о сеансах обновляются в реальном времени. Для фиксации "мгновенного снимка" используйте скрипт с временной меткой.

Как автоматизировать выгрузку списка баз по расписанию?

Настройте задачу в Планировщике заданий Windows:

  1. Откройте taskschd.msc;
  2. Создайте новую задачу с триггером (например, ежедневно в 23:00);
  3. В действии укажите:
  4. Программа: powershell.exe
    

    Аргументы: -ExecutionPolicy Bypass -File "C:\Scripts\Get-1CBases.ps1"

  5. На вкладке Условия отметьте Запускать только при питании от сети (для ноутбуков).

Для отправки отчёта по email добавьте в скрипт команду Send-MailMessage (см. раздел про PowerShell).

Где хранятся данные о базах 1С в реестре Windows?

Путь зависит от версии платформы и разрядности системы:

  • 🔐 Для 32-битной 1С на 64-битной Windows:
  • HKCU\Software\Wow6432Node\1C\1Cv8\8.3\
  • 🔐 Для 64-битной 1С:
  • HKCU\Software\1C\1Cv8\8.3\
  • 🔐 Для клиент-серверных баз (список кластеров):
  • HKCU\Software\1C\1Cv8\8.3\Common\Servers\

⚠️ Не редактируйте реестр вручную — это может привести к потере подключений к базам!