|
Блокировка элемнтов формы. В чем причина? | ☑ | ||
---|---|---|---|---|
0
new1snik
15.08.13
✎
06:13
|
Добрый день.
В документе есть табличное поле. После добавления записи в него и правки одной колонки все элементы формы, не находящиеся в этом табличном поле не ввоспринимают нажатия, при этом остается возможным корректировать другие колонки табличного поля. Если отменить редактирование злополучной колонки, то элепенты элементы формы начинают воспринимать нажатия. В чем может быть проблема? Зациливаний вкоде нет, по крайней мере в коде при изменении этого поля ввода в табчасти. |
|||
1
Wobland
15.08.13
✎
06:17
|
а если зафиксировать изменения?
|
|||
2
new1snik
15.08.13
✎
06:21
|
(1) То есть? Перейти после изменения поля в другое поле та части?
|
|||
3
Wobland
15.08.13
✎
06:27
|
(2) ентер нажать
|
|||
4
Рэйв
15.08.13
✎
06:28
|
Пока не закончишь редактирование строки так и должно быть.
|
|||
5
new1snik
15.08.13
✎
06:30
|
(3) ентер не помогает
(4) а разве переход в другое поле не означает конец редактирования текущего? |
|||
6
Рэйв
15.08.13
✎
06:32
|
(5)Конец редактирования одной колонки- но не строки в целом
|
|||
7
new1snik
15.08.13
✎
06:37
|
(6) но ещё замечание, если редактировать другие поля в записи, то таких выкрутасов не происходит.
|
|||
8
new1snik
15.08.13
✎
07:22
|
Код поля ввода в злополучной колонке:
Процедура ТабличноеПолеЗаправкиГСМКоличествоПриИзменении(Элемент) ТекСтрока = ЭлементыФормы.ТабличноеПолеЗаправкиГСМ.ТекущаяСтрока; ТекСтрока.Сумма = ТекСтрока.Цена * ТекСтрока.Количество; КонецПроцедуры Работает ПриИзменении, больше никаких событий нет. |
|||
9
ЧеловекДуши
15.08.13
✎
07:43
|
(8) не верю, не верю, что нет более событий :)
Посмотрите хорошенько. |
|||
10
Cyberhawk
15.08.13
✎
07:46
|
(0) "не ввоспринимают нажатия" Отладка - Остановить перед очередным таким невоспринимаемым нажатием...
|
|||
11
new1snik
15.08.13
✎
07:54
|
(9) Нет там больше событий...
|
|||
12
new1snik
15.08.13
✎
08:03
|
Кстати, если нажимать Enter после ввода данных в ячейку, то курсор не перестает мигать, то есть ячейка все еще редактируется...
|
|||
13
new1snik
15.08.13
✎
08:10
|
(10) Поставил точки останова в процедуре ПриИзменении, все работает корректно.
Или значения чего смотреть нужно? |
|||
14
Cyberhawk
15.08.13
✎
08:14
|
(13) никаких точек останова для (10) не нужно
|
|||
15
new1snik
15.08.13
✎
08:15
|
(14) Я тогда тебя не совсем понял, ну остановлю я отладку, когда элементы формы станут некликабельны, и что мне смотреть?
|
|||
16
Cyberhawk
15.08.13
✎
08:17
|
Напиши последовательность действий мышкой, пронумеруй, останови отладку перед нужным
|
|||
17
new1snik
15.08.13
✎
08:30
|
(16) Ок, тормознул отладку сразу после заполнения неправильной ячейки. Потом шелкнул на элемент формы и меня перекинуло на процедуру:
Процедура ТабличноеПолеЗаправкиГСМПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) мВидДвиженияГСМ = ДанныеСтроки.ВидДвиженияГСМ; ТекКолонка = ЭлементыФормы.ТабличноеПолеЗаправкиГСМ.ТекущаяКолонка; Если (мВидДвиженияГСМ = Перечисления.уатВидыДвиженияГСМ.ЗаправкаСклад ИЛИ мВидДвиженияГСМ = Перечисления.уатВидыДвиженияГСМ.ЗаправкаТалоны) Тогда Если ОформлениеСтроки.Ячейки.ПластиковаяКарта.Видимость Тогда ОформлениеСтроки.Ячейки.ПластиковаяКарта.ТолькоПросмотр = Истина; ОформлениеСтроки.Ячейки.ПластиковаяКарта.ЦветФона = Новый Цвет(244, 239, 225); КонецЕсли; Если ОформлениеСтроки.Ячейки.Сумма.Видимость Тогда ОформлениеСтроки.Ячейки.Сумма.ТолькоПросмотр = Истина; ОформлениеСтроки.Ячейки.Сумма.ЦветФона = Новый Цвет(244, 239, 225); КонецЕсли; Если ОформлениеСтроки.Ячейки.Валюта.Видимость Тогда ОформлениеСтроки.Ячейки.Валюта.ТолькоПросмотр = Истина; ОформлениеСтроки.Ячейки.Валюта.ЦветФона = Новый Цвет(244, 239, 225); КонецЕсли; Если ОформлениеСтроки.Ячейки.Цена.Видимость Тогда ОформлениеСтроки.Ячейки.Цена.ТолькоПросмотр = Истина; ОформлениеСтроки.Ячейки.Цена.ЦветФона = Новый Цвет(244, 239, 225); КонецЕсли; КонецЕсли; Если ДанныеСтроки.Ссылка.Проведен Тогда ОформлениеСтроки.Ячейки.Картинка.ИндексКартинки = 0; ИначеЕсли ДанныеСтроки.Ссылка.ПометкаУдаления Тогда ОформлениеСтроки.Ячейки.Картинка.ИндексКартинки = 1; Иначе ОформлениеСтроки.Ячейки.Картинка.ИндексКартинки = 2; КонецЕсли; ОформлениеСтроки.Ячейки.Картинка.ОтображатьКартинку = Истина; уатИнтерфейсВводаТС.ТабличноеПолеПриВыводеСтроки(ОформлениеСтроки.ДанныеСтроки.ТС, ОформлениеСтроки.Ячейки.ТС, Организация); КонецПроцедуры Поставил точку останова в первом условии: оно выполняется и код работает. Потом поставил точку останова в уатИнтерфейсВводаТС.ТабличноеПолеПриВыводеСтроки(ОформлениеСтроки.ДанныеСтроки.ТС, ОформлениеСтроки.Ячейки.ТС, Организация); тоже все работает. |
|||
18
new1snik
15.08.13
✎
08:39
|
Есть почти копия базы, где все работает как надо. Можно ли как то сравнить различия двух документов? По настройкам элементов и кода?
|
|||
19
Cyberhawk
15.08.13
✎
10:53
|
(18) конечно http://www.v8.1c.ru/overview/DeveloperCompUn.htm
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |