При разворачивании копии информационной базы 1С (например, для тестирования обновления или разработки нового функционала) каждый специалист сталкивается с диалоговым окном: «Информационная база была перемещена или восстановлена из резервной копии». Выбор одного из двух вариантов — «Информационная база была перемещена» или «Это копия» — имеет критическое значение для целостности данных как в текущей базе, так и в оригинальной рабочей системе. Разберем подробно, что происходит «под капотом» платформы, и как избежать фатальных ошибок.
Прежде всего, выясним причину появления этого вопроса. Платформа 1С:Предприятие определяет, что база изменила свое положение, путем сравнения текущих параметров подключения с теми, которые были зафиксированы в системе ранее. Для клиент-серверного варианта анализируются имя сервера и имя базы в СУБД, для файлового — путь к каталогу. Эти данные сопоставляются с уникальным идентификатором InformationBaseID.
Проанализируем ситуацию: если параметры не совпадают, система понимает, что перед ней либо переезд на новый сервер, либо создание дубликата. В этот момент выполнение всех регламентных заданий приостанавливается до тех пор, пока администратор не примет решение.
Если мы выбираем вариант «Это копия», система переходит в защищенный режим работы. Это самый безопасный сценарий для тестовых сред. В этом режиме платформа автоматически блокирует все механизмы, которые могут взаимодействовать с внешним миром от лица основной базы.
Рассмотрим подробнее, какие именно функции будут ограничены:
РаботаетСВнешнимиРесурсами. Это предотвращает ситуацию, когда тестовая база начинает отправлять письма клиентам или загружать данные из внешних источников.Для разработчиков важно знать, что настройка списка таких заданий в типовых конфигурациях (на базе БСП) происходит в переопределяемом модуле. Посмотрим на пример кода, где определяются такие настройки:
Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт
// Здесь задаются правила для заданий, работающих с внешними ресурсами
НоваяСтрока = Настройки.Добавить();
НоваяСтрока.ИмяМетаданных = "ОбменСБанками";
НоваяСтрока.РаботаетСВнешнимиРесурсами = Истина;
КонецПроцедуры
Выбирая «Информационная база была перемещена», мы сообщаем платформе, что текущая база теперь является основной рабочей базой по новому адресу. В этот момент система обновляет внутренний идентификатор местоположения и снимает все блокировки. Все регламентные задания запускаются немедленно согласно расписанию.
Проанализируем риски такого действия в контексте копии:
Выясним еще один важный момент: сервер 1С не отрубит регламентные задания на старой рабочей базе автоматически. Кластеры могут находиться в разных сетях и ничего не знать друг о друге. Платформа управляет состоянием только текущей базы, в которой нажат выбор.
В контексте обсуждения перехода с версии ПРОФ на КОРП, использование кнопки «Это копия» является обязательным. Разберем по шагам, на что обратить внимание:
Рассмотрим ситуацию, когда пользователь случайно нажал «Перемещена» в копии. Чтобы вернуть систему в состояние запроса или принудительно установить блокировку, можно использовать несколько способов.
Во-первых, в консоли кластера серверов 1С можно установить флаг «Блокировка регламентных заданий включена» для конкретной информационной базы. Это радикальный, но эффективный метод.
Во-вторых, в программном коде на базе БСП за состояние защиты отвечает константа ПараметрыРаботыВРабочейДате (или аналогичные настройки в зависимости от версии БСП). Также можно воспользоваться параметром запуска конфигуратора для инициализации обновления параметров:
/С ЗапуститьОбновлениеИнформационнойБазы
Подводя итог, при любых сомнениях всегда выбираем «Это копия». Это золотое правило администратора и разработчика 1С, которое гарантирует безопасность данных в основной рабочей системе. Только после того, как вы убедитесь, что в копии изменены все пути к тестовым ресурсам, очищены настройки реальных обменов и изменены адреса электронной почты, можно приступать к ручному включению необходимых регламентных операций.