АСБЕС информационный портал

Фотоистория












Как нас обслуживают


Ищу знакомства

Я

Ищу

от до лет

знакомства

Система Orphus

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

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

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

Листинг 3.2. Процедура РассчитатьСумму()

Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт

 

   СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;

 

КонецПроцедуры

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

Затем в модуле нашей формы изменим текст нашего обработчика (листинг 3.3):

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

Процедура МатериалыКоличествоПриИзменении(Элемент)

 

   СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные;

   //  

   РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

 

КонецПроцедуры

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

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

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

УЗНАЙ БОЛЬШЕ!

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

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

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

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

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

Листинг 3.4. Процедура МатериалыЦенаПриИзменении()

Процедура МатериалыЦенаПриИзменении(Элемент)

 

   СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные;

   //  

   РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

 

КонецПроцедуры

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

Адресно-телефонный справочник

Поиск предприятий









Друзья сайта

  • Все для веб-мастера
  • Программы для всех
  • Мир развлечений
  • Лучшие сайты Рунета
  • Кулинарные рецепты
  • Статистика

     

    Онлайн всего: 18
    Гостей: 18
    Пользователей: 0
    Если вы хотите добавить на сайт информацию о вашей организации (предприятии) заполните ФОРМУ
    Если Вы обнаружили орфографическую ошибку выделите ее мышью и нажмите Ctrl+Enter. Если информация о вашей организации не соответствует действительности сообщите об этом.
    Любое использование информации допускается только при активной ссылке на сайт http://asbest.name