Как устранить ошибки в 1С:Бухгалтерия 3.0 после отключения от распределенной информационной базы (РИБ)

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

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

Причины возникновения ошибок после сброса признака главного узла

Когда мы используем ключ запуска /ResetMasterNode, платформа 1С принудительно снимает признак того, что база является подчиненной. Однако «внутренности» конфигурации, завязанные на логику БСП, всё еще могут считать базу частью обмена. Это приводит к конфликтам в менеджере имен базы данных, битым ссылкам в планах видов характеристик и некорректной работе механизмов блокировок. Проанализируем основные типы ошибок и методы их лечения.

Решение проблемы «Запись не найдена в менеджере имен базы данных»

Эта ошибка часто возникает при выполнении фоновых заданий, таких как обновление информационной панели. Проблема заключается в том, что после «жесткого» разрыва РИБ кэш метаданных или внутренние таблицы имен СУБД начинают содержать некорректные идентификаторы объектов. Простого очистки кэша или ТиИ (Тестирования и исправления) может быть недостаточно.

Разберем алгоритм действий для восстановления структуры имен:

  1. Откроем базу в режиме Конфигуратор.
  2. Выполним команду Конфигурация — Выгрузить конфигурацию в файл... и сохраним файл с расширением .cf.
  3. Сразу же выберем пункт Конфигурация — Загрузить конфигурацию из файла..., указав только что созданный файл. Это действие заставляет платформу полностью перестроить внутренние таблицы индексов и имен метаданных, что невозможно при обычном обновлении через F7.
  4. Применим изменения (F7) и запустим базу.

Исправление ошибки «Субконто0 элемента блокировки задано дважды»

Эта ошибка проявляется при попытке проведения документов и связана с механизмом управляемых блокировок в РегистреБухгалтерии.Хозрасчетный. В БП 3.0 этот регистр тесно связан с Планом видов характеристик (ПВХ) ВидыСубконтоХозрасчетные. При разрыве РИБ может произойти дублирование предопределенных элементов или появление «битых» ссылок.

Для решения этой ситуации проанализируем состояние ПВХ:

  1. Зайдем в меню «Все функции» (или «Функции для технического специалиста») и найдем План видов характеристик «Виды субконто хозрасчетные».
  2. Внимательно проверим список на наличие дублей. Даже если визуально названия одинаковые, это могут быть разные элементы с разными внутренними идентификаторами.
  3. Запустим процедуру Тестирование и исправление в Конфигураторе со следующими настройками:
    • Проверка логической целостности.
    • Проверка ссылочной целостности.
    • При наличии ссылок на несуществующие объекты — Очищать объекты.

Устранение сбоев в отчетах (Оборотно-сальдовая ведомость)

Если при попытке выбрать счет в ОСВ или сформировать отчет возникает ошибка Значение не является значением объектного типа (Тип), это означает, что система не может корректно прочитать структуру настроек, которые остались от «старой» базы. Программа пытается применить сохраненные настройки отбора к текущей структуре, которая была повреждена при разделении.

Выясним, как полностью сбросить эти настройки:

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав.
  2. Выберем пункт Настройки пользователей.
  3. Найдем нужного пользователя, перейдем на вкладку «Внешний вид» или «Настройки отчетов» и полностью удалим все записи, связанные с отчетом Оборотно-сальдовая ведомость по счету.
  4. Дополнительно рекомендуется проверить регистр сведений Сохраненные настройки и очистить его для данного отчета.

Корректное программное отключение РИБ

Чтобы минимизировать количество ошибок, одного ключа /ResetMasterNode бывает мало. Рассмотрим программный способ окончательной «зачистки» признаков подчиненного узла. Создадим внешнюю обработку и выполним следующий код:


&НаСервере
Процедура ОтключитьГлавныйУзелНаСервере()
    // Снимаем ссылку на главный узел в плане обмена
    Если ПланыОбмена.ГлавныйУзел() <> Неопределено Тогда
        ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
        Сообщить("База успешно отключена от главного узла.");
    КонецЕсли;

    // Установка служебных констант БСП для корректной работы
    Константы.НастройкаПодчиненногоУзлаРИБЗавершена.Установить(Ложь);
    Если Константы.ТипИнформационнойБазы.Получить() <> Перечисления.ТипыИнформационныхБаз.АбсолютноНовая Тогда
         // Дополнительные корректировки в зависимости от версии БСП
    КонецЕсли;
КонецПроцедуры

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

Радикальный метод: Перенос данных через XML

Если ни ТиИ, ни пересборка конфигурации (CF), ни программное отключение не помогают избавиться от ошибок в файловой базе, проанализируем ситуацию с точки зрения целостности файла .1CD. Иногда после РИБ повреждаются внутренние системные таблицы, доступ к которым закрыт даже для Конфигуратора.

В этом случае эффективен следующий метод:

  1. Выгрузим чистую конфигурацию (CF) из исходной базы.
  2. Создадим новую пустую информационную базу.
  3. Загрузим в нее сохраненную конфигурацию CF.
  4. Используя стандартную обработку «Выгрузка и загрузка данных XML», перенесем все данные из проблемной базы в новую.

Этот метод позволяет «отфильтровать» мусорные записи в системных таблицах и получить абсолютно чистую базу с корректными идентификаторами метаданных.

Важный совет: Если база файловая, перед любыми действиями обязательно запустите утилиту chdbfl.exe (она находится в папке bin вашей платформы 1С). Она проверяет физическую структуру таблиц и часто находит ошибки в индексах, которые являются причиной сообщения «Запись не найдена в менеджере имен».

← На главную