|   |   | 
| 
 | Вызов процедуры формы из внешней обработки | ☑ | ||
|---|---|---|---|---|
| 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) гуд, сработало. Спасибо вам добрые люди
 Пока Выборка.Следующий() Цикл Спр = Выборка.Ссылка.ПолучитьОбъект(); Если НЕ Спр.ЭтоГруппа Тогда Если Спр.БазоваяЕдиницаИзмерения.Наименование <> "" Тогда Если Спр.ВидНоменклатуры.Наименование <> "" Тогда Форма = Выборка.Ссылка.ПолучитьФорму("ФормаЭлемента"); ФормаН = Форма.ЭтаФорма; ФормаН.Открыть(); ФормаН.ЗаписатьВФорме(); ФормаН.Закрыть(); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |