Имя: Пароль:
1C
1С v8
Вызов функции из модуля объекта в модуле формы. Обычное приложение.
,
0 ahmato
 
12.12.14
17:08
Доброго вечера!

Собственно говоря вопрос уже в заголовке. Не могу порешать вопросик, как это делается УФ знаю и делал, а тут затмение. Помогите люди добрые, домой оченяма хоцэтся :((
1 ahmato
 
12.12.14
17:09
функция экспортная
2 DexterMorgan
 
12.12.14
17:10
берешь объект и вызываешь функцию, в чем проблема?
3 ahmato
 
12.12.14
17:10
по типу ЭтотОбъект.печать(); ?
4 Лефмихалыч
 
12.12.14
17:11
просто так берешь и вызываешь без никаких лишних действий, но (1) должна быть
5 DexterMorgan
 
12.12.14
17:11
ну смотря в какой ты форме)
6 palladyi
 
12.12.14
17:11
(3) просто Печать()
7 Лефмихалыч
 
12.12.14
17:12
(3) ты только не пробуй ни когда так делать, а вместо этого продолжай писать на форуме - так ты домой точно не уйдешь
8 palladyi
 
12.12.14
17:12
+ (6) если в форме нет такой функции
если есть, то да ЭтотОбъект.Печать()
9 DexterMorgan
 
12.12.14
17:12
(5) + в смысле может у тебя форма произвольная и тд
10 DexterMorgan
 
12.12.14
17:13
"Не могу порешать вопросик, как это делается УФ знаю и делал, а тут затмение"

вот оно новое поколение, воспитанное на УФ )))
11 ahmato
 
12.12.14
17:14
(6) вот такая вот ошибка , если просто печать();

Процедура или функция с указанным именем не определена (Печать)
<<?>>Печать(); (Проверка: Толстый клиент (обычное приложение))
12 hhhh
 
12.12.14
17:16
(11) за вызов функции из модуля объекта теперь программистам обрубают руки по локоть. Пиши такие функции в модуль менеджера.
13 ahmato
 
12.12.14
17:16
(8) такая же песня с ЭтотОбъект.Печать()
Метод объекта не обнаружен (Печать)
ЭтотОбъект.Печать();
14 ahmato
 
12.12.14
17:17
(12) ааааа...вот значит как...))) щаз попробую
15 hhhh
 
12.12.14
17:19
(14) но вообще-то

РеквизитФормыВЗначение("Объект").Печать();
16 palladyi
 
12.12.14
17:20
(14) а ты в модуле у функции "Экспорт" написал?
17 regniws
 
12.12.14
17:21
(15) и после в обратку не забывать
18 ahmato
 
12.12.14
17:23
(15) РеквизитФормыВЗначение - енто для УФ, но никак для обычного приложения.
(16) конэчно.
19 Лефмихалыч
 
12.12.14
17:26
(18) значит либо объект не является основным реквизитом формы, либо продуй кэш конфигурации
20 palladyi
 
12.12.14
17:27
+ (19) либо объект не тот (всякое по запарке бывает в пятницу вечером)
21 hhhh
 
12.12.14
17:27
(18) а блин, я для уф написал
22 palladyi
 
12.12.14
17:28
попробуй через ссылку
23 DexterMorgan
 
12.12.14
17:33
(12) А почему теперь? Что раньше вместо модуля менеджера нельзя было вызвать общий модуль и передать туда ссылку для допустим печати?
24 palladyi
 
12.12.14
17:35
ahmato, через ссылку пробовал? Мы тоже домой хотим)
25 Сергиус
 
12.12.14
17:37
(23)Если через модуль менеджера, то при вызове функции из него, объект не грузится в память. А если через модуль объекта, то тогда приходится весь объект "забирать".

P.s. А теперь потому что модуль менеджера не так давно появился насколько я помню.
26 hhhh
 
12.12.14
17:37
(23) потому что при получении объекта документа куча действий происходит. ПолучитьОбъект() - это такая дорогостоящая фигня. А для печати обычно она не нужна, получается лишнее движение, там ведь просто запрос и заполнение табличного документа.
27 ahmato
 
12.12.14
17:38
(22) (23)  поступил проще, я перенес функцию в модуль документа, чо я зациклился что эта функция обязательно должна быть в модуле объекта, ХЗ. Короче все заработало, но вопрос остался открытым
28 DexterMorgan
 
12.12.14
17:39
(26) Перечитай (23) еще раз.
29 DexterMorgan
 
12.12.14
17:39
(26) И спасибо я в курсе, что происходит при получении объекта
30 palladyi
 
12.12.14
17:40
(27) погодь, модуль документа - это модуль формы ты так называешь?
31 ahmato
 
12.12.14
17:42
(30) ))))) тип того, пятница....вечерело...мысли сбившись в кучу, нервно ждали конца рабочего дня....
32 palladyi
 
12.12.14
17:43
(31) =))))
33 hhhh
 
12.12.14
17:47
(28) ну да вообще-то. Получается плюс, то что разложили по полочкам эти все печати, если сейчас посмотреть, что они сделали с общими модулями, там же их десятки тысяч, настоящая помойка. Ну и из общих команд легко вызывать по имени документа именно свою печать. НО это наверно и в общих модулях можно было извратиться.
34 ahmato
 
12.12.14
17:48
Да, всем спасибо и хороших выходных!)
35 DexterMorgan
 
12.12.14
17:51
(33) В чем разница?
36 DexterMorgan
 
12.12.14
17:53
(33) Мы сейчас говорим не про типовые, а доработанные печатные формы. Те при появлении модуля менеджера - все руки по локоть, как же производительность страдает. А без модуля менеджера - "ну производительность не так важна, ведь бардак в общих модулях.."
37 Classic
 
12.12.14
17:54
(35)
Менеджер круче общего модуля :)
38 Гёдза
 
12.12.14
17:55
(25) в форме УЖЕ загружен объект. так шта накладных расходов нет
39 DexterMorgan
 
12.12.14
17:55
(37) те же яйца =)
40 ahmato
 
12.12.14
17:55
а решение оказалось куда проще, чем подумалось бы: Документы.ХХХХХХ.печать();
Вот что значит отпустить проблему :)))
41 DexterMorgan
 
12.12.14
17:57
(40) Я тебе советую ты разберись что такое модуль формы, объекта и менеджера и чем они отличаются, а то стыдно все-таки
42 palladyi
 
12.12.14
17:58
(40) да, это менеджер походу
43 ahmato
 
12.12.14
18:05
(41) Допустим, я знаю эту разницу. Но данная ситуация, рабочий момент. Кстати, эти знания и помогли найти ответ. И предлагаю вспомнить прекрасные слова: не суди да несудим будешь.