Администрирование · 11 мин
Как скопировать базу 1С на сервере
Способы скопировать базу 1С на сервере: выгрузка через конфигуратор, копирование средствами MS SQL и PostgreSQL, регламентные задания и проверка результата.
Копирование базы 1С на сервере — стандартная задача администратора: она нужна для резервного копирования, переноса базы на другой сервер, создания тестовой копии для разработчиков или подготовки к обновлению конфигурации. Порядок действий зависит от того, как развёрнута база: в файловом варианте или в клиент-серверном (MS SQL Server, PostgreSQL, IBM DB2, Oracle).
Главное отличие от копирования обычного файла в том, что работающую базу нельзя просто перетащить мышкой: данные могут находиться в несогласованном состоянии, а сервер СУБД блокирует файлы. Поэтому используются штатные механизмы — выгрузка в файл .dt через конфигуратор или резервное копирование средствами самой СУБД.
Ниже разобраны оба подхода с конкретными шагами, условиями выбора, проверкой результата и типичными ошибками. Материал ориентирован на администраторов, работающих с платформой 1С:Предприятие 8.3.
Определите вариант развёртывания базы
Перед копированием выясните, где физически хранятся данные. Откройте список информационных баз в окне запуска 1С, выделите нужную базу и нажмите «Изменить»: в параметрах будет указано «На сервере 1С:Предприятия» (клиент-серверный вариант) или «На данном компьютере или на компьютере в локальной сети» (файловый вариант).
Для клиент-серверного варианта дополнительно уточните тип СУБД и имя базы данных. Это видно в консоли кластера серверов 1С: откройте свойства информационной базы — там указаны сервер СУБД, имя базы данных и тип СУБД. Эти сведения понадобятся при копировании средствами SQL.
Файловая база — это каталог с файлом 1Cv8.1CD. Её можно скопировать как обычный файл, но только при условии, что с базой никто не работает: иначе копия может оказаться повреждённой или содержать незавершённые транзакции.
Способ 1: выгрузка базы в файл .dt через конфигуратор
Это универсальный способ, который работает независимо от типа СУБД и подходит, когда нужно перенести базу на другой сервер, изменить тип СУБД или получить копию для загрузки в тестовую среду. Существенное ограничение — скорость: выгрузка большой базы (десятки и сотни гигабайт) занимает часы и требует много свободного места на диске.
Перед выгрузкой завершите все активные сеансы пользователей. В клиент-серверном варианте это делается через консоль кластера: откройте ветку «Сеансы», удалите активные сеансы и установите для базы блокировку начала сеансов, чтобы пользователи не подключились во время выгрузки. В файловом варианте достаточно попросить всех выйти и убедиться, что база не открыта.
Далее запустите конфигуратор, авторизуйтесь с правами администратора и выполните пункт меню «Администрирование → Выгрузить информационную базу». Укажите путь и имя файла .dt. Дождитесь завершения операции — прогресс отображается в окне состояния. После окончания проверьте, что файл создан и его размер не нулевой.
- 1Завершите сеансы пользователей и установите блокировку соединений с базой
- 2Откройте базу в конфигураторе под учётной записью с полными правами
- 3Выберите «Администрирование → Выгрузить информационную базу»
- 4Укажите каталог с достаточным свободным местом и имя файла .dt
- 5Дождитесь завершения и проверьте наличие и размер файла
- 6Снимите блокировку сеансов, если копирование было разовой операцией
Способ 2: копирование средствами MS SQL Server
Для базы на MS SQL Server самый быстрый и надёжный способ — штатный backup средствами СУБД. Он выполняется без выгрузки в .dt, работает значительно быстрее и позволяет копировать базу, не останавливая работу пользователей: SQL Server делает согласованный снимок данных на момент начала копирования.
Откройте SQL Server Management Studio (SSMS), подключитесь к серверу, найдите нужную базу в разделе «Databases». Щёлкните по ней правой кнопкой мыши и выберите «Tasks → Back Up». Укажите тип «Full», задайте путь к файлу .bak и запустите операцию. Полученный файл — полная копия базы, которую можно восстановить на этом или другом сервере через «Tasks → Restore → Database».
Ту же операцию удобно выполнять скриптом, особенно если копирование нужно делать регулярно по расписанию через планировщик Windows или задание SQL Server Agent.
BACKUP DATABASE [MyBase1C] TO DISK = N'D:\Backup\MyBase1C_full.bak' WITH FORMAT, COMPRESSION, CHECKSUM;После восстановления копии на другом сервере не забудьте, что база данных SQL — это ещё не информационная база 1С. Для работы с копией создайте в консоли кластера 1С новую информационную базу, указав существующую базу данных SQL, либо добавьте базу в список запуска с параметрами нового сервера.
Способ 3: копирование базы на PostgreSQL
Для связки 1С с PostgreSQL (включая сборку PostgresPro, адаптированную под 1С) используется утилита pg_dump или pg_dumpall. Копирование выполняется на сервере СУБД под пользователем с правами на чтение базы, обычно postgres.
Команда выгрузки одной базы в файл выглядит так:
pg_dump -U postgres -F c -f /backup/mybase1c.dump mybase1cФормат -F c (custom) создаёт сжатый архив, который восстанавливается утилитой pg_restore с возможностью выборочного восстановления объектов. Для восстановления сначала создайте пустую базу (createdb), затем выполните pg_restore с указанием файла дампа.
Учтите важный нюанс: базы 1С на PostgreSQL создаются с определёнными параметрами (локаль, кодировка). При восстановлении копии на другом сервере убедитесь, что параметры нового кластера PostgreSQL совпадают, иначе база может не подключиться или работать с ошибками сортировки.
Создание тестовой копии для разработки
Частая практическая задача — сделать копию рабочей базы для тестирования обновлений или доработок. Здесь есть нюанс: в тестовой копии остаются регламентные задания, настройки обменов и подключения к внешним системам. Если запустить такую копию без подготовки, она может начать выполнять обмены с реальными системами, отправлять письма или загружать данные в рабочие базы.
Правильный порядок: скопируйте базу любым способом, подключите копию как отдельную информационную базу, затем до запуска пользователей отключите регламентные задания и заблокируйте обмены. В типовых конфигурациях для этого есть обработка «Блокировка работы с внешними ресурсами» (входит в состав Библиотеки стандартных подсистем) — она автоматически отключает синхронизации и рассылки при определении, что база является копией.
Автоматизация регулярного копирования
Разовое копирование вручную не заменяет регламентное резервное копирование. Для клиент-серверных баз настройте план обслуживания в MS SQL Server (Maintenance Plan) или задание SQL Server Agent с выполнением BACKUP DATABASE по расписанию — обычно полная копия ежедневно в нерабочее время и, при необходимости, копии журнала транзакций в течение дня.
Для PostgreSQL регулярное копирование настраивается через планировщик cron (Linux) или планировщик заданий Windows с вызовом pg_dump и ротацией файлов — храните несколько последних копий, чтобы можно было откатиться не только на вчерашний день.
Храните копии не на том же диске и не на том же сервере, где работает база: при отказе диска или сервера вы потеряете и базу, и резервные копии. Минимальное требование — отдельный физический носитель или сетевое хранилище, лучше — дополнительно копия в другом помещении или облачном хранилище.
Проверка результата копирования
Сам факт завершения операции без ошибок не гарантирует, что копия рабочая. Обязательная проверка — восстановить копию в тестовое окружение и открыть базу. Для файла .dt выполните «Администрирование → Загрузить информационную базу» в пустую базу и убедитесь, что загрузка прошла до конца без сообщений об ошибках.
Для backup SQL восстановите базу под другим именем, создайте для неё информационную базу в кластере 1С и войдите в режиме предприятия. Проверьте ключевые данные: откройте несколько документов за последние дни, сформируйте оборотно-сальдовую ведомость или другой итоговый отчёт и сравните итоги с рабочей базой на ту же дату.
Как проверить результат
Файл .dt или .bak существует, размер сопоставим с размером базы
Файл отсутствует, нулевого размера или значительно меньше ожидаемого
База восстанавливается и открывается без ошибок
Ошибки при загрузке .dt или restore, база не открывается
Итоги отчётов в копии совпадают с рабочей базой на дату копирования
Расхождения в остатках, отсутствуют документы за последний период
Типичные ошибки при копировании
Большинство проблем при копировании баз 1С связано не с самой процедурой, а с нарушением условий её выполнения. Разберём самые частые.
Отдельно отметим ситуацию с присоединёнными файлами: если в конфигурации настроено хранение файлов в томах на диске, а не в базе, то копия базы не будет содержать этих файлов. Каталоги томов нужно копировать отдельно вместе с базой.
Что важно запомнить
Перед копированием определите вариант развёртывания базы и завершите сеансы пользователей. Универсальный способ — выгрузка в .dt через конфигуратор, быстрый для больших баз — backup средствами СУБД. Тестовую копию запускайте только после отключения регламентных заданий и обменов. Любую копию проверяйте восстановлением и сверкой итогов.
Частые вопросы
Можно ли скопировать базу 1С, не выгоняя пользователей?
Да, если использовать резервное копирование средствами СУБД (BACKUP DATABASE в MS SQL, pg_dump в PostgreSQL) — эти механизмы создают согласованный снимок данных на лету. Выгрузка в .dt через конфигуратор и копирование файла файловой базы требуют завершения всех сеансов, иначе копия будет несогласованной или повреждённой.
Чем выгрузка .dt отличается от бэкапа SQL?
Файл .dt — платформенный формат 1С: он содержит данные и конфигурацию и позволяет переносить базу между разными СУБД и разрядностями платформы. Бэкап SQL — низкоуровневая копия базы данных, восстанавливается только на тот же тип СУБД совместимой версии, но создаётся и восстанавливается значительно быстрее, что критично для больших баз.
Сколько места нужно для копии базы?
Ориентируйтесь на размер самой базы: файл .dt обычно занимает от половины до полного размера базы данных, сжатый backup SQL с опцией COMPRESSION — заметно меньше исходной базы. Перед копированием убедитесь, что на целевом диске свободно не меньше объёма базы с запасом, иначе операция прервётся на середине.
Как перенести копию базы на другой сервер 1С?
Выгрузите базу в .dt, на новом сервере создайте пустую информационную базу в кластере и загрузите в неё файл через конфигуратор. Альтернатива для той же СУБД: восстановите backup на новом сервере СУБД, затем в консоли кластера 1С создайте информационную базу, указав существующую базу данных.
Почему восстановленная копия не открывается в 1С?
Частые причины: версия платформы на новом сервере старше той, под которой работала база; несовпадение параметров кластера PostgreSQL (локаль, кодировка); база SQL восстановлена, но для неё не создана информационная база в кластере 1С. Проверьте версии платформы и корректность регистрации базы в кластере.
Копируются ли вместе с базой настройки пользователей и пароли?
Да, список пользователей информационной базы с хэшами паролей хранится внутри базы и переносится вместе с ней при любом способе копирования. Это стоит учитывать при создании тестовых копий: доступ к копии получат те же пользователи с теми же паролями, поэтому ограничьте доступ к тестовой среде.