К статье
Практический материал

Администрирование · 12 мин

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

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

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

Механизм поддерживается библиотекой стандартных подсистем (БСП), которая входит в состав большинства типовых конфигураций — «Управление торговлей», «Бухгалтерия предприятия», «Зарплата и управление персоналом», ERP и других. Если конфигурация построена на БСП, признак копии можно установить штатными средствами без доработки кода. Для самописных конфигураций потребуется реализовать аналогичную логику вручную.

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

Что даёт признак копии и когда он нужен

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

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

Автоматическое определение копии при восстановлении

Начиная с современных версий платформы и БСП, при первом запуске базы, восстановленной из резервной копии, система сравнивает строку соединения с сохранённой ранее. Если сервер или имя базы изменились, при входе пользователя с правами администратора появляется диалог с вопросом: «Информационная база была перемещена или восстановлена из копии?»

В этом диалоге два варианта. Кнопка «Это копия информационной базы» устанавливает признак копии и блокирует работу с внешними ресурсами. Кнопка «Информационная база перемещена» снимает блокировку и обновляет сохранённую строку соединения — её выбирают, когда рабочая база действительно переехала на новый сервер, а не была скопирована.

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

Ручная установка через обработку блокировки внешних ресурсов

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

Типовой путь: раздел «Администрирование» → «Обслуживание» → «Регламентные операции» → «Разблокировать работу с внешними ресурсами» (или наоборот — команда блокировки, если признак ещё не установлен). В некоторых конфигурациях обработка доступна через «НСИ и администрирование» → «Поддержка и обслуживание».

Если найти команду в интерфейсе не удаётся, обработку можно открыть напрямую: «Файл» → «Открыть» и выбрать встроенную обработку «БлокировкаРаботыСВнешнимиРесурсами» из состава конфигурации. В форме обработки есть явная кнопка установки блокировки — после нажатия признак копии будет записан в базу, а регламентные задания, работающие с внешними ресурсами, перестанут выполняться.

Порядок ручной установки признака
  1. 1
    Войдите в копию базы под учётной записью с полными правами
  2. 2
    Откройте раздел «Администрирование» → «Обслуживание»
  3. 3
    Найдите команду блокировки работы с внешними ресурсами
  4. 4
    Нажмите кнопку установки блокировки и подтвердите действие
  5. 5
    Проверьте, что регламентные задания обмена и рассылок остановлены

Программная установка через встроенный язык

Когда интерфейс недоступен (например, база запускается только в режиме тонкого клиента с ограниченным интерфейсом) или нужно автоматизировать установку признака в скрипте развёртывания тестовых контуров, используется программный вызов. В конфигурациях на БСП есть специализированный общий модуль.

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

// Проверка текущего состояния
ЭтоКопия = РаботаВКопииИнформационнойБазы.ЭтоКопияИнформационнойБазы();

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

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

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

Блокировка регламентных заданий на уровне кластера

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

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

Там же, в свойствах базы кластера, полезно заполнить поле «Описание» пометкой «КОПИЯ — НЕ ИСПОЛЬЗОВАТЬ ДЛЯ РАБОТЫ» и при необходимости установить блокировку начала сеансов с сообщением для пользователей. Это защитит от ситуации, когда сотрудник по ошибке подключится к копии и начнёт вносить в неё реальные документы.

Маршрут решения

Как выбрать способ

База только что восстановлена из копии и появился диалог при входеНажмите «Это копия информационной базы» — этого достаточно для типовой конфигурации
Диалог не появился или был закрытУстановите блокировку вручную через обработку в разделе администрирования
Нужна автоматизация развёртывания тестовых базИспользуйте программный вызов УстановитьПризнакКопии(Истина) в скрипте
Конфигурация самописная или нужна полная остановка фоновых задачВключите блокировку регламентных заданий в свойствах базы в консоли кластера

Проверка результата

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

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

Контрольные точки

Как проверить результат

Признак копии программно
Норма

Вызов ЭтоКопияИнформационнойБазы() возвращает Истина

Тревожный признак

Возвращается Ложь — признак не записался, проверьте права

Регламентные задания в консоли заданий
Норма

Задания обмена и рассылок не выполняются, в журнале нет новых сеансов

Тревожный признак

Задания продолжают стартовать — включите блокировку в кластере

Поведение при запуске синхронизации вручную
Норма

Появляется сообщение о блокировке работы с внешними ресурсами

Тревожный признак

Синхронизация выполняется — задание доработано и игнорирует признак

Типичные ошибки и ограничения

Самая частая ошибка — путаница между кнопками «Это копия» и «База перемещена» в диалоге при первом запуске. Если при переезде рабочей базы на новый сервер администратор по ошибке нажмёт «Это копия», рабочая база перестанет выполнять обмены — банк-клиент, ЭДО и рассылки молча остановятся. Обратная ошибка (нажать «перемещена» для тестовой копии) опаснее: копия начнёт обмениваться с внешними системами как рабочая.

Вторая ошибка — забыть про копии, созданные обходными путями: через резервное копирование средствами СУБД (MS SQL, PostgreSQL) без выгрузки в dt. При таком способе диалог определения копии может не появиться, потому что строка соединения формально не менялась с точки зрения платформы. Для таких копий признак нужно устанавливать вручную сразу после восстановления, до запуска пользователей.

Ограничение механизма: признак копии блокирует только штатные обмены БСП. Внешние обработки, запущенные пользователем вручную, COM-соединения из других баз и интеграции через HTTP-сервисы, опубликованные отдельно, признак не остановит. Полную изоляцию тестового контура обеспечивают комплексно: признак копии + блокировка заданий в кластере + отдельные тестовые учётные записи во внешних сервисах.

Типичные ошибки
01
Нажали «База перемещена» вместо «Это копия» — копия начала обмениваться с банком и сайтом как рабочая
02
Установили признак только в БСП, но доработанные регламентные задания его не проверяют — обмены продолжаются
03
Восстановили копию средствами СУБД и не установили признак вручную, потому что диалог не появился
04
Сняли блокировку сеансов в кластере для тестирования и забыли вернуть — пользователи вошли в копию и внесли реальные документы
Итог

Что важно запомнить

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

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

Как снять признак копии, если база снова стала рабочей?

Откройте обработку блокировки работы с внешними ресурсами в разделе администрирования и нажмите кнопку разблокировки — признак будет снят, и обмены возобновятся. Либо выполните программный вызов УстановитьПризнакКопии(Ложь). Перед снятием убедитесь, что исходная рабочая база остановлена, иначе две базы начнут обмениваться с внешними системами одновременно.

Почему диалог «Это копия или перемещение» не появился после восстановления?

Диалог срабатывает при изменении строки соединения, сохранённой в базе. Если копию восстановили под тем же именем на том же сервере, восстановили средствами СУБД или первым вошёл пользователь без административных прав, диалог может не появиться. В этих случаях устанавливайте признак вручную.

Блокирует ли признак копии все регламентные задания?

Нет. Признак останавливает только задания, которые работают с внешними ресурсами и штатно проверяют этот признак в коде. Внутренние задания (пересчёты, обновление индексов) продолжают выполняться. Для полной остановки всех фоновых задач включите блокировку регламентных заданий в свойствах базы в консоли кластера.

Что делать, если конфигурация самописная и БСП в ней нет?

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

Можно ли установить признак копии для файловой базы?

Да, механизм БСП работает одинаково для файловых и серверных баз: и диалог при восстановлении, и обработка блокировки, и программный вызов доступны в обоих вариантах. Разница только в том, что для файловой базы нет консоли кластера — блокировку заданий на уровне сервера применить нельзя.

Копия уже успела отправить данные во внешние системы. Что делать?

Сначала немедленно заблокируйте регламентные задания в консоли кластера, чтобы остановить дальнейшие отправки. Затем по журналу регистрации определите, какие обмены выполнились, и свяжитесь с операторами затронутых сервисов (банк, ЭДО, сайт) для отмены или корректировки переданных данных. После разбора установите признак копии штатным способом.