Привет!
Есть таблица на управляемой форме я хочу в цикле пройтись по всем ее строкам и изменить значение в колонке "количество". Сказано — сделано... но при этом хотелось бы чтоб программное изменение инициировало каскад событий которые происходят при интерактивном изменении поля "количество", а именно, пересчет суммы в строке, пересчет суммы НДС, проверка допустимости введенного значения кол-ва, пересчет суммы всего документа и т.д. Можно конечно в цикле после изменения значения последовательно вызывать все многочисленные процедурки. Но... покапавшись в справке нашел несколько методов ТаблицыФормы которые как мне показалось должны эмитировать интерактивное редактирование строки:
ИзменитьСтроку() - Начинает интерактивное изменение данных текущей строки, аналогично выполнению команды "Изменить".
ЗакончитьРедактированиеСтроки(<ОтменаРедактирования>) - Позволяет закончить или отменить редактирование текущей строки.
Обновить() - Обновляет данные в таблице.
Начал писать код в предвкушении, что после вызова метода ЗакончитьРедактированиеСтроки(Ложь) автоматически произойдут все события и пересчет связанных значений:
Однако этого не произошло:( Я что-то делаю не так или я вообще не правильно понял смысл этих методов ИзменитьСтроку(), ЗакончитьРедактированиеСтроки()?
(3) автоматически - только при интерактивном изменении
(0) почитай что-нить про разработку управляемых форм.
По сути алгоритма: программно изменил, программно и запусти пересчёт нужных тебе полей.
ИзменитьСтроку(); - вводит строку в режим интерактивного редактирования, проверь отладчиком вход в ПриНачалеРедактирования
ЗакончитьРедактированиеСтроки(Ложь); - закрывает интерактивное редактирование строки, проверяй ПередОкончаниемРедактирования и ПриОкончанииРедактирования
изменил Количество - да без разницы, интерактивно ничего не изменялось, события поля/формы не запускаются
Обновить() - нечего обновлять, ты и так изменял НаКлиенте
совсем правильно: Перейди в процедуру НаСервере (форма отправится на сервер полностью), через Объект.ххх полностью (!!!!) пересчитай таблицу, как тебе нужно и вернись НаКлиент (форма приедет на клиент в готовом виде, обновлять ничего не нужно)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший