Книга знаний |
Рекламное место пустует
|
1С:Предприятие / Объекты конфигурации |
|
Неопределено <> NULL <> "" <> 0 <> пустая ссылка <> Битая ссылка
<br><br><br>Как определить, что ссылка пустая, а не битая, как грамотно применять пустые ссылки | Автор статьи: Волшебник | Редакторы: mrist, Immortal, badday, Михей, НЕА123 Последняя редакция №23 от 27.05.20 | История URL: http://kb.mista.ru/article.php?id=21 |
уник = Ссылка.УникальныйИдентификатор();
Справочники.Номенклатура.ПустаяСсылка()
МассивТипов = Новый Массив(); МассивТипов.Добавить(ТипЗнч(ЗначениеНеизвТипа)); ОписаниеТипов= Новый ОписаниеТипов(МассивТипов,,,); ЗначениеПустаяСсылка = ОписаниеТипов.ПривестиЗначение(Неопределено);
Если Ссылка.Пустая() Тогда
Если Ссылка = Справочники.Номенклатура.ПустаяСсылка() Тогда
... |ГДЕ Поле = &ПустаяСсылка"; ... Запрос.УстановитьПараметр("ПустаяСсылка",Справочники.Номенклатура.ПустаяСсылка());
...
|ГДЕ Поле = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)";
...
ПустойПользователь = Справочники.Пользователи.ПустаяСсылка(); ЦФО = ПустойПользователь.Сотрудник.Подразделение.ЦФО;
<Объект не найден> (16:bca8000c6efdd52111d8eaba7c9706eb)
Если Ссылка.ПолучитьОбъект() = Неопределено Тогда
//битая ссылка
КонецЕсли;
Если Лев(СокрЛП(Ссылка),18) = "<Объект не найден>" Тогда
ГДЕ Объект.РеквизитОбъекта ЕСТЬ NULL И Не Объект=&ПустаяСсылкаОбъекта
Процедура УдалениеБитыхСсылок(ИмяРегистра,ТипРегистра,ТипРегистраЗ) МенеджерРегистра = ТипРегистра[ИмяРегистра]; Запрос = Новый Запрос(" |ВЫБРАТЬ Регистратор |ИЗ "+ТипРегистраЗ+"."+ИмяРегистра+" |ГДЕ Регистратор.Ссылка ЕСТЬ NULL И НЕ Регистратор = &ПустаяСсылкаДокумента"); Запрос.УстановитьПараметр("ПустаяСсылкаДокумента",Неопределено); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Набор = ТипРегистра[ИмяРегистра].СоздатьНаборЗаписей(); Набор.Отбор.Регистратор.Установить(Выборка.Регистратор); Набор.Записать(); ОбработкаПрерыванияПользователя(); Состояние(""+ТипРегистра+" "+ИмяРегистра); КонецЦикла; КонецПроцедуры Процедура КнопкаВыполнитьНажатие(Кнопка) Для Каждого пРегистр из Метаданные.РегистрыСведений Цикл Подчинен = (пРегистр.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору); Если Подчинен Тогда УдалениеБитыхСсылок(пРегистр.Имя,РегистрыСведений,"РегистрСведений") КонецЕсли; КонецЦикла; Для Каждого пРегистр из Метаданные.РегистрыБухгалтерии Цикл УдалениеБитыхСсылок(пРегистр.Имя,РегистрыБухгалтерии,"РегистрБухгалтерии") КонецЦикла; Для Каждого пРегистр из Метаданные.РегистрыРасчета Цикл УдалениеБитыхСсылок(пРегистр.Имя,РегистрыРасчета,"РегистрРасчета") КонецЦикла; Для Каждого пРегистр из Метаданные.РегистрыНакопления Цикл УдалениеБитыхСсылок(пРегистр.Имя,РегистрыНакопления,"РегистрНакопления") КонецЦикла; КонецПроцедуры
Описание
| Рубрикатор
| Поиск
| ТелепатБот
| Захваченные статьи
| Установки
| Форум
|