Почему при запуске 1С появляется сообщение «Информационная база перемещена или восстановлена из копии» и как это исправить?

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

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

Механизм определения копии в 1С:Предприятие 8.3

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

  1. Имя сервера 1С:Предприятия (имя кластера).
  2. Имя информационной базы в кластере 1С.
  3. Имя сервера баз данных (например, SQL-сервера).
  4. Имя базы данных непосредственно на SQL-сервере.

В клиент-серверном варианте эти данные хранятся внутри базы данных (в таблице Files). При каждом запуске платформа сравнивает текущую строку соединения с сохраненным эталоном. Если обнаруживается расхождение хотя бы в одном символе (даже если вместо IP-адреса указали DNS-имя того же сервера), 1С считает, что перед ней копия базы, и блокирует выполнение критически важных операций.

Почему это происходит: основные причины

Рассмотрим подробнее наиболее распространенные сценарии, которые приводят к появлению этого сообщения:

  1. Дублирование подключений в кластере 1С. Как выяснилось в ходе обсуждения на форуме, это одна из самых частых причин. Если в консоли администрирования кластера 1С созданы две разные записи (информационные базы), но обе они в своих настройках ссылаются на одну и ту же физическую базу на SQL-сервере, возникает конфликт. Система видит, что к одной SQL-базе обращаются под разными именами со стороны сервера приложений.
  2. Восстановление из бэкапа программными средствами. Рассмотрим ситуацию с использованием специализированного ПО, такого как Effect Saver. Если настроено автоматическое тестовое восстановление базы для проверки целостности архива, и программа разворачивает эту копию на том же сервере, 1С может зафиксировать изменение идентификаторов.
  3. Изменение параметров виртуальной машины. Если сервер 1С работает на виртуальной платформе (Hyper-V, VMware), изменение MAC-адреса сетевого адаптера или переезд виртуальной машины на другой хост может привести к тому, что платформа воспримет сервер как «новый».
  4. Изменение строки подключения в конфигурационном файле. Даже простая смена регистра в имени сервера (например, с SERVER-1C на server-1c) в настройках подключения у пользователя может вызвать подозрение системы, хотя чаще это касается именно серверных настроек кластера.

Разберем последствия выбора вариантов ответа

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

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

Вариант «Это копия информационной базы». Система переходит в защищенный режим. Это критически важно для тестовых баз. В этом режиме блокируются:

Пошаговое решение проблемы дублирования подключений

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

  1. Запустите Консоль администрирования серверов 1С:Предприятия.
  2. Разверните дерево вашего кластера и перейдите в раздел Информационные базы.
  3. Проанализируйте список баз. Ищите те, у которых в свойствах указан один и тот же Сервер баз данных и Имя базы данных.
  4. Если вы нашли «лишнюю» запись, которая осталась от предыдущих администраторов или использовалась для тестов, удалите её (только регистрацию в кластере, саму SQL-базу удалять не нужно).
  5. Перезапустите рабочий процесс или службу сервера 1С, если изменения не применились мгновенно.

Программный сброс признака копии (для разработчиков)

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

Чтобы сбросить состояние блокировки и обновить параметры связи, можно воспользоваться следующим кодом (запускать в режиме «1С:Предприятие» через внешнюю обработку):


// Сброс признака копии программно
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность") Тогда
    МодульИнформационнаяБазаВызовСервера = ОбщегоНазначения.ОбщийМодуль("ИнформационнаяБазаВызовСервера");
    // Устанавливаем параметры, как если бы пользователь нажал "Я переехал"
    МодульИнформационнаяБазаВызовСервера.УстановитьПризнакИнформационнаяБазаПеремещена();
    Сообщить("Параметры связи обновлены, режим копии снят.");
КонецЕсли;

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


// Пример снятия блокировки регламентных заданий
Блокировка = Новый БлокировкаСеансов;
Блокировка.УстановитьПараметрыСоединения = Ложь;
Блокировка.КодРазрешения = "КодДляАдмина"; // если установлен
// Очищаем параметры блокировки регламентных заданий через консоль или программно

Профилактика и очистка кэша

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

Рекомендуемый порядок очистки кэша на сервере:

  1. Остановите службу 1C:Enterprise 8.3 Server Agent.
  2. Перейдите в каталог данных сервера (обычно C:\Program Files\1cv8\srvinfo\reg_1541\).
  3. Найдите папку с уникальным идентификатором вашей базы (UID базы можно посмотреть в свойствах в консоли администрирования).
  4. Удалите внутри этой папки подпапку snccntx.
  5. Запустите службу сервера.

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

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

← На главную