Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) ИндексированнаяТаблица: НайтиСтроку по пуст.знач. (число прочтений - 10047 )
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
ИндексированнаяТаблица: НайтиСтроку по пуст.знач.
27. Июня 2006 :: 18:40
Печать  
Индексированная таблица не находит строку с пустым значением по пустому значению, хотя они есть. В моем случае после группировки оно только одно, поэтому я "насильно" устанавливаю ИТЗ на эту строку, а если их несколько?
Код
Выбрать все
ТекстЗапроса = "
|SELECT
|	Ном.PARENTID as [Родитель $Справочник.Номенклатура],
|	Ном.ID  as [Товар $Справочник.Номенклатура]
|FROM
|	$Справочник.Номенклатура as Ном
|ORDER BY
|	Ном.PARENTID,
|	Ном.ID
|";
ИТЗ = СоздатьОбъект("ИндексированнаяТаблица");
ИТЗ.Загрузить(Запрос.ВыполнитьИнструкцию(ТекстЗапроса));
ИТЗ.Группировать("Родитель:Родитель; Товар:Товар","");
НомПустСтроки = ИТЗ.НайтиСтроку("Родитель",);
 

;
По непустому значению находит нормально
  

Константин
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
ИндексированнаяТаблица: НайтиСтроку по пуст.знач.
Ответ #1 - 27. Июня 2006 :: 19:14
Печать  
Пустые значения бывают разных типов.
И тут вопрос: пустые значения разных типов - они равны между собой, или нет?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица: НайтиСтроку по пуст.зн
Ответ #2 - 28. Июня 2006 :: 03:31
Печать  
int CValue::IsEmpty() - ?
  
Наверх
ICQ  
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица: НайтиСтроку по пуст.зн
Ответ #3 - 28. Июня 2006 :: 04:10
Печать  
В текущей реализации ИТ при сравнении сначала анализируется типЮ и только потом значение.  Т.е. пустые значения разных типов - это разные значения. И писать надо
НомПустСтроки = ИТЗ.НайтиСтроку("Родитель", ПолучитьПустоеЗначение("Справочник.Номенклатура"));
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
ИндексированнаяТаблица: НайтиСтроку по пуст.знач.
Ответ #4 - 28. Июня 2006 :: 05:53
Печать  
kms писал(а) 27. Июня 2006 :: 19:14:
Пустые значения бывают разных типов.
И тут вопрос: пустые значения разных типов - они равны между собой, или нет?

Да, уточняю, это вопрос теоретического плана, не прикладного.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица: НайтиСтроку по пуст.зн
Ответ #5 - 28. Июня 2006 :: 06:05
Печать  
kms писал(а) 28. Июня 2006 :: 05:53:
kms писал(а) 27. Июня 2006 :: 19:14:
Пустые значения бывают разных типов.
И тут вопрос: пустые значения разных типов - они равны между собой, или нет?

Да, уточняю, это вопрос теоретического плана, не прикладного.

Я думаю так:  понятие "пустое значение" само по себе какое-то расплывчатое, а вот понятие "тип" вполне конкретно. Скажем, пустая строка - это пустое значение? А число 0? Если они пустые - то что, "" == 0 ?
Не, ну нафик эти заморочки. Лучше иметь чёткий принцип сравнения, чем каждый раз ломать голову, почему оно сравнилось так а не иначе.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
ИндексированнаяТаблица: НайтиСтроку по пуст.знач.
Ответ #6 - 28. Июня 2006 :: 06:23
Печать  
Согласен.
Сейчас посмотрел, ПустоеЗначение("Справочник") != ПустоеЗначение("Документ").

Просто в свое время в юнит-тестах была процедура сравнения, кажется, таблиц.
Там перебирались разные пустые значения и заменялись на одинаковые.
Это, конечно, совсем неэффективно, поэтому в голове отложилось вопросом.

Короче, музыка навеяла Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица: НайтиСтроку по пуст.зн
Ответ #7 - 28. Июня 2006 :: 07:24
Печать  
ADirks писал(а) 28. Июня 2006 :: 04:10:
пустые значения разных типов - это разные значения.


Присоединяюсь. Причем это такое поведение у самой 1С.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица: НайтиСтроку по пуст.зн
Ответ #8 - 28. Июня 2006 :: 07:25
Печать  
kms писал(а) 28. Июня 2006 :: 06:23:
Согласен.
Сейчас посмотрел, ПустоеЗначение("Справочник") != ПустоеЗначение("Документ").

Просто в свое время в юнит-тестах была процедура сравнения, кажется, таблиц.
Там перебирались разные пустые значения и заменялись на одинаковые.


Именно потому это и приходилось делать. Ибо как раз в целях юниттестирования мне было нужно, чтобы пустые значения разных типов считались одинаковыми.
  
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица: НайтиСтроку по пуст.зн
Ответ #9 - 28. Июня 2006 :: 08:52
Печать  
Цитата:
Присоединяюсь. Причем это такое поведение у самой 1С.


Цитата:
Именно потому это и приходилось делать. Ибо как раз в целях юниттестирования мне было нужно, чтобы пустые значения разных типов считались одинаковыми.

Вижу некоторый конфликт этих утверждений.
Тебе сейчас, если подумать, поддержка индиферрентного сравнения пустых значений в ИТЗ нужна или нет?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица: НайтиСтроку по пуст.зн
Ответ #10 - 28. Июня 2006 :: 09:00
Печать  
kms писал(а) 28. Июня 2006 :: 08:52:
Цитата:
Присоединяюсь. Причем это такое поведение у самой 1С.

Цитата:
Именно потому это и приходилось делать. Ибо как раз в целях юниттестирования мне было нужно, чтобы пустые значения разных типов считались одинаковыми.

Вижу некоторый конфликт этих утверждений.


Конфликт не в утверждениях. Конфликт между одной конкретной узкоспециализированной задачей и общим дизайном системы.

Цитата:
Тебе сейчас, если подумать, поддержка индиферрентного сравнения пустых значений в ИТЗ нужна или нет?

Лично мне думать не приходится - я ИТЗ не использую, ибо версией 1С++ не дорос Улыбка
Но даже если бы и использовал - изменять (пусть даже надстраивать) общее поведение системы ради одной частной узкоспециализированной задачи считаю неоправданной роскошью.
  
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица: НайтиСтроку по пуст.зн
Ответ #11 - 28. Июня 2006 :: 09:07
Печать  
fez
Ну почему "изменять общее поведение системы" сразу?

В ИТЗ есть фильтры:
1. С обрезкой строк
2. Без учета регистра
3. По внутреннему представлению

Ничто, кроме нашего нежелания и отсутствия реальных задач не мешает добавить модификатор
4. Без учета типа пустых значений

Ладно, отращивай версию, там видно будет Улыбка
« Последняя редакция: 28. Июня 2006 :: 15:07 - kms »  

De quelle planète es-tu?
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: ИндексированнаяТаблица: НайтиСтроку по пуст.зн
Ответ #12 - 28. Июня 2006 :: 15:02
Печать  
При попыте получить ТипЗначенияСтр пустой ячейки видим "" (т.е. ничеого)
  

Константин
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица: НайтиСтроку по пуст.зн
Ответ #13 - 28. Июня 2006 :: 15:07
Печать  
Цитата:
При попыте получить ТипЗначенияСтр пустой ячейки видим "" (т.е. ничеого)

Попробуй ТипЗначения().
  

De quelle planète es-tu?
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: ИндексированнаяТаблица: НайтиСтроку по пуст.зн
Ответ #14 - 28. Июня 2006 :: 16:23
Печать  
Все, разобрался:
тура"));
Хитрая ИТЗ, на совсем пустое значение не реагирует.
  

Константин
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать