Имя: Пароль:
1C
1С v8
Из модуля упр. формы одного документы вызвать процедуру в модуле другого документа на ОФ
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) Все можно.

Оказалось что часть процедур, в т.ч. и "Печать" в модуле документа Реализации была внутри условия:

#Если Клиент Тогда
#КонецЕсли