Почему не открывается журнал «Документы продажи (все)» и как исправить ошибку идентификаторов объектов?

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

В процессе эксплуатации 1С:Управление торговлей 11.4 администраторы и программисты нередко сталкиваются с критической ошибкой, возникающей при попытке открыть общие журналы документов. Сообщение системы гласит: «Объект не может быть получен по идентификатору, помеченному на удаление». Это означает, что конфигурация потеряла связь между метаданными и их внутренним представлением в справочнике ИдентификаторыОбъектовМетаданных. Давайте разберем, почему это происходит и как устранить проблему шаг за шагом.

Суть проблемы: конфликт метаданных

Система БСП (Библиотека стандартных подсистем) использует справочник ИдентификаторыОбъектовМетаданных для хранения ссылок на объекты, учитывая информацию о свойствах конфигурации. Если объект (например, Документ.АктОРасхожденияхПослеОтгрузки) был удален из конфигурации в процессе обновления, а затем добавлен снова, в базе возникают дублирующие записи. Одна из них помечена на удаление, но система по ошибке продолжает пытаться обратиться к ней, что вызывает сбой при формировании списка документов.

Шаг 1: Диагностика справочника идентификаторов

Первым делом нам необходимо найти «битую» запись. Для этого воспользуемся механизмом Все функции (или Функции для технического специалиста в новых версиях платформы).

  1. Откройте справочник Идентификаторы объектов метаданных.
  2. Выполните поиск по наименованию проблемного документа.
  3. Проанализируйте список: вы наверняка обнаружите две записи. Одна из них будет иметь пометку удаления, а другая — нет.

Именно наличие «задвоения» и некорректная ссылка в коде Общего модуля приводят к невозможности открытия журнала.

Шаг 2: Исправление записи через Групповое изменение реквизитов

Если простая отмена пометки на удаление не срабатывает из-за встроенных защитных механизмов платформы, воспользуйтесь обработкой Групповое изменение реквизитов. Она позволяет принудительно изменить статус объекта.

Важное предупреждение: перед выполнением любых действий с метаданными в обязательном порядке сделайте полную резервную копию информационной базы (dt-файл или копия средствами SQL). Работа с этим справочником критически важна для прав доступа и версионирования.

Шаг 3: Перерегистрация данных в реестре документов

Поскольку журнал Документы продажи (все) строится на основании данных, отраженных в Ключах реестра документов, после исправления идентификаторов необходимо обновить данные самого реестра. Для автоматического устранения проблем в этих данных можно использовать обработку для поиска и исправления дублей в регистре «Реестр документов».

  1. Перейдите в раздел НСИ и администрирование — Обслуживание.
  2. Найдите пункт Корректировка данных или Регламентные операции.
  3. Запустите процедуру Проверка корректности отражения документов в реестре.
  4. Если это не помогло, попробуйте воспользоваться функционалом переотражения документов, если таковой доступен в текущем релизе конфигурации.

Шаг 4: Использование программных методов восстановления

Если интерфейсные методы не приносят результата, используйте возможности консоли кода. Часто бывает, что на объект установлены программные запреты на изменение пометки удаления. Чтобы их обойти, выполните следующий алгоритм:


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

Шаг 5: Инициализация справочника метаданных

Если проблема сохраняется, значит, кэш идентификаторов внутри базы данных требует принудительной синхронизации с текущей структурой конфигурации. Вы можете вызвать стандартную процедуру БСП:

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

Резюме

Ошибка доступа к объектам метаданных — это логический конфликт, который не лечится утилитой chdbfl.exe или обычным Тестированием и исправлением (ТиИ), так как с точки зрения физической структуры базы данных ссылки являются «валидными». Решение всегда лежит в плоскости приведения справочника ИдентификаторыОбъектовМетаданных в соответствие с текущей конфигурацией 1С.

← На главную