Щелкните правой кнопкой мыши на поле ввода в колонке
Количество и откройте для него палитру свойств (пункт контекстного меню Свойства). Прокрутите список до конца, и вы обнаружите перечень событий, которые могут быть связаны с этим полем
ввода.
С большинством элементов управления связаны различные
события, и именно с их помощью разработчик может влиять на ход работы программы.
УЗНАЙ БОЛЬШЕ!
Подробнее
об обработчиках событий можно прочитать в главе Обработчики
событий.
Среди событий, связанных с полем ввода, найдите событие
При изменении. Это событие возникает после изменения значения поля ввода.
Щелкните по кнопке с лупой в конце поля ввода, и система
создаст заготовку процедуры обработчика
этого события в модуле нашей формы (рис. 3.10).

Рис.
3.10. Выберем событие «При изменении», и система создаст
заготовку процедуры в модуле формы…
Модуль – это «хранилище» для текста программы на встроенном языке. В конфигурации
существует большое количество модулей, которые расположены в различных ее точках.
Они могут принадлежать некоторым объектам конфигурации (например, формам), а могут
существовать сами по себе (принадлежать всей конфигурации в целом). Текст программы,
содержащийся в модулях, будет использоваться платформой в заранее известные моменты
работы системы 1С:Предприятие.
В модуль формы, в процедуру МатериалыКоличествоПриИзменении() добавим следующий текст (листинг 3.1):
Листинг
3.1.
Процедура МатериалыКоличествоПриИзменении()
СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные;
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество
* СтрокаТабличнойЧасти.Цена;
Объясним назначение этих строк.
В первой строке
мы обращаемся к программному объекту ЭлементыФормы. Этот объект является коллекцией значений, содержащей все элементы управления,
расположенные на нашей форме. Каждый элемент управления формы можно получить, указав
его имя в качестве свойства объекта ЭлементыФормы. В данном случае мы обращаемся к элементу управления с именем Материалы (ЭлементыФормы.Материалы).
Этот элемент управления отображает строки табличной
части нашего документа. Получить ту строку, в которой в настоящее время осуществляется
редактирование, можно при помощи свойства программного объекта ТабличноеПоле – ТекущиеДанные. Таким образом, в результате
выполнения первой строки переменная СтрокаТабличнойЧасти будет содержать объект ДокументТабличнаяЧастьСтрока.ПриходнаяНакладная.Материалы, в котором находятся редактируемые данные.
Во второй строке вычисляется сумма как произведение
количества и цены. Объект ДокументТабличнаяЧастьСтрока.<имя> позволяет обратиться к данным конкретной колонки, указав имя колонки в
качестве свойства объекта (например, СтрокаТабличнойЧасти.Количество).
Теперь посмотрим, как это работает. В окне программы
откроем список документов ПриходнаяНакладная и откроем любой из двух созданных
нами документов. Если теперь вы поменяете количество в любой строке документа, то
сумма в строке будет пересчитана автоматически.
Замечательно. Но теперь хотелось бы и для поля Цена сделать то же самое. А если заглянуть вперед, то мы увидим, что подобное
автоматическое заполнение поля Сумма может нам понадобиться и в других документах. Поэтому
лучше будет поместить расчет суммы в некотором «общедоступном» месте, чтобы разные
документы, имеющие аналогичные реквизиты табличной части, могли использовать этот
алгоритм.
Для описания таких «общедоступных»
мест служат объекты конфигурации Общий модуль, расположенные в ветке Общие4 Общие модули. Процедуры и функции, содержащиеся в этих модулях,
могут быть доступны для любых объектов конфигурации.