Имя: Пароль:
1C
1C 7.7
v7: Аналог ЗначениеЗаполнено в 7.7
,
0 Amiralnar
 
14.09.11
10:50
1. Другое 100% (3)
2. Значение.Код = "" 0% (0)
Всего мнений: 3

Какие методы проверки ссылки на заполненность используют ветераны?
1 zak555
 
14.09.11
10:51
ПустоеЗначение() = 1

Другое
2 Guk
 
14.09.11
10:51
ПустоеЗначение, не?...
3 Chum
 
14.09.11
10:51
ПустоеЗначение не устроит?
4 andrewks
 
14.09.11
10:51
заполненность: ПустоеЗначение()
выбранность (наличие объекта в базе): Выбран()

Другое
5 SnarkHunter
 
14.09.11
10:51
ПустоеЗначение() или Выбран()

За первый вариант надо в голову гвоздь забить...

Другое
6 kiruha
 
14.09.11
10:53
Выбран в разы медленнее, идет обращение к базе
7 Vladal
 
14.09.11
11:01
(5) Анекдот вспомнился.
Дурачков стригли ручной машинкой. а та поломанная и часто жевала и дёргала волосы. Вот дурачки собрались и решили забить кому-то гвоздик в голову - машинка дойдёт и сломается.
Один вроде согласился, потом в отказ - а вдруг гвоздик забивать будут молотком по голове стукнут, больно будет.
8 Ахиллес
 
14.09.11
11:15
Пустой()
Пустая()
ПустоеЗначение()
ПустаяСтрока()
ПустаяСсылка()
Ещё NULL и Неопределено до кучи.

Такое впечатление, что среди разработчиков платформы конкурс проходил, кто больше синонимов для Пустоты назовёт. А потом победитель всё это реализовал в платформе. Большое, человеческое спасибо ему за это.
9 SnarkHunter
 
14.09.11
11:46
(8)Не в тему...
10 Ахиллес
 
14.09.11
12:10
(9) По теме был первый пост. Человек ответ получил, теперь можно и NULL с Неопределено обсудить :-)
11 Amiralnar
 
14.09.11
12:17
Нал, и неопределено недавно на хабре  обсуждали.
12 Amiralnar
 
14.09.11
12:31
13 Эльниньо
 
14.09.11
12:55
В Клиппере поначалу был NULL.
Потом и NILL появился.
В 1С 9.х это будет называться ПустееПустого.
14 Ахиллес
 
14.09.11
13:05
(12)
NULL и агрегатные функции

Почти все агрегатные функции, за исключением COUNT (и то не всегда), игнорируют пустые значения при расчётах. Если бы они этого не делали, то первый же залетевший NULL привёл бы результат функции к неизвестному значению. Возьмём для примера функцию SUM, которой необходимо просуммировать ряд (1, 3, null, 2). Если бы она учитывала пустые значения, то мы бы получили такую последовательность действий:
1 + 3 = 4; 4 + null = null; null + 2 = null.
Вряд ли вас устроит такой расчёт при вычислении агрегатов, ведь вы наверняка не это хотели получить. А какой бы был геморрой с построением хранилищ данных… Бррррр…

Ааааа! ;-( Рыдаю! Почему тупые одинэсники до этого в 1С не додумались? ;-(
15 kiruha
 
14.09.11
13:09
Раритет.2005


Функция обЗначениеНеЗаполнено(Значение) Экспорт

   Результат = Ложь;
   ТипЗначения = ТипЗнч(Значение);

   // Сначала примитивные типы
   Если Значение = Неопределено Тогда
       Результат = Истина;
   ИначеЕсли Значение = NULL Тогда
       Результат = Истина;
   ИначеЕсли ТипЗначения = Тип("Строка") Тогда
       Если СокрЛП(Значение) = "" Тогда
           Результат = Истина;
       КонецЕсли;
   ИначеЕсли ТипЗначения = Тип("Число") Тогда
       Если Значение = 0 Тогда
           Результат = Истина;
       КонецЕсли;
   ИначеЕсли ТипЗначения = Тип("Дата") Тогда
       Если Значение = Дата('00010101') Тогда
           Результат = Истина;
       КонецЕсли;
   ИначеЕсли ТипЗначения = Тип("Булево") Тогда
       Результат = Ложь; // Булево будем считать не пустым
       
   // Для остальных будем считать значение пустым, если оно равно
   // дефолтному значению своего типа
   Иначе
       Если Значение = Новый(ТипЗначения) Тогда
           Результат = Истина;
       КонецЕсли;
   КонецЕсли;

   Возврат Результат;
   
КонецФункции // обЗначениеНеЗаполнено()