Студопедия — Одна процедура для обработки нескольких событий
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Одна процедура для обработки нескольких событий






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

  • В режиме конфигуратор:

Добавим объект конфигурации Общий модуль. Для этого раскроем ветвь Общие в дереве объектов конфигурации, нажав на + слева от нее. Затем выделим ветвь Общие модули и нажмем кнопку Добавить в командной панели окна конфигурации:

Рис. 4.5. Общие модули


Назовем его РаботаСДокументами и установим в его свойствах флажок Клиент (управляемое приложение), а флажок Сервер снимем. Это означает, что экземпляры этого модуля будут скомпилированы в контексте тонкого клиента и в контексте веб-клиента

Рис. 4.6. Свойства: РаботаСДокументами


Внесем в общий модуль следующий текст:

Процедура РассчитатьСумму(строкаТабличнойЧасти) Экспорт
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена;
КонецПроцедуры

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

 

&НаКлиенте
Процедура МатериалыКоличествоПриИзменении (Элемент)
СтрокаТабличнойЧасти. = Элементы.Материалы.ТекущиеДанные;
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры

Создадим обработчик события ПриИзменении для поля табличной части МатериалыЦена так же, как мы делали это для поля Материалы Количество, и повторим в нем вызов процедуры РассчитатьСумму из общего модуля.
- Листинг процедуры «МатериалыЦенаПриИзменении()»

 

&НаКлиенте
Процедура МатериалыЦенаПриИзменении (Элемент)
СтрокаТабличнойЧасти. = Элементы.Материалы.ТекущиеДанные;
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры

  • В режиме 1С: Предприятие:

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

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

  • В режиме конфигуратор:

Добавим новый объект конфигурации Документ и назовем его ОказаниеУслуги.
- На закладке Основные: Представление объекта задавать не будем, вместо него будет исполь­зоваться Синоним объекта. Представление списка зададим как Оказание услуг.
- На закладке Подсистемы: отметим, что документ будет доступен в подсистемах Оказание услуг и Бухгалтерия.
- На закладке Данные:
создадим реквизиты документа:

  • Склад, тип СправочникСсылка.Склады. Выберем для свойства Значение заполнения предопределенный элемент Основной спра­вочника Склады.
  • Клиент, тип СправочникСсылка.Клиенты. Установим свойство Проверка заполнения в значение Выдавать ошибку.
  • Мастер, тип СправочникСсылка.Сотрудники. Установим свойство Проверка заполнения в значение Выдавать ошибку.

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

  • Номенклатура, тип СправочникСсылка.Номенклатура;
  • Количество, тип Число, длина 15, точность 3, неотрицательное;
  • Цена, тип Число, длина 15, точность 2, неотрицательное,
  • Сумма, тип Число, длина 15, точность 2, неотрицательное;

Установим для табличной части в целом и для каждого ее реквизита свойство Проверка заполнения в значение Выдавать ошибку.
- На закладке Формы: создадим основную форму документа:
Для поля ПереченьНоменклатурыКоличество создадим обработчик события ПриИзменении, в котором будем вызывать процедуру РассчитатьСумму из общего модуля РаботаСДокументами.
При этом откроется модуль формы с шаблоном обработчика события ПереченьНоменклатурыКоличествоПриИзменении, который мы пока заполнять не будем, а перейдем в окно элементов формы на закладку Форма и аналогичным образом создадим обработчик события ПереченьНоменклатурыЦенаПриИзменении для поля ПереченьНоменклатурыЦена.
Далее модуль формы документа ОказаниеУслуги нужно заполнить следующим образом:

Листинг 4.2. Модуль формы документа «ОказаниеУслуги»

В заключение отредактируем командный интерфейс, чтобы в под­системе Оказание услуг была доступна команда создания новых документов.
Для разнообразия воспользуемся другим способом. Откроем окно редактирования объекта конфигурации Подсистема ОказаниеУслуг и нажмем кнопку Командный интерфейс.
В открывшемся окне отразятся все команды выбранной подсистемы.
В группе Панель действий.Создать включим видимость у команды Оказание услуги: создать

Рис. 4.7. Видимость у команды Оказание услуги: создать

В режиме1С:Предприятие:

В панели действий раздела Оказание услуг вызовем команду соз­дания документа Оказание услуги и заполним его следующим образом:

Рис. 4.8. Оказание услуги

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

 

 







Дата добавления: 2015-04-16; просмотров: 886. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

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

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Дизартрии у детей Выделение клинических форм дизартрии у детей является в большой степени условным, так как у них крайне редко бывают локальные поражения мозга, с которыми связаны четко определенные синдромы двигательных нарушений...

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

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Особенности массовой коммуникации Развитие средств связи и информации привело к возникновению явления массовой коммуникации...

Тема: Изучение приспособленности организмов к среде обитания Цель:выяснить механизм образования приспособлений к среде обитания и их относительный характер, сделать вывод о том, что приспособленность – результат действия естественного отбора...

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия