Имя: Пароль:
1C
1С v8
Вопрос по управляемым формам
, ,
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) Вообще-то тогда нужно бы #Если ТолстыйКлиентОбычноеПриложение Тогда