Проверка на пустоту поля.... #674193


#0 by ДенисЧ
Есть форма. Или справочник. Или выборка... Неважно. В ней есть поле типа СправочникСсылка.ТакойТо. Как правильней проверять наличие в нём значение: через ЗначениеЗаполнено или Реквизит.Пустая? Что скажет разум коллективный?
#1 by Ork
ЧистаКанкретнаСемерочная ИМХА : Если тип "СправочникСсылка.ТакойТо" то ссылка есть всегда. Хотя бы и пустая. В случае с ЗначениеЗаполнено еще нужно разобрать тип. А потом только Пустая. Посему Пустая должно быть эффективней. ЗначениеЗаполнено - универсальней.
#2 by Cherokee
По скорости хз. Если реквизит имеет жесткий тип, то тогда пофиг. Если может быть "Неопределено", то тогда Пустая не сработает, а сработает только ЗначениеЗаполнено. Если передаешь объект, а не ссылку, то тогда ЗначениеЗаполнено тоже по идее не сработает.
#3 by viktor_vv
А разве значениеЗапонено не проверяет просто заполненность, не важно чем и как ? Пустая, по идее, должна дернуть базу, для проверки найдет что-то по ссылке или нет. Ну это так, фантазии на тему.
#4 by Cherokee
ЗначениеЗаполнено не работает с мутабельными значениями. ВРоде как. Проверять не пытался.
#5 by ДенисЧ
Кстати да, иногда такое бывает...
#6 by viktor_vv
+ Хотя почитал СП :), таки да, как минимум тип значения должна определить плюс сравнение со значением по умолчанию.
#7 by viktor_vv
Ну в СП это явно написано "Не работает с мутабельными значениями. При передаче мутабельного значения функция вызывает исключение."
#8 by viktor_vv
И на мой взляд для битой ссылки они вернут разный результат. Пустая вернет истина, а ЗначениеЗаполнено вернет истину.
#9 by viktor_vv
+ Не, нихрена. Одинаково работают.
#10 by mikecool
а ты одинаково сразу написал )
#11 by viktor_vv
Имелосьь ввиду, что результат Итсина для них разное значение имеет.
#12 by Ненавижу 1С
я за ЗначениеЗаполнено ибо бывает жеж Неопределено и NULL
#13 by viktor_vv
И тогда не совсем корректное описаниедля Пустая в СП. Возвращаемое значение: Тип: Булево. Истина - ссылка не указывает ни на какой объект (пустая ссылка); Ложь - в противном случае. Как бы битая ссылка тоже не указывает ни на какой объект в базе, а возвращает Ложь. Правда в скобочках уточняют, что они имеют ввиду.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С