Объект не найден 1с

Обновлено: 07.07.2024

Получил ссылку по гуид, как красиво и правильно проверить, что это существующая ссылка, а не <Объект не найден>?

Если Ссылка.ПолучитьОбъект() = Неопределено - значит "объект не найден"

(0) Самый быстрый способ это привести к Строке, и в строке найти слово "<объект не найден"

(7) все равно чтение базы для получения представления сделает. поэтому разница в между условно 19 и 20 мс.

(9) для 1 ссылки может и быстрее. лучше рассмотрите случай с тысячей ссылок.

(10) А разве получение представления - это не запрос к базе? О_о
Или ты про то, что может быть кэшировано?

(5) Это уже вариация (1), объект один хрен будет зачитываться целиком

(10) (12) Если проверить сразу несколько тогда уж программно собрать кусочный запрос и единоразово его выполнить

(7) Строку проверить на объект не найден - не самый надежный. Например, в другой локализации (на др. языке) слов таких может не быть.

Я считаю, что неверно поставлена цель.
Не "как красиво проверить", а "как эффективно".

На мой взгляд самый эффективный способ в (3).

Эффективный с точки зрения обращения к базе данных.
Эффективный с точки зрения скорости выполнения.

(20) замер на простом (с точки зрения структуры) справочнике показывает как ни (очень!) странно, что он самый медленный

(21) комментарии про один запрос на тысячу ссылок не принимаются. В такой ситуации всё должно быть очевидно

(21) Потому что есть подозрение что в этот момент Справочники.Банки.ПолучитьСсылку() платформа что то кеширует, и дальше ты без обращения к БД делаешь быструю операцию, по этому запрос медленнее

(27) Не понял.
Справочники.Банки.ПолучитьСсылку() там перед каждой проверкой, ссылки каждый раз разные, что кэширует?

(25) + в запросе выбери не код, а ссылку, платформа ужас как не любит обращатся к лкластерному индексу, как бы там не было обращение к этому индексу Код + Ссылка

(30) заменил, результат не поменялся. Было 28.02 стало 27.69
(31) замер на файловой базе

Прочитай, хотя бы, Митичкина "Разработка в системе 1С:Предприятие 8". Волшебник

Список <Объект не найден> в рабочую область обработки можно перенести просто копированием и вставкой из файла (txt, xlsx, mxl и т.п.) или просто копи-пастом из полей программы 1С (рабочая область обработки - это табличный документ, кстати данные в табличном документе обработки сохраняются, так что при повторном открытии вы увидите, то на чем остановились).

Выбираем тип объектов, в которых требуется выполнить поиск (на примере - это Справочник.СтруктураПредприятия, выбирается из справочника Идентификаторы объектов метаданных).

1) [ Обработать таблицу ] - По указанному списку объект не найден, выделяет уникальный идентификатор утерянного элемента и пытается найти в текущей базе реальную ссылку (справочник или документ) по типу и уникальному идентификатору

2) [ Создать пустые объекты ] - Создает пустышки, это будут реальные ссылки на элементы справочника или документа с теми же Уникальными идентификаторами, которые были утеряны. В наименование справочника или комментарий документа для идентификации будет добавлен текст вида "Восстановлен <Объект не найден> (502:a7915254002e11eb11e6df18a24c96f4)".

4) [ Очистить таблицу ] - очищает рабочую область обработки, приводя к исходному виду.

Где может пригодиться обработка:

- Если в исходной базе потеряны объекты, например, в документах пустые ссылки в полях, то можно в архиве базы запустить обработку и понять, что перенести в рабочую базу стандартной обработкой ВыгрузкаЗагрузкаДанныхXML.epf

- Если в текущей базе в полях есть <Объект не найден> и непонятно, где он еще используется, то запустив обработку делаем [Обработать таблицу] и [Создать пустые объекты] - в результате создадутся элементы справочника с названием, типа "Восстановлен <Объект не найден> (502:a7915254002e11eb11e6df18a24c96f4)" (или документы с таким комментарием). Это уже будет не фейковая надпись, а реальный элемент базы и Мы идем в Меню 1С - Все функции - Стандартные - Поиск ссылок на объекты, где указываем данный элемент и получаем все объекты системы где он используется (т.е. существующие объекты базы, где в полях был этот <Объект не найден. >)

Обработка выгрузки и загрузки данных через XML между идентичными конфигурациями с возможностью установки произвольных отборов на выгружаемые объекты.

Подключаемый отчет на системе компоновки данных по типам объектов 1С показывает: 1) Совокупности таблиц SQL для хранения объекта 1С и их предназначение; 2) Число объектов данного типа; 3) Размеры хранения данных и индексов в MB (мегабайтах); 4) Сравнение данных двух баз

Предназначается для запуска сеанса другого пользователя из своего сеанса 1С (если пароль вам неизвестен).

Если пользователю не хватает прав на объект, то на практике в 90 % случаев, недостающую роль можно найти через типовой регистр сведений Права ролей. Также с помощью дополнительного отчета или небольшого расширения можно ускорить описанный процесс.

Онлайн диаграмма доступных лицензий 1С и показателей ресурсов сервера 1С в различных измерениях и отборах.

Обработка ищет все объекты базы, в которых одновременно присутствуют перечисленные элементы. Построена на базе типовой обработки Все функции - Стандартные - Поиск ссылок на объект, но позволяет накладывать отбор не по одному объекту, а по нескольким, что позволяет настраивать поиск по комбинациям условий

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

Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем.

Групповая обработка ссылок вида Объект не найден (502:37855254002e11eb11e73b8f36150d9e) заполняется максимально просто копированием и вставкой из буфера: 1) Выделяет уникальные идентификаторы (далее УИ); 2) Ищет ссылки на объекты базы по УИ; 3) Создаёт пустые объекты с указанным УИ; 4) Регистрирует найденные ссылки для обмена данными. Работает на любых продуктах 8.3

Обработка на управляемых формах для работы с календарями google, событиями календарей и контактами.

Обработка проверяет наличие и решает проблему с ошибкой развернутого сальдо в Оборотно-сальдовой ведомости (регистр бухгалтерии Хозрасчетный) из-за ошибки Универсального редактора реквизитов или кода программиста, устанавливающего пустые ссылки в значениях Валюты, Подразделения, Направления деятельности не равными NULL. И пересчёт итогов тут точно не поможет.

Выполнил 3 разных теста для проверки серверного оборудования (тест 1С, тесты gilev) на возможное число 1С онлайн-пользователей одновременно работающих на нем и интерпретировал результаты тестов через легких, средних и тяжелых пользователей с помощью таблицы с профилями реальных пользователей.

Перед началом проекта требуется определить параметры серверного и клиентского оборудования, необходимые для работы внедряемой программы 1С:Предприятие, и учесть будущую нагрузку, которая ляжет на систему в реальной рабочей обстановке. Мощность оборудования должна быть достаточной для нормальной работы пользователей. Но как подобрать сервер простым способом?

На время сеанса отключаем контроль остатков и проверку документов в ERP, КА, УТ типовыми средствами и простым расширением.

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

Есть несколько удобных опций для облегчения внесения изменений.

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

Пример технического задания для практического понимания основных разделов.

Кратко описаны основополагающие моменты при старте групповой разработки конфигурации несколькими программистами. Полезно для проектной документации как требование к разработчикам или сопровождающей компании

Ссылка на компетенции по 1С:ERP - команда со знаниями, умениями и успешными проектами.

Битые ссылки появляются в базе как правило после непосредственного удаления объектов (без контроля ссылок на них).

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

Такие ссылки могут возникать:

1. В результате действий пользователей имеющих право непосредственного удаления объектов, без пометки на удаление и контроля ссылочной целостности перед удалением. Поэтому такие права у пользователей желательно забрать;

2. При выполнении обработки некорректно удаляющей объекты;

3. При выполнении обмена между информационными базами в варианте РИБ или обмен по правилам обмена между отличающимися базами.

Бывает так, что пользователь в одной базе участвующей в обмене, вполне корректно удалил объект т.к. ссылок на него в этой базе не было. Информация об удалении объекта передается в другую базу, где на него есть ссылки. В типовых конфигурациях объект при этом удаляется непосредственно, и возникают "битые" ссылки. Как пример - процедура УдалитьОбъектПоСсылке() в модуле обработки ОбменДаннымиXML. В конце этой процедуры вызывается процедура УдалитьОбъект(Объект, Истина). Вторым параметром в этой процедуре является признак непосредственного удаления объекта. Необходимо заменить его на Ложь;

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

Если имеется достаточно свежая архивная копия базы, то можно попробовать восстановить эти ссылки.

Для этих целей в интернете можно найти достаточно много обработок.

Например вот эта: http://help1c.com/faq/view/1128.html "Поиск в базе битых ссылок - "объект не найден", которая позволяет найти битые ссылки в режиме 1С:Предприятия, без запуска конфигуратора 1С и выполнения "тестирования и справления".

Однако, заниматься этим вручную - это утомительная и малопроизводительная трата времени. Гораздо эффективнее поручить эту работу самой же 1С.

На Инфостарте уже публиковались обработки позволяющие сделать это автоматически.

И хотя цели у моей и этой обработки одинаковые - восстановление "битых" ссылок по архивной копии, подход к решению этих целей у нас разный.

Основное отличие моей обработки состоит в следующем:

Не используется протокол тестирования полученный в конфигураторе. Битые ссылки ищутся непосредственно в режиме 1С:Предприятия. При этом можно ограничивать поиск определенным типом объектов, например искать только ссылки с типом "Справочник.ДоговорыКонтрагентов".

Несмотря на наличие подобных обработок на Инфостарте, возможно эта покажется кому-то более удобной в использовании.

Вовремя сделанная архивная копия может избавить вас от многих проблем. Удачи!

Для начала приведем пример как выглядит эта ошибка:

Данная ошибка может проявляться в любом документе, в любой базе. В наименовании этой ошибки могут быть любые символы (буквы/цифры). Главное – это название «Объект не найден».

Каким образом эта ошибка себя проявила?

После устранения сбоя, описанного нами ранее, программа открывается и работает, но ведет себя странно. В отчетах отображается информация, а первичный документ пользователь не может найти. В частности, начисление зарплаты по сотруднику. При вводе начисления еще раз документ формируется пустым. И ведь верно – зарплата то ему уже начислена. И это «подтверждают» отчеты. Посмотрим более внимательно.

Сформировав отчет «Полный свод начислений и удержаний», мы видим, что начисление есть.

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

Чтобы посмотреть, каким документом введена сумма, нажмите на ней правой кнопкой мышки и выберите команду «Расшифровать».

В открывшемся окне выберите «Регистратор».

Регистратор – это и есть документ, зафиксировавший запись, на основании которой формируется данный отчет и выбранная сумма.

Открываем расшифровку и что мы видим: «Объект не найден» и наша сумма.

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

Все отчеты показывают, что сумма есть. А первичный документ (в нашем случае – начисление зарплаты) мы найти не можем.

Рассмотрим, как выйти из такой ситуации.

Удаление битых ссылок. Тестирование информационной базы.

Шаг 1. Запустите программу в режиме «Конфигуратор».

Шаг 2. Выберите в разделе «Администрирование» пункт «Тестирование и исправление…».

Еще раз напоминаем, что при любых действиях с информационной базой, рекомендуется сначала сделать ее резервную копию. И если вы сомневаетесь в ваших действиях, обратитесь к специалисту за помощью.

Шаг 3. Сделайте резервную копию информационной базы.

В окне настройки тестирования много галочек и каждое действие выполняется при разного рода ошибках. В нашем случае нарушена ссылочная целостность информационной базы. И далее все зависит от варианта решения проблемы. В нашем случае произошла потеря данных, создать объект не получится. Потому, чтобы избавиться от «битой ссылки», ее просто надо удалить.

Шаг 4. Установите галочку «Проверка ссылочной целостности» и «Проверка логической целостности». Установите переключатель в положение «Очищать ссылки» и «Удалять объект».

Т.е. при обнаружении таких несуществующих объектов, система их удалит.

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

Наша ошибка исправлена.

Шаг 5. Проверим базу.

Сумма с «битой ссылкой» исчезла из отчета «Полный свод начислений и удержаний».

Программа дает заполнить документ «Начисление зарплаты и взносов» корректно.

Читайте также: