|
УФ Как из модуля команды вызвать процедуру модуля объекта? | ☑ | ||
---|---|---|---|---|
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
|
Код через раз отлаживается - вот еще в чем проблема была, возможно кэш надо почистить, хотя с базой работаю только пару дней.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |