Выход из строя жесткого диска в удаленной торговой точке или филиале — распространенная аварийная ситуация при работе с распределенными информационными базами (УРБД) в 1С:Предприятие 7.7. Если физически восстановить данные с накопителя невозможно, возникает задача развертывания новой периферийной базы (ПБ) и наполнения ее актуальными данными из центральной базы (ЦБ).
Разберем основные методы восстановления периферийного узла, проанализируем нюансы миграции объектов и рассмотрим способы обхода платформенных ограничений.
Классический подход заключается в создании новой периферийной базы стандартными средствами конфигуратора центральной информационной базы. При этом важно помнить, что в новый образ автоматически попадут только объекты с правилом миграции «Все информационные базы» (везде). Данные с миграцией «ИБ создания и центр» или «Место создания» в выгрузку по умолчанию не попадут, и их необходимо будет зарегистрировать к обмену вручную.
Разберем по шагам весь процесс штатного восстановления:
Рассмотрим пример программного кода для принудительного включения документов узла в миграцию. Обработка перебирает документы нужного вида и вызывает метод Записать() только для тех объектов, которые принадлежат восстанавливаемой базе:
ВыбИБ = "002"; // Код восстанавливаемой периферийной базы
Док = СоздатьОбъект("Документ.РасходнаяНакладная");
Док.ВыбратьДокументы(НачДата, КонДата);
Пока Док.ПолучитьДокумент() = 1 Цикл
Если ИБСозданияОбъекта(Док.ТекущийДокумент()) = ВыбИБ Тогда
Док.Записать();
КонецЕсли;
КонецЦикла;
Перед загрузкой сформированного пакета обмена в периферийную базу рекомендуется временно отключить журнал регистрации в ПБ, чтобы ускорить процесс записи большого объема входящих транзакций.
Если удалять и заново создавать узел в метаданных нежелательно, можно сбросить признак того, что начальный образ узла уже сформирован. Для этого обратимся к служебным таблицам базы данных 1С 7.7:
1SDBSET.DBF или таблицу _1SDBSET.DBSTATUS значение 'N' (Not uploaded).Штатная выгрузка начального образа через конфигуратор на крупных базах данных часто упирается в ограничение встроенного архиватора 1С 7.7 (лимит размера zip-файла не более 2 ГБ) либо занимает недопустимо много времени. В таких случаях гораздо эффективнее превратить полную копию центральной базы в периферийную прямым редактированием служебных таблиц.
Разберем по шагам создание ПБ из копии ЦБ:
1SSYSTEM (или _1SSYSTEM в MS SQL) изменим поле DBSIGN, указав в нем 3-символьный код восстанавливаемой периферийной базы (например, '002').1SDBSET (или _1SDBSET):
DBSTATUS = 'P' (главная база).DBSTATUS = 'M' (локальная база).1SUPDTS (_1SUPDTS) и 1SDWNLDS (_1SDWNLDS). Если не очистить эти таблицы, база при первом сеансе связи попытается выгрузить в центр избыточный объем накопленных изменений.Проанализируем важные нюансы, о которых следует помнить при восстановлении узла:
1SDBSET, синхронизировав значения между ЦБ и ПБ.