|
Программно создать событие ПриСозданииНаСервере? | ☑ | ||
---|---|---|---|---|
0
spiller26
21.04.21
✎
15:29
|
Есть форма "ФормаГруппы" справочника "ВидыВходящихДокументов"
Нужно программно создать событие для этой формы. В модуле формы пусто, расширение не предлагать. |
|||
1
RomanYS
21.04.21
✎
15:33
|
Программно можно назначить обработчик (вроде УстановитьДействие). Что значит "программно создать" не очень понятно
|
|||
2
spiller26
21.04.21
✎
15:36
|
(1) Ну да установить УстановитьДействие, вот так примерно.
ЭтаФорма.УстановитьДействие("ПриСозданииНаСервере", "ПриСозданииНаСервере"); |
|||
3
RomanYS
21.04.21
✎
15:37
|
(2) И.. вопрос закрыт?
|
|||
4
spiller26
21.04.21
✎
15:39
|
(2) где прописывать в модуле?
|
|||
5
butterbean
21.04.21
✎
15:40
|
(4) где угодно, главное чтобы выполнялось на сервере
|
|||
6
spiller26
21.04.21
✎
15:41
|
(5) Т.е. само подтянется?
|
|||
7
spiller26
21.04.21
✎
15:47
|
Короче сделал так. правильно-неправильно решать не мне, но работает.
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЭлементОрг = Элементы.Добавить("абтОрганизацияПравообладатель", Тип("ПолеФормы"),); ЭлементОрг.Вид = ВидПоляФормы.ПолеВвода; ЭлементОрг.ПутьКДанным = "Объект.абтОрганизацияПравообладатель"; ЭлементОрг.РастягиватьПоГоризонтали = Истина; ЭлементОрг.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто; ЭлементОрг.КнопкаОчистки = Истина; ЭлементОрг.ЦветТекстаЗаголовка = Новый Цвет(255,140,0); КонецПроцедуры Попытка УстановитьДействие("ПриСозданииНаСервере", "ПриСозданииНаСервере"); Исключение КонецПопытки; |
|||
8
spiller26
21.04.21
✎
15:48
|
(7) Попытку сделал, т.к. проходя клиента, начинает ругаться.
|
|||
9
lubitelxml
21.04.21
✎
15:49
|
(8) потому что на сервере надо делать
|
|||
10
lubitelxml
21.04.21
✎
15:50
|
Если "В модуле формы пусто" - то откуда "Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)" появилось? и зачем вообще все это, почему просто не использовать "ПриСозданииНаСервере"?
|
|||
11
spiller26
21.04.21
✎
15:51
|
(10) Я писал его.
|
|||
12
RomanYS
21.04.21
✎
15:55
|
(8) тогда так
&НаСервере Процедура _ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЗаписьЖурналаРегистрации("!"); КонецПроцедуры #Если Сервер Тогда УстановитьДействие("ПриСозданииНаСервере", "_ПриСозданииНаСервере"); #КонецЕсли |
|||
13
spiller26
21.04.21
✎
15:59
|
(12) Спасибо! Забыл про это совсем.
|
|||
14
RomanYS
21.04.21
✎
16:01
|
(13) Для меня несколько неожиданно было что код "подвала" выполняется и на сервере и на клиенте
|
|||
15
spiller26
21.04.21
✎
16:19
|
(14) Честно для меня тоже.
|
|||
16
mikecool
21.04.21
✎
16:22
|
(14) что же неожиданного? директив разделения нет, значит - везде
|
|||
17
RomanYS
21.04.21
✎
16:24
|
(16) Везде т.е. дважды? В каком порядке например известно?
|
|||
18
acht
21.04.21
✎
16:38
|
(11) Что мешало выбрать в форме нужный обработчик, если ты все равно писал код в модуле?
|
|||
19
lodger
21.04.21
✎
16:48
|
(17) весь код формы сперва компилится и исполняется на сервере.
|
|||
20
RomanYS
21.04.21
✎
17:03
|
(19) А почему на сервере несколько раз выполняется (2 иногда 4 раза)?
&НаСервере Процедура _ЗаписьЖурналаРегистрации(текст) ЗаписьЖурналаРегистрации(текст); КонецПроцедуры #Если Сервер Тогда ЗаписьЖурналаРегистрации("Сервер"); #КонецЕсли #Если Клиент Тогда _ЗаписьЖурналаРегистрации("Клиент"); #КонецЕсли |
|||
21
toypaul
гуру
21.04.21
✎
18:43
|
хм. интересно. а для чего такой изврат? почему просто не прописать событие в свойствах формы?
|
|||
22
VladZ
21.04.21
✎
18:46
|
(0) Расскажи в целом про задачу.
Очень интересно, в каких случаях это нужно. |
|||
23
lodger
22.04.21
✎
12:12
|
(20) сперва форма создаётся, компилится и выполняется. это При Создании На Сервере.
потом форма инициализируется с учётом данных. это При Чтении На Сервере. |
|||
24
acht
22.04.21
✎
12:16
|
(23) Тока оно сначала при чтении, а потом при создании =)
|
|||
25
acht
22.04.21
✎
12:19
|
А потом открывается. На клиенте. Это и есть момент второй компиляции.
|
|||
26
RomanYS
22.04.21
✎
12:20
|
(23) Спасибо. Только насколько можно судить по этой теме "При Создании На Сервере" происходит до события ПриСозданииНаСервере иначе бы у ТС ничего не получилось.
Единственное что точно понятно, что этот код может выполняться по несколько раз и разных контекстах. И общая рекомендация без необходимости туда ничего не писать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |