Имя: Пароль:
 
1C
 
Как запустить процедуру из модуля формы открытой формы
0 sly
 
29.12.05
11:02
Как запустить процедуру из модуля формы открытой формы. Т.е. обработкой открываем форму документа и нужно запустить процедуру из этого документа?

Док=СоздатьОбъект("Документ.СчетФактура");
Док.НайтиПоНомеру(Ном, Дата);
Если Док.Выбран()>0 Тогда
   
   Конт="";
   ОткрытьФорму(Док.ТекущийДокумент(),Конт,0);
   
   // эта процедура из документа, но как ее запустить?
   УправлениеДиалогом(1);
   
   Конт.Форма.Обновить();
КонецЕсли;

С Новым Годом!
1 Ёпрст2
 
29.12.05
11:04
2 sly
 
29.12.05
11:14
Не понял. Правда.
Объясните...
3 ДенисЧ
 
29.12.05
11:19
4 sly
 
29.12.05
11:20
дык, из 1С надо...
5 ака Пкфте
 
29.12.05
11:24
(4) Непонятно, для чего... Вставь её в ПриОткрытии() открываемой формы...
или использовать
Процедура ПриПовторномОткрытии()
   ТвояПроцедура();
КонецПроцедуры
если её надо запустить после каких-то махинаций...
расказывай, послушаем...
6 Ёпрст2
 
29.12.05
11:28
(2) Чего там непонятного то ? В открываемую форму через контекст передаем "что-то", в открытой форме это "что-то" ловим в ПриОткрытии как Форма.Параметр,
если Форма.Параметр = "что-то" нас устраивает - то запускаем соответствующую процедуру/функцию этой формы(модуля этой формы) ...
7 sly
 
29.12.05
11:33
Это процедура запусталась из модуля формы Документа  при определенном условии.
А сразу можно не переписывая процедуры ПриОткрытии() в документах?
8 Рупор абсурда
 
29.12.05
11:39
Кстати ...
Можно запустить процедуру из модуля формы дока, не изменяя модуль дока, и обойтись исключительно штатными средствами ...
9 Ёпрст2
 
29.12.05
11:39
(7)Неа ...
.... Ты конкретно задачку нарисуюй чего хочешь ...
.... Можно потом уже, когда уже форма открыта еще че нить запустить ... но опять таки, через контекст и в ПриПовторномОткрытии() дописывать ...
10 Ёпрст2
 
29.12.05
11:40
(8) Ну вот ... очередной ребус от Рупора на 500 постов с съеданием башмака ...:)
11 child
 
29.12.05
11:43
(10) Можно проделать все изменения реквизитов в документе перед процедурой "ОткрытьФорма"
12 Рупор абсурда
 
29.12.05
11:44
(10) На самом деле, всё очень просто ...
Могу рассказать сразу, т.к. на разводы сегодня нет времени ...
13 GrayT
 
29.12.05
11:45
(8)Достаю поп-корн и колу :)
14 ака Пкфте
 
29.12.05
11:46
Это опять таки негласный... оффициально только для глобального...
15 Ёпрст2
 
29.12.05
11:46
(12) Да не надо ... про это я уже давно знаю .... единственное - надо глобальник подправить ..
16 ака Пкфте
 
29.12.05
11:47
(15) ниче править не надо...
17 lisss
 
29.12.05
11:47
(15)расскажи, раз знаешь....
18 GrayT
 
29.12.05
11:48
(16)Ну что то все же придется подправить, чтоб запусить :)
19 Рупор абсурда
 
29.12.05
11:48
(15) Нет, не надо ничего нигде править ...
20 Ёпрст2
 
29.12.05
11:52
(17) http://www.sinor.ru/~my1c/knowhow/shablon.html
(19) Ну тогда, рассказывай ... так сказать подарок всем нам к НГ будет приятный ..!
21 ака Пкфте
 
29.12.05
11:52
(18) Пусть её напишет Рупор... эту Волшебную строку...

ЗЫ Кстати, Рупор, одной строкой сможешь?
22 Рупор абсурда
 
29.12.05
11:55
(21) Двумя только ...
23 Рупор абсурда
 
29.12.05
11:58
(22)+ Ан, нет, наврал ..., могу и одной ...
24 ака Пкфте
 
29.12.05
11:58
(22) А зачем? Пусть как энерджайзер...
25 Рупор абсурда
 
29.12.05
12:00
(24) Дык всё равно ж две строки-то получится ...
26 Рупор абсурда
 
29.12.05
12:00
(24) И давай-ка ты не подсказывай демиургам ...
27 ака Пкфте
 
29.12.05
12:05
(26) досвидания...
28 Ёпрст2
 
29.12.05
12:23
(26) Согласно 12 ...  "на разводы сегодня нет времени" ... Расскажи!
29 у лю 427
 
29.12.05
12:29
опять Рупор начал классно вешать лапшу на уши...
а потом окажется...
30 Рупор абсурда
 
29.12.05
12:43
(28) Я не врал, что это просто:

Перем Конт;

Процедура Вырубить()
   Конт.Форма.ОбработкаОжидания("");
   Конт.Форма.Закрыть();
КонецПроцедуры

Процедура Сформировать()
   Форма.ОбработкаОжидания("Вырубить",2);
   Открытьформу(КакойТоТамДокумент,Конт);
   Конт.Форма.ОбработкаОжидания("НуНапримерПечать",1);
КонецПроцедуры
31 Ёпрст2
 
29.12.05
12:51
(30) Круто ... спсб!
32 sly
 
29.12.05
13:01
а не для глобального модуля можно?
33 GrayT
 
29.12.05
13:04
(32)???? Это (30) не для глобальника.
34 sly
 
29.12.05
13:11
ОбработкаОжидания()

Цитирую
Инициирует преодический вызов процедуры глобального модуля ...
35 GrayT
 
29.12.05
13:20
Знаю.
Но там Форма.ОбработкаОжидания - это фича такая
36 sly
 
29.12.05
13:28
GrayT, подскажи глядя на (0) как из обработки мне запустить процедуру документа.
Не пойму итиомать!
37 zalex
 
29.12.05
13:30
Однако ж вырубить в модуль формы дописать придется. Так что фигли толку, понты одни...
38 GrayT
 
29.12.05
13:31
(36)Тебе уже дали два варианта - какие проблемы
(37)формы обработки, а не дока!
39 zalex
 
29.12.05
13:32
+(37) ОбработкуОжидания запускаешь на "Конт.Форма" а вырубаешь на "Форма". Проверить лень, но ИМХО не взлетит.
40 zalex
 
29.12.05
13:33
+(39) Хотя пардон, туплю
41 GrayT
 
29.12.05
13:34
(39)Похоже ты не въехал - там два ожидания - для разных форм
42 Ёпрст2
 
29.12.05
13:34
(39) Всё летает! Полёт нормальный ...!
43 zalex
 
29.12.05
13:34
(41) Уже въехал
44 sly
 
29.12.05
13:45
Открыв форму ее потом можно закрыть с сохрананием и проведением ПРОГРАММНО?
45 GrayT
 
29.12.05
13:47
Можно
46 sly
 
29.12.05
13:48
как?
47 Рупор абсурда
 
29.12.05
13:53
Грядёт эпоха одинэсников-идиотов ...
48 sly
 
29.12.05
14:01
ты мудак, и что!
49 zalex
 
29.12.05
14:03
Модераторам опять есть работа (48). Я б забанил, красивое решение мудаку предложили, а он...
50 Рупор абсурда
 
29.12.05
14:05
(48) Зато я умный ...
51 ака Пкфте
 
29.12.05
14:07
Мдя... пока на берёзовых лопал такое пропустить...

(49) ЗЫ Не по нашему как-то это... добровольное сотрудничество...
52 Рупор абсурда
 
29.12.05
14:11
(51) Угу ..., мы модеров душили, душили ...
А тут модерская шестёрка чё-то вякает ...
53 zxcvb
 
29.12.05
14:18
А если в модуле дока определена переменная:
"перем ХХХ;"
Как бы мне установить ее значение перед вызовом той или иной процедуры?

Не могу врубиться.
54 Рупор абсурда
 
29.12.05
14:23
(53) Вызвать ту процедуру, в которой ей устанавливается значение ...
55 zxcvb
 
29.12.05
14:30
(54) Это понятно:)
А произвольно похоже никак.
По крайней мере идей как это сделать нет.
56 Рупор абсурда
 
29.12.05
14:39
(55) В общем случае, штатными средствами, похоже, никак ...
57 zxcvb
 
29.12.05
14:39
++(55) Просто в той процедуре могут быть операторы типа "Вопрос()", "Предупреждение()", требующие реакции пользователя.
58 ака Пкфте
 
29.12.05
14:41
(52) Я не душил, узнал то о них недавно, сразу не понравились, всё думал, кто ж их так обидел...

ЗЫ Ух ты, тебя всё глубже в БЗ вцементировывают...
Кстати очень упрощаешь жизнь инженерам -
написал что-то + миста как код распознала - в БЗ смело, не ошибешься! возможна драка, кто первый...
59 Рупор абсурда
 
29.12.05
14:45
(58) А почему у тебя такой говённый ник нынче?
60 ака Пкфте
 
29.12.05
14:48
(59) Жизнь отражает... может даже мою...
61 Warlock
 
29.12.05
14:58
Блин... Хотел рубрику поменять, а заменилось только имя, добавившего в БЗ(КонецЦикла) :(
62 ака Пкфте
 
29.12.05
15:02
предсказуемость сплошная...
63 Кудесник
 
29.12.05
15:03
2(61) Ты тама поаккуратнее с БЗ :)
Пущай будет в БЗ... как способ
Интересная инфа (и не только для начинающих) + Руппи приятно
64 Warlock
 
29.12.05
15:13
Согласен с тобой. Хотел только рубрику поменять. Пробовал и с Opera 9 и из IE. Стандартный совет Волшебника "смени браузер" не прокатил...
65 GrayT
 
29.12.05
15:23
Кого послать?
66 rsv
 
29.12.05
15:25
Хм. Термин глобальный модуль относится в какой то степени и к модулю формы. Он тоже глобален но в рамках формы.:) Респект профессионализму Рупора.
67 orefkov
 
29.12.05
16:18
Если в ПриНачалеРаботыСистемы сделать
ЗагрузитьВнешнююКомпоненту("turbobl.dll");
или
ЗагрузитьВнешнююКомпоненту("1cpp.dll");
то будет работать такой код:

Док=СоздатьОбъект("Документ.СчетФактура");
Док.НайтиПоНомеру(Ном, Дата);
Если Док.Выбран()>0 Тогда
   
   Конт="";
   ОткрытьФорму(Док.ТекущийДокумент(),Конт,0);
   
   // эта процедура из документа, но как ее запустить?
   Конт.УправлениеДиалогом(1);
   
   Конт.Форма.Обновить();
КонецЕсли;
68 romix
 
модератор
29.12.05
17:01
Чтобы иметь возможность юзать процедуру печати из разных мест (например, из документа и журнала), я выношу ее во внешний отчет (ERT).

Получается очень удобно -  можно исправлять печать документа во время работы пользователей, и модуль формы не засоряется посторонней логикой.
69 alexb
 
29.12.05
17:10
(68) А пример можно ?
70 alexb
 
29.12.05
17:15
А что Вы в эту процедуру печати передаете ?
Контекст документа ?
71 GrayT
 
29.12.05
18:02
Или сам документ
Независимо от того, куда вы едете — это в гору и против ветра!