Имя: Пароль:
1C
1С v8
Как при нажатии по ячейке сформированного отчета(на СКД) открыть документ.
0 Nicholas_
NullaM
 
29.09.15
07:23
Подскажите пожалуйста как при нажатии по любой заполненной ячейке из строки сформированного отчета, открыть сразу документ поступления из которого брались данные в этой строке. Вот текст запроса:
ВЫБРАТЬ
    ПоступлениеТоваровУслуг.Ссылка,
        ПоступлениеТоваровУслуг.ТранспортнаяКомпания,
    ПоступлениеТоваровУслуг.НомерТТН,
    ПоступлениеТоваровУслуг.ДатаПоступления КАК ДатаПоступления,
    ПоступлениеТоваровУслуг.ДатаОтгрузки,
    ПоступлениеТоваровУслуг.Вес,
    ПоступлениеТоваровУслуг.Объем,
    ПоступлениеТоваровУслуг.КоличествоМест,
    ПоступлениеТоваровУслуг.Стоимость,
    ПоступлениеТоваровУслуг.КомментарийПоступления КАК Комментарий,
    ПоступлениеТоваровУслуг.ГрузПринят
ИЗ
    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ГДЕ
    ПоступлениеТоваровУслуг.ДатаПоступления МЕЖДУ &НачалоПериода И &КонецПериода

УПОРЯДОЧИТЬ ПО
    ДатаПоступления
1 t2013
 
29.09.15
07:36
создать форму, у таб дока событие "ОбработкаРасшифровки"
2 Nicholas_
NullaM
 
29.09.15
07:54
Это я читал в интернете, а вот как дальше быть мне непонятно. Опыт на СКД у меня небольшой, делал простые отчеты на СКД без программирования. Какой код нужно написать в событии "ОбработкаРасшифровки" подскажите пожалуйста, а если есть темы здесь уже с данным вопросом, то направьте. Вчера гуглил, находил пример, но у меня не заработало.
3 Molinor
 
29.09.15
07:56
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    
    Перем ВыполненноеДействие;
    
    СтандартнаяОбработка = Ложь;
    
    ЗначениеРасшифровки = ПолучитьЗначениеРасшифровки(Расшифровка);
    
    Если ТипЗнч(ЗначениеРасшифровки) = Тип("ДокументСсылка.Событие") Тогда
        
        Форма = ЗначениеРасшифровки.ПолучитьФорму("ФормаДокумента");
        Форма.Открыть();
        Форма.Активизировать();
        
    Иначе
        
        СтандартнаяОбработка = Истина;
        
    КонецЕсли;
    
КонецПроцедуры

Функция ПолучитьЗначениеРасшифровки(Расшифровка)
    КоллекцияПолей = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля();
    Если КоллекцияПолей.Количество() > 0 Тогда
        Возврат КоллекцияПолей[0].Значение;
    КонецЕсли;
КонецФункции
4 Nicholas_
NullaM
 
29.09.15
08:30
Вылезла ошибка при выполнении строчки кода "КоллекцияПолей = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля();" - "Значение не является значением объектного типа (Элементы)". Посмотрел в управляемой форме на вкладке реквизиты у реквизита ДанныеРасшифровки значение "Строка". Такое значение было указано автоматически при создании формы. Как быть, изменить тип у Данные расшифровки и где-то заполнять?
5 t2013
 
29.09.15
09:14
а зачем по любой ячейки строки, кликай по ссылки и пользуйся стандартной расшифровкой?
6 Nicholas_
NullaM
 
29.09.15
10:01
Так сказал сделать куратор, а хорошая идея добавить просто еще поле в отчет с ссылкой на документ и кликать по нему. Погуглил еще, нашел статью, подправил код, получилось так:
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    Перем ВыполненноеДействие;
    
    СтандартнаяОбработка = Ложь;
    
    ЗначениеРасшифровки = ПолучитьЗначениеРасшифровки(Расшифровка);
    
    Если ТипЗнч(ЗначениеРасшифровки) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
        
        Форма = ЗначениеРасшифровки.ПолучитьФорму("ФормаДокумента");
        Форма.Открыть();
        Форма.Активизировать();
        
    Иначе
        
        СтандартнаяОбработка = Истина;
        
    КонецЕсли;
КонецПроцедуры

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

Но в итоге открывается стандартная расшифровка, при двойном нажатии на ячейку, так как вовыдимой ссылки документа на форме у меня нет. Можно ли получить как-то значение строки? Чтобы достать оттуда ссылку документа, например.
7 bootini
 
29.09.15
10:16
8 zhig75
 
29.09.15
10:22
А жмакая по ссылке в отчете, что ничего не открывается?
9 t2013
 
29.09.15
10:28
+ (5) можешь выбрать ссылку, а в выражении представления написать, например ссылка.номер, получится что ты будешь кликать по номеру, и у тебя док открываться будет
10 Nicholas_
NullaM
 
29.09.15
11:14
Спасибо (9) , сделал как ты сказал, кликаю по полю, а открывается поступление. Всем спасибо за помощь и информацию!
2 + 2 = 3.9999999999999999999999999999999...