Как отловить любое изменение табличной части? #248030


#0 by Гений 1С
То бишь у меня есть колонка табличного поля, мне нужно отлавливать любую попытку редактирования этой колонки (начало редактирования - чтобы запретить и конец редактирования - чтобы проверить допустимость введенного значения). В колонке - поле ввода, можно делать быстрый подбор вводом текста. Как быть, какие события отлавливать?
#1 by Господин ПЖ
ОкончаниеВводаТекста ?
#2 by Гений 1С
Там есть еще и кнопка выбора... Блин, насколько я понимаю в событии ПриИзменении нельзя посмотреть предыдущее значение поля, короче, мне нужно посмотреть что было и что пользователь выбрал, чтобы при некоторых сочетаниях не дать ему изменить... Например нельзя менять А на Б, но можно менять А на Ц.
#3 by Гений 1С
Вот как например мне отловить, что пользователь начал вводить какой-то текст и отменить его ввод - типа нефиг вводить, это поле редактировать нельзя? С выбором из списка понятно - я обрубаю в событии начало выбора из списка.
#4 by asady
Если речь идет о ТЧ прикладного объекта, то можно в обработчике события ПриИзменении предыдущее значение узнать запросом к объекту.
#5 by Гений 1С
гонишь, если я дважды сделаю изменение тч, фиг запросом узнаешь...
#6 by Рэйв
Помоему пока незакончено редактирование элемента формы будет: имхо.
#7 by Гений 1С
Ошибаешься, я проверил...
#8 by asady
сабж был узнать про изменение ТЧ - запросом ты стопудов узнаешь про первое изменение и про второе изменение(если оно отличается от первого)
#9 by asady
обработчик события Синтаксис: ПередНачаломИзменения(<Отказ>) Параметры: <Отказ> Тип: Булево. Признак отказа от изменения. Если в теле процедуры-обработчика установить данному параметру значение Истина, интерактивное изменение строки не начнется. Значение по умолчанию: Ложь Описание: Возникает перед началом интерактивного изменения строки табличного поля.
#10 by Scooter
ПодключитьОбработчикИзмененияДанных ?
#11 by Гений 1С
Чисто для асади. В ячейке было изначально 1. Потом я поставил туда 2, затем 3, запрос мне всегда вернет 1. Секешь? Работает только на первую ячейку, которую меняем, это перед началом изменения строки. Если начинаем менять вторую ячейку, не закрывая редактирования строки, не срабатывает. На табличные поля не работает. Только на нетабличные поля ввода, флажки и т.п.
#12 by Гений 1С
Короче, я вспомнил, как это делается. Вот вам пример - в мемориз... Выдираю кусок из своего кода, чтобы показать, как удобно обрабатывать эти все события, голимая 1С, не могла нормальных обработчиков нафтыкать:
#13 by Scooter
+ "Могут быть указаны данные, связанные с реквизитами формы, табличными частями, а также подчиненные данные - реквизиты этих объектов."
#14 by Гений 1С
уже пробовал, на практике не работает...
#15 by Гений 1С
Некоторые события ловит, некоторые нет, не помню какие, короче было дело, проверял
#16 by Гений 1С
Тема ушла в мемориз:
#17 by КонецЦикла
А нельзя ли было при начале редактирования запомнить в переменной а при окончании - сравнить с ЭТОЙ переменной?
#18 by Гений 1С
Так и сделано в коде, только нет такого события - при начале редактирования поля. Есть событие приначалередактирования строки, в принципе можно туда подвязываться, но так как сделал я, более просто. ;-)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С