Имя: Пароль:
1C
1С v8
Открыть документ из отчета на СКД
0 first_may
 
18.06.19
23:56
Добрый вечер.

Конфигурция на УФ.

Подскажите пож, как правильно сделать, что бы из отчета на СКД можно было открыть документ?
1 first_may
 
18.06.19
23:58
Не получается вызвать открытие из процедуры

&НаКлиенте
Процедура РезультатВыбор(Элемент, Область, СтандартнаяОбработка)
    Если Найти(Элемент.ТекущаяОбласть.Имя, "C4") Или Найти(Элемент.ТекущаяОбласть.Имя, "C8") Тогда
        СтандартнаяОбработка = Ложь;
        
        
        // тут надо написать открытие документа
    КонецЕсли;
КонецПроцедуры
2 Zhuravlik
 
19.06.19
02:45
Можно в макете расшифровки добавить поле группировки, в нем выражение в виде выходного поля.. Но будет притормаживать на больших отчетах, т.к. получает представление "от точки".
3 first_may
 
19.06.19
07:04
(2) но все равно как то обработать нажатие надо же? как это сделать?
4 Сияющий в темноте
 
19.06.19
08:32
Если в расшифровке ссылка на документ,то двойное нажатие на поле его откроет.
5 first_may
 
19.06.19
09:51
(4) не открывает..

я вы вожу вот так

&НаКлиенте
Процедура Сформировать(Команда)
    СформироватьНаСервере(Результат);
КонецПроцедуры



&НаСервере
Процедура СформироватьНаСервере(Результат)
    ОбъектОтчет = РеквизитФормыВЗначение("Отчет");
    
    Если ОбъектОтчет.ПоказыватьТолькоОтклонения Тогда
        ОбъектОтчет.СхемаКомпоновкиДанных = ОбъектОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанныхТолькоОтклонения");
    Иначе
        ОбъектОтчет.СхемаКомпоновкиДанных = ОбъектОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    КонецЕсли;
    
    
    // из схемы возьмем настройки по умолчанию
    НастройкиКомпоновки = ОбъектОтчет.СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
    
    ОбъектОтчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпоновки);
    // Формируем макет, с помощью компоновщика макета  
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    // Передаем в макет компоновки схему, настройки и данные расшифровки  
    МакетКомпоновки = КомпоновщикМакета.Выполнить(ОбъектОтчет.СхемаКомпоновкиДанных, ОбъектОтчет.КомпоновщикНастроек.Настройки, );
    
    // Выполним компоновку с помощью процессора компоновки  
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , , Истина);
    
    // Очищаем поле табличного документа
    Результат.Очистить();
    
    // Выводим результат в табличный документ  
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Результат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры
6 toypaul
 
гуру
19.06.19
09:59
7 first_may
 
19.06.19
10:18
(6) я делал подобное для обычных форм и все работало, а тут переношу на УФ.

написал вот так, как было раньше, то есть добавил ДанныеРасшифровки

    // Передаем в макет компоновки схему, настройки и данные расшифровки  
    МакетКомпоновки = КомпоновщикМакета.Выполнить(ОбъектОтчет.СхемаКомпоновкиДанных, ОбъектОтчет.КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
    
    // Выполним компоновку с помощью процессора компоновки  
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);


но ошибка
{ВнешнийОтчет.....Форма.ФормаОтчета.Форма(113,126)}: Переменная не определена (ДанныеРасшифровки)
    МакетКомпоновки = КомпоновщикМакета.Выполнить(ОбъектОтчет.СхемаКомпоновкиДанных, ОбъектОтчет.КомпоновщикНастроек.Настройки, <<?>>ДанныеРасшифровки); (Проверка: Сервер)
{ВнешнийОтчет......Форма.ФормаОтчета.Форма(117,64)}: Переменная не определена (ДанныеРасшифровки)
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , <<?>>ДанныеРасшифровки, Истина); (Проверка: Сервер)
8 first_may
 
19.06.19
10:40
Подскажите пож, где можно посмотреть как правильно написать именно на УФ?
9 first_may
 
19.06.19
12:49
(6) я пытаюсь передать, но есть ошибка
Переменная не определена (ДанныеРасшифровки)
10 first_may
 
19.06.19
13:22
А можно тут как то из Область получить что за данные в ячейки?

&НаКлиенте
Процедура РезультатВыбор(Элемент, Область, СтандартнаяОбработка)
    Если Найти(Элемент.ТекущаяОбласть.Имя, "C4") Или Найти(Элемент.ТекущаяОбласть.Имя, "C8") Тогда
        СтандартнаяОбработка = Ложь;
        
        
        // тут надо написать открытие документа
    КонецЕсли;
КонецПроцедуры