|
Элемент управления textBox ActiveX | ☑ | ||
---|---|---|---|---|
0
BrainDamage
28.03.16
✎
11:08
|
Проблема следующая.
Добавил элемент ActiveX TextBox на форму документа, сам ЭУ привязал к реквизиту комментарий. При открытии документа в какой-то момент устанавливается свойство объекта модифицированность, хотя программного заполнения этого поля при открытии нет. Если ЭУ убрать с формы, то все нормально. Пробовал убрать все обработчики формы, не помогает, в процедуре перед открытием формы документа, модифицированность объекта уже установлена. УТ 10.3, платформа 8.2.19.130, в режиме совместимости. Куда копать не пойму. |
|||
1
BrainDamage
28.03.16
✎
11:46
|
Апну.
Еще заметил, что если комментарий заполнен, то тогда при открытии объект модифицируется, если комментарий пустой, то открытие проходит штатно. Может быть есть какой-то свойство, которое можно включить/отключить? |
|||
2
mikecool
28.03.16
✎
11:49
|
ИзменяетДанные?
|
|||
3
BrainDamage
28.03.16
✎
11:54
|
(1) Пробовал и с флажком и без, не влияет никак.
В теле модуля формы при открытии отладчик показывает ЭтотОбъект.Модифицированность() = Ложь; Как только входит в процедуру при открытии уже Истина. |
|||
4
BrainDamage
28.03.16
✎
11:55
|
Вернее даже в ПередОткрытием() уже истина!
|
|||
5
BrainDamage
28.03.16
✎
12:22
|
Еще кое-что выяснил:
В теле модуля формы ЭлементыФормы.ЭлементУправленияКоментарий.text = "" ЭлементыФормы.ЭлементУправленияКоментарий.Value = "" Как только переходим в ПередОткрытием ЭлементыФормы.ЭлементУправленияКоментарий.text = выаываыв ЭлементыФормы.ЭлементУправленияКоментарий.Value = выаываыв То есть элемент управления заполняется в какой-то не очевидный момент, и при этом модифицирует сам объект. И главное, сбросить эту модифицированность никак не получится, не записывать же документ при открытии.. Может есть какие мысли, как это обойти? Иначе придется убирать этот ЭУ. |
|||
6
Asmody
28.03.16
✎
12:42
|
А какая цель использования TextBox?
|
|||
7
BrainDamage
28.03.16
✎
12:54
|
(6) Хочется динамически считать количество символов в водимое поле. Есть определенные ограничения на длину комментария, и пользователю необходимо показывать сколько ему осталось символов ввести, типа как при вводе СМС-сообщений на сайтах операторов.
У TextBox есть событие onChange, которое позволяет это делать. А штатными средствами 1С вроде бы, это реализовать нельзя. Решили попробовать ActiveX, но вот натолкнулись на такие грабли. Сам принцип не понятен, почему при заполнении ЭУ из реквизита, модифицируется объект?! |
|||
8
BrainDamage
28.03.16
✎
13:35
|
Апну
|
|||
9
zdas
28.03.16
✎
13:37
|
ПодключитьОбработчикОжидания - раз в секунду к примеру не катит?
|
|||
10
BrainDamage
28.03.16
✎
14:08
|
(9)ОбработчикОжидания рассматривлся как один из вариантов.
Придумали следующее, отвязали ЭУ TextBox от реквизита объекта. В форму добавили реквизит КомментарийФормы, его привязали к TextBox-у, ПередОткрытием заполняем КомментарийФормы из Комментария, а перед записью соответственно пишем в Комментарий из КомментарийФормы. Ну а визуально отображение при редактировании остается в том же TextBox-е. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |