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