|
Обращение к элементам формы через модуль документа | ☑ | ||
---|---|---|---|---|
0
demmix
14.06.13
✎
12:08
|
Здравствуйте.
Вопрос, как обратиться к элементам формы(а конкретнее реквизит в форме) перезаписать его и обновить форму. Задача при открытой форме нажать "провести" и динамически поменять этот реквизит (реквизит НЕ документа,а создан в форме) |
|||
1
Ёпрст
14.06.13
✎
12:10
|
меняй в самой форме, в модуле документа менять не надо при этом ничего.
|
|||
2
viktor_vv
14.06.13
✎
12:13
|
(0) А в чем тайный смысл сего действа ? Ну поенял ты реквизит формы, закрыл документ, открыл и что там будет в этом реквизите?
|
|||
3
demmix
14.06.13
✎
12:17
|
нет,открыта форма, нажимаю провести,форма не закрыта, но данное остается старым.При закрытии и потом открытие реквизит обновляется,но нежно динамически в форме при проведении изменить
|
|||
4
Ёпрст
14.06.13
✎
12:24
|
Либо в формуле текста "пасти" обновление формы, либо тупо в кнопке
Провести();ОбновитьЧтоТоНаФорме() |
|||
5
catena
14.06.13
✎
12:28
|
Хм...
У меня в общем модуле в подписке на событие записи регистра бухгалтерии работает так: Если Источник.Отбор.Регистратор.Значение.Ссылка.ПолучитьФорму().Открыта() Тогда УстановитьКнопкуРегистрацииВИнтеграции(Источник.Отбор.Регистратор.Значение.Ссылка.ПолучитьФорму().ЭлементыФормы.ДействияФормы); КонецЕсли; Думаю и в модуле документа должно работать. |
|||
6
demmix
14.06.13
✎
12:41
|
Если Документы.ИмпЗаказСМР.ПолучитьФорму("ФормаДокумента").Открыта() Тогда
Документы.ИмпЗаказСМР.ПолучитьФорму("ФормаДокумента").ЭлементыФормы.ТекущийСтатус = 123; Документы.ИмпЗаказСМР.ПолучитьФорму("ФормаДокумента").Обновить(); КонецЕсли; ошибка вылетает "Интерактивные операции недоступны" |
|||
7
catena
14.06.13
✎
12:50
|
(6)"Документы.ИмпЗаказСМР." - а у метаданных нет формы. Форма есть у объекта. Даже у ссылки на объект.
|
|||
8
demmix
14.06.13
✎
12:56
|
Объект = ЭтотОбъект;
Если Объект.ПолучитьФорму("ФормаДокумента").Открыта() Тогда Объект.ПолучитьФорму("ФормаДокумента").ЭлементыФормы.ТекущийСтатус = 123; Объект.ПолучитьФорму("ФормаДокумента").Обновить(); КонецЕсли; результат тот же...а при проведении документа ни какие события формы не используются?? |
|||
9
Шапокляк
14.06.13
✎
13:04
|
(8) ЭтаФорма.Обновить() не?
|
|||
10
demmix
14.06.13
✎
13:08
|
ЭтаФорма.Обновить()в модуле формы вызывается,с модуля документа не будет работать
|
|||
11
catena
14.06.13
✎
13:12
|
(8)Я ж сказала - ссылка. Всё работает.
Если ЭтотОбъект.Ссылка.ПолучитьФорму().Открыта() Тогда
|
|||
12
catena
14.06.13
✎
13:17
|
Хм... у меня и с объектом работает. Форма у вас какая, уточните исходные данные.
|
|||
13
anddro
14.06.13
✎
13:24
|
У формы есть обработчик события ПослеЗаписи.
Вот в нем и надо обновлять значения элементов формы, не связанные с данными объекта. Пытаться менять данные формы из модуля объекта или подписчика на событие это может и работает (просто в голову не могло прийти проверять, так это или нет), но это, мягко будет сказано, моветон. |
|||
14
Mitriy
14.06.13
✎
13:27
|
(0) руки оторвать...
|
|||
15
demmix
14.06.13
✎
13:28
|
Да я так и сделал,спасибо(13)
не знаю почему не работает, форма вроде ничем не отличается от других(12) |
|||
16
demmix
14.06.13
✎
13:30
|
не надо руки отрывать,я начинающий и не знал что событие формы "после записи" выполняется после "обработки проведения"(14)
|
|||
17
catena
14.06.13
✎
13:32
|
(13)А бывает необходимость.
К сожалению, подписки на событие ПослеЗаписи() нет, а прописывать в каждом документе как-то лениво. |
|||
18
anddro
14.06.13
✎
13:36
|
(16) с этим все просто: один раз сделай в тестовом документе обработчики событий в форме и в модуле: ПередЗаписью,ПриЗаписи, ОбработкаПроведения (есть только в модуле), ПослеЗаписи (есть только в форме), поставь точки останова и проведи под отладчиком. И будешь знать, что и в каком порядке вызывается.
(17) зато есть вызовы стандартных функций из общих модулей. Вот лучше в них вставлять свои "закладки". Получение (создание) формы из подписчика - это очень плохо для производительности при групповой обработке документов. |
|||
19
catena
14.06.13
✎
13:53
|
(18)Не нашла общей типовой функции для после записи. Честно искала. Мою природную лень сложно побороть :)
|
|||
20
catena
14.06.13
✎
13:55
|
+(19)А групповых обработок у нас не бывает, мы вынуждены работать строго одним днем.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |