ibcmd — консольная утилита платформы 1С, которая работает с информационной базой напрямую через СУБД: создаёт базу, выгружает и загружает файл .dt, копирует базу между серверами и даже между разными СУБД. Ей не нужен запущенный кластер 1С, служба RAS или открытый конфигуратор, поэтому ibcmd 1С удобно вызывать из скриптов на bash и PowerShell — для резервного копирования, разворачивания тестовых баз и миграций.
Ниже — практические примеры команд, которые я использую при администрировании: общая схема параметров, создание базы, dump, restore, replicate, и пара слов про автономный сервер ibsrv. Утилита поставляется вместе с платформой и есть в сборках для Windows и Linux.
Что умеет ibcmd и чем отличается от rac
На серверах 1С обычно есть две консольные утилиты, и их часто путают:
| rac | ibcmd | |
|---|---|---|
| С чем работает | С кластером через службу RAS | С информационной базой через СУБД |
| Что нужно для работы | Запущенный ragent и RAS | Доступ к СУБД (или к каталогу файловой базы) |
| Типичные задачи | Сеансы, рабочие процессы, регистрация баз, блокировка регламентных заданий | Создание базы, выгрузка/загрузка dt, копирование, работа с конфигурацией |
| Лицензия сервера 1С | Нужна для работы кластера | Для операций с базой не требуется |
Главная идея ibcmd — автономность. Утилита сама является «движком» платформы: она подключается к PostgreSQL, MS SQL Server и другим поддерживаемым СУБД, читает и пишет данные информационной базы без посредников.

У утилиты несколько режимов (первое слово после ibcmd). На практике чаще всего нужны два:
infobase— операции с информационной базой: create, dump, restore, replicate, работа с конфигурацией;server— подготовка файла конфигурации для автономного сервера.
Полный список режимов и ключей для своей версии платформы удобно смотреть встроенной справкой: ibcmd help и ibcmd help infobase. Набор параметров от релиза к релизу расширяется, поэтому перед написанием скрипта я всегда сверяюсь со справкой той сборки, что стоит на сервере.
Параметры подключения к СУБД
Любая команда режима infobase начинается с описания того, где лежит база. Для PostgreSQL на нестандартном порту это выглядит так:
ibcmd infobase \
--dbms=PostgreSQL \
--db-server="pg-srv port=5433" \
--db-name=trade_test \
--db-user=onec_admin \
--db-pwd='СекретныйПароль' \
<команда> <параметры команды>Что здесь важно:
--dbms— тип СУБД:PostgreSQL,MSSQLServer,IBMDB2,OracleDatabase;--db-server— адрес сервера СУБД; порт для PostgreSQL указывается внутри строки черезport=;--db-name— имя базы данных в СУБД, а не имя базы в кластере 1С;--db-userи--db-pwd— пользователь и пароль СУБД.
Не путайте их с параметрами --user и --password: это пользователь информационной базы 1С, они нужны для команд, которые проверяют права внутри базы (например, выгрузка и загрузка dt при включённой аутентификации).
Чтобы не дублировать длинную строку в каждом скрипте, я выношу параметры подключения в переменную окружения или отдельный файл с правами только для пользователя, от которого работает скрипт. Пароль в открытом виде в истории команд — частая и неприятная находка на аудите.
Создание информационной базы
Команда create создаёт новую базу в СУБД. Её можно сразу заполнить — из выгрузки dt или из файла конфигурации cf:
ibcmd infobase create \
--dbms=PostgreSQL --db-server="pg-srv port=5433" \
--db-name=trade_copy --db-user=onec_admin --db-pwd='СекретныйПароль' \
--create-database \
--restore=/backup/trade_2026-10-15.dtВарианты наполнения:
--restore=<файл.dt>— создать базу и загрузить в неё данные из выгрузки;--load=<файл.cf>— создать базу и загрузить конфигурацию;--applyвместе с--load— сразу применить конфигурацию к структуре базы данных;--force— не останавливаться на вопросах и предупреждениях.
Флаг --create-database нужен, если базы данных на сервере СУБД ещё нет. После создания базу остаётся зарегистрировать в кластере (через консоль администрирования или rac), если ей будут пользоваться через сервер 1С.
Выгрузка базы в dt: ibcmd infobase dump
Выгрузка — самый частый сценарий. Обратите внимание на порядок: сначала общие параметры подключения, потом команда, потом её параметры и путь к файлу.
ibcmd infobase \
--dbms=PostgreSQL --db-server="pg-srv port=5433" \
--db-name=trade --db-user=onec_admin --db-pwd='СекретныйПароль' \
dump --user=Администратор --password='ПарольВБазе' \
/backup/trade_$(date +%F).dtПара практических замечаний:
- Выгрузка при работающих пользователях технически возможна, но данные в файле могут оказаться несогласованными, а сама база в это время работает медленнее. Для резервной копии, из которой реально придётся восстанавливаться, выбирайте окно обслуживания.
- Выгрузка dt — не замена бэкапу СУБД. Это удобный логический снимок для переноса и тестовых копий. Для ежедневной защиты данных надёжнее штатные средства СУБД (pg_dump, резервное копирование MS SQL) плюс проверка восстановления. Подробнее о схеме, которую я рекомендую, — на странице резервного копирования 1С.
Загрузка из dt: ibcmd infobase restore
Загрузка затирает текущие данные базы, поэтому в скриптах её стоит защищать проверками, чтобы случайно не залить тестовую выгрузку в рабочую базу.
ibcmd infobase \
--dbms=PostgreSQL --db-server="pg-srv port=5433" \
--db-name=trade_test --db-user=onec_admin --db-pwd='СекретныйПароль' \
restore --user=Администратор --password='ПарольВБазе' \
--force \
--session-terminate-message="Идёт загрузка данных, база будет доступна позже" \
/backup/trade_2026-10-15.dt--create-database— создать базу в СУБД, если её нет; если база уже есть, команда с этим флагом завершится ошибкой;--force— принудительно завершить активные сеансы пользователей;--session-terminate-message— текст, который увидят пользователи при отключении; работает только вместе с--force.
Типичная связка «обновить тестовую базу из рабочей»: ночью dump рабочей базы, затем restore в тестовую с --force. Всё делается одним скриптом по расписанию, без единого запуска конфигуратора.
Копирование и перенос между СУБД: replicate
Команда replicate копирует базу напрямую из одной СУБД в другую, без промежуточного dt-файла. Источник описывается обычными параметрами, приёмник — параметрами с префиксом --target-:
ibcmd infobase \
--dbms=MSSQLServer --db-server=mssql-srv \
--db-name=trade --db-user=sa_onec --db-pwd='ПарольMSSQL' \
replicate \
--target-dbms=PostgreSQL \
--target-database-server="pg-srv port=5433" \
--target-database-name=trade \
--target-database-user=onec_admin \
--target-database-password='СекретныйПароль' \
--target-create-database \
--jobs-count=4 --target-jobs-count=4
Параметры --jobs-count (-j) и --target-jobs-count (-J) задают число потоков чтения и записи. На больших базах многопоточность заметно сокращает время переноса; число потоков подбирайте по ядрам и дискам обоих серверов, а не «чем больше, тем лучше».
Где replicate выручает:
- быстрая копия базы на том же сервере (источник и приёмник на одном сервере, разные имена баз);
- перенос базы на новый сервер СУБД;
- миграция с MS SQL Server на PostgreSQL одной командой — частая задача при переходе 1С на Linux и PostgreSQL.
После миграции между СУБД обязательно прогоните тест: откройте ключевые отчёты, проведите документы, проверьте обмены. Различия СУБД иногда проявляются в доработках с прямыми запросами или в нестандартных индексах.
Автономный сервер ibsrv
Вторая часть того же инструментария — автономный сервер ibsrv. Это «мини-сервер» 1С и веб-сервер в одном процессе: он поднимает одну информационную базу и позволяет подключаться к ней через веб-клиент или по HTTP без полноценного кластера и без отдельного Apache или IIS. Поддерживаются отладка по HTTP, SSL и мониторинг через HTTP-запросы.
Порядок работы:
- Сгенерировать файл конфигурации автономного сервера командой режима
server, напримерibcmd server config initс параметрами подключения к базе, адресом и портом. - Запустить сервер с этим файлом:
ibsrv --config=<путь к файлу>.
Где это уместно: стенды для разработки и автотестов, отладка, демонстрации, учебные базы. Для продуктивной многопользовательской работы автономный сервер не замена серверу 1С с кластером, балансировкой и нормальным администрированием.
Типичные ошибки при работе с ibcmd
- Перепутаны пользователи.
--db-user— пользователь СУБД,--user— пользователь 1С. Ошибка аутентификации почти всегда отсюда. - Порт PostgreSQL указан отдельным ключом. Порт пишется внутри
--db-server:"pg-srv port=5433". - Параметры команды стоят перед командой. Общие параметры подключения — до
dump/restore/replicate, специфичные — после. - Версия ibcmd не совпадает с версией базы. Используйте утилиту из той же версии платформы, на которой работает база.
- restore без защиты в скрипте. Добавьте проверку имени базы, иначе рано или поздно тестовая выгрузка окажется в рабочей.
- Пароли в открытом виде. Не храните их в тексте скрипта, который лежит в общей папке.
Итог
- ibcmd 1С работает с базой напрямую через СУБД, без кластера и RAS — это делает её основой для скриптов администрирования.
- Основные команды:
infobase create,dump,restore,replicate; справка по ключам —ibcmd help. replicateс многопоточностью — самый быстрый путь скопировать базу или перенести её с MS SQL на PostgreSQL.- Выгрузка dt удобна для копий и переноса, но не заменяет резервное копирование средствами СУБД.
- Автономный сервер
ibsrvхорош для стендов и отладки, но не для продуктивной нагрузки.




