Имя: Пароль:
1C
1С v8
1С 8.2 УФ. Как получить все значения в текущей строке поля формы?
0 Фелипе Ривера
 
15.09.14
12:29
Дано:
Платформа 8.2.19.106.
Созданный отчет на СКД.
Управляемая форма отчета открытая в тонком клиенте.

Требуется: при двойном клике в любой ячейке любой строки получать значение всегда одного и того же поля в той строке, в которой кликнули.

Доп. информация: Это нужно для открытия отдельной формы данного значения и его последующего редактирования.

Вопрос: как реализовать то, что требуется?
1 Victor111
 
15.09.14
12:56
(0) я делал подобно но не через СКД, а вручную создавал отчет, тоесть писал запрос, фильтры добавлял, и все выгружал в ПолеТабличногоДокумента на форме, а потом можна было для ПоляТабличногоДокумента прописать отдельный код при Выборе или ПриИзменениии для строк
2 Victor111
 
15.09.14
12:57
https://yadi.sk/i/Z5YUR5UkbUiQX
вот как видел пользователь отчет
3 Фелипе Ривера
 
15.09.14
13:29
(1) Это да. Хочется одновременно остаться с возможностями СКД.
4 Фелипе Ривера
 
15.09.14
13:33
(2) Оффтоп. Пользователи. Дело-то житейское. Здесь другое.

Кто может подсказать из собственного опыта или не из собственного?
5 DmitrO
 
15.09.14
13:39
Из собственного опыта.
Надо обрабатывать ДанныеРасшифровки.
Только надо понять, что индикатором действия для обрабатывающего кода должно стать не соседнее поле в этой строке, а строка вцелом (как правило представлена группировкой ведь..).
6 Фелипе Ривера
 
15.09.14
13:44
Новости онлайн:
проводятся исследования на предмет использования метода ПолучитьРодителей()
7 DmitrO
 
15.09.14
13:45
угу, верное направление.
8 Фелипе Ривера
 
17.09.14
11:24
Подводя итоги, было реализовано такое решение:

&НаСервере
Функция ПолучитьДанныеРасшифровки(Расшифровка, ИмяПоля)
    
    ИскомоеЗначение = Неопределено;
    
    Данные_Расшифровки = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
    
    ИскомоеЗначение = ПолучитьЗначениеИзДанныхРасшифровок(Данные_Расшифровки, Расшифровка, ИмяПоля);
    
    Возврат ИскомоеЗначение;
    
КонецФункции // ПолучитьДанныеРасшифровки()

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


&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    Сотрудник = ПолучитьДанныеРасшифровки(Расшифровка, "Сотрудник");
    
    // ОткрытьЗначение(ИскомоеЗначение); Или что там уже нужно
    
КонецПроцедуры
9 Фелипе Ривера
 
17.09.14
11:26
Большое спасибо за помощь всем участникам!
Тему можно закрывать.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.