Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут!

Найти битые ссылки запросом 1С и не только

Часто бывает, что в результате обмена данных в 1С 8.3 и 8.2 случаются ошибки, и вместо значения ссылочных данных в полях встречается «Объект не найден», то есть «битые ссылки».

Как выглядит битая ссылка

Никакими штатными механизмами исправить это невозможно и оперативно найти битые ссылки достаточно проблематично. Исключение составляют тестирования и исправления в конфигураторе информационной базы: он создает вместо битых ссылок заглушки — элементы с незаполненными реквизитами.

Поиск битых ссылок в 1С запросом

Очень часто встает вопрос: как отобрать элементы с битыми ссылками запросом 1С?

Вопрос решается достаточно легко, рассмотрим его на примере:

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

Решение задачи:

Получите 267 видеоуроков по 1С бесплатно:

Поиск битый ссылок запросом

Что мы сделали?

Первым отбором «НЕ СчетНаОплатуПокупателю.Организация ЕСТЬ NULL»  мы определили, что ссылка установлена.

Вторым отбором СчетНаОплатуПокупателю.Организация.Код ЕСТЬ NULL, обращаясь к коду организации по точке, система строит левое соединение, но не находит в таблице организаций такой элемент — возвращает NULL.

Всё получается достаточно просто.

Определение битой ссылки в объектной модели

Если у Вас нет возможности сделать проверку запросом, рекомендую использовать два разных метода. Рассмотрим их на примере, который давали ранее:

Используя ПолучитьОбъект()

При использовании метода «ПолучитьОбъект()» битая ссылка вернет «Неопределено».

Например:

Если Счет.Организация.ПолучитьОбъект() = Неопределено Тогда

Сообщить("Ссылка битая!");

КонецЕсли;

Поиск в строке

Этот метод самый простой — поиск строки «Объект не найден» в представлении элемента.

Например:

Если Найти(Строка(Счет.Организация),"Объект не найден") <> 0 Тогда

Сообщить("Ссылка битая!");

КонецЕсли;

Читайте также другие статьи по разработке в 1С.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 3 на “Найти битые ссылки запросом 1С и не только
  1. В указанном примере при использовании языка запросов, если документ не проведен и в нем не указана организация, то в результат запроса этот документ не попадет

    Ответить

    • Если организация не указана — значит и битой ссылки нет.

      А по не проведенным не согласен — на это никаких отборов в запросе нет.

      Ответить

  2. Привет всем. Есть вопрос. Почему то не корректно работает функционал «Поиск ссылок в объекте». Выводит не полный список: в действии 1 выводит вот такой маленький список. Хотя в форме этого объекта есть ссылка на обработку(цифра 2). При выполнении действия выбираю «Везде». http://vfl.ru/fotos/d64c37bf16194095.html

    Ответить

Добавить комментарий:

Ваш e-mail не будет опубликован.