Имя: Пароль:
1C
1С v8
УФ Как из модуля команды вызвать процедуру модуля объекта?
, ,
0 Domovoi
 
05.06.15
13:46
Есть Справочник ДоговораКонтрагентов. В него добавлена команда ПечатьДоговора. В Модуле объекта есть процедару ПечатьДоговора() экспортная. Наша команда выведена на форму элемента, через стандартную кнопку печать. Как сделать, чтоб при нажатии на наш вариант печати, срабатывала процедура ПечатьДоговора() ?
1 ДенисЧ
 
05.06.15
13:47
переходи на сервер, получай объект, зови процедуру
2 butterbean
 
05.06.15
13:48
такие процедуры пора бы уже писать в модуле менеджера
3 Fish
 
05.06.15
13:51
(2) +100500. Именно так.
4 Domovoi
 
05.06.15
13:51
(1)В модуле команды пишу следующее.

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
  ПечатьДоговора();    
    
КонецПроцедуры

&НаСервере
Процедура ПечатьДоговора()
    
    СправочникОбъект = РеквизитФормыВЗначение("Объект");
        
КонецПроцедуры

Пытаюсь получить объект, но ошибка. Как получается объект?
5 KrabCore
 
05.06.15
13:52
МОйОбъект = РеквизитФормыВЗначение("Объект");
МОйОбъект.МояЭкспортнаяПроцедура();
ЗначениеВРеквизитФормы(МОйОбъект,"Объект");
6 Domovoi
 
05.06.15
13:52
(2)Вы про процедуру ПечатьДоговора() (процедура в модуле объекта)?
7 Domovoi
 
05.06.15
14:01
В типовой пощелкал несколько модулей команд. Там сразу обращаются в общий модуль. Но мне хотелось бы по старинке чтоб процедуры относящиеся к объекту были в объекте, а не выкладывать все в общие модули.
8 butterbean
 
05.06.15
14:03
(6) да
9 Domovoi
 
05.06.15
14:03
+(7)Еще нашел варианты, открытия формы и перепрыгивать туда, но мне форм никаких не надо открывать.
10 ЧеловекДуши
 
05.06.15
14:04
(4) В команду передается Массив Объектов, вернее ссылок.
Так что ты теряешься, у тебя отладчик украли? :)

И да, забудь про "РеквизитФормыВЗначение("Объект");", для модуля команд ровном счета нечего не значит :)
11 ЧеловекДуши
 
05.06.15
14:05
+(10) Если даже вызываешь команду из Объекта, элемента справочника. То все ровно в Команду будет передан Массив из одного элемента. Т.е. из текущего в вашем случае
12 ЧеловекДуши
 
05.06.15
14:06
+(10) Элемент справочника должен быть записан.
13 Drac0
 
05.06.15
14:15
(0) Нельзя в модуле команды юзать директиву &НаСервере, не видит она ее. Делай вызов общего модуля.
14 butterbean
 
05.06.15
14:16
(13) пойду переписывать свои 100500 команд
15 Drac0
 
05.06.15
14:20
(14) Да, чет меня заклинило нехило. Можешь не переписывать :)
16 Domovoi
 
05.06.15
14:34
(8)Если я ее запилю в модуль менеджера, то как я ее вызову из другого объекта(некоего документа) имея к примеру ссылку на элемент моего справочника?
17 scanduta
 
05.06.15
14:38
(16) Документы.ОперацияБух.ИмяВызываемогоМетода
18 Domovoi
 
05.06.15
14:51
(17)В смысле? Из документа вы сможете обратиться к процедуре написанной в модуле менеджера справочника имя ссылку на элемент этого справочника?
19 Domovoi
 
05.06.15
14:53
имя= имея
20 Fish
 
05.06.15
14:55
(18) Естественно. Посмотри, как сделано в типовых: там все процедуры печати расположены в модуле менеджера, что никак не мешает печатать документы по ссылке.
21 Domovoi
 
05.06.15
15:07
(20)Поизучаю.

(10)ссылка есть. Как по ней объект получить? Или как запустить мою процедуру(будь она в модуле объекта или менеджера)
22 scanduta
 
05.06.15
15:08
(21) Чтобы обратиться к модуля менеджера ссылка не нужна
23 scanduta
 
05.06.15
15:08
Эскпорт только не забудь добавить
24 Fish
 
05.06.15
15:12
(22) Для вызова самой процедуры - не нудна, но для печати формы документа или элемента справочника ссылка всё-таки понадобится :)
25 scanduta
 
05.06.15
15:17
(24) это да )
26 Domovoi
 
05.06.15
15:17
(22)В модуле менеджера сделал процедуру ПечатьДоговора() экспорт.

В модуле команды пробую

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
  ПечатьДоговораИзМодуля();    
    
КонецПроцедуры

И так пробую
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
  ПечатьДоговора();    
    
КонецПроцедуры

&НаСервере
Процедура ПечатьДоговора()
    
    ПечатьДоговораИзМодуля();
        
КонецПроцедуры

ни то, ни то не проходит - ошибка.
27 DirecTwiX
 
05.06.15
15:35
...
Справочники.Договоры.ПечатьДоговора(ПараметрыКоманды.Ссылка);
28 Domovoi
 
05.06.15
15:54
Всем спс. Все просто оказывается. Я в справочниках запутался и не те процедуры печати вызывал)
29 Domovoi
 
05.06.15
16:09
Код через раз отлаживается - вот еще в чем проблема была, возможно кэш надо почистить, хотя с базой работаю только пару дней.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан