Имя: Пароль:
1C
1С v8
ПолучитьМакет внешняя обработка
0 popoff17
 
28.04.12
07:12
Добрый день!
Не получается получить и вывести макет внешней обработки. Поискал по форуму похожие темы - не получилось заставить работать.
вот такая процедура:
Процедура ПечатьБольничного(Элемент)
Макет = ЭтотОбъект.ПолучитьМакет("Макет");
ОбластьМакетаПечать = Макет.ПолучитьОбласть("Печать");
ДокументРезультат = Новый ТабличныйДокумент;    
ДокументРезультат.Вывести(ОбластьМакетаПечать);    
ДокументРезультат.Показать();
КонецПроцедуры

Ошибка:
{Форма.ФормаОтчета.Форма(46,9)}: Процедура или функция с указанным именем не определена (ПолучитьМакет)
Макет = <<?>>ПолучитьМакет("Макет");

Пробовал через объект - тоже не вышло. как сделать?
Заранее спасибо!
1 Wobland
 
28.04.12
07:17
где получаешь? в тонком, поди?
2 MaratM
 
28.04.12
07:22
Попробуй получить макет на сервере.
Вместо

Макет = ЭтотОбъект.ПолучитьМакет("Макет");

попробуй так

Макет = ПолучитьМойМакет();

&НаСервере
Функция ПолучитьМойМакет()
   Возврат РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
КонецФункции
3 popoff17
 
28.04.12
07:26
(1) толстый
(2) "топ 10 тупых вопросов" - в конфигурации придется что то править?
4 Wobland
 
28.04.12
07:30
(3) нет
5 MaratM
 
28.04.12
07:33
Да придется добавить процедуру.
Это похоже на поведение тонкого клиента в управляемом приложении.
Может тебе поможет, смена режима запуска?
6 Wobland
 
28.04.12
07:35
(5) у него внешний отчёт
7 popoff17
 
28.04.12
07:39
(6)(5)мне в конфу ничего нельзя вносить просто(
Еще раз опишу как отчет работает:

В форме, в поле выбираем документ больничного. После выбора заполняются поля формы. После чего жмем "печать" и значения из полей ввода должны перенестись на макет. Вроде бы все просто, но как то непонятно, почему такая ошибка...

Вот файл, если можете посмотреть:
http://narod.ru/disk/47481739001.bcc6c68d01ea2c6a7f0b973f93c3394e/печать.erf.html
8 popoff17
 
28.04.12
07:40
Может это из за того, что перед выбором макета я получаю данные из документа? Что то такое читал раньше...
9 Wobland
 
28.04.12
07:45
(7) Синтаксических ошибок не обнаружено!
(8)    Макет = ПолучитьМакет("Макет");
   ОбластьМакетаПечать = Макет.ПолучитьОбласть("Печать");
   ДокументРезультат = Новый ТабличныйДокумент;    
   ДокументРезультат.Вывести(ОбластьМакетаПечать);    
   ДокументРезультат.Показать();
должно всё работать
10 Wobland
 
28.04.12
07:46
для тех, кто ленится качать: форма обычная
11 Wobland
 
28.04.12
07:50
а в целом это жестокий копрокод. смысла в отдельном отчёте не вижу вообще. разве что свой макет сделать и конфигурацию не ломать. но для этого нужен ровно один реквизит - ссылка на документ. оттуда уже тащить все нужные данные
12 popoff17
 
28.04.12
07:56
(11) что есть "копрокод"? ну собственно для этого и делаю чтоб конфу не ломать, да и самому подналовчиться.
(9) все равно ругается на макет. что в конфигураторе, при сохранении, что в самой программе, при открытии
13 Wobland
 
28.04.12
07:59
(12) у меня не ругается. копрокод - это вот это:
|ИЗ
|    РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних КАК ОтветственныеЛицаОрганизацийСрезПоследних
|ГДЕ
|    ОтветственныеЛицаОрганизацийСрезПоследних.Период <= &Дата";

Запрос.УстановитьПараметр("Дата", ТекущаяДата());


я долго ругаться могу...
14 popoff17
 
02.05.12
05:15
Сделал так: Полностью очистил весь код в отчете и просто написал
Процедура Моя(Элемент)
   Макет = ПолучитьМакет("Макет");
   ОбластьМакетаПечать = Макет.ПолучитьОбласть("Печать");
   ДокументРезультат = Новый ТабличныйДокумент;    
   ДокументРезультат.Вывести(ОбластьМакетаПечать);    
   ДокументРезультат.Показать();
КонецПроцедуры;

При открытии отчета все равно выходит ошибка, что процедура ПолучитьМакет не определена. Причем в конфигураторе, при сохранении, это окно сообщения висит секунды 2-3 потом само исчезает.
Что можно еще сделать, чтобы не было ошибки.
15 popoff17
 
02.05.12
05:16
Причем ведут себя так и пара других отчетов, которые ранее работали. Может с программой что-то?