Как отвязать периферийную базу 1С от основного узла РИБ и сделать её независимой?

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

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

В этой статье мы подробно разберем, как выполнить отвязку периферийной базы от главного узла РИБ, используя программные методы и дополнительные настройки. Мы рассмотрим как основной метод с использованием кода, так и необходимые последующие действия, которые обеспечат стабильную и корректную работу отвязанной базы.

Основной метод: программный сброс главного узла

Ключевым шагом в процессе отвязки является программный сброс указания на главный узел для текущей информационной базы. В системе 1С:Предприятие это достигается вызовом статического метода глобального контекста ПланыОбмена.УстановитьГлавныйУзел() со значением Неопределено. Этот метод сообщает системе, что текущий узел больше не является подчиненным по отношению к какому-либо другому узлу.


ПланыОбмена.УстановитьГлавныйУзел(Неопределено);

Метод ПланыОбмена.УстановитьГлавныйУзел(Неопределено); фактически очищает ссылку на родительский узел для текущей базы. После его выполнения ваша база перестанет считать себя подчиненной и не будет пытаться обмениваться данными с главным узлом. Это фундаментальный шаг, без которого все остальные действия по отвязке будут бессмысленны.

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

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

  1. Откройте конфигуратор: Запустите 1С:Предприятие в режиме "Конфигуратор". Убедитесь, что вы работаете с той периферийной базой, которую хотите отвязать.
  2. Создайте новую внешнюю обработку: В конфигураторе перейдите в меню "Файл" -> "Новый...". В открывшемся окне выберите "Внешняя обработка" и нажмите "ОК".
  3. Добавьте форму для обработки: В дереве объектов новой обработки найдите ветку "Формы". Нажмите на ней правой кнопкой мыши и выберите "Добавить" -> "Форма обработки". Можно оставить стандартное имя формы, например, "Форма".
  4. Создайте команду на форме: Откройте созданную форму. На форме нам понадобится кнопка, которая будет выполнять наш код. Для этого на панели элементов управления найдите "Команды" и нажмите "Добавить". Присвойте команде понятное имя, например, "ОтвязатьОтГлавного". Затем перетащите эту команду на форму, чтобы она отобразилась как кнопка.
  5. Разместите код в модуле команды: В свойствах только что созданной команды найдите событие "Действие" (обычно это "Выполнить"). Нажмите на кнопку с лупой рядом с полем, чтобы открыть модуль команды. В этом модуле вставьте следующий код:
    
    &НаКлиенте
    Процедура ОтвязатьОтГлавного(Команда)
        ОтвязатьОтГлавногоНаСервере();
    КонецПроцедуры
    
    &НаСервере
    Процедура ОтвязатьОтГлавногоНаСервере()
        ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
    КонецПроцедуры
    

    Мы используем клиент-серверное взаимодействие, вызывая серверную процедуру из клиентской, так как метод ПланыОбмена.УстановитьГлавныйУзел() должен выполняться на сервере (или в контексте тонкого клиента с полными правами при файловой базе).

  6. Сохраните обработку: Сохраните внешнюю обработку в любом удобном месте на диске, присвоив ей понятное имя, например, "ОтвязкаРИБ.epf".
  7. Откройте и выполните обработку в режиме 1С:Предприятие: Запустите 1С:Предприятие (в обычном или управляемом приложении). Перейдите в меню "Файл" -> "Открыть..." и выберите сохраненную обработку. На открывшейся форме обработки нажмите созданную вами кнопку "Отвязать от главного".

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

Альтернативный способ: использование параметра запуска конфигуратора

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

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

Как запустить с параметром:

  1. Найдите ярлык запуска 1С:Предприятия (или создайте новый).
  2. Нажмите правой кнопкой мыши на ярлык и выберите "Свойства".
  3. В поле "Объект" после пути к исполняемому файлу 1С (например, "C:\Program Files\1cv8\8.3.18.1289\bin\1cv8.exe") добавьте параметры:
    
    "C:\Program Files\1cv8\8.3.18.1289\bin\1cv8.exe" ENTERPRISE /F "C:\MyBases\MyRIB" /ResetMasterNode
    
    где /F "C:\MyBases\MyRIB" указывает путь к файловой базе данных. Если база серверная, используйте /S "Сервер1С\ИмяБазы".
  4. Нажмите "Применить" и "ОК".
  5. Запустите 1С через этот ярлык.

После запуска с параметром /ResetMasterNode, система автоматически выполнит сброс главного узла. Затем можно удалить этот параметр из ярлыка.

Пост-операционные действия и важные проверки (для актуальных конфигураций)

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

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

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

    • "Настройка подчиненного узла РИБ завершена": Убедитесь, что этот флаг снят. Он сигнализирует системе, что база больше не является подчиненным узлом, для которого требуется выполнять специальные настройки или проверки РИБ.
    • "Это автономное рабочее место": Этот флаг также должен быть снят, если база не предназначена для использования в качестве автономного рабочего места.
    • "Не использовать разделение по областям данных": Для конфигураций, где используется механизм разделения данных по областям (например, в модели SaaS), крайне важно убедиться, что эта константа установлена соответствующим образом, чтобы обеспечить независимую работу базы. Если база создавалась как подчиненный узел в контексте разделения данных, могут потребоваться дополнительные шаги по ее "выводу" из этой модели. Установка значения "Истина" для этой константы обычно означает, что разделение не используется, что соответствует поведению независимой базы.

    Для доступа к константам используйте обработку со списком всех констант и их значений или стандартное меню "Все функции".

  3. Удаление записи плана обмена (через меню "Все функции - Планы обмена"):

    После того, как база перестала быть подчиненной, запись о главном узле в плане обмена становится неактуальной. Чтобы полностью очистить следы РИБ и избежать потенциальных ошибок, необходимо удалить соответствующую запись плана обмена. Через меню "Все функции" -> "Планы обмена" найдите запись, которая соответствовала главному узлу распределенной информационной базы (обычно она имеет имя вашего основного узла), и удалите её.

  4. Проверка прав пользователя и "Защита от опасных действий":

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

Дополнительные аспекты и рекомендации для полной отвязки

Для абсолютной уверенности в том, что база полностью отвязана и готова к независимой работе, рассмотрим более глубокие шаги:

  1. Проверка и очистка ссылок на план обмена: После установки главного узла в Неопределено, следует убедиться, что все ссылки на план обмена, связанные с бывшим главным узлом, были корректно очищены. Это может включать записи в регистрах сведений, константах, а также ссылочные данные, которые могли использоваться для определения текущего узла или настроек обмена. Некорректно очищенные ссылки могут приводить к ошибкам при дальнейшей работе с базой как с самостоятельной.
  2. Очистка регистрации изменений: После отвязки базы в ней остаются зарегистрированные изменения, которые предназначались для обмена с главным узлом. Для того чтобы база начала работать как независимая и не пыталась отправить или получить данные от несуществующего главного узла, рекомендуется полностью очистить все зарегистрированные изменения для всех планов обмена. Это можно сделать программно или с помощью стандартных средств конфигуратора, если они доступны для используемой конфигурации.
  3. Удаление файлов регистрации: В некоторых случаях, при проблемах с отвязкой или для полной "чистки" следов РИБ, может потребоваться ручное удаление файлов регистрации изменений, которые хранятся на диске. Это должны быть файлы, связанные с бывшим главным узлом, но к этому методу стоит прибегать с осторожностью и только при полном понимании последствий. Данные файлы обычно находятся в каталоге базы данных и имеют специфические имена, связанные с планами обмена.
  4. Перезапуск сервера 1С:Предприятия: В некоторых случаях, после выполнения операций по отвязке РИБ, может потребоваться перезапуск службы сервера 1С:Предприятия (если база клиент-серверная). Если база файловая, то достаточно просто перезапустить клиентское приложение. Это позволяет убедиться, что все внутренние кеши и настройки системы были обновлены в соответствии с новыми параметрами базы.
  5. Повторная проверка на наличие значка РИБ: После всех выполненных действий, обязательно следует проверить в конфигураторе, напротив наименования конфигурации в дереве метаданных, отсутствие значка распределенной информационной базы (обычно это иконка с двумя стрелками). Это является окончательным визуальным подтверждением успешной отвязки.
  6. Возможные особенности для разных конфигураций: Хотя принцип ПланыОбмена.УстановитьГлавныйУзел(Неопределено); является универсальным, конкретные конфигурации (например, УправлениеТорговлей 11, БухгалтерияПредприятия 3.0 и т.д.) могут иметь свои специфические константы, регистры или подсистемы, которые также требуют внимания при отвязке РИБ. Желательно изучить документацию или опыт других пользователей по конкретной конфигурации, если возникают проблемы.
  7. Влияние на лицензирование: В редких случаях, при использовании определенных типов лицензий или при специфических настройках сервера 1С, отвязка РИБ может потребовать переактивации лицензий или проверки их корректности, так как система может "думать", что это новая или существенно измененная база.
  8. Критически важное: Рекомендация по созданию резервной копии: Перед выполнением любых операций по изменению статуса базы РИБ, особенно по ее отвязке, настоятельно рекомендуется сделать полную резервную копию информационной базы. Это позволит восстановить работоспособность системы в случае непредвиденных ошибок или некорректных действий, обеспечивая безопасность ваших данных.

Возможные проблемы и их решения

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

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

← К списку