Администрирование · 12 мин
Как установить признак копии для серверной базы 1С
Как установить признак копии для серверной базы 1С: через конфигуратор, код и блокировку регламентных заданий. Пошаговая инструкция, проверка и ошибки.
При восстановлении серверной базы 1С из резервной копии под новым именем — для тестирования, обучения или разработки — возникает типовая проблема: копия продолжает выполнять регламентные задания, обмениваться данными с другими системами и рассылать уведомления пользователям. Это приводит к дублированию документов в учётных системах, повторной отправке писем клиентам и конфликтам при синхронизации. Признак копии информационной базы решает эту задачу: он сообщает платформе и прикладному коду, что база является копией, и блокирует опасные фоновые операции.
Механизм поддерживается библиотекой стандартных подсистем (БСП), которая входит в состав большинства типовых конфигураций — «Управление торговлей», «Бухгалтерия предприятия», «Зарплата и управление персоналом», ERP и других. Если конфигурация построена на БСП, признак копии можно установить штатными средствами без доработки кода. Для самописных конфигураций потребуется реализовать аналогичную логику вручную.
Ниже разобраны способы установки признака: автоматическое определение при восстановлении, ручная установка через интерфейс, программная установка через встроенный язык и блокировка регламентных заданий на уровне кластера серверов. Каждый способ имеет свои условия применения и ограничения.
Что даёт признак копии и когда он нужен
Признак копии — это внутренняя отметка информационной базы, которая сигнализирует прикладному коду: текущая база не является рабочей, и операции с внешними ресурсами выполнять нельзя. В конфигурациях на БСП при установленном признаке отключаются обмены данными, отправка и получение почты, синхронизация с банками, обмен с сайтами, выгрузки в отчётные сервисы и другие интеграции.
Устанавливать признак нужно всякий раз, когда рабочая база восстанавливается под другим именем: тестовый контур для проверки обновлений, база для обучения сотрудников, копия для разработчика, стенд для проверки обменов. Если этого не сделать, копия начнёт жить «параллельной жизнью» с рабочей базой — и последствия могут затронуть реальных контрагентов и реальные деньги.
Автоматическое определение копии при восстановлении
Начиная с современных версий платформы и БСП, при первом запуске базы, восстановленной из резервной копии, система сравнивает строку соединения с сохранённой ранее. Если сервер или имя базы изменились, при входе пользователя с правами администратора появляется диалог с вопросом: «Информационная база была перемещена или восстановлена из копии?»
В этом диалоге два варианта. Кнопка «Это копия информационной базы» устанавливает признак копии и блокирует работу с внешними ресурсами. Кнопка «Информационная база перемещена» снимает блокировку и обновляет сохранённую строку соединения — её выбирают, когда рабочая база действительно переехала на новый сервер, а не была скопирована.
Если диалог не появился — например, базу восстановили под тем же именем на том же сервере, или пользователь случайно закрыл окно, — признак придётся установить вручную одним из способов ниже.
Ручная установка через обработку блокировки внешних ресурсов
В конфигурациях на БСП предусмотрена штатная обработка, которая управляет признаком копии и блокировкой внешних ресурсов. Путь к ней зависит от конфигурации, но обычно она находится в разделе администрирования.
Типовой путь: раздел «Администрирование» → «Обслуживание» → «Регламентные операции» → «Разблокировать работу с внешними ресурсами» (или наоборот — команда блокировки, если признак ещё не установлен). В некоторых конфигурациях обработка доступна через «НСИ и администрирование» → «Поддержка и обслуживание».
Если найти команду в интерфейсе не удаётся, обработку можно открыть напрямую: «Файл» → «Открыть» и выбрать встроенную обработку «БлокировкаРаботыСВнешнимиРесурсами» из состава конфигурации. В форме обработки есть явная кнопка установки блокировки — после нажатия признак копии будет записан в базу, а регламентные задания, работающие с внешними ресурсами, перестанут выполняться.
- 1Войдите в копию базы под учётной записью с полными правами
- 2Откройте раздел «Администрирование» → «Обслуживание»
- 3Найдите команду блокировки работы с внешними ресурсами
- 4Нажмите кнопку установки блокировки и подтвердите действие
- 5Проверьте, что регламентные задания обмена и рассылок остановлены
Программная установка через встроенный язык
Когда интерфейс недоступен (например, база запускается только в режиме тонкого клиента с ограниченным интерфейсом) или нужно автоматизировать установку признака в скрипте развёртывания тестовых контуров, используется программный вызов. В конфигурациях на БСП есть специализированный общий модуль.
// Установка признака копии (БСП)
РаботаВКопииИнформационнойБазы.УстановитьПризнакКопии(Истина);
// Проверка текущего состояния
ЭтоКопия = РаботаВКопииИнформационнойБазы.ЭтоКопияИнформационнойБазы();
// Альтернатива для старых версий БСП:
Константы.ИспользоватьБлокировкуРаботыСВнешнимиРесурсами.Установить(Истина);Код выполняется через внешнюю обработку, консоль кода или при начальном заполнении базы. Важно: метод должен вызываться от имени пользователя с правами на изменение констант, иначе получите ошибку нарушения прав доступа. В файловых базах и на сервере механика одинаковая — различается только способ подключения.
Для самописных конфигураций без БСП типового механизма нет. В этом случае признак копии реализуют собственной константой (например, «ЭтоКопияБазы») и проверяют её в начале каждого регламентного задания и процедуры обмена. Плюс обязательно блокируют регламентные задания на уровне кластера — об этом в следующем разделе.
Блокировка регламентных заданий на уровне кластера
Признак копии в БСП блокирует только те задания, которые работают с внешними ресурсами и корректно проверяют этот признак. Задания, не связанные с внешними системами (пересчёт итогов, обновление индексов полнотекстового поиска), продолжат выполняться. Для тестовых контуров часто требуется остановить вообще все фоновые операции — это делается в консоли кластера серверов 1С.
Откройте консоль управления серверами 1С, найдите нужную информационную базу, откройте её свойства и установите флажок «Блокировка регламентных заданий включена». После этого ни одно регламентное задание в этой базе выполняться не будет, независимо от прикладного кода. Это надёжный «второй рубеж» защиты, который не зависит от того, установлен ли признак копии в самой конфигурации.
Там же, в свойствах базы кластера, полезно заполнить поле «Описание» пометкой «КОПИЯ — НЕ ИСПОЛЬЗОВАТЬ ДЛЯ РАБОТЫ» и при необходимости установить блокировку начала сеансов с сообщением для пользователей. Это защитит от ситуации, когда сотрудник по ошибке подключится к копии и начнёт вносить в неё реальные документы.
Как выбрать способ
Проверка результата
После установки признака убедитесь, что блокировка реально действует. Признаки правильно настроенной копии: в журнале регистрации нет новых записей о выполнении регламентных заданий обмена; при попытке вручную запустить синхронизацию появляется сообщение о блокировке работы с внешними ресурсами; в настройках обменов отображается предупреждение о том, что база является копией.
Дополнительная проверка — программная: выполните в консоли кода вызов проверки признака и убедитесь, что возвращается значение «Истина». Если признак установлен, а обмены продолжают выполняться — значит, конкретное регламентное задание не проверяет признак копии (типично для доработанных конфигураций), и его нужно отключить отдельно или заблокировать задания на уровне кластера.
Как проверить результат
Вызов ЭтоКопияИнформационнойБазы() возвращает Истина
Возвращается Ложь — признак не записался, проверьте права
Задания обмена и рассылок не выполняются, в журнале нет новых сеансов
Задания продолжают стартовать — включите блокировку в кластере
Появляется сообщение о блокировке работы с внешними ресурсами
Синхронизация выполняется — задание доработано и игнорирует признак
Типичные ошибки и ограничения
Самая частая ошибка — путаница между кнопками «Это копия» и «База перемещена» в диалоге при первом запуске. Если при переезде рабочей базы на новый сервер администратор по ошибке нажмёт «Это копия», рабочая база перестанет выполнять обмены — банк-клиент, ЭДО и рассылки молча остановятся. Обратная ошибка (нажать «перемещена» для тестовой копии) опаснее: копия начнёт обмениваться с внешними системами как рабочая.
Вторая ошибка — забыть про копии, созданные обходными путями: через резервное копирование средствами СУБД (MS SQL, PostgreSQL) без выгрузки в dt. При таком способе диалог определения копии может не появиться, потому что строка соединения формально не менялась с точки зрения платформы. Для таких копий признак нужно устанавливать вручную сразу после восстановления, до запуска пользователей.
Ограничение механизма: признак копии блокирует только штатные обмены БСП. Внешние обработки, запущенные пользователем вручную, COM-соединения из других баз и интеграции через HTTP-сервисы, опубликованные отдельно, признак не остановит. Полную изоляцию тестового контура обеспечивают комплексно: признак копии + блокировка заданий в кластере + отдельные тестовые учётные записи во внешних сервисах.
Что важно запомнить
Признак копии защищает внешние системы от действий тестовой базы. Устанавливайте его сразу при восстановлении копии: через диалог при первом входе, обработку блокировки внешних ресурсов или программный вызов. Для полной изоляции дополнительно блокируйте регламентные задания в консоли кластера и проверяйте результат по журналу регистрации.
Частые вопросы
Как снять признак копии, если база снова стала рабочей?
Откройте обработку блокировки работы с внешними ресурсами в разделе администрирования и нажмите кнопку разблокировки — признак будет снят, и обмены возобновятся. Либо выполните программный вызов УстановитьПризнакКопии(Ложь). Перед снятием убедитесь, что исходная рабочая база остановлена, иначе две базы начнут обмениваться с внешними системами одновременно.
Почему диалог «Это копия или перемещение» не появился после восстановления?
Диалог срабатывает при изменении строки соединения, сохранённой в базе. Если копию восстановили под тем же именем на том же сервере, восстановили средствами СУБД или первым вошёл пользователь без административных прав, диалог может не появиться. В этих случаях устанавливайте признак вручную.
Блокирует ли признак копии все регламентные задания?
Нет. Признак останавливает только задания, которые работают с внешними ресурсами и штатно проверяют этот признак в коде. Внутренние задания (пересчёты, обновление индексов) продолжают выполняться. Для полной остановки всех фоновых задач включите блокировку регламентных заданий в свойствах базы в консоли кластера.
Что делать, если конфигурация самописная и БСП в ней нет?
Типового механизма не будет. Создайте собственную константу-признак, добавьте её проверку в начало каждого регламентного задания и процедуры обмена, а на уровне кластера включите блокировку регламентных заданий для тестовой базы. Это даёт аналогичный уровень защиты.
Можно ли установить признак копии для файловой базы?
Да, механизм БСП работает одинаково для файловых и серверных баз: и диалог при восстановлении, и обработка блокировки, и программный вызов доступны в обоих вариантах. Разница только в том, что для файловой базы нет консоли кластера — блокировку заданий на уровне сервера применить нельзя.
Копия уже успела отправить данные во внешние системы. Что делать?
Сначала немедленно заблокируйте регламентные задания в консоли кластера, чтобы остановить дальнейшие отправки. Затем по журналу регистрации определите, какие обмены выполнились, и свяжитесь с операторами затронутых сервисов (банк, ЭДО, сайт) для отмены или корректировки переданных данных. После разбора установите признак копии штатным способом.