Имя: Пароль:
1C
 
Как проверить, что реквизит составного типа не заполнен?
0 Мисти
 
31.03.16
13:12
Сделка.Пустая() - не ест.
Как написать красиво?
Перепробовать все типы - это ж тупо?
1 Strogg
 
31.03.16
13:12
ЗначениеЗаполнено()
2 Волшебник
 
модератор
31.03.16
13:12
= Неопределено
3 ЧеловекДуши
 
31.03.16
13:18
(0) он равен "Неопределено" :)
4 ЧеловекДуши
 
31.03.16
13:18
(1) Неугадал ;)
5 mistеr
 
31.03.16
13:21
(3) С точки зрения пользователя пустая ссылка это тоже "не заполнен". Поэтому в типовых в регистрах при записи сбрасывают в Неопределено. Если у ТС документ, то надо делать то же самое.
6 Strogg
 
31.03.16
13:22
(4) чорд!)
7 Тролль главный
 
31.03.16
13:23
а я вам говорил
8 Мисти
 
31.03.16
13:27
ЗначениеЗаполнено(Источник.Сделка) - работает, а неопределено - нет.
9 Злопчинский
 
31.03.16
13:30
а что вернет значениеВстрокуВнутр для Непопределено?
10 Serg_1960
 
31.03.16
13:39
Нет, ты конечно можешь пройти циклом по всем типам реквизита составного типа, но можно написать как в типовых:

Если ТвойРеквизит = Неопределено ИЛИ НЕ ЗначениеЗаполнено(ТвойРеквизит) Тогда
11 Tateossian
 
31.03.16
13:39
(9) {"U"}
12 Тролль главный
 
31.03.16
13:39
когда 1С изобрела хранить пустые ссылки и неопределено в базе данных, всё у них пошло не так
13 Тролль главный
 
31.03.16
13:40
(10) бред достаточно ЗначениеЗаполнено, только вот в запросах это не работает
14 Злопчинский
 
31.03.16
13:41
(12) а как правильно обозначить незаполненный реквизит?
15 Tateossian
 
31.03.16
13:42
(14) Null.Только тут проблема в том, что постоянно переключаться запарился бы, или делать шаблон автоподстановочный.
16 Тролль главный
 
31.03.16
13:43
(15) именно NULL и я не переключаясь написал
17 Serg_1960
 
31.03.16
13:45
(13) Бред. Типовая УПП, глобальный поиск "= Неопределено ИЛИ Не ЗначениеЗаполнено(" - найдено 55 совпадений.
18 Тролль главный
 
31.03.16
13:45
(17) студенты же писали, чё
19 Тролль главный
 
31.03.16
13:47
(17) и поиск твой не о чём, там могло быть вот так:

Если СтрокаТовара = Неопределено или Не ЗначениеЗаполнено(СтрокаТовара.Номенклатура) Тогда
20 PR третий
 
31.03.16
13:50
(17) Что бред? А если в типовой "Куй" напишут?
21 Serg_1960
 
31.03.16
13:52
(18) Студенты, не студенты, но вероятность что так быстрее работает - есть. Просто потому, что "Неопределено" часто встречается и проверка быстрее, чем просто ЗначениеЗаполнено()

(19) Согласен, частота цитирования - это информация ни о чём. Но не бред же как ты говоришь.
22 PR третий
 
31.03.16
13:54
(21) Давно ли в 1С ускорение на наносекунды важнее читабельности, унифицированности и надежности кода?
23 Мисти
 
31.03.16
13:59
Объясните, зачем неопределено, если ЗначениеЗаполнено() показывает то, что нужно?
= Неопределено мне оба раза ответило "ложь" - и когда заполнено и когда не заполнено.
24 Serg_1960
 
31.03.16
14:08
(23) Не зачем так писать. ЗначениеЗаполнено() допускает проверку значения "Неопределено" (возвращает Ложь). Сорри, ввёл Вас в заблуждение. Троллил Тролля. Мой тонкий юмор не был понят.
25 Serg_1960
 
31.03.16
14:10
+ PS: реквизит со значением типа "Булево" - всегда заполнен для функции ЗначениеЗаполнено().
26 Тролль главный
 
31.03.16
14:12
(25) это плохо, кстати )))
27 Мисти
 
31.03.16
14:13
У меня там просто 2 типа документа.
Спасибо! Эх, вряд ли я это вспомню в тот момент, когда это сможет пригодиться.