|   |   | 
| 
 | Работа с данными отчета | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Да, спасибо. Именно так и начал делать.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |