helpf.pro
Регистрация

v8: Расшифровка по строке

bless18
19.11.2012 11:34Прочитано: 6509
Здравствуйте! Очень нужна ваша помощь!
Сделала свою расшифровку, которая открывает форму списка регистра сведений с отбором по сотруднику, дате.. Но не знаю, как сделать расшифровку по всей строке, то есть, чтобы при нажатии на любую ячейку, открывалась данная расшифровка..
Код обработки расшифровки следующий:
Код 1C v 8.2 УП
 
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

Перем ВыполненноеДействие;

СтандартнаяОбработка=Ложь;


ЭлементРасшифровкиДанных = ДанныеРасшифровки.Элементы[Расшифровка];
ЭлементРасшифровкиДанныхПоля = ЭлементРасшифровкиДанных.ПолучитьПоля()[0];
Поле = Новый ПолеКомпоновкиДанных(ЭлементРасшифровкиДанныхПоля.Поле);

ОбработкаРасшифровки=Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки,Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));

ДополнительныеДействия=Новый СписокЗначений;

ДополнительныеДействия.Добавить("ОбъяснительныеСотрудника","Объяснительные сотрудника");



Настройки=ОбработкаРасшифровки.Выполнить(Расшифровка,ВыполненноеДействие,,ДополнительныеДействия);

Если Настройки<>Неопределено Тогда

КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

ЭлементыФормы.Результат.Очистить();

СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки);

Иначе
// Здесь обрабатывается новая расшифровка
Если ВыполненноеДействие="ОбъяснительныеСотрудника" Тогда

ЭлементРасшифровкиДанных = ДанныеРасшифровки.Элементы[Расшифровка];
ЭлементРасшифровкиДанныхПоля = ЭлементРасшифровкиДанных.ПолучитьПоля()[0];

Если ЭлементРасшифровкиДанных.ПолучитьПоля()[0].Поле = "ФизЛицо" Тогда
ФормаОбъяснительные = РегистрыСведений.Объяснительные.ПолучитьФормуСписка();

ФормаОбъяснительные.Отбор.ФизЛицо.Значение = ЭлементРасшифровкиДанныхПоля.Значение;
ФормаОбъяснительные.Отбор.ФизЛицо.Использование = Истина;
КонецЕсли;

ФормаОбъяснительные.Отбор.Событие.Значение = ЭлементРасшифровкиДанныхПоля.Значение;
ФормаОбъяснительные.Отбор.Событие.Использование = Истина;

ФормаОбъяснительные.Отбор.Дата.Значение = ЭлементРасшифровкиДанныхПоля.Значение;
ФормаОбъяснительные.Отбор.Дата.Использование = Истина;

ФормаОбъяснительные.Открыть();

КонецЕсли;

КонецЕсли;


КонецПроцедуры


Yandex
Возможно, вас также заинтересует
Реклама на портале
bless18
19.11.2012 12:23Ответ № 1
Макет сформирован в СКД.
E_Migachev
19.11.2012 12:24Ответ № 2
(1) bless18, а макет задан?
bless18
19.11.2012 12:35Ответ № 3
Макет создан при формировании СКД с именем "ОсновнаяСхемаКомпоновкиДанных", содержит Табличный документ с именем результат, в который выводится результат запроса и формируется отчет.
DJ_Serega
19.11.2012 12:37Ответ № 4
(3) bless18, может (2) E_Migachev спрашивал про макет, который в самой СКД.
bless18
19.11.2012 12:44Ответ № 5
Если я правильно поняла, на вкладке "Макеты", то его там нет..
bless18
19.11.2012 13:00Ответ № 6
А без его создания нельзя обратиться к строке выведенного результата табличного документа?
E_Migachev
19.11.2012 15:26Ответ № 7
(6) bless18, да можно
когда ты 2-ным щелчком щелкаешь по полям у тебя должна вызываться твоя функция из (0) так вот в ней нужно прописать, что делать при нажатии какой-либо колонки - смотри отладчиком
bless18
21.11.2012 14:53Ответ № 8
Мне нужно при нажатии любой колонки открывать расшифровку: форму регистра сведений с отбором по сотруднику, дате.
А колонок в отчете много.
Написать:
Код 1C v 8.2 УП
 
Если нажата Колонка1 или Колонка2 .....
Выполнить действие;
КонецЕсли
??
E_Migachev
21.11.2012 16:10Ответ № 9
(8) bless18, да, как-то так.. тебе нужно отлавливать по какой колонке щелкнули и далее уже расшифровывать как нужно
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.