Имя: Пароль:
1C
 
Внешний отчет 8.2 Почему не работает метод ПолучитьМакет?
0 Пендальф Серый
 
19.08.10
12:16
Добрый день. Во внешнем отчете есть макет. В модуле формы как мне его получить?
Макет = ПолучитьМакет("Макет");
не работает
1 lxs
 
19.08.10
12:20
Доступность:

Сервер, толстый клиент, внешнее соединение.
2 lxs
 
19.08.10
12:21
Пример:

МакетОбработки = ВнешОбработка.ПолучитьМакет("Шаблон");
3 lxs
 
19.08.10
12:22
Через объект обращайся.
4 5 Элемент
 
19.08.10
12:32
Потому что в 8.2 для обращения к свойствам основного реквизита требуется указать сам реквизит и через точку свойство.
В 8.1 можно было не указывать реквизит.
5 Пендальф Серый
 
19.08.10
12:35
Макет = ЭтотОбъект.ПолучитьМакет("Макет");
Так не работает
6 Defender aka LINN
 
19.08.10
12:38
Объект у формы и объект, у которого есть макеты - это 2 совершенно разных объекта.
7 Пендальф Серый
 
19.08.10
12:40
Ну натолкните на мысль, как написать-то?
8 H A D G E H O G s
 
19.08.10
12:41
ЭтотОбъект=РеквизитФормыВЗначение("Объект");
Макет = ЭтотОбъект.ПолучитьМакет("Макет");
Возврат Макет;
9 Пендальф Серый
 
19.08.10
13:06
РеквизитФормыВЗначение метод доступен только на сервере. А в одной процедуре в модуле формы хочется.
Мне то надо просто чтобы внешний отчет выводил некую простенькую табличку. Вот запнулся - не могу получить макет.
10 Пендальф Серый
 
19.08.10
13:15
Нет, форму на сервер не передать в параметре
11 H A D G E H O G s
 
19.08.10
13:24
(9) Макет нельзя получить на Клиенте.
12 Пендальф Серый
 
19.08.10
13:37
Ну перекинул на сервер и что? И ничего - тоже самое - нет таких методов.
В синтакс помощнике есть и ВнешнийОтчет и ЭтотОбъект, но у меня пишет нет таких переменных
13 H A D G E H O G s
 
19.08.10
13:43
&НаСервере
Функция ПолучитьМакетНаСервере()
   ЭтотОбъект=РеквизитФормыВЗначение("Объект");
   Макет = ЭтотОбъект.ПолучитьМакет("Макет");
   Возврат Макет;
КонецФункции

&НаКлиенте
Процедура Тест(Команда)
      Макет=ПолучитьМакетНаСервере();
КонецПроцедуры
14 Пендальф Серый
 
19.08.10
13:48
(13) вместо "Объект" поставил "Отчет" и взлетело! Ух ..., не всё потеряно :)
15 H A D G E H O G s
 
19.08.10
13:49
Ну да, промашка вышла..
16 Пендальф Серый
 
19.08.10
13:50
только одно непонятно: Зачем так усложнять жизнь??!!!! :)
17 H A D G E H O G s
 
19.08.10
13:52
(16) Как раз - все просто и понятно.
18 Dmitrii
 
гуру
19.08.10
13:58
(16) Усложнять жизнь - это делать как ты. Отказываться от СКД и принципиально лепить всё старыми методами. Вот это точно непонятно для чего.
19 Пендальф Серый
 
19.08.10
13:58
Ну согласись: Макет = ПолучитьМакет("Макет") всётки проще
20 H A D G E H O G s
 
19.08.10
14:00
(18) Не все СКД - одинаково полезны.
Это еще когда типовые доказали.

"Не все йогурты - одинаково полезны (надпись на могильном камне)".
21 Пендальф Серый
 
19.08.10
14:06
(18) мне надо табличку, где бы А*Б=С и А=А+С и в цикле N раз. Так что я запихну в СКД? Мне не нужно вообще обращаться к базе данных.
22 H A D G E H O G s
 
19.08.10
14:06
(21) Че за задача?
23 Пендальф Серый
 
19.08.10
14:08
Рассчитать суммы по кредиту: исходные данные Сумма кредита, количество месяцев, процентная ставка. Вывести в таблицу.
24 H A D G E H O G s
 
19.08.10
14:09
(23)
** разочарован
25 Пендальф Серый
 
19.08.10
14:13
(24) ну усё равно спасибо :)
26 hakz
 
31.08.10
12:04
(13)
можно смлео в книгу знаний
27 H A D G E H O G s
 
31.08.10
12:05
(26) Что за ветконекрофилизм?
28 hakz
 
31.08.10
12:16
(27)
вопрос есть

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

отчет не отображается ((
29 hakz
 
31.08.10
12:16
а...пародн)))) его же надо на клиент вернуть - все проблема снята)
30 Lesha1C
 
18.09.10
15:30
&НаСервере
Функция ПолучитьМакетНаСервере()
   ЭтотОбъект=РеквизитФормыВЗначение("объект");
   Макет = ЭтотОбъект.ПолучитьМакет("Макет");
   Возврат Макет;
КонецФункции

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

ВЫДАЕт ОШИБКУ, что не так?

{Форма.Форма.Форма(10)}: Ошибка при вызове метода контекста (РеквизитФормыВЗначение)
   ЭтотОбъект=РеквизитФормыВЗначение("объект");
по причине:
Недопустимое значение параметра (параметр номер '1')
31 H A D G E H O G s
 
18.09.10
17:02
ЭтотОбъект=РеквизитФормыВЗначение("Отчет");

P.S. Ветконекрофил?
32 Lesha1C
 
18.09.10
17:04
так тоже пробывал....все равно не работает....и тоже самое пишет...
33 H A D G E H O G s
 
18.09.10
17:09
Скинь ВнешнийОтчет на почту.
34 H A D G E H O G s
 
18.09.10
17:09
35 Lesha1C
 
22.09.10
10:54
H A D G E H O G s спасибо за помощь!
36 H A D G E H O G s
 
22.09.10
10:56
НЗЧТ.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс