Имя: Пароль:
1C
1С v8
Как открыть ссылку из поля табличного документа?
,
0 СэдКС
 
25.07.13
09:03
Здравствуйте. Сделала отчет на СКД с расшифровкой, которую вывожу на поле табличного документа. Название документа-регистратора выходит, но мне нужна возможность открытия этого документа.
В запросе вынесено поле регистратор, в параметрах расшифровки он же. Но открывает в новом окне только заголовок, как на скрине. Много чего уже перепробовала.
Подскажите пожалуйста, кто имел с этим дело
http://rghost.ru/47651577/image.png
1 zippygrill
 
25.07.13
09:06
а я думал это никак
2 cw014
 
25.07.13
09:07
Положи картинку на другой хостинг плиз
3 Галахад
 
гуру
25.07.13
09:08
Помести поле табличного документа на форму.
4 СэдКС
 
25.07.13
09:11
5 Галахад
 
гуру
25.07.13
09:13
(3) По картинке, вроде отдельно.
6 СэдКС
 
25.07.13
09:17
(5) было бы отлично, если бы открывался не табличный док., а новое окно отчета, но у меня не получается так сделать.
Вы же имели ввиду это?
7 СэдКС
 
25.07.13
09:20
(1) В инете читала, что у других получается открытие из таб. поля, а у меня нет
8 СэдКС
 
25.07.13
09:24
Проверила тип поля Регистратор. Всё норм, тип ДокументСсылка.ЗаявкаНаЗакуп
9 Fragster
 
модератор
25.07.13
09:26
обработка расшифровки есть?
10 СэдКС
 
25.07.13
09:29
(9)
Функция ПолучитьЗначениеПредыдущейОбласти(ИмяОбласти)
    
    Возврат ЭлементыФормы.Результат.ПолучитьОбласть("R" + Сред(ИмяОбласти,2,Найти(ИмяОбласти,"C")-2) + "C3").ТекущаяОбласть.Текст;
    
КонецФункции

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    
    Если ДанныеРасшифровки.Элементы.Получить(Расшифровка).ПолучитьПоля().Найти("ВЗаказе") <> Неопределено Тогда
    
        СтандартнаяОбработка = Ложь;
        
        // Создадим, заполним и покажем в новом табличном документе:
        ПечатныйДокумент = Новый ТабличныйДокумент;
        
        Макет = ПолучитьМакет("Макет");
        
        //выведем шапку
        ОбластьМакетаШапка    = Макет.ПолучитьОбласть("Шапка");
        ПечатныйДокумент.Вывести(ОбластьМакетаШапка);
        
        // выведем табличную часть
        ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
        Запрос = Новый Запрос;
        Запрос.Текст = ВыборНомеклатуры();
        Запрос.УстановитьПараметр("Номенклатура", ПолучитьЗначениеПредыдущейОбласти(Элемент.ТекущаяОбласть.Имя));// нужно получить значение соседней области, чтобы расшифровать
        СписокЭлементов = КомпоновщикНастроек.Настройки.Отбор.Элементы;
        Для каждого Элемент из СписокЭлементов Цикл
        Если Элемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Склад") Тогда
          Склад = Элемент.ПравоеЗначение;
        Запрос.УстановитьПараметр("Склад", Склад);
    КонецЕсли;
    
        КонецЦикла;
        Результат = Запрос.Выполнить();
        Выборка = Результат.Выбрать();
        Пока Выборка.Следующий() Цикл
                ОбластьМакетаСтрока.Параметры.Номенклатура = Выборка.Номенклатура;
                ОбластьМакетаСтрока.Параметры.Регистратор = Выборка.Регистратор;
                ОбластьМакетаСтрока.Параметры.Количество = Выборка.Количество;
                ПечатныйДокумент.Вывести(ОбластьМакетаСтрока);
        КонецЦикла;
        
        ПечатныйДокумент.Показать();
    
    КонецЕсли;
    
КонецПроцедуры
11 Галахад
 
гуру
25.07.13
09:29
(6) Да.
12 Fragster
 
модератор
25.07.13
09:31
(10) в макете параметр расшифровки еще укажи у ячейки
13 СэдКС
 
25.07.13
09:33
(12) Да, указала Регистратор, как и в параметре, но ничего не дает
14 cw014
 
25.07.13
09:36
Запрос.Текст = ВыборНомеклатуры();

Запрос в студию
15 СэдКС
 
25.07.13
09:37
(14)
Функция ВыборНомеклатуры()

Возврат "ВЫБРАТЬ
         |    ЗаявкиНаЗакупОстаткиИОбороты.Номенклатура.Наименование КАК Номенклатура,
         |    ЗаявкиНаЗакупОстаткиИОбороты.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
         |    ЗаявкиНаЗакупОстаткиИОбороты.КоличествоКонечныйОстаток КАК Количество,
         |    ЗаявкиНаЗакупОстаткиИОбороты.Регистратор КАК Регистратор,
         |    ЗаявкиНаЗакупОстаткиИОбороты.Склад
         |ИЗ
         |    РегистрНакопления.ЗаявкиНаЗакуп.ОстаткиИОбороты(, , Регистратор, , ) КАК ЗаявкиНаЗакупОстаткиИОбороты
         |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦехПоНоменклатуре КАК ЦехПоНоменклатуре
         |        ПО ЗаявкиНаЗакупОстаткиИОбороты.Номенклатура = ЦехПоНоменклатуре.Номенклатура
         |ГДЕ
         |    ЗаявкиНаЗакупОстаткиИОбороты.Номенклатура.Наименование = &Номенклатура
         |    И ЗаявкиНаЗакупОстаткиИОбороты.Склад = &Склад
         |
         |СГРУППИРОВАТЬ ПО
         |    ЗаявкиНаЗакупОстаткиИОбороты.Номенклатура.БазоваяЕдиницаИзмерения,
         |    ЗаявкиНаЗакупОстаткиИОбороты.Склад,
         |    ЗаявкиНаЗакупОстаткиИОбороты.Номенклатура.Наименование,
         |    ЗаявкиНаЗакупОстаткиИОбороты.КоличествоКонечныйОстаток,
         |    ЗаявкиНаЗакупОстаткиИОбороты.Регистратор";
        
КонецФункции // ВыборНомеклатуры()
16 cw014
 
25.07.13
09:38
ОбластьМакетаСтрока - свойства его покажи
17 cw014
 
25.07.13
09:38
Вернее желательно палитру свойств
18 СэдКС
 
25.07.13
09:43
19 СэдКС
 
25.07.13
09:48
+ (18) выставление у свойств Гиперссылка не влияет
20 Галахад
 
гуру
25.07.13
09:53
Наверное проблема тута:

    ПечатныйДокумент.ТолькоПросмотр = Истина;
    ПечатныйДокумент.Показать();
21 cw014
 
25.07.13
09:55
(20) Вот один из вариантов
(19) А ячейку "Регистратор" еще покеж???
22 СэдКС
 
25.07.13
09:58
(20) ТолькоПросмотр должен быть истина, иначе в таб.полях появляется возможность редактирования полей
Выбрать другую процедуру вместо показать? я попробую
23 Галахад
 
гуру
25.07.13
10:00
(22) Гм. Чего? Я предложил заменить это:
ПечатныйДокумент.Показать();
на это:
ПечатныйДокумент.ТолькоПросмотр = Истина;
ПечатныйДокумент.Показать();
24 СэдКС
 
25.07.13
10:03
(21) два варианта изменения ячейки
http://radikale.ru/data/upload/fb1a9/4fa6c/564dd9446f.jpg
25 СэдКС
 
25.07.13
10:07
(23) Ппц, какой ужас. Строка ПечатныйДокумент.ТолькоПросмотр = Истина; помогла! Спасибо большое!