Имя: Пароль:
1C
1С v8
Хочу сделать универсальную команду заполнения колонки таблицы на упр.форме
0 tciban
 
27.06.16
11:44
Уважаемые коллеги! Пытаюсь сделать некую универсальную команду или просто процедуру, которая делала бы следующее - при нажатии кнопки запрашивала бы значение, соответствующее текущей активной ячейке таблицы управляемой формы и затем заполняла бы этим значением все ячейки выделенных строк в текущей колонке. В принципе почти получилось, но затем вдруг понял - а как же быть с событиями ПриИзменении? Ведь если мы изменим например колонку "Количество" - нужно пересчитать суммы и суммы НДС. Кто нибудь делал или видел где либо подобное?
1 Timon1405
 
27.06.16
11:49
да
2 lodger
 
27.06.16
11:50
берем и тыркаем для всех изменившихся то что в ПриИзменении. проблем то?
3 tciban
 
27.06.16
11:53
(2) Как это технически сделать? попробовал через Вычислить - ругается, хочет функцмю...

Действие = Элементы.Спецификация.ТекущийЭлемент.ПолучитьДействие("ПриИзменении");
Вычислить(ДопПараметры.Действие+"("+Элемент+")");
4 tciban
 
27.06.16
11:53
(1) Где видел? Как делал?
5 Wern
 
27.06.16
11:55
(3) Вычислить замени на выполнить.
6 tciban
 
27.06.16
12:01
О! Остается решить еще 2 проблемы: Как получить ссылку на Элемент, что бы передать его параметром в обработчик события и как пределить поля, недоступные для записи, ну например такие как НомерСтроки?
7 lodger
 
27.06.16
12:14
(6) "передать его параметром в обработчик события"
Если обработчик события не заточен под параметры есть шаманский мув - заколхозить реквизит формы и инициализировать его перед вызовом Действия, а в обработчике проверять этот реквизит и работать через него если надо, иначе продолжать по стандарту. после вычислить сбрасывать реквизит на неопределено.
"как пределить поля, недоступные для записи"
их конечное число заранее известных полей, опишите исключения перед основным кодом команды.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.