СКД: Как сделать динамическую сортировку в таблице внешнего отчета? #438571


#0 by DeeSmith
Есть внешний отчет. В нем данные запроса сохраняются в Таблицу Значений (ТЗ). В Таблицу выводятся данные из этой ТЗ. При клике на ячейку с названием колонки я через РасшифровкуЯчейки сделал сортировку по этой колонке. Проблема в том, что при изменении сортировки в Таблице заново запускается запрос (занимает длительное время), т.е. отчет отрабатывает полностью, хотя достаточно воспользоваться уже существующими данными из ТЗ - просто их отсортировать. Вопрос - как передавать в этом случае через Расшифровку эту ТЗ и как ее потом использовать?
#1 by ДенисЧ
Пихай эту тз в расшифровку и получай её в ОбработкаЯчейкиТаблицы
#2 by Нуф-Нуф
Расшифровка = ТЗ
#3 by DeeSmith
У меня не используется ОбработкаЯчейкиТаблицы, вместо нее - РасшифровкаЯчейки(Значение). А в какую ячейку таблицы пихать ТЗ в расшифровку? Ведь в ячейке с названием колонки в расшифровке стоит число - порядок сортировки.
#4 by ДенисЧ
РасшифровкаЯчейки - не найдено в СП.
#5 by Нуф-Нуф
ну тогда запоминай ТЗ после выполнения запроса в переменную
#6 by DeeSmith
Так этого там нет почему-то. Просто есть два варианта обработки события нажатия на ячейку таблицы - либо предопределенная ОбработкаЯчейкиТаблицы, либо через расшифровку ячейки. Во встроенных отчетах так реализована функция "обновить" в таблице. Так я и пытаюсь делать, но порядок до конца не ясен. После формирования ТЗ сохраняю ее: а при открытии считываю - ТЗ = ЗначениеИзСтроки(ВосстановитьЗначение("РаботаСКонтрагентами_ТЗ")); и еще в обработчике РасшифровкаЯчейки устанавливаю - Расшифровка.Установить("ТЗ", ЗначениеВСтроку(ТЗ)); вот может последний пункт - лишний и не надо вообще эту переменную через расшифровку передавать...
#7 by ДенисЧ
Я даже знаю, почему там этого нет...
#8 by Нуф-Нуф
сделай через глобальную переменную :)
#9 by DeeSmith
- поделись, почему? - ну это сурово :-)
#10 by Нуф-Нуф
зато работает без геморроя :)  сам несколько раз так выходил из ситуаций
#11 by ДенисЧ
Мотому что это написанная тобой функци
#12 by DeeSmith
Так количество отчетов растет и одновременно может использоваться больше одного - это под каждый новый отчет заводить новую глобальную переменную придется. Как-то не красиво :-) Ну да, вообще-то. Просто брал из встроенного отчета - вот и отложилось, что вроде как встроенная функция :-) А так - действительно, имя функции можно любое задать. Но суть-то от этого не меняется - два разных способа обработки ячейки таблицы получается.
#13 by ДенисЧ
не получается двух способов. Включи ту штутку, на которой шапку носишь и подумай маленько...
#14 by zak555
почему?
#15 by DeeSmith
Что так, что эдак - глобальный обработчик один - ОбработкаЯчейкиТаблицы, согласен. Я тут выше имел ввиду использование этой предопределенной процедуры в коде отчета. Видимо не очень ясно выразился :-)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С