Имя: Пароль:
1C
 
8.2 Как в модуле команды документа обратиться к процедуре модуля документа?
0 blutang
 
07.07.11
13:32
Вот и весь вопрос.
1 RomaH
 
naïve
07.07.11
14:37
&наСервере
....
и хоть заобращайся
2 Asmody
 
07.07.11
14:42
(1)+ через точку от объекта
3 Defender aka LINN
 
07.07.11
14:44
Процедуру вынести в модуль менеджера и хоть заобращайся.
4 blutang
 
07.07.11
15:03
(2) Что надо писать перед точкой? Все найденные здесь примеры относятся к форме, а у меня команда...
(3) Т.е. в модуле документа не получится? Может тогда лучше сразу в общий модуль вынести?
5 5 Элемент
 
07.07.11
15:11
В модуле команды нужно создать объект и обратиться
6 Defender aka LINN
 
07.07.11
15:12
(4) Модуль менеджера - это, считай, общий модуль и есть, только привязанный к документу, а не к конфигурации в целом. Если тебе нужна универсальная процедура - кладешь ее в ОМ. Если процедура нужна только одному документу - кладешь ее в модуль менеджера.
7 acsent
 
07.07.11
15:12
В модуле команды не отбъекта, а только ссылка
8 Asmody
 
07.07.11
15:13
(4) перед точкой должна быть переменная типа ЧтоТоОбъект. А топике, надеюсь, правильно написано: команда документа, а не команда формы?
9 5 Элемент
 
07.07.11
15:17
А вообще делай как сказал (3)
10 blutang
 
07.07.11
15:27
(8) Именно команда документа.
(9) Вообще-то делать как (3) это муторно: вынос одной процедуры тянет вынос еще нескольких... Стало быть (5) провернуть точно не получится?
11 Defender aka LINN
 
07.07.11
15:30
(10) Зато это будет правильно. В типовых даже процедуры формирования данных для проведения в модуль менеджера вынесены.
12 blutang
 
07.07.11
15:35
(11) Ок. Спасибо! Думал выносом хоть в 8.2 не придётся заниматься... :)))

А всё таки в модуле команды документа получить объект этого документа принципиально нельзя что-ли?
13 Asmody
 
07.07.11
15:45
(12) если в команду передается ссылка или несколько ссылок, то ПолучитьОбъект() обычно не составляет труда
14 blutang
 
07.07.11
15:56
(13) Да. Так получилось!

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

&НаСервере
Процедура НаСервере1(ПараметрКоманды)
Объект=ПараметрКоманды.ПолучитьОбъект();
Объект.ПроцедураМодуляДокумента();
КонецПроцедуры
15 5 Элемент
 
07.07.11
16:03
ужас, руки оторвать
16 blutang
 
07.07.11
16:06
(15) обоснуй что-ли... :)
17 Defender aka LINN
 
07.07.11
16:07
Совратили таки человека на Темную Сторону...
18 blutang
 
07.07.11
16:10
(17) тут скорее не заманили на Светлую
19 regniws
 
07.07.11
16:12
(16) если процедура в модуле документа фактически ничего не делает с этим документом, то есть не изменяет его реквизитов, не заполняет табличные части, то бишь не работает непосредственно с объектом (не путать с ссылкой), то это бед стайл. Для этого специально есть модуль менеджера.
Например:
1) заполнить цены в документе - это модуль объекта
2) распечатать документ или изменить его статус - это модуль менеджера, так как нет работы по изменению данных документа.

Почему? Потому что ПолучитьОбъект() очень тяжелая операция для платформы и не нужно лишний раз дергать ее.

И еще:

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

КонецПроцедуры // ОбработкаКоманды()


учитывайте в этом месте, что пользователь может выделить несколько документов и команду нужно выполнить для каждого из выделенных.
20 blutang
 
07.07.11
16:21
(19) Спасибо, буду думать. У меня, кстати, как раз эта процедура заполняет одну из табличных частей... В этом случае, значит, не бэд стайл?

Да! Замечание о нескольких документах пригодится на будущее...
21 5 Элемент
 
07.07.11
16:23
(20) заполняет но не сохраняет? это фейл.
22 blutang
 
07.07.11
16:26
(21) Пока да, он :)
23 regniws
 
07.07.11
16:26
(20) тогда следите за начальным статусом документа: пометка удаления, проведен или нет, чтобы лишнего не наворотить вида, был непроведенный, а потом "о-па", и провелся незаметно.  

И никаких "на будущее", пишите сразу нормально.
24 Defender aka LINN
 
07.07.11
16:37
(20) А если ее потребуется вызвать из управляемой формы этого самого документа, куда бежать будешь?
25 blutang
 
07.07.11
16:43
(23) Сразу я столько нюансов не в состоянии охватить :( Учусь (причем на живых людях...) Пока научусь как следует, выйдет 8.8, и всё по-новой...

(24) Куда... Сюда же, сначала в поиск :)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.