|
Работа с данными отчета | ☑ | ||
---|---|---|---|---|
0
mr_Ale
05.03.13
✎
12:16
|
Доброго всем дня. Прошу помощь в решении такой ситуации: отчет выводит данные - СКД, все как положено, Необходимо из выведенной инф-ии выбрать нужные строки ссылочного типа. В чем проблема: отчет выводит информацию в табличный документ, а там тип "строка". Пробовал через расшифровку- с одной записью получается, а вот если несколько нужно выбрать(например, колонку) то мой способ не подходит. Таким кодом достаю данные одного поля:
ИндексРасшифровки = Число(Элемент.ТекущаяОбласть.Расшифровка); ЭлементРасшифровкиДанных = ДанныеРасшифровки.Элементы[ИндексРасшифровки]; ЭлементРасшифровкиДанныхПоля = ЭлементРасшифровкиДанных.ПолучитьПоля()[0]; Если ТипЗнч(ЭлементРасшифровкиДанныхПоля.Значение) = Тип("Нужный мне документ") Тогда СтандартнаяОбработка = Ложь; СписокДействий = Новый СписокЗначений; ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ОбработкаНажатияНужноеМнеДействие = Новый Действие("НужноеМнеДействие"); СписокДействий.Добавить(ОбработкаНажатияНужноеМнеДействие, "Нужное Мне Действие"); Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка,ВыполненноеДействие , , СписокДействий); Если ВыполненноеДействие = ОбработкаНажатияНужноеМнеДействие Тогда ВотМояСсылка= ЭлементРасшифровкиДанныхПоля.Значение; Как сделать для всей колонки, по которой нажимают??? |
|||
1
palpetrovich
05.03.13
✎
12:25
|
имхо, "Как сделать для всей колонки" - ставит в тупик всех присутсвующих ;)
|
|||
2
mr_Ale
05.03.13
✎
12:28
|
(1) =(
|
|||
3
mr_Ale
05.03.13
✎
12:29
|
Пытался сделать так:
СписокДокументов = Новый Массив(); КоличествоКолонок = ЭлементыФормы.Результат.ШиринаТаблицы; РасшифровкаПервогоЗначения = ИндексРасшифровки; РасшифровкаПоследнегоЗначения = ДанныеРасшифровки.Элементы.Количество(); Пока РасшифровкаПервогоЗначения>=0 Цикл РасшифровкаПервогоЗначения = РасшифровкаПервогоЗначения-КоличествоКолонок; КонецЦикла; РасшифровкаПервогоЗначения = РасшифровкаПервогоЗначения+КоличествоКолонок; Пока РасшифровкаПервогоЗначения<РасшифровкаПоследнегоЗначения Цикл ЭлементРасшифровкиДанных = ДанныеРасшифровки.Элементы[РасшифровкаПервогоЗначения]; ЭлементРасшифровкиДанныхПоля = ЭлементРасшифровкиДанных.ПолучитьПоля()[0]; СписокДокументов.Добавить(ЭлементРасшифровкиДанныхПоля.Значение); РасшифровкаПервогоЗначения = РасшифровкаПервогоЗначения+КоличествоКолонок; КонецЦикла; Но расшифровка криво считает при разном наборе колонок... |
|||
4
palpetrovich
05.03.13
✎
12:29
|
(2) не, ну правда, я к примеру не понял ...картинку выложи что хочешь, что-ли
|
|||
5
palpetrovich
05.03.13
✎
12:31
|
+4 а то, мне лично кажется, что ты хочешь что-бы при "нажатии " на колонку у тебя открылись все стотыщдокуменов этой колонки :)
|
|||
6
Галахад
гуру
05.03.13
✎
12:34
|
По идее, делать расшифровку спискомзначений.
1 элемент - ИмяКолонки 2 элемент - Ссылка |
|||
7
mr_Ale
05.03.13
✎
13:00
|
(5) Чтобы при нажатии все документы в колонке которые записались в массив.
|
|||
8
mr_Ale
05.03.13
✎
13:01
|
(6) Подробнее можно, пожалуйста.
|
|||
9
palpetrovich
05.03.13
✎
13:06
|
(7) ну дык, напрашивается цикл по строкам имхо
|
|||
10
mr_Ale
05.03.13
✎
13:08
|
То есть если 10 колонок и 100 строк, то необходимо брать 1000 полей и каждое просматривать? Больше никаких вариантов?
|
|||
11
palpetrovich
05.03.13
✎
13:41
|
(10) gjxrve-то мне кажется что задача надумана или ты не то решаешь что действилеьно надо ...или не в том месте, к примеру - может надо на этапе формирования создать масиив (спиок, тз...)
|
|||
12
palpetrovich
05.03.13
✎
13:41
|
* gjxrve-то = почекму-то
|
|||
13
mr_Ale
05.03.13
✎
13:44
|
Изначально задача сложнее. остался последний этап, но тут то и попался камушек...
|
|||
14
Classic
05.03.13
✎
13:45
|
(13)
Ну реально непонятно, что ты хочешь сделать. |
|||
15
mr_Ale
05.03.13
✎
13:48
|
Упрощу-есть отчет, сделанный на СКД. На обычной форме. На форму прикрепляю кнопку. Нужно нажимая на кнопку получить все ссылки на документХХХ , который выводится в отчете. Так понятнее?=)
|
|||
16
palpetrovich
05.03.13
✎
13:49
|
(15) все ссылки на ОДИН объект?
|
|||
17
mr_Ale
05.03.13
✎
13:51
|
Да.
|
|||
18
palpetrovich
05.03.13
✎
13:53
|
(17) ну дык, из СП-же:
СписокСсылок = НОВЫЙ Массив; СписокСсылок.Добавить(ЭлементРасшифровкиДанныхПоля.Значение); ТабСсылок = НайтиПоСсылкам(СписокСсылок); ... |
|||
19
mr_Ale
05.03.13
✎
13:55
|
Тю блин-написал коряво. просто получить ссылки из отчета. колонки, допустим, регистратор.
|
|||
20
mr_Ale
05.03.13
✎
13:56
|
Пример, есть колонка регистратор- из нее нужно достать все ссылки и поместить их в массив..
|
|||
21
mr_Ale
05.03.13
✎
13:57
|
Снова непонятно?(((
|
|||
22
Classic
05.03.13
✎
14:22
|
(21)
При обходе СКД анализируй текущший Макет. Как правило он называется Макет2 для первой группировки, Макет3 - для второй и т.д. При совпадении макета - пихай в свой список |
|||
23
Classic
05.03.13
✎
14:23
|
Заполняй при выводе отчета
|
|||
24
mr_Ale
05.03.13
✎
14:29
|
Да, спасибо. Именно так и начал делать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |