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



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #15 - 30. Марта 2008 :: 16:43
Печать  
Nick писал(а) 30. Марта 2008 :: 16:36:
Для чего нужна ЗаполнитьДЛяВывода? Я так понимаю она сортирует строки в порядке вывода?

Да.
Рекурсия используется для построения дерева для ТП с возможностью его сортировки по произвольой колонке с учетом иерархии.
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #16 - 30. Марта 2008 :: 17:25
Печать  
Кто-нибудь из разработчиков может добавить функционал в ИТЗ:

Метод Сортировать(стрВыражение)
до Сортировать(стрВыражение, ПерестройкаСтрок(0,1));
0- старое поведение (по умолчанию).
1- новое, перестройка строк, если были доп.индексы то наверное их стоит перестроить.

Метод ЗаполнитьКолонку(вариант 4)
Синтаксис:
ЗаполнитьКолонку([Индекс = ''''], Колонка, ИнкрементируемоеЗначение,Инкремент)
Назначение:
заполняет колонку таблицы Инкрементируемым значением.
Параметры:
Индекс - тип: Строка, Число. Идентификатор или номер индекса, по которому упорядочиваются и фильтруются строки заполняемой таблицы. По умолчанию используется основной индекс.
Колонка - тип: Строка, Число. Идентификатор или номер заполняемой колонки.
ИнкрементируемоеЗначение - тип: Число. Значение, которым будет заполнена колонка с учетом инкремента.
Инкремент -  тип: Число. Значение, которым будет инкрементированно "ИнкрементируемоеЗначение".
(пример задали 1,2 получили 1,3,5 до КоличестваСтрок в индексе с учетом фильтра).

Желательно для версии 2.5 и 1cpp-icl 3.0  Улыбка

« Последняя редакция: 31. Марта 2008 :: 05:42 - PVR »  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #17 - 31. Марта 2008 :: 01:55
Печать  
Может тебе поможет метод: НайтиБлижайшуюБольше(Ключ, [Индекс = ""], [чСпозиционироваться = 0])

Попробуй продумать алгоритм опираясь именно на индексы и методы использующие позиционирование по ним. Метод сортировать вообще оставлен только для совместимости с ТЗ.  Без необходимости его лутше вообще не использовать.

Для позиционирования используй не номера строк, а ключ индекса
  
Наверх
ICQ  
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #18 - 31. Марта 2008 :: 04:48
Печать  
Nick писал(а) 31. Марта 2008 :: 01:55:
Для позиционирования используй не номера строк, а ключ индекса

_Табл"
представляешь какими тяжелыми ключами приходится ворочать  Нерешительный

+ после этого индекса, еще несколько с учетом предыдущего !?
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #19 - 31. Марта 2008 :: 06:19
Печать  
Спасибо Nick, за диалог  Улыбка

Кто-нибудь ещё ответит?   Печаль
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #20 - 31. Марта 2008 :: 06:56
Печать  
Работа с ключами такой сложности в рекурсии по большой таблице +
построение новых индексов без учета основной сортировки = усложнение и замедление алгоритма.

Можно как сейчас через временную ИТЗ, но это доп.расход скорости времени, кода и памяти, которая не бесконечная  Печаль
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #21 - 31. Марта 2008 :: 07:20
Печать  
Как вариант можно использовать доп.колонку и построение индекса по ней, очень помог бы метод ЗаполнитьКолонку(вариант 4)
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #22 - 31. Марта 2008 :: 07:34
Печать  
Почему гуру 1С++ молчат, а разработчики игнорируют нужные хотелки, в таком Замечательном иструменте, в 1С++ ???  Плачущий
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #23 - 31. Марта 2008 :: 08:37
Печать  
Странно все хотят быстрое дерево в отчете табДок или ексель, но непонимают что мой класс именно это и делает (бастрая работа с деревом в ТП + быстрое заполнение Печатной формы по технологии KMS)  Смех
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИТЗ Сортировать и т.д.?
Ответ #24 - 31. Марта 2008 :: 08:46
Печать  
PVR

Цитата:
Метод Сортировать(стрВыражение)
до Сортировать(стрВыражение, ПерестройкаСтрок(0,1));
0- старое поведение (по умолчанию).
1- новое, перестройка строк, если были доп.индексы то наверное их стоит перестроить.


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

Цитата:
Метод ЗаполнитьКолонку(вариант 4)
Синтаксис:
ЗаполнитьКолонку([Индекс = ''''], Колонка, ИнкрементируемоеЗначение,Инкремент)

Да это проще прямо в коде 1С сделать.

P.S.
У меня полно рекурсивных алгоритмов и identity-колонок, но я ни разу не использовал метод Сортировать и не захотел перенести инкремент в 1cpp.
Твой алгоритм, правда, не смотрел; но, возможно, можно найти какое-то решение.
  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИТЗ Сортировать и т.д.?
Ответ #25 - 31. Марта 2008 :: 08:58
Печать  
PVR

Цитата:
Такая перестройка строк с перестроением всех индексов - неэффективная операция.
Если так надо - выгрузи после сортировки в другую таблицу, добавь индексы заново и присвой значение новой таблицы исходной.
Смысла делать какой-то отдельный метод в 1cpp для этого точно нет - ничего выиграть невозможно.


А, ну да, ты так и делаешь.
Ну, если алгоритм предъявляет требования именно к физическому расположению строк - избавиться не удастся.
Можно замаскировать проблемы, перенеся это все внутрь 1cpp, но смысла в этом нет.

Но, типа, опускать руки не надо, надо дальше думать над алгоритмом. Улыбка
  

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



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #26 - 31. Марта 2008 :: 09:45
Печать  
kms писал(а) 31. Марта 2008 :: 08:46:
PVR
Цитата:
Метод ЗаполнитьКолонку(вариант 4)
Синтаксис:
ЗаполнитьКолонку([Индекс = ''''], Колонка, ИнкрементируемоеЗначение,Инкремент)

Да это проще прямо в коде 1С сделать.

Я так и делаю в классе но 100000 раз вызов методов + цикл в 1С по сравнению с 1с++ одним методом, скорость + читабельность кода = небо и земля  Улыбка

Очень прошу добавить этот метод.
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #27 - 31. Марта 2008 :: 09:51
Печать  
kms писал(а) 31. Марта 2008 :: 08:58:
PVR

Цитата:
Такая перестройка строк с перестроением всех индексов - неэффективная операция.
Если так надо - выгрузи после сортировки в другую таблицу, добавь индексы заново и присвой значение новой таблицы исходной.
Смысла делать какой-то отдельный метод в 1cpp для этого точно нет - ничего выиграть невозможно.

Можно замаскировать проблемы, перенеся это все внутрь 1cpp, но смысла в этом нет.

Смысл есть 1 (двойной расход памяти на временную ИТЗ) только в этих целях и прошу сделать этот метод  Улыбка

p.s.
ведь один процес огр. 2gb

  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #28 - 31. Марта 2008 :: 09:55
Печать  
kms писал(а) 31. Марта 2008 :: 08:58:
Но, типа, опускать руки не надо, надо дальше думать над алгоритмом. Улыбка

Спасибо на добром слове  Очень довольный

просто хочется сделать полезное для всех, а почти всем  Со сжатыми губами  Улыбка
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ Сортировать и т.д.?
Ответ #29 - 31. Марта 2008 :: 10:16
Печать  
кто может добавить метод:
ЗаполнитьКолонку([Индекс = ''''], Колонка, ИнкрементируемоеЗначение,Инкремент)
, откликнитесь пожалуйста.

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