Имя: Пароль:
1C
1С v8
Проверка на пустоту поля....
0 ДенисЧ
 
24.07.13
09:31
Есть форма. Или справочник. Или выборка... Неважно.
В ней есть поле типа СправочникСсылка.ТакойТо.

Как правильней проверять наличие в нём значение: через ЗначениеЗаполнено() или Реквизит.Пустая()?

Что скажет разум коллективный?
1 Ork
 
24.07.13
09:35
(0)
ЧистаКанкретнаСемерочная ИМХА :
Если тип "СправочникСсылка.ТакойТо" то ссылка есть всегда. Хотя бы и пустая.
В случае с ЗначениеЗаполнено() еще нужно разобрать тип. А потом только Пустая().
Посему Пустая() должно быть эффективней. ЗначениеЗаполнено() - универсальней.
2 Cherokee
 
24.07.13
09:36
По скорости хз. Если реквизит имеет жесткий тип, то тогда пофиг. Если может быть "Неопределено", то тогда Пустая() не сработает, а сработает только ЗначениеЗаполнено().
Если передаешь объект, а не ссылку, то тогда ЗначениеЗаполнено() тоже по идее не сработает.
3 viktor_vv
 
24.07.13
09:39
(1) А разве значениеЗапонено не проверяет просто заполненность, не важно чем и как ?
Пустая(), по идее, должна дернуть базу, для проверки найдет что-то по ссылке или нет.
Ну это так, фантазии на тему.
4 Cherokee
 
24.07.13
09:40
(3) ЗначениеЗаполнено() не работает с мутабельными значениями. ВРоде как. Проверять не пытался.
5 ДенисЧ
 
24.07.13
09:42
(4) Кстати да, иногда такое бывает...
6 viktor_vv
 
24.07.13
09:42
(3)+ Хотя почитал СП :), таки да, как минимум тип значения должна определить плюс сравнение со значением по умолчанию.
7 viktor_vv
 
24.07.13
09:43
(4) Ну в СП это явно написано

"Не работает с мутабельными значениями. При передаче мутабельного значения функция вызывает исключение."
8 viktor_vv
 
24.07.13
09:54
И на мой взляд для битой ссылки они вернут разный результат.
Пустая() вернет истина, а ЗначениеЗаполнено() вернет истину.
9 viktor_vv
 
24.07.13
10:05
(8)+ Не, нихрена. Одинаково работают.
10 mikecool
 
24.07.13
10:06
(9) а ты одинаково сразу написал )
11 viktor_vv
 
24.07.13
10:07
(10) Имелосьь ввиду, что результат Итсина для них разное значение имеет.
12 Ненавижу 1С
 
гуру
24.07.13
10:08
я за ЗначениеЗаполнено ибо бывает жеж Неопределено и NULL
13 viktor_vv
 
24.07.13
10:12
И тогда не совсем корректное описаниедля Пустая() в СП.

Возвращаемое значение:

Тип: Булево.
Истина - ссылка не указывает ни на какой объект (пустая ссылка); Ложь - в противном случае.

Как бы битая ссылка тоже не указывает ни на какой объект в базе, а возвращает Ложь. Правда в скобочках уточняют, что они имеют ввиду.
2 + 2 = 3.9999999999999999999999999999999...