Как заменить рабочую базу 1С её копией и ничего не сломать

· 9 мин

Содержание

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

Порядок действий зависит от того, где лежат данные. Файловая база — это папка с файлом 1Cv8.1CD, и копируется она как папка. Клиент-серверная база хранится в СУБД (Microsoft SQL Server или PostgreSQL), и копируют её средствами сервера или выгрузкой в .dt.

Файловая или серверная: какой путь ваш

Определить тип можно в окне запуска 1С. Выделите базу, нажмите «Изменить» и посмотрите на строку соединения. Если там указан каталог (File="D:\Bases\Buh";), база файловая. Если указаны сервер и имя базы (Srvr="srv-1c";Ref="buh";), база серверная.

Что у вас за база и что нужно получить?

Если сомневаетесь, .dt подходит всегда. Он медленнее, зато не зависит ни от типа базы, ни от СУБД.

Что сделать до копирования

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

  1. Дождитесь, пока все выйдут из базы, и заблокируйте новые подключения. В серверной базе это делается в консоли кластера, в свойствах информационной базы (флажок блокировки начала сеансов). В файловой достаточно попросить пользователей закрыть программу и убедиться, что рядом с файлом базы нет служебного файла блокировки.
  2. Запишите, как база подключена сейчас: имя в списке, строку соединения, имя базы на сервере. Пригодится для отката.
  3. Проверьте свободное место. Файловая база при копировании занимает столько же, сколько исходная. Для .dt обычно хватает меньшего объёма, но надёжнее держать запас, равный размеру базы.
  4. Узнайте, настроены ли в базе обмены, интеграции, почта и ЭДО. От этого зависит раздел о первом запуске.

Не копируйте файл 1Cv8.1CD из базы, в которой в этот момент работают люди. Копия получится «на лету» и может не открыться или открыться с повреждениями.

Копия файловой базы: папка или .dt

Способ 1. Копирование каталога

  1. Закройте все сеансы, включая Конфигуратор.
  2. Откройте каталог базы (путь виден в строке соединения).
  3. Скопируйте весь каталог целиком, а не один файл 1Cv8.1CD. Рядом с ним могут лежать служебные файлы и каталоги, например журнал регистрации.
  4. Вставьте копию в новое место, например D:\Bases\Buh_new.

Журнал регистрации лежит в подкаталоге 1Cv8Log. Он занимает место, но история действий пользователей остаётся в копии, и это иногда нужно.

Способ 2. Выгрузка и загрузка .dt

  1. Запустите Конфигуратор для исходной базы.
  2. Выберите Администрирование → Выгрузить информационную базу и укажите имя файла.
  3. Добавьте в список баз новую пустую базу: «Добавить» → «Создание новой информационной базы» → «Создание информационной базы без конфигурации».
  4. Откройте новую базу в Конфигураторе и выберите Администрирование → Загрузить информационную базу.

Файл .dt сохраняет данные и конфигурацию, но не сохраняет настройки подключения, публикацию на веб-сервере и параметры кластера. Их придётся задать заново.

СпособКогда подходитРиски
Копия каталогаФайловая база, нужен точный дубль на том же или соседнем компьютереНельзя копировать при работающих пользователях
Выгрузка .dtПеренос между версиями платформы, между файловым и серверным режимомДольше по времени, настройки публикации не переносятся
Бэкап СУБДСерверная база большого размераНужен доступ к SQL-серверу и права на восстановление

Копия серверной базы через СУБД и консоль кластера

Для серверной базы выгрузка .dt на больших объёмах идёт долго. Резервная копия средствами СУБД обычно быстрее.

Microsoft SQL Server

  1. Сделайте полную резервную копию рабочей базы в Management Studio или командой BACKUP DATABASE.
  2. Восстановите копию под новым именем: в диалоге восстановления укажите в качестве целевой базы новое имя и не затирайте существующую.
  3. При восстановлении проверьте пути к файлам данных и журнала. Если они совпадают с файлами рабочей базы, восстановление заменит их. Укажите другие пути (параметры MOVE или соответствующие поля в окне восстановления).

PostgreSQL

Снимите дамп утилитой pg_dump и восстановите его в новую базу с другим именем через pg_restore либо создайте базу и загрузите дамп в неё. Для 1С используйте сборку PostgreSQL, рекомендованную для платформы, иначе возможны проблемы совместимости.

Подключение копии в кластере

  1. Откройте консоль администрирования серверов 1С:Предприятия и найдите нужный кластер.
  2. Выберите Информационные базы → Создать → Информационная база.
  3. Задайте новое имя в кластере. Оно не должно совпадать с именем рабочей базы.
  4. В поле «Имя базы данных» укажите имя восстановленной СУБД. Флажок создания базы при отсутствии оставьте выключенным: база уже есть.
  5. Укажите тип СУБД, сервер баз данных и пользователя с доступом к базе.

Две информационные базы в кластере не должны смотреть в одну и ту же базу данных. Это разрушает данные в обеих. Перед сохранением перепроверьте поле «Имя базы данных».

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

Как подключить копию и сделать её рабочей

Копия не становится основной сама. Базой по умолчанию остаётся та, на которую ссылаются ярлыки, список баз пользователей и публикация.

Лучше действовать поэтапно.

  1. Проверьте копию отдельно под тестовым именем. Откройте, войдите, посмотрите ключевые документы и отчёты.
  2. Переименуйте старую базу в списке запуска, добавив суффикс вроде _старая или _до_замены. Саму базу не удаляйте.
  3. Назовите копию тем именем, под которым пользователи привыкли открывать базу.
  4. Если у пользователей на компьютерах настроен общий список баз (через файл списка баз на сетевом ресурсе), поправьте запись там. Иначе у людей останется ссылка на старую.
  5. Обновите ярлыки и значки на рабочем столе, если в них зашит путь.

Когда всё подтверждено, старую базу отключите от работы. На файловом сервере переместите её в архив, на сервере 1С отключите сеансы и заблокируйте её, но не удаляйте до конца следующего отчётного периода.

Первый запуск копии: вопрос «скопирована или перемещена» и идентификатор базы

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

Разница существенна.

  • ✅ «Я переместил» выбирайте, когда копия окончательно заменяет старую базу, а старая выводится из работы. Настройки обменов, регламентные задания и подключённые сервисы остаются как были.
  • ⚠️ «Я скопировал» выбирайте, когда копия живёт параллельно с рабочей. Программа отключает регламентные задания и подчищает настройки обменов, чтобы копия не слала данные от имени основной базы.

Если вы собираетесь сделать копию основной, а старую убрать, подходит первый вариант. Если сомневаетесь, лучше выбрать «скопировал» и затем вручную включить нужное: так не будет ложных отправок.

Что такое идентификатор и когда он важен

У каждой информационной базы есть внутренний идентификатор. Он используется, чтобы отличать базы друг от друга в обменах (распределённая база, обмен с «Зарплатой и управлением персоналом», обмен с Розницей). Две базы с одинаковым идентификатором, работающие параллельно, могут путать друг другу данные.

Поэтому для копии, которая живёт вместе с оригиналом, идентификатор и префикс базы лучше сделать отдельными. Префикс информационной базы задаётся в разделе Администрирование → Синхронизация данных в типовых конфигурациях. Для тестовой копии выбирайте префикс, не совпадающий ни с одной из подключённых баз.

Если копия заменяет оригинал и оригинал выводится из работы, идентификатор менять не требуется: база-преемник просто продолжает вести обмены.

Что отключить в копии, которая живёт параллельно

  • Обмены с другими базами и ЭДО.
  • Электронную почту, с которой программа рассылает письма.
  • Регламентные задания, отправляющие отчётность и уведомления.
  • Интеграции с банком и сервисами по API.

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

После замены базы проверьте
Выполнено: 0 / 5

Публикация, ярлыки и внешние сервисы после подмены

Подмена базы редко ограничивается самой базой. Вокруг неё живут настройки, которые на копию не переносятся.

Веб-сервер и публикация

Если пользователи заходят через браузер или тонкий клиент по HTTP, публикацию нужно сделать заново. В Конфигураторе откройте нужную базу и выберите Администрирование → Публикация на веб-сервере. Укажите то же имя публикации, что было у рабочей базы, чтобы адреса не поменялись. Если имя публикации совпало, но каталог другой, старый вариант придётся удалить или заменить.

Лицензии и сервисы

  • Интернет-поддержка пользователей может потребовать повторного входа: логин и пароль хранятся в базе, но сервисы проверяют их на стороне 1С.
  • Сертификаты электронной подписи хранятся в хранилище пользователя, а не в базе, поэтому на других компьютерах их надо переустановить. Список сертификатов в программе при этом переносится вместе с данными.
  • Отчётность, подключённая через специализированного оператора, привязана к учётной записи в программе. Если копия заменяет рабочую базу, убедитесь, что вход в сервис выполнен из новой базы.

Резервное копирование

Не забудьте добавить новую базу в расписание бэкапов. Это самая частая причина, по которой через месяц обнаруживается, что новая рабочая база не копировалась ни разу, потому что бэкап настроен на старое имя.

Если копия ведёт себя странно

Диагностика: выберите симптом

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

Можно ли копировать базу, пока в ней работают?
Нет. Для файловой базы нужно, чтобы все вышли. Для серверной резервную копию средствами СУБД можно снять и при работающих пользователях, но для проверяемой копии надёжнее ограничить сеансы.
Нужно ли менять что-то в копии, если старую базу удаляют?
Обычно нет. Выберите вариант «Я переместил», проверьте обмены и публикацию, и копия продолжит работу как основная.
Сколько места занимает выгрузка в .dt?
Обычно меньше, чем сама база, но точный размер зависит от содержимого. Свободного места лучше иметь с запасом, равным размеру базы.
Можно ли сделать копию основной, не останавливая работу?
Подготовьте и проверьте копию заранее, а в момент подмены остановите работу на короткое окно, чтобы перенести свежие данные. Без остановки новые документы в старой базе в копию не попадут.
Как откатиться, если замена прошла неудачно?
Верните прежнее имя старой базе в списке и ярлыки на неё. Поэтому и нужно хранить старую базу, пока не убедились, что копия работает.