Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Группировать группы (число прочтений - 3446 )
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Группировать группы
06. Августа 2007 :: 18:13
Печать  
Простой тест для типовой например ТиС (естественно с демо данными)

Я пытаюсь сгруппировать группы справочника с помощью метода ИТЗ.Группировать()

Печаль поглядите пожалуйста кому не трудно

ведь реализация простая, а выходит что группировка не работает

Еcтественно на последней ночной сборке, в качестве запроса я использовал OLEDBСommand и dbf базу
  

group_itz.ert ( 29 KB | Загрузки )

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Группировать группы
Ответ #1 - 07. Августа 2007 :: 08:32
Печать  
Обычно группировка используется для элементов (не групп), чтобы получить суммы по группам справочника.
Т.е. нужно что-то типа ISFOLDER = 2 + список суммируемых показателей.
  

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


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Группировать группы
Ответ #2 - 07. Августа 2007 :: 09:08
Печать  
0. Для группировки по группам нужно использовать элементы, в таблице групп быть не должно !!

1. А зачем
     ИТЗ.Группировать("Товар: &Товар","",0);
ведь вроде можно просто
     ИТЗ.Группировать("Товар: &Товар");

2. ИМХО После группировки метод ИТЗ.Выгрузить(ОбычнаяТаб) не выгрузит все подчиненные таблицы.
Но возможно, я и ошибаюсь. Подобным образом ИТЗ я не проверял

3. Такой маленький код можно было и сюда кинуть Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Группировать группы
Ответ #3 - 07. Августа 2007 :: 09:58
Печать  
С возвращением Артур  Улыбка

Я понимаю что метод нужен для группировки элементов по группам и группы он НЕ группирует как оказалось, Михаил прав - необходимо ISFOLDER = 2, тогда все работает корректно...

Если учесть что Группа это тоже запись в таблице справочника, и вроде как элемент...

1. Мне вчера вечером пришла в голову идея что метод Группировать можно было бы применить не только к элементам НО и к группам, таким образом у меня появилась бы готовая заготовка для Дерево+Таблица, а оказалось это не так.
2. Я подумал что возможно обнаружил ошибку  Смущённый и поэтому накидал простенький тест.

После разговора с noprogrammer'ом, пришел к выводу что на данном этапе нужно ждать ответа разработчиков.

P.S. Придется видимо использовать циклы, а так хотелось одним методом Печаль
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Группировать группы
Ответ #4 - 07. Августа 2007 :: 10:01
Печать  
artbear писал(а) 07. Августа 2007 :: 09:08:
1. А зачем
     ИТЗ.Группировать("Товар: &Товар","",0);
ведь вроде можно просто
     ИТЗ.Группировать("Товар: &Товар");


Привычка флаг по умолчанию указывать чтобы потом не забыть что он существует  Круглые глаза

Цитата:
2. ИМХО После группировки метод ИТЗ.Выгрузить(ОбычнаяТаб) не выгрузит все подчиненные таблицы.
Но возможно, я и ошибаюсь. Подобным образом ИТЗ я не проверял


Я просто хотел продемонстрировать что група "Обувь" (элемент) и группа "Обувь" (родитель) - почему то  Нерешительный не группируются
А для это хватило все лишь выгрузить Итоговую ТЗ на форму
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Группировать группы
Ответ #5 - 07. Августа 2007 :: 12:03
Печать  
lustin писал(а) 07. Августа 2007 :: 09:58:
С возвращением Артур  Улыбка

Спасибо.
Можете начинать закидывать меня предложениями по новому функционалу для 1С++/ФормЕкс Улыбка
Начинаю работать.

lustin писал(а) 07. Августа 2007 :: 09:58:
P.S. Придется видимо использовать циклы, а так хотелось одним методом Печаль

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

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Группировать группы
Ответ #6 - 14. Августа 2007 :: 17:33
Печать  
artbear писал(а) 07. Августа 2007 :: 12:03:
lustin писал(а) 07. Августа 2007 :: 09:58:
С возвращением Артур  Улыбка

Спасибо.
Можете начинать закидывать меня предложениями по новому функционалу для 1С++/ФормЕкс Улыбка
Начинаю работать.

lustin писал(а) 07. Августа 2007 :: 09:58:
P.S. Придется видимо использовать циклы, а так хотелось одним методом Печаль

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


Поддержу Артура:
Элементов может быть очень много, а групп на порядок меньше,
в таком случае выборка групп работает много быстрее.
Выходил из положения - вместо ИТЗ использовал класс 1С++ для группировки групп.

PS Группировка групп в ИТЗ не помешала-б
  
Наверх
ICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Группировать группы
Ответ #7 - 14. Августа 2007 :: 19:54
Печать  
artbear писал(а) 07. Августа 2007 :: 12:03:
А чем тебя не устраивает предложенный метод - выборка только элементов, не групп, и группировка через ИТЗ?


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

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

Озадачен
Цитата:
Поддержу Артура:
Элементов может быть очень много, а групп на порядок меньше

Я то как раз о том же - групп меньше и ГРУППА тоже в принципе элемент.
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Группировать группы
Ответ #8 - 15. Августа 2007 :: 12:48
Печать  
lustin писал(а) 14. Августа 2007 :: 19:54:
artbear писал(а) 07. Августа 2007 :: 12:03:
А чем тебя не устраивает предложенный метод - выборка только элементов, не групп, и группировка через ИТЗ?


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

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

Озадачен
Цитата:
Поддержу Артура:
Элементов может быть очень много, а групп на порядок меньше

Я то как раз о том же - групп меньше и ГРУППА тоже в принципе элемент.



Я ошибся, написав, что поддерживаю Артура, имел ввиду тебя Улыбка, т.е. я тоже хотел бы чтоб ИТЗ умела сворачивать группы. Только в этом случае можно получить самый оптимальный код.
Конкретно: когда нужно получить отчет по группам(без элементов), на кой черт получать выборку по элементам, когда можно получить сразу по группам самого нижнего уровня, а уж затем сворачивать группы - так получается на порядок быстрей, но вместо ИТЗ приходится использовать класс "Группировка", что ест-но снижает эффект.

ИТОГО: Группировка групп в ИТЗ НУЖНА!!!
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Группировать группы
Ответ #9 - 15. Августа 2007 :: 13:48
Печать  
думаю что используя колонку '<ИмяКолонкиСправочника>_Родитель' можно добится эффекта группировки групп немного "пошаманя" над первичной выборкой.
  

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