|
|
|
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) Куда... Сюда же, сначала в поиск :) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |