|
Вопрос по управляемым формам |
☑ |
0
espanol
13.09.12
✎
10:26
|
В управляемой форме есть ввод документа Счета, на основание.
При это вводе возникает ошибка:
{Документ.СчетНаОплатуЗаАвтомобили.МодульОбъекта(487,24)}: Процедура или функция с указанным именем не определена (орПривестиМакетПечатнойФормы)
ОбластьШапкаТаблицы = <<?>>орПривестиМакетПечатнойФормы(ЭтотОбъект,Макет);
Тут идет обращение к процедуре:
Функция ПечатьСчетНаОплатуЗаАвтомобили(ТабДокумент) Экспорт
Макет = ПолучитьМакет("СчетНаОплатуЗаАвтомобили");
//для начала настроим макет
ОбластьШапкаТаблицы = орПривестиМакетПечатнойФормы(ЭтотОбъект,Макет);
но орПривестиМакетПечатнойФормы - реально существует.
В чем проблема?
|
|
1
SalavatUlaev
13.09.12
✎
10:29
|
Приведи код, в котором ошибка, а не просто функцию, фиг знает где она у тебя описана
|
|
2
ДенисЧ
13.09.12
✎
10:29
|
&НаСервере?
|
|
3
SalavatUlaev
13.09.12
✎
10:30
|
т.е. ругается на строку 487 вот ее и лучше рядом с ней покажи
|
|
4
SalavatUlaev
13.09.12
✎
10:30
|
В каком модуле она эта строка
|
|
5
SalavatUlaev
13.09.12
✎
10:32
|
В модуле объекта у тебя идет обращение к функции, которая в модуле управляемой формы написана, так ?
|
|
6
GROOVY
13.09.12
✎
10:33
|
Общий модуль? Выполняется на клиенте.
|
|
7
ChAlex
13.09.12
✎
10:34
|
(0) - все просто: не верное определение компиляции или вызовов функция (доступность на клиенте и/или сервере)
|
|
8
GROOVY
13.09.12
✎
10:36
|
(7) Ошибка в модуле объекта. В модуле объекта не используются директивы компиляции.
|
|
9
espanol
13.09.12
✎
10:44
|
(2)
&НаКлиенте
Процедура СоздатьСчет()
Форма = ПолучитьФорму("Документ.СчетНаОплатуЗаАвтомобили.Форма.ФормаДокументаУправляемая", Новый Структура("Основание", Объект.Ссылка), ЭтаФорма);
Форма.Объект.ХозОперация = ПредопределенноеЗначение("Справочник.ХозОперации.СчетНаОплатуЗаАвтомобили");
Форма.Объект.ДокументОснование = Объект.Ссылка;
Форма.Объект.Контрагент = Объект.Контрагент;
Форма.Объект.Заказчик = Объект.Заказчик;
Форма.Объект.ДоговорВзаиморасчетов = Объект.ДоговорВзаиморасчетов;
Форма.Объект.СуммаСкидкиНаценки = Объект.Товары.Итог("СуммаСкидки");
Форма.Открыть();
КонецПроцедуры
(8)
Я поставил в модуле объекта
#Если Клиент Тогда
Функция ПечатьСчетНаОплатуЗаАвтомобили(ТабДокумент) Экспорт
#КонецЕсли
И ошибка пропала.
|
|
10
ChAlex
13.09.12
✎
13:39
|
(8) - но в модуле объекта вызывается процедура общего модуля, и если общий модуль компилируется на клиенте (а не не сервере) - то его методы недоступны и кричать об ошибке будет. А в тонком клиенте модули объекта выполняются на сервере и естественно вызов клиентских методов недопускается
(9) Вообще-то тогда нужно бы #Если ТолстыйКлиентОбычноеПриложение Тогда
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший