![]() |
|
СКД, расшифровка: как получить получить данные полей текущей строки? | ☑ | ||
---|---|---|---|---|
0
dave2000
29.03.18
✎
18:50
|
Есть простой отчет на СКД:
Работник | Подразделение | Начислено | Удержано | Премия Иванов Бухгалтерия 5000 100 200 Петров Бухгалтерия 7000 200 800 Сидоров Бухгалтерия 6000 100 300 При клике на любой сумме нужно получить расшифровку данной строки. В обработке расшифровки я могу получить значение текущей ячейки. Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ЗначениеВЯчейке = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Значение; ИмяТекущегоПоля = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Поле; РаботникВСтроке = как получить работника?????? КонецПроцедуры А как получить ссылку на работника, который находится в данной строке? Т.е. если кликаем на 7000, как нам определеить, что это Петров? |
|||
1
Boleev
29.03.18
✎
19:07
|
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; СтруктураРасшифровки = Новый Структура("Работник,Подразделение"); ПолучитьДанныеРасшифровкиСоСтруктурой(Расшифровка,СтруктураРасшифровки); КонецПроцедуры |
|||
2
Boleev
29.03.18
✎
19:08
|
&НаСервере
Процедура ПолучитьСтруктуруВозврата(ПолеИлиГруппировка,СтруктураПолей) МассивРодителей = ПолеИлиГруппировка.ПолучитьРодителей(); Для Каждого Стр из МассивРодителей Цикл Если ТипЗнч(Стр) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда ПолучитьСтруктуруВозврата(Стр,СтруктураПолей); ИначеЕсли ТипЗнч(Стр) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда ПоляГруппировки = Стр.ПолучитьПоля(); Для Каждого гСтр из ПоляГруппировки Цикл Если СтруктураПолей.Свойство(гСтр.Поле) Тогда Если Не ЗначениеЗаполнено(СтруктураПолей[гСтр.Поле]) Тогда СтруктураПолей[гСтр.Поле] = гСтр.Значение; КонецЕсли; КонецЕсли; ПолучитьСтруктуруВозврата(Стр,СтруктураПолей); КонецЦикла; КонецЕсли; КонецЦикла; КонецПроцедуры &НаСервере Функция ПолучитьДанныеРасшифровкиСоСтруктурой(Расшифровка,СтруктураВозврата); Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки); ПолучитьСтруктуруВозврата(Данные.Элементы[Расшифровка],СтруктураВозврата); КонецФункции // ПолучитьДанныеРасшифровки() |
|||
3
dave2000
29.03.18
✎
19:38
|
(1) (2) Спасибо, попробую!
|
|||
4
dave2000
29.03.18
✎
20:14
|
(3) К сожалению не сработало.
Дело в том, что ПоляРасшифровки = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля() содержит лишь один элемент - колонку и значение ячейки, по которой мы кликнули. Поля "Работник" и "Подразделение" там отсутствуют :( |
|||
5
dave2000
29.03.18
✎
20:33
|
Всё, разобрался! Нужно было создать макет поля и в качестве расшифровки указать, какие поля я там хочу видеть.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |