48. В окне ФормаДокумента выберите Поле ввода в колонке Количество, МП, Свойства, должна появиться Палитра свойств, прокрутите список до конца, вы обнаружите перечень событий, которые могут быть связаны с этим полем ввода, в группе События в поле При изменении нажмите Лупа, система создаст заготовку процедуры обработчика этого события в модуле нашей формы.
Модуль — это «хранилище» для текста программы на встроенном языке. В конфигурации существует большое количество модулей, которые расположены в различных ее точка . Они могут принадлежать некоторым объектам конфигурации (например, формам), а могут существовать сами по себе (принадлежать всей конфигурации в целом).
49. В модуль формы добавьте код:
Пример 20.1. Процедура обработки события в модуле формы
Процедура МатериалКоличествоПриИзменении(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные; СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена; КонецПроцедуры
В первой строке мы обращаемся к программному объекту ЭлементыФормы. Этот объект является коллекцией значений, содержащей все элементы управления, расположенные на нашей форме. Каждый элемент управления формы можно получить, указав его имя в качестве свойства объекта ЭлементыФормы. В данном случае мы обращаемся к элементу управления с именем «Материалы» (ЭлементыФормы.Материалы).
Этот элемент управления отображает строки табличной части нашего документа. Получить ту строку, в которой в настоящее время осуществляется редактирование, можно при помощи свойства программного объекта ТабличноеПоле - ТекущиеДанные. Таким образом, в результате выполнения первой строки переменная СтрокаТабличнойЧасти будет содержать объект
ДокументТабличнаяЧастьСтрока.ПриходнаяНакладная.Материалы, в котором находятся редактируемые данные.
Во второй строке вычисляется сумма как произведение количества и цены. Объект ДокументТабличнаяЧастьСтрока.<имя> позволяет обратиться к данным конкретной колонки, указав имя колонки в качестве свойства объекта (например,
СтрокаТабличнойЧасти.Количество).
50 . Выберите Отладка | Начать отладку, на появившийся вопрос: редактируемая конфигурация отличается от конфигурации базы данных. Обновить конфигурацию базы данных? выберите Да, в окне Реорганизация информации выберите Принять.
51 . Теперь посмотрим, как это работает: выберите Операции | Документы, выберите любой документ ПриходнаяНакладная, теперь поменяйте количество в любой строке документа, сумма в строке должна будет пересчитана.
Замечательно. Но теперь хотелось бы и для поля «Цена» сделать то же самое. А если заглянуть вперед, то мы увидим, что подобное автоматическое заполнение поля «Сумма» может нам понадобиться и в других документах. Поэтому лучше будет поместить расчет суммы в некотором «общедоступном» месте, чтобы разные документы, имеющие аналогичные реквизиты табличной части, могли использовать этот алгоритм.