|
v7: Отследить окончание редактирования реквизита | ☑ | ||
---|---|---|---|---|
0
SssR
01.02.18
✎
13:55
|
1С 7.7. Задача: Требуется запускать определенную процедуру при изменении любого реквизита формы (как шапки так и табличной части).
1. Вариант. В каждом реквизите в формуле прописать вызов этой функции. Реквизитов много и могут добавляться - есть вероятность пропустить 2. Неплохо было бы использовать что то типа ОбработкаВыбораЗначения, но к сожалению на момент исполнения этой предопределенной процедуры в реквизите еще старое значение реквизита. Может подскажете идею какую нибудь. Спасибо. |
|||
1
lubitelxml
01.02.18
✎
13:58
|
(0) в 7.7 вроде была такая фишка - как управлениеДостпуностью и УправлениеВидимостью. На форму помещается поле надписи, в ней формула, и при любом изменении реквизита - эта функция выполняется, попробуй в ней делать то, что тебе нужно
|
|||
2
SssR
01.02.18
✎
14:03
|
(1) думал об этом, но она будет выполняться и при открытии(), а так как процедура будет пересчитывать другие реквизиты - будет не очень корректно, что при открытии пересчитались реквизиты, необходимо именно изменение отследить
|
|||
3
Ёпрст
01.02.18
✎
14:04
|
(0) текст на форме с функцией отловит всё.
|
|||
4
lubitelxml
01.02.18
✎
14:05
|
Вроде была какая-то ВК для этого, но это не точно, давно 7.7 не открывал
|
|||
5
drcrasher
01.02.18
✎
14:06
|
(0) formex.dll имени АЛьФ
|
|||
6
Ёпрст
01.02.18
✎
14:06
|
Ни или задействуй Класс.Перехватчик и там лови свои события
|
|||
7
drcrasher
01.02.18
✎
14:07
|
+(5) я даже принесу http://www.dorex.pro/?projects&formex
|
|||
8
SssR
01.02.18
✎
14:10
|
формекс знаю, пользую, но применительно к этой задаче никак не пойму как его задействовать(
|
|||
9
SssR
01.02.18
✎
14:12
|
для табличной части очень подходит ПриОкончанииРедактированияСтроки() - а вот для реквизитов шапки что то подобное не нашел
|
|||
10
Ёпрст
01.02.18
✎
14:15
|
||||
11
Ёпрст
01.02.18
✎
14:24
|
как пример пойдёт. Пасутся все реквизиты формы, и можно вернуть их предыдущее/последующее состояние "по-кругу"
|
|||
12
cincout
01.02.18
✎
14:30
|
(0)
|
|||
13
cincout
01.02.18
✎
14:30
|
(0)
Процедура ОбработкаВыбораЗначения(<?>,,) КонецПроцедуры Синтаксис: ОбработкаВыбораЗначения(<ВыбЗнач>,<ИдентЭлемДиалога>,<ФлагСтандОбр>) Назначение: Предопределенная процедура после выбора значения в форме выбора (выбор может быть инициирован в немодальном режиме интерактивно, при помощи элемента диалога с ''педалькой''). <ВыбЗнач> - выбранный элемент справочника, документ или иной объект, передаваемый для обработки. <ИдентЭлемДиалога> - идентификатор элемента диалога, которым инициализирован выбор значения. <ФлагСтандОбр> - флаг, установка которого в теле процедуры в 0 (ноль) приведет к отмене стандартного присвоения значения. Замечание: Данная процедура может располагаться только в программном модуле формы. Подробнее см. в документации, глава 'Системные предопределенные процедуры' |
|||
14
SssR
01.02.18
✎
14:30
|
(10),(11) Спасибо с перехватчиком дела иметь не приходилось. Посмотрю. Другого пути вроде нет получается.
|
|||
15
SssR
01.02.18
✎
14:32
|
(13) один из минусов, что только реквизиты с педалькой, простые типы не отловит + мне нужно работать с контекстом, а там еще старое значение хранится
|
|||
16
cincout
01.02.18
✎
14:33
|
(15) в параметр <ВыбЗнач> передается новое, выбранное значение
|
|||
17
SssR
01.02.18
✎
14:38
|
(15) я понимаю. но это не решает мою проблему. У меня тогда процедура описанная в (0) не будет "понимать" какой реквизит поменялся и его новое значение, то что его название прописано в "ИдентЭлемДиалога" тоже не поможет, тогда она примет вид если ИдентЭлемДиалога="1" тогда используем значение ВыбЗнач и т.д, мне нужно поймать событие после того как реквизит уже выбран на форм= что то типа ПриОкончанииРедактированияШапки()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |