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


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
ИндексированнаяТаблица метод Сортировать...
23. Июня 2006 :: 10:52
Печать  
Код
Выбрать все
	ИндТаб.Сортировать("Клиент, *ТекДок");
 



ТекДок документ, не сортирует почемуто по ТекДок. Апочему? Печаль
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #1 - 23. Июня 2006 :: 10:59
Печать  
индекс "по внутреннему представлению" ("*") выбран сознательно или случайно?
что такое "по внутреннему представлению" есть понимание?
  

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


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #2 - 23. Июня 2006 :: 11:55
Печать  
kms писал(а) 23. Июня 2006 :: 10:59:
индекс "по внутреннему представлению" ("*") выбран сознательно или случайно?
что такое "по внутреннему представлению" есть понимание?


Выбран из следующих соображений:
...
Если перед именем колонки стоит символ '*', то сортировка осуществляется в по внутреннему представлению объекта.
...
Мне нужно отсортировать по хронологии документов. Вопрос как?
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #3 - 23. Июня 2006 :: 12:04
Печать  
по внутреннему представлению и в порядке хронологии - это разные понятия.
в твоем случае указывать "*" не нужно.
  

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


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #4 - 24. Июня 2006 :: 08:44
Печать  
Тогда как нужно сортировать, что бы получить документы в порядке хронологии?
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #5 - 24. Июня 2006 :: 09:39
Печать  
А простой индекс
Код
Выбрать все
ИндТаб.Сортировать("Клиент, ТекДок");
 


разве не решает проблемы?
  

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


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #6 - 24. Июня 2006 :: 10:47
Печать  
kms писал(а) 24. Июня 2006 :: 09:39:
А простой индекс
Код
Выбрать все
ИндТаб.Сортировать("Клиент, ТекДок");
 


разве не решает проблемы?


Если только порядок строк (хронология документов, по датам)
12.01.06
12.01.06
13.01.06
18.01.06
20.01.06
04.01.06
можна назвать "хронологическим", то да решает, но это же не так. Почемуто "збоит" именно на последних строках.
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

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

P.S.
Я понятно объяснил или нет?
Короче, у тебя хронология сейчас должна быть только в пределах контрагента.
А хотел-то чего?
  

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


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #8 - 24. Июня 2006 :: 13:13
Печать  
Все правильно понял, необходимо выводить ТекДок-и по контрагенту в порядке хронологии.

Суть задачи:
а).Есть таблица значений в которой есть колонки:
1. Клиент;
2. ТекДок;
3. СумДок.
б). Необходимо выводить строки в печатную форму так:
...
Клиентс наименованием что начинается на букву "А"
     ТекДок (дата+времья)
     ТекДок (дата+времья, больше предыдущей)
Клиентс наименованием что начинается на букву "Б"
     ТекДок (дата+времья)
     ТекДок (дата+времья, больше предыдущей)
...
Что тут не понятного.

Как  я делаю:
а). Загружа таблицй в индексную таблицу.
б). Группирую по колонках Клиент, ТекДок.  И колонки сортируются по умолчанию не так как надо.
в). Сортирую по Клиент, ТекДок. Все равно не так как надо.

Что я делаю не так?
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #9 - 24. Июня 2006 :: 17:36
Печать  
Цитата:
Клиентс наименованием что начинается на букву "А"
     ТекДок (дата+времья)
     ТекДок (дата+времья, больше предыдущей)
Клиентс наименованием что начинается на букву "Б"
     ТекДок (дата+времья)
     ТекДок (дата+времья, больше предыдущей)
...
Что тут не понятного.

Я правильно понимаю, что список должен быть такой:
Код
Выбрать все
А1, А2, А3
ДокА1, ДокА2, ДокА3, ДокА4, ... // дата, времья возрастает
Б1, Б2
ДокБ1, ДокБ2, ДокБ3, ... // дата, времья возрастает
 



Если да, то заметь, что ты решаешь сейчас другую задачу:
Код
Выбрать все
А1
ДокА11, ДокА12, ДокА13
А2
ДокА21, ДокА2...
итд.
 



Твоя задача требует дополнительной колонки с первой буквой наименования клиента и индекса
Код
Выбрать все
ИндТаб.Сортировать("ПерваяБукваКлиента, ТекДок");
 

  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #10 - 24. Июня 2006 :: 17:59
Печать  
Цитата:
Клиентс наименованием что начинается на букву "А"

Наверное, все же "клиентс" - это не клиенты во множественном числе, а "клиент с ...".
Мда.

Специально проверил, у меня все сортируется 100% нормально.
Возьми последнюю сборку, проверь на ней.

Если не поможет - то напиши, что ли, простую тестовую конфигурацию, чтобы было с чем работать.
  

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


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #11 - 25. Июня 2006 :: 07:04
Печать  
Мне нужен такой вариант:
Код
Выбрать все
А1
ДокА11, ДокА12, ДокА13
А2
ДокА21, ДокА2...
итд. 


  
Наверх
ICQ  
IP записан
 
seleand
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 22. Июня 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #12 - 17. Июля 2006 :: 05:38
Печать  
И у меня та же проблема. Причем интересно - поначалу сортировалось правильно. Добавил несколько полей в запрос - перестало правильно сортировать документы по хронологии. И еще прблема того же порядка. Метод сортировать не сортирует тзПотомки. Поэтому приходится сортировать их на каждом уровне иерархии, что сильно тормозит время вывода результатов в отчете.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #13 - 17. Июля 2006 :: 06:41
Печать  
seleand писал(а) 17. Июля 2006 :: 05:38:
И у меня та же проблема. Причем интересно - поначалу сортировалось правильно. Добавил несколько полей в запрос - перестало правильно сортировать документы по хронологии.

Без обид, но с таким описанием проблемы работать нет смысла.

Цитата:
И еще прблема того же порядка. Метод сортировать не сортирует тзПотомки. Поэтому приходится сортировать их на каждом уровне иерархии

Так и есть, и, думаю, по-другому не будет.


По поводу сортировки по представлению и по хронологии документов.

Я бы советовал сортировать по простым типам данных: числам, датам, строкам.
Эти процедуры максимально оптимизированы.

Поиск по внутренним представлениям также отлично оптимизирован с самого начала.

Т.е. если нужно отсортировать вам по хронологии, получите в SQL запросе доп. поле "DATE_TIME_IDDOC" или его часть и сортируйте ИТ по нему.
Это будет быстро.

Все остальное (прямая сортировка по представлениям и хронологиям) - от лукавого.
Просто сравните время работы обоих вариантов.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
seleand
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 22. Июня 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #14 - 17. Июля 2006 :: 06:55
Печать  
Т.е. если нужно отсортировать вам по хронологии, получите в SQL запросе доп. поле "DATE_TIME_IDDOC" или его часть и сортируйте ИТ по нему.
Это будет быстро.

Так и сделал. Только поскольку у меня ДБФ база, использовал поля DATE и TIME. Но вот то, что сортировать приходится на каждом уровне иерархии - не очень нравится. ИМХО это может сводить на нет выигрыш в скорости прямого запроса, поскольку результат запроса приходится многократно сортировать...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 5
ОтправитьПечать