Имя: Пароль:
1C
1С v8
Как получить макет в управляемом приложении?
,
0 kasazanov
 
13.02.14
10:11
Доброго времени суток!

Сделал внешнюю обработку в УПР приложении 1С 8.2

В обработке у меня есть кнопочка которая должна формировать печатную форму, подскажите как правильно это сделать в УП, ибо способ как обычном приложении не работает :( Макет лежит во внешней обработке.

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

&НаСервере
Процедура ПечатьРеестраСервер()

    
    
    Сообщить("123");
    ТабличныйДокумент = Новый ТабличныйДокумент;
    
    ТабличныйДокумент.Показать();
КонецПроцедуры
1 Cube
 
13.02.14
10:13
2 Yea-Yea
 
13.02.14
10:13
(1) кроссавчег!
3 lordmb
 
13.02.14
10:15
(0)
&НаСервере
Функция ПолучитьМакетНаСервере(ИмяМакета)
    
    ЭтотОбъект=РеквизитФормыВЗначение("Объект");
    
    Возврат ЭтотОбъект.ПолучитьМакет(ИмяМакета);
    
КонецФункции
4 kasazanov
 
13.02.14
10:15
Макет получается на клиенте или на сервере?
5 ДенисЧ
 
13.02.14
10:16
(4) Насревере
6 kasazanov
 
13.02.14
10:36
Процедура ПечатьРеестра(Команда)
    
    ПечатьРеестраСервер()
    
КонецПроцедуры

&НаСервере
Процедура ПечатьРеестраСервер()

    
    
    Сообщить("123");
    ТабличныйДокумент = Новый ТабличныйДокумент;
    
        Макет = ПолучитьМакетНаСервере();
        Заголовок = Макет.ПолучитьОбласть("Заголовок");
        ТабличныйДокумент.Вывести(Заголовок);
        
    ТабличныйДокумент.Показать();
КонецПроцедуры

Функция ПолучитьМакетНаСервере()
    
    ЭтотОбъект = РеквизитФормыВЗначение("Объект");
    
    Возврат ЭтотОбъект.ПолучитьМакет("ПечатьРеестра");
    
КонецФункции

Что я не так сделал ? ((
7 Wobland
 
13.02.14
10:37
двойной вызов сервера для перестраховки?
8 kasazanov
 
13.02.14
10:38
(7) просто для меня это все в первый раз, поэтому пока особо не разбираюсь нафиг вообще этот на клиенте и на сервере ))
9 Cube
 
13.02.14
10:41
(6) Кому на сервере надо показывать?
&НаСервере
Процедура ПечатьРеестраСервер()
    ТабличныйДокумент.Показать();
10 kasazanov
 
13.02.14
10:42
(9) а как его вывести на клиенте?
11 Wobland
 
13.02.14
10:46
(10) получить с сервера готовое, показать юзеру готовое
12 kasazanov
 
13.02.14
10:46
Сделал так

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

&НаСервере
Функция ПечатьРеестраСервер()

    
    
    Сообщить("123");
    ТабличныйДокумент = Новый ТабличныйДокумент;
    
        Макет = ПолучитьМакетНаСервере();
        Заголовок = Макет.ПолучитьОбласть("Заголовок");
        ТабличныйДокумент.Вывести(Заголовок);
        
    Возврат ТабличныйДокумент;
КонецФункции

&НаСервере
Функция ПолучитьМакетНаСервере()
    
    ЭтотОбъект = РеквизитФормыВЗначение("Объект");
    
    Возврат ЭтотОбъект.ПолучитьМакет("ПечатьРеестра");
    
КонецФункции

Выдает ошибку

{Форма.Форма.Форма(92)}: Ошибка при вызове метода контекста (Вывести)
        ТабличныйДокумент.Вывести(Заголовок);
по причине:
Несоответствие типов (параметр номер '1')
13 mr_K
 
13.02.14
10:48
ТабличныйДокумент.Вывести(Заголовок) - ковычки забыл вокруг Заголовок
14 Wobland
 
13.02.14
10:49
(13) вот прямо так - через О? вот прямо так строка нужна?
15 kasazanov
 
13.02.14
10:50
(13) не помогло, то же самое пишет. (в обычном ковычек небыло)
16 lordmb
 
13.02.14
10:51
переменную Заголовок назови другим именем, например тЗаголовок
17 kasazanov
 
13.02.14
10:52
(16) Да! оно самое, спс )