|
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
|
Большое спасибо за помощь всем участникам!
Тему можно закрывать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |