Как принудительно задать признак Копия информационной базы в 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с базами данных 1С:Предприятие часто возникает ситуация, когда необходимо развернуть тестовую среду или сделать архивную копию для анализа данных. В современных конфигурациях, построенных на базе Библиотеки стандартных подсистем (БСП), предусмотрен защитный механизм, который при изменении расположения базы предлагает пользователю выбрать: «Информационная база перемещена» или «Это копия информационной базы». Однако случаются сбои, когда этот диалог не появляется автоматически, и база продолжает работать в обычном режиме, что чревато нежелательной отправкой писем клиентам, синхронизацией с реальными сайтами или выполнением регламентных заданий. В рамках данной статьи мы разберем, как принудительно включить этот режим и обеспечить безопасность ваших данных.

Для чего нужен режим Копия информационной базы

Прежде чем переходить к техническим решениям, проанализируем, какие функции выполняет этот признак. Когда база помечается как копия, система автоматически:

  1. Добавляет префикс [КОПИЯ] в заголовок главного окна (для версий БСП 2.4.4 и выше).
  2. Блокирует выполнение всех регламентных заданий.
  3. Останавливает взаимодействие с внешними ресурсами (почта, SMS, веб-сервисы, обмен данными).
  4. Запрещает синхронизацию данных с другими информационными системами.

Рассмотрим подробнее способы принудительной активации этого режима, если стандартное окно выбора не появилось при запуске.

Способ 1. Программный вызов формы управления блокировкой

Если штатный механизм определения перемещения базы не сработал, мы можем запустить его вручную, написав небольшую обработку. Это самый надежный метод, так как он задействует стандартные алгоритмы БСП. Разберем создание такой обработки по шагам.

Создадим новую внешнюю обработку и добавим в неё форму. В модуле формы в обработчике события ПриОткрытии пропишем следующий код:


&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ПараметрыФормы = Новый Структура("ПринятиеРешенияОБлокировке", Истина);
    ОткрытьФорму("ОбщаяФорма.БлокировкаРаботыСВнешнимиРесурсами", ПараметрыФормы);
    Отказ = Истина; // Закрываем саму форму обработки сразу после вызова диалога
КонецПроцедуры

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

Способ 2. Использование программного интерфейса БСП

В современных версиях конфигураций (например, БП 3.0, ЗУП 3.1, УТ 11) существует специальный программный интерфейс для управления этим состоянием. Проанализируем ситуацию, когда нам нужно программно установить признак без участия пользователя. Для этого можно использовать методы общего модуля БлокировкаРаботыСВнешнимиРесурсами.

Вызов метода выглядит следующим образом:


// Установка признака копии программно на стороне сервера
БлокировкаРаботыСВнешнимиРесурсами.УстановитьПризнакКопииИнформационнойБазы(Истина);

// Если требуется дополнительно заблокировать работу с внешними ресурсами
БлокировкаРаботыСВнешнимиРесурсами.ЗаблокироватьРаботуСВнешнимиРесурсами();

Данный подход полезен при автоматизированном развертывании баз из бэкапов скриптами, когда нет возможности интерактивно подтвердить статус базы.

Способ 3. Сброс параметров через файл DoNotCopy.txt (для файловых баз)

Рассмотрим специфику файлового варианта работы. Система определяет изменение расположения базы, сравнивая текущий путь к файлу 1Cv8.1CD с тем, который был сохранен ранее. Если вы хотите, чтобы при следующем запуске система гарантированно спросила о статусе базы, попробуйте следующий метод:

  1. Перейдите в каталог с информационной базой.
  2. Найдите файл с именем DoNotCopy.txt (если он существует) и удалите его или переименуйте.
  3. Этот файл создается системой автоматически, когда пользователь нажимает «Информационная база перемещена». Его отсутствие или изменение параметров пути заставит БСП снова инициировать проверку легальности копии.

Способ 4. Использование стандартного интерфейса Обслуживание

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

Администрирование — Обслуживание — Регламентные операции — Блокировка работы с внешними ресурсами.

Если база уже распознана как копия, там будет кнопка «Разблокировать работу с внешними ресурсами». Если же вы хотите, напротив, перевести базу в режим копии (заблокировать ресурсы), а кнопки нет, это означает, что система считает базу «оригиналом». В этом случае эффективнее всего воспользоваться Способом 1. Для гибкой настройки доступа к сервисам на тестовом и продуктовом контурах также можно использовать инструмент для управления блокировкой работы с внешними ресурсами.

Способ 5. Изменение заголовка системы вручную

Иногда пользователю требуется только визуальное обозначение [КОПИЯ] в заголовке окна, а блокировка заданий уже выполнена через консоль кластера серверов. В таком случае мы можем изменить заголовок вручную через настройки программы.

Выполним следующие действия:

  1. Перейдем в раздел Администрирование — Общие настройки.
  2. Найдем поле Заголовок программы.
  3. Впишем в начало строки текст [КОПИЯ].

Важно: этот способ меняет только визуальное представление и никак не влияет на работу планировщика задач или сетевые соединения. Для автоматического отображения названия базы в заголовках окон можно использовать утилиту для переименования открытых окон 1С.

Почему механизм может не срабатывать (технические нюансы)

Проанализируем причины, по которым автоматический диалог может отсутствовать даже при явном копировании базы:

  1. Версия БСП: Механизм автоматического добавления префикса в заголовок появился только в БСП версии 2.4.4. Если ваша конфигурация старше, заголовок придется менять вручную.
  2. Патчи и доработки: Как отмечалось в обсуждениях, некоторые исправления (патчи) от разработчиков могут некорректно влиять на процедуру проверки. В частности, если в модуле СтандартныеПодсистемыСервер была изменена логика функции ПараметрыРаботыИнформационнойБазы, система может перестать видеть изменения уникального идентификатора базы в кластере 1С.
  3. Права доступа: Диалог о копии появляется только у пользователей с ролью ПолныеПрава. Обычный пользователь его не увидит, и база продолжит работать в неопределенном состоянии.

Итоги и рекомендации

Мы рассмотрели различные варианты принудительной установки признака копии. Наиболее правильным и комплексным решением для программиста является использование Способа 1 (вызов общей формы через обработку), так как он корректно инициализирует все внутренние переменные БСП. Для системных администраторов при работе с SQL-версиями рекомендуется после восстановления базы из бэкапа проверять состояние блокировки регламентных заданий через консоль администрирования серверов 1С, так как это является «первой линией обороны» против нежелательной активности копии базы.

← На главную