Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) ИТ - почему нет возможности упорядочить строки? (число прочтений - 3140 )
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
ИТ - почему нет возможности упорядочить строки?
30. Августа 2008 :: 16:14
Печать  
Индексированная таблица. Метод Сортировать выполняет сортировку только по основному индексу. Не совсем понятно, почему нет возможности упорядочить строки при использовании определенного разработчиком индекса. т.е. я про сортировку строк в листьях индекса. то что в целом строки упорядочены по индексу - это понятно. а вот дальше не хватает упорядочивания. приходится выкручиваться.

может быть я чего то недопонял? Улыбка
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #1 - 30. Августа 2008 :: 20:09
Печать  
Видимо не догоняешь Подмигивание
Дело в том что в отличии от обычной ТЗ в ИТЗ есть возможность определить индекс по которому будет идти выборка строк. Посмотри в сторону параметров методов ВыбратьСтроки() и ПолучитьСтроку()
  
Наверх
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #2 - 31. Августа 2008 :: 07:11
Печать  
Именно, что недопонял.

Метод Сортировать не производит сортировку по основному индексу. Этот метод МЕНЯЕТ индексное выражение основного индекса.

P.S. Расскажи всю задачу целиком. Есть мнение, что ты очень сильно не догоняешь. Поможем.
  
Наверх
www  
IP записан
 
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #3 - 31. Августа 2008 :: 07:11
Печать  
так я это дело во всю использую. но для отбора нужных строк, для повышения скорости работы алгоритма. вот небольшой пример:

допустим мне надо списать некторое количество товаров со склада (например расх накл).склад-это регистр "Склад" с измерениями Товар,Склад,ПрНакл. Получаем остатки по регистру в ИТ, т.е. имеем остатки по всем интересующим товарам. и в цикле начинаем перебирать товары и списывать их. при этом с помощью индекса по колонке "товар" фильтруем данные по нужному в этот момент товару (а не перебираем все строки с проверкой тот товар или нет). и вот здесь, хотелось бы чтобы строки были упорядочены по возрастанию по колонке "ПрНакл", чтобы списывать по фифо. а ИТ может их давать в произвольном порядке, что не правильно.

есть 2 способа решения в такой ситуации:
1. добавить в индекс еще и колонку "ПрНакл". но тогда при установке фильтра надо еще и по этой колонке устанавливать мин и макс. что естественно увеличивает скорость работы алгоритма (дольше работает алгоритм фильтрации ИТ из-за проверки дополнительной колонки)
2.выгружать данные из ИТ в ТЗ. ТЗ сортировать и работать дальше с ней. но это также лишняя вычислительная нагрузка.

а если бы была возможность сортировки строк в листьях, то 1 раз упорядочил по ПрНакл.а дальше фильтр по "Товар" и все как надо и быстро Улыбка

конечно, даже на больших документах время проведения увеличивается не очень критично (хотя если перепроводить месяц, то из нескольких секунд с каждого дока получится уже многоУлыбка ), но сам алгоритм перегружен этими вспомогательными действиями, а это не красиво.
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #4 - 31. Августа 2008 :: 07:16
Печать  
RTFM Подмножество()
  
Наверх
www  
IP записан
 
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #5 - 31. Августа 2008 :: 07:17
Печать  
fez писал(а) 31. Августа 2008 :: 07:11:
Именно, что недопонял.

Метод Сортировать не производит сортировку по основному индексу. Этот метод МЕНЯЕТ индексное выражение основного индекса.

P.S. Расскажи всю задачу целиком. Есть мнение, что ты очень сильно не догоняешь. Поможем.


я не правильно понял основную идею ИТ? в моем понимании индекс - средство, ускоряющее поиск данных. если проводить аналогии с скл:
select *
from Данные
where колонка=:ЗначениеКолонки --здесь используется индекс
<-вот до этого момента в ИТ все есть.а дальше -нет
order by Колонка

примерно так Улыбка
  
Наверх
 
IP записан
 
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #6 - 31. Августа 2008 :: 07:23
Печать  
fez писал(а) 31. Августа 2008 :: 07:16:
RTFM Подмножество()


согласен! это несколько упрощает текст моего алгоритма. но накладные расходы всеравно остаются (дольше строится индекс, использует больше памяти для хранения) Улыбка

спасибо! будем считать что тема раскрыта Улыбка
резюме - надо создавать индекс по полям отбора+поля сортировки. и использовать Подмножество.
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #7 - 31. Августа 2008 :: 08:59
Печать  
spenov писал(а) 31. Августа 2008 :: 07:17:
fez писал(а) 31. Августа 2008 :: 07:11:
Именно, что недопонял.

я не правильно понял основную идею ИТ? в моем понимании индекс - средство, ускоряющее поиск данных. если проводить аналогии с скл:
select *
from Данные
where колонка=:ЗначениеКолонки --здесь используется индекс
<-вот до этого момента в ИТ все есть.а дальше -нет
order by Колонка

примерно так Улыбка


Именно так. Только метод Сортировать ничего не сортирует и ничего сам по себе не ускоряет. Он СТРОИТ индекс. Продолжая аналогии с sql - это create index.
  
Наверх
www  
IP записан
 
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #8 - 31. Августа 2008 :: 09:05
Печать  
это понятно. не понятно, почему не сделали сортировку? я об этом. ну да ладно, так всеравно гораздо лучше, чем стандартные 1с прибамбасы Улыбка
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #9 - 31. Августа 2008 :: 09:19
Печать  
В чем проблема?
Индекс по двум полям и далее НайтиБлижайшуюБольше.
Только вместо колонки ПрихНакл
иметь поля "дата прих", "время", "iddoc" -
т.е. фактически индекс будет по 4 полям (если склад - то 5)

Для позиционирования на товаре задавать пустые значения
остальных полей.
  
Наверх
 
IP записан
 
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #10 - 31. Августа 2008 :: 09:28
Печать  
ну емае! нет никаких проблем. вопрос решается несколькими способами (хотя последнее предложение я не понял). но все эти решения гораздо более громоздкие и снижающие читабельность кода. ведь всего то надо упорядочить строки в листьях индекса. и все Улыбка

была просьба объяснить почему этого нет. т.е. есть объективные причины или просто не надо было никому.

это можно считать пожеланием Улыбка
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #11 - 31. Августа 2008 :: 09:42
Печать  
spenov писал(а) 31. Августа 2008 :: 09:28:
ну емае! нет никаких проблем. вопрос решается несколькими способами (хотя последнее предложение я не понял). но все эти решения гораздо более громоздкие и снижающие читабельность кода. ведь всего то надо упорядочить строки в листьях индекса. и все Улыбка

была просьба объяснить почему этого нет. т.е. есть объективные причины или просто не надо было никому.

это можно считать пожеланием Улыбка


Можешь считать построение индекса по 4 полям сортировкой :
ВыбратьСтроки("МойИндексПо4полям")-
выбирает строки в порядке возрастания индекса.
ПолучитьСтроку - получаешь строки в порядке возрастания индекса.
НайтиБлижайшуюБольше - переходишь к новому товару.
  
Наверх
 
IP записан
 
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #12 - 31. Августа 2008 :: 09:49
Печать  
так я об этом уже сам написал Улыбка чуть выше, со всеми балгодарностями и поклонами разработчикам. зачем повторять было?

вот еще 1 неприятную штуку нарыл Улыбка

если сортировать по колонкам с типом Документ, то получается не совсем то что хотелось Печаль сортирует не по последовательности документов. а в стандарте (ТЗ) есть соотв доп параметр. получается надо в прямой запрос добавлять еще линковку к таблице журнала, преобразование date_time_iddoc в значение позиции (аналог СформироватьПозициюДокумента)...хлопотно и запрос дольше работает. хотя подозреваю, что по другому и быть не может Улыбка

  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #13 - 31. Августа 2008 :: 15:07
Печать  
Цитата:
преобразование date_time_iddoc в значение позиции

а чего то там преобразовывать Date_Time_Iddoc и так уже позиция документа - сортируй сколько хочешь Подмигивание
  
Наверх
IP записан
 
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
Re: ИТ - почему нет возможности упорядочить строки?
Ответ #14 - 31. Августа 2008 :: 15:19
Печать  
leshik писал(а) 31. Августа 2008 :: 15:07:
Цитата:
преобразование date_time_iddoc в значение позиции

а чего то там преобразовывать Date_Time_Iddoc и так уже позиция документа - сортируй сколько хочешь Подмигивание


да, похоже на правду. а я уже в скл забацал функцию получения позиции, которая выдает также как 1с Улыбка ну ничего, зато  разобрался с этим вопросом
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать