Имя: Пароль:
1C
1С v8
Как в обработке выполнить чужую процедуру
0 Штурман
 
24.01.12
09:50
Есть внешняя обработка табличной части документа, как в ней выполнить процедуру из модуля формы документа?

допустим в модуле формы дока есть процедура Обновить()

как ее прописать в обработке?
1 Wobland
 
24.01.12
09:50
назначить экспортной для начала
2 Штурман
 
24.01.12
09:51
(1) экспорт подразумевает изменение кода конфигурации, можно как-то без этого?
3 МурЬка
 
24.01.12
09:51
Из модуля формы - только если создана сама форма и у этой процедуры проставлен "Экспорт". В обработке прописывается как метод формы, т.е.
Форма.Обновить(), где Форма - это имя переменной, содержащей форму.
4 Wobland
 
24.01.12
09:52
(2) без экспорта никак
5 Поpyчик-4
 
24.01.12
09:54
(2) Продублируй процедуру в своей обработке
6 Штурман
 
24.01.12
09:54
(3) (4) спасиб, может кто-то еще напишет как все же реализовать

т.е. есть документ, в табличной части эта обрботка вызывается через кнопку повыше Заполнить - Наша обработка

в самой обработке код начинается так:
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспор
7 Штурман
 
24.01.12
09:55
(5) саму процедуру не продублируешь, т.к. есть куча взаимосвязей и т.д., слишком накладно выйдет
8 Serg_1960
 
24.01.12
09:55
Классика жанра. В поиск.
9 Штурман
 
24.01.12
09:55
(8) если спросил, значит не нашел
10 Wobland
 
24.01.12
09:56
(9) вот все бы так ;)
11 Штурман
 
24.01.12
09:56
(10) ага, гугол выдал не то что нужно :)
12 Fish
 
24.01.12
09:59
(11) гугол - это не православный поисковик :)))
13 Штурман
 
24.01.12
09:59
короче, кто не понял

есть документ, открываем его форму, тама есть панель Модуль, кликаем его, в нем процедура Обновить()

далее, есть внешняя обработка табличной части этого документа, подключена через Сервис - Доп. отчеты и обработки

в этой обработке в коде

Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспор

нужно как-то вызвать процедуру из модуля обрабатываемого документа
14 Рэйв
 
24.01.12
09:59
(7)>>саму процедуру не продублируешь

Продублируй ее смысл. Совсем не обязательно тащить все до буквы.
15 Рэйв
 
24.01.12
10:00
(13)А форму документа открывать будешь?
16 Штурман
 
24.01.12
10:01
(15) да канешна, в табличной части она вызывается через кнопку Заполнить
17 Рэйв
 
24.01.12
10:03
(16)Проще всего конечно поставить Экспорт и вызвать процедуру через точку от формы.

Ну если нет, то тогда разбирайся чего она делает и с минимальными затратами дублируй ее действия
18 Wobland
 
24.01.12
10:04
а мне интересно, что имел в виду (8)
19 Штурман
 
24.01.12
10:05
(17) ну ладно, вы уже не первый кто про экспорт пишет, а как приблизительно в коде обработки вызов прописать?
20 zelebobi4
 
24.01.12
10:05
Как вариант скопирвоать в внешнюю обработку код процедуры.
21 Wobland
 
24.01.12
10:05
(19) -> (3)
22 Штурман
 
24.01.12
10:10
(21) написал:

Объект.ФормаДокумента.Обновить();

выдает:

Заполнение ТЧ не произведено!
Поле объекта не обнаружено (ФормаДокумента)
23 Рэйв
 
24.01.12
10:12
(22)что есть Объект.ФормаДокумента?
24 МурЬка
 
24.01.12
10:12
(22) Какбэ Объект.ФормаДокумента - это не форма документа.
25 Поpyчик-4
 
24.01.12
10:12
(22) У тебя в Объект'е есть такой реквизит - ФормаДокумента? Ты хоть смысл понимаешь?
26 Рэйв
 
24.01.12
10:13
(22)Сдается мне тебе надо что то типа:

Ф=Объект.ПолучитьФорму();
ф.Открыть();
Ф.Обновить();
27 Рэйв
 
24.01.12
10:13
даже не
ф.Обновить()

а
ф.ОбновитьФормуКакойТоПроцедурой();
28 Штурман
 
24.01.12
10:18
все спасибо, подошло:

ф = Объект.ПолучитьФорму("ФормаДокумента");
   
ф.Обновить();
29 Serg_1960
 
24.01.12
10:20
(18) Ключевые слова для поиска:
"Вызвать процедуру формы"
"Нажать кнопку"
и т.д.

PS: сорри, ТС, за офф. Эта и подобные ей темы, неоднократно обсуждались на форуме.
30 Wobland
 
24.01.12
10:25
хоткей+сендкей... изврат какой-то
31 Serg_1960
 
24.01.12
10:32
Если процедура не экспортная - ну, да, иногда приходится извращаться. Кто как может. Зависит от конкретной ситуации.

Худший случай, это когда процедура/функция - не экспортная, содержит вызовы других локальных процедур/функций и обращается к переменным/реквизитам формы...