Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Из модуля упр. формы одного документы вызвать процедуру в модуле другого документа на ОФ

Из модуля упр. формы одного документы вызвать процедуру в модуле другого документа на ОФ
Я
   nemoxp
 
22.12.21 - 19:59
Есть доработанная УТ 10.3.
Есть стандартный документ "РеализацияТоваровУслуг".
У него есть модуль объекта и экспортная процедура "Печать".

Есть нестандартный Документ2 с управляемыми формами.
У документа есть реквизит "Реализация", ссылка на документ "РеализацияТоваровУслуг".
На форме документа кнопка по которой нужно напечатать печатную форму по указанной реализации в реквизите "Реализация", вызвав процедуру "Печать" из модуля объекта документа "РеализацияТоваровУслуг".

Написал:

&НаСервере
Процедура ПечатьРеализацииНаСервере()
Док = Объект.Реализация.ПолучитьОбъект();
Док.Печать();
КонецПроцедуры

&НаКлиенте
Процедура КомандаНажатияКнопкиПечать(Команда)
ПечатьРеализацииНаСервере();
КонецПроцедуры

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

Имхо, ты мешаешь вместе идеологию тонкого и толстого клиента

&НаСервере
Процедура ПечатьРеализацииНаСервере()
Док = Объект.Реализация.ПолучитьОбъект();
Док.Печать();
КонецПроцедуры

Вероятно в Док.Печать() "где-то внутри" делается 
Таб.Показать()

Таким образом, ты пытаешься сделать а-ля

&НаСервере
Процедура ПечатьРеализацииНаСервере()
   таб = Новый ТабличныйДокумент;
   таб.Показать();
КонецПроцедуры

а так нелья 

P.S.
Это гадание на хрустальном шаре, но имхо все так и есть
   nemoxp
 
13 - 23.12.21 - 12:29
(12) Все можно.

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

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

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.