Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 фев 2024, 09:35

Кликабельное поле в отчете

Автор Sekeretteni, 14 апр 2023, 11:14

0 Пользователей и 1 гость просматривают эту тему.

Sekeretteni

Добрый день!
Есть отчет на скд (таблица заполняется программно). Поле ссылочного типа"смета" можно открыть, если нажать правой клавишей и выбрать пункт "открыть". А как сделать, чтобы можно было открыть двойным кликом по полю?Screenshot_2.png

antoneus

Обрабатывать событие ОбработкаРасшифровки табличного документа, устанавливать стандартную обработку в ложь и делать все что захочется.

Sekeretteni

antoneus,сделала, всё отлично работает. Но есть ли возможность выполнить этот код в модуле объекта без создания формы отчета? или, возможно, другой вариант, без создания формы отчета.

код:

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

&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
   
   СтандартнаяОбработка = Ложь;
   ЗначениеРасшифровки = ПолучитьЗначениеРасшифровки(Расшифровка, "Смета");
   ПоказатьЗначение(Неопределено, ЗначениеРасшифровки); 
   
КонецПроцедуры

antoneus

Модуль объекта выполняется на сервере, там ничего открыть нельзя. Еще вариант - запилить свой макет ячейки в СКД.

Sekeretteni

antoneus, в модуле объекта добавила данныерасшифровки и получилось открыть по двойному клику другой документ (акт)
а смета не открывается, видимо, из-за группировки? смогу ли я это обойти?
 код в модуле объекта:

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

    ВнешнийНаборДанных = Новый Структура("ТЗ", тзИтог);
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки);
   
    ДокументРезультат.Очистить();
   
     ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
    ДокументРезультат.ПоказатьУровеньГруппировокСтрок(2);

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

Screenshot_3.png

antoneus

Должно все открываться, при чем тут группировка-то.

Sekeretteni

antoneus, нашла причину - в выбранных полях выводится 2 значения, поэтому и не открывает. Вопрос - смогу ли также вывести эти два значения и задать открытие по двойному клику? Screenshot_5.png

Sekeretteni

antoneus, спасибо за помощь! вопрос снят. решила с помощью представления

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск