Выгрузка списка баз 1С:Предприятие — рутинная, но критически важная задача для администраторов, разработчиков и даже бухгалтеров, которым нужно документально зафиксировать текущую инфраструктуру. Без актуального перечня баз невозможно планировать миграции, резервное копирование или аудит лицензий. Проблема в том, что стандартные средства платформы не всегда предоставляют удобные инструменты для экспорта этого списка в понятном формате.
В этой статье мы разберём 5 проверенных способов выгрузки списка баз — от встроенных функций конфигуратора до автоматизированных скриптов на PowerShell и Python. Особое внимание уделим нюансам для разных версий платформы (8.3.20+, 8.3.18–8.3.19, 8.2) и типам информационных баз (файловые, клиент-серверные). Вы узнаете, как получить не только имена баз, но и их расположение, версию конфигурации, режимы запуска и даже данные о последнем обновлении.
Важно: методы отличаются по сложности и требованиям к правам доступа. Например, для работы с ras.exe достаточно прав пользователя 1С, а для скриптов на PowerShell может потребоваться доступ к серверу 1С:Предприятия или реестру Windows. Мы отметим эти моменты в каждом разделе.
1. Выгрузка через конфигуратор 1С (ручной метод)
Самый простой способ — использовать встроенные возможности конфигуратора. Он подходит для разовых задач и не требует дополнительных инструментов. Минус метода: данные придётся копировать вручную или делать скриншоты.
Инструкция:
- 📌 Запустите 1С:Предприятие в режиме конфигуратора (удерживайте
Shiftпри запуске ярлыка или выберите пункт в меню Пуск). - 🔍 В дереве объектов откройте ветку
Информационные базы(для файлового варианта) илиКластеры серверов 1С:Предприятия(для клиент-серверного). - 📋 Кликните правой кнопкой по корневому узлу и выберите
Список информационных баз.... Откроется окно со всеми подключёнными базами. - 🖱️ Для экспорта данных нажмите
Сообщить о проблеме...(илиКопировать списокв новых версиях), затем вставьте данные в Excel или текстовый файл.
⚠️ Внимание: В версиях платформы ниже 8.3.18 функция копирования списка может отсутствовать. В этом случае используйте комбинацию Ctrl+A → Ctrl+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, включая работу с 1С. Скрипт ниже читает список баз из реестра (где 1С хранит данные о подключениях) и экспортирует их в 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, но это потребует прав администратора.
Для работы со скриптом:
- Скопируйте код в файл с расширением
.ps1(например,Get-1CBases.ps1); - Запустите PowerShell от имени администратора;
- Выполните команду
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser(разрешает запуск скриптов); - Запустите скрипт:
.\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); - 🔌 Подключитесь к кластеру серверов (потребуются права администратора кластера);
- 📊 Перейдите в раздел
Информационные базы; - 📤 Нажмите правой кнопкой по списку и выберите
Экспорт списка.... Данные сохранятся в 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:
- Скачайте утилиту с Инфостарта (бесплатно);
- Запустите
1CBaseList.exeот имени администратора; - В главном окне нажмите
СCAN— утилита просканирует реестр и кластеры; - Для экспорта нажмите
Export → Excelи укажите путь к файлу.
"C:\Path\To\IBCommander.exe" /export:C:\Reports\bases_$(date +%Y%m%d).json
-->
6. Программная выгрузка через COM-объект (для разработчиков)
Если вам нужно интегрировать выгрузку списка баз в собственное приложение (например, систему мониторинга), используйте COM-соединение с платформой 1С. Этот метод требует знаний 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-объектов убедитесь, что:
- 🔐 У пользователя есть права на доступ к 1С через 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-скрипт не находит ключи реестра
Причина: в новых версиях 1С (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).
⚠️ Убедитесь, что на сервере открыты соответствующие порты в брандмауэре.
Как выгрузить список баз вместе с версиями конфигураций?
Версии конфигураций хранятся в метаданных баз. Чтобы их получить:
- Используйте
ras.exeс ключом/info: - В PowerShell добавьте чтение свойства
Versionиз реестра:
ras.exe ib-list /info > bases_with_versions.txt
$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:
- Откройте
taskschd.msc; - Создайте новую задачу с триггером (например, ежедневно в 23:00);
- В действии укажите:
- На вкладке
УсловияотметьтеЗапускать только при питании от сети(для ноутбуков).
Программа: powershell.exe
Аргументы: -ExecutionPolicy Bypass -File "C:\Scripts\Get-1CBases.ps1"
Для отправки отчёта по email добавьте в скрипт команду Send-MailMessage (см. раздел про PowerShell).
Где хранятся данные о базах 1С в реестре Windows?
Путь зависит от версии платформы и разрядности системы:
- 🔐 Для 32-битной 1С на 64-битной Windows:
HKCU\Software\Wow6432Node\1C\1Cv8\8.3\
HKCU\Software\1C\1Cv8\8.3\
HKCU\Software\1C\1Cv8\8.3\Common\Servers\
⚠️ Не редактируйте реестр вручную — это может привести к потере подключений к базам!