Создание процедуры обработки события в общем модуле



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

Создадим объект конфигурации Общий модуль в ветке «Общие» / «Общие модули» и назовем его «РаботаСДокументами». Он будет содержать следующий текст:

 

Ключевое слово «Экспорт» в конце оператора «Процедура» как раз указывает на то, что эта процедура может быть доступна из других программных модулей.

Затем в модуле формы изменим текст обработчика:

 

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

 

Теперь проверьте, как это работает. Все должно работать правильно.

 

Теперь осталось и для поля «Цена» установить такой же обработчик. Так как однажды уже была написана в модуле формы нужная процедура, то просто можно было бы ее сопоставить также и другому событию другого элемента управления, расположенного в форме. Однако, стандарты разработки конфигураций фирмы «1С» не допускают такого решения. Согласно стандартам «1С», у каждого события должен быть свой обработчик. Если одинаковые действия должны выполняться при изменении разных элементов управления (например, при нажатии разных кнопок), то в этом случае следует поступать так:

· создается отдельная процедура (функция), выполняющая необходимые действия;

· для каждого элемента управления создается отдельный обработчик с именем, назначенным по умолчанию;

· из каждого обработчика вызывается требуемая процедура (функция).

 

Поэтому создадим обработчик события «ПриИзменении» для поля ввода, которое расположено в колонке «Цена» и повторим в нем вызов процедуры «РассчитатьСумму» из общего модуля:

 

Запустим 1С:Предприятие в режиме отладки и убедимся, что теперь сумма в строках табличной части документов «ПриходнаяНакладная» пересчитывается как при изменении количества, так и при изменении цены.

 

Создание документа «ОказаниеУслуги»

Теперь аналогичным образом создадим второй документ – «ОказаниеУслуги». Для этого потребуется выполнить следующие действия:

1. создать новый объект конфигурации Документ «ОказаниеУслуги» с реквизитами:

· «Склад», тип «СправочникСсылка.Склады»;

· «Клиент», тип «СправочникСсылка.Клиенты»;

· «Мастер», тип «СправочникСсылка.Сотрудники»;

2. создать табличную часть этого документа «ПереченьНоменклатуры» с реквизитами:

· «Номентклатура», тип «СправочникСсылка.Номенклатура»;

· «Количество», тип «Число», длина 15, точность 3, неотрицательное;

· «Цена», тип «Число», длина 15, точность 2, неотрицательное;

· «Сумма», тип «Число», длина 15, точность 2, неотрицательное;

3. создать основную форму документа;

4. для полей ввода колонок «Количество» и «Цена» создать обработчик события «ПриИзменении», в котором вызвать процедуру «РассчитатьСумму» из общего модуля «РаботаСДокументами».

 

В результате документ «ОказаниеУслуги» будет выглядеть следующим образом:

Теперь запустим 1С:Предприятие в режиме отладки и убедимся, что при вводе цены и количества в табличную часть документа «ОказаниеУслуги» сумма пересчитывается по созданному алгоритму.

Оформить отчет по лабораторной работе и ответить на контрольные вопросы.

Отчет оформляется стандартно, с обязательным указанием номера лабораторной работы, ее темы, сведений о лице, выполнившем лабораторную работу (ФИО, № группы), должен быть указан порядок выполнения работы (последовательность действий, какие объекты были созданы, их роль и обоснование необходимости создания), который должен подтверждаться необходимыми скриншотами и/или алгоритмами.

 

Контрольные вопросы к защите

1. Для чего предназначен объект конфигурации «Документ»?

2. Какими характерными особенностями обладает документ?

3. Для чего предназначены реквизиты и табличные части документа?

4. Какие существуют основные формы документа?

5. Что такое проведение документа?

6. Чем отличается оперативное проведение документа от неоперативного?

7. Что такое оперативная отметка времени?

8. Как создать объект конфигурации «Документ» и описать его основную структуру?

9. Как создать новый документ и заполнить его данными?

10. Как создать собственную форму документа?

11. Что такое конструктор форм?

12. Что такое элементы управления?

13. Что такое события и с чем они связаны?

14. Что такое обработчик события и как его создать?

15. Что такое модуль и для чего он нужен?

16. Зачем нужны общие модули?

17. Как сделать процедуру доступной в разных модулях?

18. Как назначить обработчик события?

19. Что такое типообразующие объекты?

 


Дата добавления: 2015-12-20; просмотров: 20; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!