Разделение учета по конкретной организации с помощью механизма Распределенных Информационных Баз (РИБ) — стандартная, но технически сложная процедура. Часто после создания подчиненного узла, синхронизации данных и последующего разрыва связи с головной базой, пользователи сталкиваются с каскадом ошибок. Проблемы проявляются в невозможности сформировать отчеты, провести документы или даже просто открыть План счетов.
В этой статье мы подробно разберем причины возникновения ошибок «Значение не является значением объектного типа (Тип)» и «Субконто0 задано дважды», а также проанализируем пошаговый алгоритм восстановления работоспособности базы данных.
Когда мы используем РИБ с фильтром по организации, платформа 1С выполняет сложную операцию по отсечению «чужих» данных. Однако вместе с данными могут быть повреждены внутренние связи между объектами метаданных. Основная причина кроется в рассинхронизации идентификаторов между Планом счетов и Планом видов характеристик (ПВХ) Виды субконто.
Рассмотрим основные симптомы, с которыми мы сталкиваемся:
Значение не является значением объектного типа (Тип). Это происходит в общем модуле БухгалтерскиеОтчеты, когда программа пытается программно определить типы субконто, закрепленные за счетом, но получает «битую ссылку» или Неопределено.Субконто0 элемента блокировки пространства РегистрБухгалтерии.Хозрасчетный задано дважды. Это техническая ошибка платформы, указывающая на дублирование измерений в структуре регистра бухгалтерии или нарушение логики работы общего модуля УчетВзаиморасчетов.Если стандартные средства, такие как chdbfl.exe или Тестирование и исправление (ТиИ), не приносят результата, наиболее эффективным методом является «переливка» данных в чистую информационную базу. Это позволяет полностью пересоздать менеджер имен и индексы таблиц.
Разберем алгоритм действий:
.cf файла (конфигурации), что и проблемная база. Крайне важно, чтобы версии конфигураций совпадали до последнего знака.ВидыСубконтоХозрасчетные.Хозрасчетный.Часто после загрузки данных в чистую базу пользователи замечают, что в Плане счетов исчезли субконто (например, на 60 или 62 счете пусто в колонках субконто). Проанализируем ситуацию: это происходит потому, что при частичном переносе данных связи в табличных частях Плана счетов могут не восстановиться автоматически.
Для исправления этой ситуации выполним следующие действия:
План видов характеристик заполнен. Если он пуст, его необходимо перенести из исходной базы повторно.Эта ошибка часто возникает в коде общего модуля при программной установке управляемых блокировок. Рассмотрим пример кода, который обычно вызывает сбой в поврежденной базе:
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Хозрасчетный");
ЭлементБлокировки.УстановитьЗначение("Счет", СчетУчета);
ЭлементБлокировки.УстановитьЗначение("Субконто0", ЗначениеСубконто);
Блокировка.Заблокировать();
Если в метаданных Плана счетов произошел сбой и система считает, что у счета два одинаковых вида субконто (или одно из них некорректно определено), метод Заблокировать() вызовет исключение. Выясним причину: платформа видит дублирование ключа блокировки по одному и тому же измерению. Решение здесь аналогично Шагу 2 — полная перезапись состава субконто в Плане счетов для проблемного счета.
Если после переноса данных в Оборотно-сальдовой ведомости появились странные обороты (например, в периодах, относящихся к 0001 году или с пустыми датами), это верный признак повреждения Регистра бухгалтерии или наличия записей с незаполненными реквизитами даты.
Для исправления ситуации выполним Пересчет итогов:
Администрирование — Тестирование и исправление.Если ошибка Запись не найдена в менеджере имен базы данных сохраняется даже после ТиИ, проанализируем состояние конфигурации. Иногда помогает «фиктивное» изменение. Добавим любой комментарий в общий модуль, сохраним и обновим конфигурацию базы данных (клавиша F7). Это заставит систему пересобрать внутренние таблицы соответствий объектов метаданных.
Резюме: При возникновении глубоких повреждений после разделения РИБ, не пытайтесь «латать» базу точечно. Лучшая стратегия — последовательный перенос данных через XML в чистую конфигурацию с обязательным захватом Плана счетов, Плана видов характеристик и последующим полным тестированием и пересчетом итогов. Только так можно гарантировать восстановление целостности ссылок и корректную работу механизмов блокировок при проведении документов.