В процессе эксплуатации 1С, особенно после некорректных обменов или работы внешних загрузчиков, пользователи часто сталкиваются с неприятной ситуацией: в отчетах вместо названия организации или склада красуется надпись «Объект не найден (84:...)». Это означает, что в базе данных существует ссылка на объект (битая ссылка), которого физически нет в соответствующем справочнике. Проблема усложняется, когда такие записи попадают в регистры накопления, влияя на остатки и себестоимость.
В данной статье мы разберем, как исправить подобные ошибки, рассмотрим инструменты для прямой корректировки записей регистров и выясним, почему в «Базовых» версиях конфигураций, таких как «1С:Розница», это требует особого подхода.
Проанализируем механику работы платформы. Каждая запись в 1С (документ, элемент справочника) имеет уникальный идентификатор — GUID. В регистры (например, ТоварыОрганизаций) записывается не само название организации, а именно этот идентификатор. Если объект был удален напрямую (например, через удаление помеченных объектов или программно), но ссылки на него остались в движениях документов, система не сможет сопоставить GUID с записью в справочнике Организации и выдаст ошибку визуализации.
Ситуация из практики: в документ оприходования были внесены данные без указания организации. Движения сформировались с «пустой» или некорректной ссылкой. Попытка просто перевыбрать организацию в документе и нажать «Провести» не всегда помогает, так как в «Базовых» версиях или при определенных блокировках периодов записи регистров могут не обновиться должным образом.
Рассмотрим наиболее гибкий метод, который помог автору темы. Существуют комплексные внешние обработки (например, «Инструменты разработчика»), которые позволяют работать с данными на низком уровне.
Файл — Открыть.ТоварыОрганизаций).Организация — именно там будет отображаться «Объект не найден».Организации непосредственно в наборе записей регистра, не вызывая штатную процедуру ОбработкаПроведения. Это критически важно, если мы не хотим менять дату документа или «двигать» последовательность.Выясним, есть ли возможность решить проблему встроенными средствами. В большинстве современных конфигураций на базе БСП (Библиотеки Стандартных Подсистем) предусмотрен специальный технический документ.
Посмотрим, как его найти, если он скрыт в интерфейсе:
КорректировкаРегистров.Важно: Этот метод не исправляет сам исходный документ, а создает сторнирующие или новые записи в регистрах. Это «чистый» бухгалтерский способ исправления, который сохраняет историю правок.
Если проблема массовая и «битая» ссылка встречается во многих документах, лучше применить системный подход. Разберем работу стандартной обработки «Поиск и замена значений».
Принцип работы прост: мы указываем системе «что искать» (нашу битую ссылку «Объект не найден») и «на что заменить» (корректную организацию). Программа просканирует всю базу данных, включая табличные части документов и движения по всем регистрам, и выполнит замену GUID на уровне ссылок. Это самый быстрый способ исправить ситуацию сразу во всех отчетах.
Проанализируем ситуацию, когда нам нужно изменить реквизиты самого документа так, чтобы он корректно перепровелся. В 1С есть встроенная обработка «Групповое изменение реквизитов».
Для доступа к скрытым полям выполним следующие действия:
Документ.ОприходованиеТоваров.Записать(РежимЗаписиДокумента.Проведение).Пример кода, который мог бы использоваться для программного исправления (для понимания логики процесса):
НаборЗаписей = РегистрыНакопления.ТоварыОрганизаций.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокумент);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Если Запись.Организация.ПолучитьОбъект() = Неопределено Тогда
Запись.Организация = Справочники.Организации.НайтиПоНаименованию("Наша организация");
КонецЕсли;
КонецЦикла;
НаборЗаписей.Записать();
Выясним, почему простое перепроведение документов может быть опасным, как упоминалось в обсуждении (сообщение №10). В программе «1С:Розница» (особенно базовой) перепроведение старых документов может привести к следующим последствиям:
Резюме: Если вам нужно исправить только отображение в отчетах (например, «Остатки товаров организаций»), используйте инструменты для прямой правки движений регистра или обработку «Поиск и замена значений». Старайтесь избегать полного перепроведения старых документов, если не уверены в чистоте партионного учета.