Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Обработчик события




Как мы уже видели, система сама умеет работать с теми объектами, которые описаны в дереве конфигурации: показывать их данные, добавлять новые элементы и пр. То есть у нее есть некие «стан- дартные представления» о том, как это все должно работать.

Но, как правило, разработчиков эти «стандартные представления» устраивают только в самых простых случаях. Реальные задачи гораздо разнообразнее. Поэтому у системы существуют события, которые связаны с самыми различными моментами ее «стандарт- ного» функционирования. В том числе события, связанные с функ- ционированием форм и элементов, расположенных в этих формах.

Используя встроенный язык, разработчик может «вклиниться» в эти события и описать собственный алгоритм того, что должно происхо- дить при наступлении этого события. Что мы сейчас и сделаем.

Дважды щелкнем на элементе формы МатериалыКоличество или правой кнопкой мыши откроем для него палитру свойств (пункт контекстного меню Свойства).

Прокрутив список до конца, мы увидим перечень событий, которые могут быть связаны с этим полем.

Очевидно, что нам нужно событие ПриИзменении, которое возникает после изменения значения поля. Найдем его в списке событий и нажмем кнопку открытия  со значком лупы в поле ввода (рис. 4. 21).

Система предложит окно для выбора типа обработчика события, который мы хотим создать (рис. 4. 22).

Оставим без изменения вариант Создать на клиенте, предложенный по умолчанию. Пока мы не будем более подробно рассматривать этот момент. Вернемся к этому вопросу позднее в разделе «Директивы компиляции» на стр. 205.


1С: Предприятие 8. 3. Практическое пособие разработчика

 

 

Рис. 4. 21. Создание обработчика события «ПриИзменении» поля табличной части «Количество»

 

Рис. 4. 22. Окно для выбора типа создаваемого обработчика события

 

После этого система создаст шаблон процедуры обработчика этого события в модуле нашей формы и откроет закладку Модуль редактора формы (рис. 4. 23).

Модуль – это «хранилище» для текста программы на встроенном языке. Модулей существует несколько, и каждый из них предна- значен для описания алгоритмов, относящихся к тому или иному моменту работы программы. В данном случае это модуль формы, так как обработчики всех интерактивных событий, связанных с элемен- тами формы, помещаются именно в модуль формы.


Занятие 4



 

Рис. 4. 23. Шаблон обработчика события «ПриИзменении» поля табличной части «Количество»

 

В модуль формы, в процедуру МатериалыКоличествоПриИзменении()

мы и добавим следующий текст (листинг 4. 1).

 

листинг 4. 1. Процедура «МатериалыКоличествоПриИзменении()»

 

Объясним назначение этих строк.

В первой строке мы сначала создаем переменную СтрокаТаблич- нойЧасти, в которую будет помещен объект, содержащий данные, находящиеся в строке табличной части, которую нам нужно пересчи- тать.

Мягкая типизация данных встроенного языка позволяет сделать это, не объявляя переменную и ее тип заранее. Мы создаем переменную прямо по ходу работы, и ее тип определяется типом значения, которое она содержит.

Поскольку мы находимся в модуле формы, то в нем доступны все свойства и методы объекта встроенного языка УправляемаяФорма. Поэтому мы можем обращаться к ним напрямую. В данном случае после знака равенства мы обращаемся к коллекции элементов формы, используя одно из свойств объекта УправляемаяФорма – свойство Элементы.

Коллекция элементов формы является объектом встроенного языка ВсеЭлементыФормы, содержащим все элементы формы. То есть это программный аналог корня дерева элементов формы.

Каждый элемент формы можно получить, указав его имя в качестве свойства этого объекта, то есть через точку от него. В данном случае мы обращаемся к табличной части документа Материалы (Элементы. Материалы).


Табличная часть документа представляет собой объект встроенного языка ТаблицаФормы. Получить ту строку, в которой в настоящее время осуществляется редактирование, можно при помощи свойства программного объекта ТаблицаФормы – ТекущиеДанные (Элементы. Материалы. ТекущиеДанные).

Таким образом, в результате выполнения первой строки процедуры обработчика переменная СтрокаТабличнойЧасти будет содержать объект ДанныеФормыСтруктура. Этот объект содержит данные, находящиеся в текущей строке табличной части документа (Элементы. Материалы. ТекущиеДанные).

Получив этот объект, мы можем обратиться к данным конкретной колонки табличной части, указав имя колонки в качестве свойства объекта. Например, используя обращение СтрокаТаблич- нойЧасти. Количество, мы получаем число, которое находится в редак- тируемой строке в колонке Количество.

Таким образом, во второй строке процедуры обработчика вычисля- ется значение колонки Сумма как произведение значений колонок Количество и Цена.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...