|
|
Из модуля упр. формы одного документы вызвать процедуру в модуле другого документа на ОФ |
☑ |
|
0
nemoxp
22.12.21
✎
19:59
|
Есть доработанная УТ 10.3.
Есть стандартный документ "РеализацияТоваровУслуг".
У него есть модуль объекта и экспортная процедура "Печать".
Есть нестандартный Документ2 с управляемыми формами.
У документа есть реквизит "Реализация", ссылка на документ "РеализацияТоваровУслуг".
На форме документа кнопка по которой нужно напечатать печатную форму по указанной реализации в реквизите "Реализация", вызвав процедуру "Печать" из модуля объекта документа "РеализацияТоваровУслуг".
Написал:
&НаСервере
Процедура ПечатьРеализацииНаСервере()
Док = Объект.Реализация.ПолучитьОбъект();
Док.Печать();
КонецПроцедуры
&НаКлиенте
Процедура КомандаНажатияКнопкиПечать(Команда)
ПечатьРеализацииНаСервере();
КонецПроцедуры
Ругается что "Метод объекта не обнаружен (Печать)".
Процедура "Печать определяется, по F12 переходит в модуль объекта реализации... Подскажите плиз что не так делаю.
|
|
|
1
pechkin
22.12.21
✎
20:17
|
а переменная док какого типа получается? может уже занята?
|
|
|
2
nemoxp
22.12.21
✎
20:23
|
(1) Все как надо: ДокументОбъект.РеализацияТоваровУслуг
|
|
|
3
Сергиус
22.12.21
✎
20:43
|
(0)А метод Печать точно есть? Там же как минимум параметры должны быть какие то.
|
|
|
4
acht
22.12.21
✎
20:58
|
(0) ПолучитьОбъект от битой ссылки возвращает неопределено, например
|
|
|
5
nemoxp
22.12.21
✎
21:52
|
И метод "печать" точно есть и "Экспорт" указано и ссылка рабочая... мистика...
|
|
|
6
Сергиус
23.12.21
✎
03:51
|
(5)Отладчиком проходил? По идее должен выдать "Недостаточно параметров", если процедура Печать типовая. Какие настройки совместимости у конфы? Ну и кэш бы почистить для проверки.
|
|
|
7
hhhh
23.12.21
✎
04:54
|
всё-таки похоже тут дело в клиенте и сервере. Процедура Печать же на клиенте. А вызывают с сервера.
|
|
|
8
DEVIce
23.12.21
✎
06:09
|
Вынести метод в модуль менеджера и не лохматить бабушку.
|
|
|
9
eddy_n
23.12.21
✎
10:31
|
Чтобы получить доступ к процедура из модуля формы к процедуре модуля объекта надо не ПолучитьОбъект() использовать, а РеквизитФормыВЗначение
|
|
|
10
acht
23.12.21
✎
10:55
|
(9) Напиши, пожалуйста, пример для случая, обсуждаемого в этой теме.
|
|
|
11
ptiz
23.12.21
✎
11:02
|
(5) И процедура Печать(), небось, обрамлена директивами #Если Клиент Тогда
|
|
|
12
Мультук
гуру
23.12.21
✎
11:02
|
(0)
Имхо, ты мешаешь вместе идеологию тонкого и толстого клиента
&НаСервере
Процедура ПечатьРеализацииНаСервере()
Док = Объект.Реализация.ПолучитьОбъект();
Док.Печать();
КонецПроцедуры
Вероятно в Док.Печать() "где-то внутри" делается
Таб.Показать()
Таким образом, ты пытаешься сделать а-ля
&НаСервере
Процедура ПечатьРеализацииНаСервере()
таб = Новый ТабличныйДокумент;
таб.Показать();
КонецПроцедуры
а так нелья
P.S.
Это гадание на хрустальном шаре, но имхо все так и есть
|
|
|
13
nemoxp
23.12.21
✎
12:29
|
(12) Все можно.
Оказалось что часть процедур, в т.ч. и "Печать" в модуле документа Реализации была внутри условия:
#Если Клиент Тогда
#КонецЕсли
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший