|
Вызов процедуры формы из внешней обработки | ☑ | ||
---|---|---|---|---|
0
volkVVV
22.07.15
✎
12:56
|
Доброго времени суток.
Есть модуль формы справочника Номенклатура, мне необходимо вызвать процедуру ПриЗакрытии() из внешней обработки. Подскажите плиз, как это сделать можно? |
|||
1
palpetrovich
22.07.15
✎
13:02
|
скопировать нужное из этой процедуры себе в обработку - самое простое
|
|||
2
volkVVV
22.07.15
✎
13:04
|
(1) дело в том, что процедура ПриЗакрыти() тянет за собой еще процедуры
|
|||
3
palpetrovich
22.07.15
✎
13:08
|
(2) сам не пробовал, попробуй ты :)
ТекОбъект = ТекСсылкаНоменклатуры.ПолучитьОбъект(); ТекОбъект.ПриЗакрытии(); |
|||
4
1Сергей
22.07.15
✎
13:10
|
А у процедуры ПриЗакрытии() есть ключевое слово Экспорт?
|
|||
5
ixijixi
22.07.15
✎
13:10
|
Форма.Закрыть() она и потянет вызов предопределенной процедуры
|
|||
6
Альбатрос
22.07.15
✎
13:12
|
Решение в (1)
|
|||
7
palpetrovich
22.07.15
✎
13:13
|
(5) а, открыть форму до этого - не обяз?
|
|||
8
volkVVV
22.07.15
✎
13:15
|
(4) Нет, но могу сделать, но дело в том, что все равное ее не увидит.
|
|||
9
Лефмихалыч
22.07.15
✎
13:18
|
(0) вынести нужный код в экспортную процедуру общего модуля и вызывать из обоих мест эту новую общую процедуру
|
|||
10
volkVVV
22.07.15
✎
13:19
|
(5) такой вариант подходит, а как быть например с процедурой ПриЗаписи()?
|
|||
11
volkVVV
22.07.15
✎
13:20
|
(7) без разницы, главное вызвать процедуру.
|
|||
12
palpetrovich
22.07.15
✎
13:47
|
(11) прикольно, особенно если программно создаешь стотыщэлементов :)
|
|||
13
volkVVV
22.07.15
✎
13:49
|
(12) да не, в данном случае немного, поэтому прокатит
|
|||
14
volkVVV
22.07.15
✎
13:51
|
Пока Выборка.Следующий() Цикл
Спр = Выборка.Ссылка.ПолучитьОбъект(); Если НЕ Спр.ЭтоГруппа Тогда Если Спр.БазоваяЕдиницаИзмерения.Наименование <> "" Тогда Если Спр.ВидНоменклатуры.Наименование <> "" Тогда Форма = Выборка.Ссылка.ПолучитьФорму("ФормаЭлемента"); Форма.Открыть(); Форма.Записать(); Форма.Закрыть(); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; |
|||
15
volkVVV
22.07.15
✎
13:52
|
вот такой у мну цикл, не пойму, почему метод Форма.Записать() вызывает процедуру модуля объекта ПередЗаписью(), а не процедуру модуля формы ПередЗаписью(), мне нужна именно она
|
|||
16
palpetrovich
22.07.15
✎
13:58
|
(15) запусти отладчик из элемента номенклатуры ПередЗаписью() - глянь какая из них идет первой
|
|||
17
mehfk
22.07.15
✎
14:00
|
потому что еще есть записатьвформе()
|
|||
18
volkVVV
22.07.15
✎
14:02
|
(16) первая идет процедура модуля формы ПередЗаписью(), затем процедура модуля объекта и еще раз процедура модуля формы
|
|||
19
volkVVV
22.07.15
✎
14:06
|
(17) т.е. вызвать этот метод вместо Форма.Записать()?
|
|||
20
volkVVV
22.07.15
✎
14:12
|
(17) гуд, сработало. Спасибо вам добрые люди
Пока Выборка.Следующий() Цикл Спр = Выборка.Ссылка.ПолучитьОбъект(); Если НЕ Спр.ЭтоГруппа Тогда Если Спр.БазоваяЕдиницаИзмерения.Наименование <> "" Тогда Если Спр.ВидНоменклатуры.Наименование <> "" Тогда Форма = Выборка.Ссылка.ПолучитьФорму("ФормаЭлемента"); ФормаН = Форма.ЭтаФорма; ФормаН.Открыть(); ФормаН.ЗаписатьВФорме(); ФормаН.Закрыть(); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |