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



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
06. Июля 2015 :: 10:42
Печать  
Добрый день!

Я сделал недавно отчет, который использует 1С++, в частности возможности ИндексированнойТаблицы.
Но "клиент", для которого я делал этот отчет, категорически отказывается использовать внешние компоненты.
Почти все я переделал на ТЗ,  остался только метод "Группировать".

Может быть уже есть у кого-нибудь готовая процедура, которая делает такую же группировку с ТЗ?
Поделитесь, пожалуйста.
Или хотя бы описание алгоритма, чтобы самому не изобретать?
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #1 - 06. Июля 2015 :: 11:53
Печать  
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #2 - 06. Июля 2015 :: 14:17
Печать  
berezdetsky писал(а) 06. Июля 2015 :: 11:53:

сейчас посмотрю,
большое спасибо!
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #3 - 06. Июля 2015 :: 15:06
Печать  
berezdetsky писал(а) 06. Июля 2015 :: 11:53:


Посмотрел - это класс ТаблицаГруппировок, то есть для его использования все равно нужно использовать 1С++.
Придется перекладывать на обычные процедуры...
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #4 - 06. Июля 2015 :: 15:46
Печать  
Какие парамеры можно передавать в метод "Получить" этого класса?
Как лучше этот метод переделать в обычную процедуру?
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #5 - 06. Июля 2015 :: 18:49
Печать  
И еще MetaDataWork мешает.
Какой процедурой из типовой 1С можно заменить метод "ЗначениеВСтрокуБД"?
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #6 - 06. Июля 2015 :: 21:44
Печать  
ЗначениеВСтроку()
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #7 - 06. Июля 2015 :: 21:52
Печать  
Результат группирования ТаблицыГруппировок ближе к результату выполнения объекта Запрос нежели к ИндексированнойТаблице.
По крайней мере принцип обхода группировок точно такой же.
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #8 - 06. Июля 2015 :: 21:59
Печать  
а алгоритм метода Группировать ИТ, имхо, не сложен для самостоятельной реализации
1. на входе таблица А, номер группировки i
2. копируем А в Б
3. сворачиваем А по полям группировки i
4. добавляем в А колонку тзПотомки
5. для каждой строки А перебираем Б и копируем строки с равными значениями полей группировки из Б в тзПотомки строки А
6. передаем тзПотомки строки А и i+1 в п.1
  

1&&2&&3
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #9 - 07. Июля 2015 :: 06:17
Печать  
trad, спасибо!

и еще расскажите пожалуйста про метод "Получить",
какие параметры в него можно передавать?
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #10 - 07. Июля 2015 :: 06:32
Печать  
у исходной ТаблицыГруппировок нет такого метода.
если речь про КОП от berezdetsky то не могу знать.
  

1&&2&&3
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #11 - 07. Июля 2015 :: 06:41
Печать  
понятно, тогда обращаюсь к berezdetsky:
просьба помочь по методу "Получить"
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #12 - 07. Июля 2015 :: 06:45
Печать  
trad писал(а) 06. Июля 2015 :: 21:44:
ЗначениеВСтроку()


ЗначениеВСтроку() не подходит вместо MDW.ЗначениеВСтрокуБД(Родитель)

Вот справка:
"В качестве параметра для данного метода допускается передавать объекты типа ''СписокЗначений'' и ''ТаблицаЗначений''"

А у нас там передается элемент справочника


  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #13 - 07. Июля 2015 :: 07:03
Печать  
es3000 писал(а) 07. Июля 2015 :: 06:41:
понятно, тогда обращаюсь к berezdetsky:
просьба помочь по методу "Получить"

Он делает то же, что и метод Получить объекта Запрос - позиционирует выборку на требуемых значениях группировки, с возможностью дальнейшего обхода методом Группировка.

es3000 писал(а) 07. Июля 2015 :: 06:45:
ЗначениеВСтроку() не подходит вместо MDW.ЗначениеВСтрокуБД(Родитель)

Вот справка:
"В качестве параметра для данного метода допускается передавать объекты типа ''СписокЗначений'' и ''ТаблицаЗначений''"

А у нас там передается элемент справочника

Используй ЗначениеВСтрокуВнутр. Но если нужно упорядочивание по этим значениям, результат придётся распарсить, чтобы вытащить ID объекта.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Метод "Группировать" для ТаблицыЗначений такой же как для ИТ
Ответ #14 - 07. Июля 2015 :: 08:40
Печать  
(0) запихни 1cpp в саму ert-ку. Распаковывай при необходимости и загружай перед выполнением отчета.
Клиентосу скажешь, что всё штатно. Код можно припрятать в мокселе.
Будет быстро и все довольны Улыбка

ЗЫ: можешь и классы туда запихнуть и всё на свете..
как пример - можешь посмотреть мою поделку для правки регистров
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать