Имя: Пароль:
1C
1С v8
Расшифровка строки в СКД
0 osuul
 
18.01.12
21:56
Помогите:

сделал отчет СКД:

колонка1 колонк2 колонк3 колонка4
данные1  данные2 данные3 данные4
данные5  данные6 данные7 данные8

начал делать "РезультатОбработкаРасшифровки" и не разобраться как:

нужно что бы по нажатию на любую ячейку с данными из строки у меня обрабатывалась расшифровка например 1-й ячейки с данными.

т.е. если я нажму на "данные3", расшифровка отрабатывает "данные1"
    если я нажму на "данные4", расшифровка отрабатывает "данные1"
    если я нажму на "данные6", расшифровка отрабатывает "данные5"
    если я нажму на "данные8", расшифровка отрабатывает "данные5"
и т.д.

весь инет перерыл, но так и не понял :(
1 osuul
 
18.01.12
22:57
ап
2 osuul
 
19.01.12
00:47
ап
3 Kom-off
 
19.01.12
01:19
См. вот здесь: http://www.spec8.ru/kurs-po-skd-besplatno Уроки 106-110. Там все есть.
4 osuul
 
19.01.12
01:39
(3) там есть, но для макетов только, нужно без макета..
5 Nesh
 
19.01.12
01:59
тоже актуально...
6 osuul
 
19.01.12
02:03
узнаешь чего пищи сюда плиз
7 Kom-off
 
19.01.12
09:50
(4) А без макета делаешь свою обработку расшифровки в форме отчета (форму отчета придется все же создать) и пользуешь в этом обработчике функции компоновщика (или его настроек) для получения контекста по данным расшифровки, которые СКД засунет в этот обработчик событий. Кажется, у Хрусталевой это описано в книге было, да и в 110 уроках это есть, но точно сейчас не помню в каком...
8 osuul
 
19.01.12
17:43
(7) я знаю как делать расшифровку для каждой ячейки, но нужно что бы было как в сабже
9 Kom-off
 
19.01.12
17:56
(8) В процедуре обработчике расшифровки делай что хочешь, в т.ч. и незамысловатую расшифровку.
10 Kom-off
 
19.01.12
17:57
(9)+ Только значения для показа расшифровки ищи в готовом документе "ручками", или выводи результат отчета отдельно в ТЗ и в обработке расшифровки получай то, что тебе нужно из нее. Ну, вообщем, покрутиться придется.
11 osuul
 
19.01.12
18:07
(9) я понимаю что я там могу вертеть что угодно) тока вот верчу кручу уж как сутки, все не вывертеть никак)

(10) "или выводи результат отчета отдельно в ТЗ" - мысль, попробую повертеть в этом направлении
12 Kom-off
 
19.01.12
18:13
(11) Удачи.
13 osuul
 
19.01.12
18:17
(10)(12) спасибо) но вопрос всеравно открытый)
14 PVV65
 
19.01.12
19:06
Перем Схема, ДанныеРасшифровки;

Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   Перем ВыполненноеДействие;
   
   СтандартнаяОбработка=Ложь;
   
   Если ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ИмяКолонки2" Тогда
       Смещение = 1;
   ИначеЕсли ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ИмяКолонки3" Тогда
       Смещение = 2;
   ИначеЕсли ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ИмяКолонки4" Тогда
       Смещение = 3;
   ИначеЕсли ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ИмяКолонки1" Тогда
       Смещение = 0;
   КонецЕсли;
   
   ОбработкаРасшифровки=Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема));
   ДоступныеДействия=Новый Массив;
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);  
   ОбработкаРасшифровки.Выполнить(ДанныеРасшифровки.Элементы.Получить(Число(Расшифровка)-Смещение).Идентификатор,ВыполненноеДействие,ДоступныеДействия);
   
КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)
   Схема = ОбработкаОбъект.ПолучитьМакет("Схема");
   
   КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
   КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема));
   КомпоновщикНастроек.ЗагрузитьНастройки(Схема.НастройкиПоУмолчанию);
   
   ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема,КомпоновщикНастроек.Настройки,ДанныеРасшифровки);
   Процессор = Новый ПроцессорКомпоновкиДанных;
   Процессор.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
   
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   
   ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.ПолеТабличногоДокумента1);
   ПроцессорВывода.Вывести(Процессор);
КонецПроцедуры
15 osuul
 
19.01.12
19:27
Сделал некое изващение, для начала сойдет

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   
   // СтандартныеОтчеты.ОбработкаРасшифровкиОтчетовДляРуководителя(ЭтотОбъект, ЭтаФорма, Расшифровка, СтандартнаяОбработка);
   СтандартнаяОбработка = ложь;
   
   ТекущееПоле = ЭтаФорма.ТекущийЭлемент.ТекущаяОбласть.Имя;    
   
   ТекущееПоле = ОбрезатьЛишнее(ТекущееПоле);
   Сообщить(ТекущееПоле);
   СсылкаНаПоле = ТекущееПоле+"C2";
   НомерДокумента = ЭлементыФормы.Результат.Область(СсылкаНаПоле).Текст;
   Если ЗначениеЗаполнено(НомерДокумента) тогда
       Документы.ЗаявкаНаРаботы.НайтиПоНомеру(НомерДокумента).ПолучитьФорму().Открыть();
   КонецЕсли;
   
КонецПроцедуры




Функция ОбрезатьЛишнее(Строка)    
   Позиция = НАйти(строка,"C");
   Строка = Сред(Строка,0,Позиция-1);
   Возврат Строка
КонецФункции
16 osuul
 
19.01.12
19:28
(14) интересно, сейчас попробую вариант
AdBlock убивает бесплатный контент. 1Сергей