Разрыв связи с распределенной информационной базой (РИБ) — это процедура, которая часто кажется простой, но на практике в современных конфигурациях на базе БСП (Библиотеки стандартных подсистем), таких как 1С:Бухгалтерия 3.0, может привести к ряду серьезных технических сбоев. Ошибки могут варьироваться от системных уведомлений при запуске до невозможности сформировать отчеты или провести документы. Рассмотрим подробно, почему возникают эти проблемы и как их исправить шаг за шагом.
Когда мы используем ключ запуска /ResetMasterNode, платформа 1С принудительно снимает признак того, что база является подчиненной. Однако «внутренности» конфигурации, завязанные на логику БСП, всё еще могут считать базу частью обмена. Это приводит к конфликтам в менеджере имен базы данных, битым ссылкам в планах видов характеристик и некорректной работе механизмов блокировок. Проанализируем основные типы ошибок и методы их лечения.
Эта ошибка часто возникает при выполнении фоновых заданий, таких как обновление информационной панели. Проблема заключается в том, что после «жесткого» разрыва РИБ кэш метаданных или внутренние таблицы имен СУБД начинают содержать некорректные идентификаторы объектов. Простого очистки кэша или ТиИ (Тестирования и исправления) может быть недостаточно.
Разберем алгоритм действий для восстановления структуры имен:
.cf.Эта ошибка проявляется при попытке проведения документов и связана с механизмом управляемых блокировок в РегистреБухгалтерии.Хозрасчетный. В БП 3.0 этот регистр тесно связан с Планом видов характеристик (ПВХ) ВидыСубконтоХозрасчетные. При разрыве РИБ может произойти дублирование предопределенных элементов или появление «битых» ссылок.
Для решения этой ситуации проанализируем состояние ПВХ:
Если при попытке выбрать счет в ОСВ или сформировать отчет возникает ошибка Значение не является значением объектного типа (Тип), это означает, что система не может корректно прочитать структуру настроек, которые остались от «старой» базы. Программа пытается применить сохраненные настройки отбора к текущей структуре, которая была повреждена при разделении.
Выясним, как полностью сбросить эти настройки:
Оборотно-сальдовая ведомость по счету.Сохраненные настройки и очистить его для данного отчета.Чтобы минимизировать количество ошибок, одного ключа /ResetMasterNode бывает мало. Рассмотрим программный способ окончательной «зачистки» признаков подчиненного узла. Создадим внешнюю обработку и выполним следующий код:
&НаСервере
Процедура ОтключитьГлавныйУзелНаСервере()
// Снимаем ссылку на главный узел в плане обмена
Если ПланыОбмена.ГлавныйУзел() <> Неопределено Тогда
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
Сообщить("База успешно отключена от главного узла.");
КонецЕсли;
// Установка служебных констант БСП для корректной работы
Константы.НастройкаПодчиненногоУзлаРИБЗавершена.Установить(Ложь);
Если Константы.ТипИнформационнойБазы.Получить() <> Перечисления.ТипыИнформационныхБаз.АбсолютноНовая Тогда
// Дополнительные корректировки в зависимости от версии БСП
КонецЕсли;
КонецПроцедуры
После выполнения этого кода необходимо вручную зайти в Планы обмена и удалить запись, которая соответствовала бывшему главному узлу. Это предотвратит попытки системы инициировать обмен данными при старте.
Если ни ТиИ, ни пересборка конфигурации (CF), ни программное отключение не помогают избавиться от ошибок в файловой базе, проанализируем ситуацию с точки зрения целостности файла .1CD. Иногда после РИБ повреждаются внутренние системные таблицы, доступ к которым закрыт даже для Конфигуратора.
В этом случае эффективен следующий метод:
Этот метод позволяет «отфильтровать» мусорные записи в системных таблицах и получить абсолютно чистую базу с корректными идентификаторами метаданных.
Важный совет: Если база файловая, перед любыми действиями обязательно запустите утилиту chdbfl.exe (она находится в папке bin вашей платформы 1С). Она проверяет физическую структуру таблиц и часто находит ошибки в индексах, которые являются причиной сообщения «Запись не найдена в менеджере имен».