|
Обратиться к открытой форме документа | ☑ | ||
---|---|---|---|---|
0
ddigg
08.08.13
✎
17:18
|
В обработке есть процедуры
Процедура Пр1() Форма1 = ПолучитьФорму("Документ.Платежка1.Форма.ФормаДокумента"); Форма1.Дата = ТекущаяДата(); Форма1.Открыть(); КонецПроцедуры и Процедура Пр2() //?? КонецПроцедуры Вначале вызывается Пр1(), которая открывает форму. А потом через время Пр2() , которая должна поменять дату Форма1.Дата = ТекущаяДата(); Но как обратиться к уже открытой форме? Подскажите новичку.. |
|||
1
Maxus43
08.08.13
✎
17:21
|
почему всё не в пр1? до открытия формы поменять может?
|
|||
2
Ёпрст
08.08.13
✎
17:21
|
самое тупое, сделать переменную Форма1 - глобальной для модуля, т.е Перем Форма1 воткнуть в начало модуля.
|
|||
3
Maxus43
08.08.13
✎
17:21
|
и смысл менять у формы? может у объекта менять данные?
|
|||
4
Ёпрст
08.08.13
✎
17:21
|
ну и в пр2 проверять, что в переменной.
|
|||
5
ddigg
08.08.13
✎
17:22
|
>почему всё не в пр1? до открытия формы поменять может?
Пр2() вызывается через время, то есть когда телефонный звонок окончился.. |
|||
6
Волчара2010
08.08.13
✎
17:25
|
ЭтаФорма
|
|||
7
Волчара2010
08.08.13
✎
17:29
|
вот намуя тебе это надо?
|
|||
8
ddigg
08.08.13
✎
17:34
|
(7) закинуть в открытую сейчас форму время окончания звонка "снаружи". ну и потом ее можно вручную спокойно закрыть и сохранить..
|
|||
9
Trainee
08.08.13
✎
17:43
|
Вот такой вот код видел:
//Зададим ключ поиска документа, из которого вызвана данная обработка, //чтобы получить ссылку на редактирумый документ в удобном виде для //функции ОткрытьФорму() КлючПоиска = Новый Структура("Ключ", Элемент); //Но нам не надо открывать новую форму (окно) для изменяемого документа, а //Нам надо все изменения показать в уже открытых у клиента окнах Окна = ПолучитьОкна(); Для каждого Окно из Окна Цикл //Окно изменяемого документа будет точно не основным, а вспомогательным, поэтому //сразу пропускаем основное окно, а далее идем на не очень хороший способ поиска открытого окна //изменяемого документа. Мы просто переберем все окна, а в заголовке, которых будет встречаться //Наименование, номер и дата нужного документа - будем изменять Если НЕ Окно.Основное И Найти(Окно.Заголовок, Элемент) Тогда //Передадим ключ поиска (можно сказать ссылку на объект) и данные о найденном открытом окне //в функцию ОткрытьФорму() //Код находится в цикле на тот случай, если открытых окон изменяемого документа больше одного Форма = ОткрытьФорму("Документ.*ИмяДокумента*.Форма.ФормаДокумента",КлючПоиска,,,Окно); //Далее мы получаем объект только, что повторно открытой формы и помещаем её в переменную //В объекте содержатся все реквизиты (элементы) формы НовыйОбъект = Форма.Объект; //Мы помещаем объект формы в переменную, //так как должны передать её в процедуру на сервере, //где нельзя изменять объект формы, зато можно править переменную содержащую его //ЗаполнитьОбъект(НовыйОбъект); //Заполняем чем-то //После выполнения процедуры на сервере мы получаем изменную переменную НовыйОбъект, //которую необходимо передать в уже полученную нами форму КопироватьДанныеФормы(НовыйОбъект, Форма.Объект); |
|||
10
Serg_1960
08.08.13
✎
18:01
|
Выключи комп, иди отдохни.
У тс всё гораздо проще - ему достаточно расшарить переменную Форма1 - прописать переменную, сделав её видимой в процедурах и функциях обработки. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |