Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Контрольные вопросы:

  • Какими характерными особенностями обладает документ.
  • Для чего предназначены реквизиты и табличные части документа.
  • Какие существуют основные формы документа.
  • Что такое проведение документа.
  • Как создать объект конфигурации Документ и описать его основную структуру.
  • Как создать новый документ и заполнить его данными.
  • Как создать собственную форму документа.
  • Что такое конструктор форм.
  • Что такое редактор форм.
  • Что такое элементы формы.
  • Что такое события и с чем они связаны.
  • Что такое обработчик события и как его создать.
  • Что такое модуль и для чего он нужен.
  • Зачем нужны общие модули.
  • Что такое типообразующие объекты.

 



<== предыдущая лекция | следующая лекция ==>
Типы данных. Типообразующие объекты конфигурации | Метрология, стандартизация и сертификация
Поделиться с друзьями:


Дата добавления: 2018-11-11; Мы поможем в написании ваших работ!; просмотров: 213 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Велико ли, мало ли дело, его надо делать. © Неизвестно
==> читать все изречения...

2456 - | 2137 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.