Имя: Пароль:
1C
1С v8
Блокировка элемнтов формы. В чем причина?
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
AdBlock убивает бесплатный контент. 1Сергей