Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Практическая работа №6. Работа с обработчиком событий
Для определения поведения прикладных объектов отличного от стандартного и создания собственных алгоритмов их поведения используется встроенный язык. Программный код выполняется в заранее известных ситуациях, называемых событиями. В справочнике Контрагенты у нас храниться краткое и полное наименование контрагента. Логично предположить, что эти названия будут похожи. Следовательно, когда пользователь вводит краткое наименование желательно его же продублировать в полное, т.е. при событии изменение наименования необходимо выполнить определенные действия. Какие именно действия мы желаем выполнять при наступлении события, система сама предсказать не может. Необходимо самостоятельно написать процедуру, которая должна будет выполняться системой, и связать эту процедуру с тем событием, которое обрабатывается (Рис. 6.2). Для этого необходимо создать Форму Элемента/ Рисунок 6.1. Рисунок 6.2. Текст процедуры обработчика события: &НаКлиенте Процедура НаименованиеПриИзменении(Элемент) Если Объект.ПолноеНаименование = "" Тогда Объект.ПолноеНаименование = Объект.Наименование; КонецЕсли; КонецПроцедуры Помимо того, что имеется возможность выполнять какие-то действия при наступлении события, иногда можно управлять и соответствующими стандартными действиями платформы, т.е. фактически указывать, произойдет ли данное событие или нет. Рассмотрим следующую ситуацию: необходимо для каждой номенклатурной позиции указать ставку НДС, причем у услуг ставка НДС должна быть только 18%. В этом случае необходимо проверить при сохранении элемента, является ли данный элемент справочника услугой. Создадим справочник СтавкиНДС, для хранения всех возможных ставок НДС, в котором ставку 18% сделаем преопределенной. (рис. 6.3 –6.4) Рисунок 6.3. Рисунок 6.4. Рисунок 6.5 Рисунок 6.7. В справочнике «Номенклатура» добавим соответствующий реквизит (рис. 6.8) и выведем его на форму. Рисунок 6.8 Рисунок 6.9 В том случае, когда элемент номенклатуры является услугой и ставка НДС не 18%, необходимо указать пользователю на недопустимость данной ситуации и не записывать элемент до тех пор, пока пользователь либо не укажет нужную ставку НДС, либо не укажет, что это товар.
Для решения этой задачи воспользуемся обработчиком события ПередЗаписьюНаСервере (Рис. 6.10) Рисунок 6.10 Текст процедуры: &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Если ТекущийОбъект.Услуга И (ТекущийОбъект.ОсновнаяСтавкаНДС <>Справочники.СтавкиНДС.НДС18) Тогда Сообщить("У услуги ставка НДС может быть только 18%"); Отказ = Истина; КонецЕсли; КонецПроцедуры
|
|||||
Последнее изменение этой страницы: 2021-03-09; просмотров: 751; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.67.54 (0.006 с.) |