Ситуация, когда центральная база (ЦБ) распределенной информационной базы (РИБ) оказывается безвозвратно утерянной из-за сбоя оборудования или отсутствия резервных копий, является критической для бизнеса. Однако в среде 1С:Предприятие 7.7 (УРБД) существует техническая возможность «повысить» одну из периферийных баз (ПБ) до статуса центральной. В этой статье мы подробно рассмотрим, как это сделать, разберем сопутствующие риски и научимся восстанавливать связи между остальными узлами сети.
Прежде чем приступать к манипуляциям, проанализируем состояние системы. В РИБ 7.7 периферийная база содержит практически все данные, необходимые для работы, но имеет жесткую привязку к идентификатору центральной базы и ограничение на изменение конфигурации (замок). Наша задача — снять эти ограничения и перенастроить структуру обмена.
Важное правило: перед любыми действиями с файлами базы данных обязательно создайте полную резервную копию вашей периферийной базы. Все операции проводятся в монопольном режиме.
Этот метод является наиболее предпочтительным, так как он сохраняет целостность итогов и точку актуальности (ТА). Разберем его по шагам:
1SSYSTEM.DBF.После этих действий база перестает считать себя подчиненной. Теперь мы можем открыть её в Конфигураторе. Вы заметите, что конфигурация стала доступной для редактирования. Далее перейдем в меню «Администрирование» — «Распределенная ИБ» — «Управление» и нажмем кнопку «Установить код данной базы». Теперь наша база официально стала Центральной.
В некоторых случаях, если редактирование 1SSYSTEM.DBF не помогает или файл поврежден, пользователи прибегают к удалению группы служебных файлов. Рассмотрим, какие файлы отвечают за распределенный режим:
del 1SSYSTEM.DBF
del 1SDBSET.DBF
del 1SDBSET.CDX
del 1SDWNLDS.DBF
del 1SDWNLDS.CDX
del 1SUPDTS.DBF
del 1SUPDTS.CDX
Внимание! Проанализируем риски этого метода. Удаление 1SSYSTEM.DBF приведет к тому, что 1С при запуске создаст этот файл заново, но база «забудет» текущую дату точки актуальности. Это повлечет за собой необходимость полного пересчета регистров. Чтобы исправить ситуацию, после запуска базы в режиме «Предприятие» выполните следующие действия:
Самый сложный этап — заставить другие работающие периферийные базы «слушаться» нашу новую центральную базу. Проблема в том, что в 1С 7.7 обмен завязан на уникальных идентификаторах (ID). Если мы просто создадим новые узлы в справочнике РИБ, их внутренние ID не совпадут со старыми.
Для восстановления синхронизации нам потребуется отредактировать таблицу 1SDBSET.DBF в новой центральной базе:
1SDBSET новой ЦБ вручную пропишем эти коды.1SDWNLDS.DBF. В ней хранятся номера входящих и исходящих сообщений. Чтобы обмен не выдал ошибку «Ожидался номер сообщения...», необходимо выровнять эти счетчики в соответствии с последними файлами обмена, которые сохранились в периферийных узлах.Иногда даже после очистки 1SSYSTEM.DBF база может сохранять признаки «закрытости» метаданных. Посмотрим, как окончательно снять блокировку:
Выполним операцию «Объединение конфигураций». Для этого возьмем эталонный (пустой) MD-файл той же версии конфигурации. В процессе объединения 1С перестроит структуру объектов, что снимет все остаточные ограничения на редактирование. Это гарантирует, что в будущем вы сможете вносить изменения в конфигурацию и корректно транслировать их в подчиненные узлы.
Мы выяснили, что восстановление РИБ из «осколков» — процедура трудоемкая, но выполнимая. Подведем итог последовательности действий:
DBSIGN в 1SSYSTEM.DBF.1SDBSET.1SDWNLDS.Помните, что такие манипуляции — это крайняя мера. Чтобы избежать подобных ситуаций в будущем, настройте автоматическое резервное копирование не только файлов базы данных (DBF/SQL), но и конфигурационного файла (MD) на внешние носители или в облачное хранилище.