V. ИЕРАРХИЧЕСКИЙ СПРАВОЧНИК С ТАБЛИЧНОЙ ЧАСТЬЮ И СВЯЗЬ С ДОКУМЕНТОМ



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

Данный справочник будет сложный.

Кроме этого свяжем справочник Номенклатура услуг с документом Акт приема в ремонт. Создадим у данного документа табличную часть так, чтобы наименование услуги можно было выбрать из справочника.

 

1. Введите необходимые данные по справочнику, как показано на рис.

Рис. 66а.Установка наименования справочника Номенклатура услуг

Рис. 66б. Определение списка подсистем ,в которых участвует справочник

Рис. 66в. Установка признака иерархического справочника

Рис. 66г. Окно настройки подсистем

2. Откроем вкладку Данные документа АктПриемаВРемонт и добавим в табличную часть Услуги. Создадим следующие реквизиты табличной части для Услуги (рис. 66д):

- Имя – Услуга, Тип данных – СправочникСсылка.НоменклатураУслуг (рис. 66е).

- Имя – Цена, Тип данных – Число, Флаг – неотрицательное, Точность – 2 (рис. 66ж).

- Имя – Количество, Тип данных – Число, Флаг – неотрицательное, Точность – 0 (рис. 66з).

- Имя – Сумма, Тип данных – Число, Флаг – неотрицательное, Точность – 2 (рис. 66и).

Рис. 66д. Создание реквизитов табличной части

Рис. 66е. Свойства реквизита табличной части Услуга

Рис. 66ж. Свойства реквизита табличной части Цена

Рис. 66з. Свойства реквизита табличной части Количество

Рис. 66и. Свойства реквизита табличной части Сумма

3. Для ввода данных нам понадобится форма документа. Нажмем на закладку Формы. Нажимаем на кнопку Просмотр поля Форма документа. На экране появилось окно Конструктор формы документа(рис. 67а). Выбираем Форма документа. Нажимаем на кнопку Далее. Открывается окно с реквизитами создаваемой формы. Ничего не меняем. Нажимаем на кнопку Готово (рис. 67б).

Рис. 67а. Конструктор формы документа

Рис. 67б. Конструктор формы документа – Реквизиты формы

 

4. На экране откроется Окно редактирования форм, которое имеет три области: реквизиты, типы реквизитов, внешний вид формы (рис. 67в).

Рис. 67в. Окно редактирования формы документа

 

В верхнем левом поле представлены реквизиты документа Акт приема в ремонт (рис. 67г).

Рис. 67г. Элементы документа Акт приема в ремонт

 

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

Т.е. необходимо написать на встроенном языке команду, похожую на Сумма = Количество*Цена, которая будет выполняться при изменении значения поля Количество или Цена.

 

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

У системы существуют события, которые связаны с самыми различными моментами ее «стандартного» функционирования. В томчисле события, связанные с функционированием форм и элементов, расположенных в этих формах.

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

 

5. Дважды щелкните на элемент формы УслугиКоличество(рис. 67г) и откройте для него палитру свойств (пункт контекстного меню Свойства). Прокрутите список до конца, и вы обнаружите перечень событий, которые могут быть связаны с этим полем ввода.

Прокрутите список до конца, из перечня событий выберите События ПриИзменении . Нажмите на значок лупы в поле ввода. Система создаст шаблон процедуры обработка этого события в модуле формы и откроет закладку Модуль редактирования формы (рис. 68).

Рис. 68. Шаблон обработчика события «ПриИзменении» поля табличной части «Количество»

 

Для перехода между формой и модулем воспользуйтесь закладками , расположенными в нижней части Окна редактирования формы документа (рис. 67в).

 

Модуль – это «хранилище» для текста программы на встроенном языке. В данном случае это модуль формы, т.к. обработчики всех интерактивных событий, связанных с элементами формы, помещаются именно в модуль формы.

 

До процедуры УслугиКоличествоПриИзменении напишем процедуру расчета Суммы, которую необходимо будет вызывать при изменении Количества или Цены.

В первой части строки создадим переменную СтрокаТабличнойЧасти, в которую будет помещен объект, содержащий данные, находящиеся в строке табличной части ,которую необходимо пересчитать. Здесь не надо объявлять переменные заранее. Создаем переменную прямо по ходу работы, и ее тип определяется типом значения, которое она содержит.

Данная процедура должна вызываться каждый раз при изменении Количества.

В модуль формы рис. 68 добавим следующий текст для УслугиКоличествоПриИзменении:

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

Коллекция элементов формы является объектом встроенного языка ВсеЭлементыФормы, содержащим все элементы формы. Т.е. это программный аналог корня дерева элементов формы.

Каждый элемент формы можно получить, указав его имя в качестве свойства этого объекта, т.е. через точку от него. В данном случае обращение идет к табличной части Акт приема в ремонт (Элементы.Услуги).

Табличная часть документа представляет собой объект встроенного языка ТаблицаФормы. Получив ту строку ,в которой в настоящее время осуществляется редактирование ,можно при помощи свойства программного объекта ТаблицаФормы – ТекущиеДанные (Элементы.Услуги.ТекущиеДанные).

 

6. Аналогично создадим обработчик событий ПриИзменении для УслугиЦенаПриИзменении:

Данная процедура должна вызываться каждый раз при изменении Цены.

Обновим конфигурацию БД и запустим ее в режиме 1С: Предприятие. Проверим работу внесенных изменений.

ВВОД ДАННЫХВ БД

1. В справочнике НоменклатураУслуг ведем 3 группы услуг: Кузовной цех, Малярный цех, ТрейдИН (рис. 67д).

Рис. 67д. Форма создания группы справочника Номенклатура услуг

2. В каждую группу услуг введем не менее 6 записей. Данные для ввода сформулируйте самостоятельно по смыслу разрабатываемого решения (рис. 67е).

Рис. 67е.Форма создания элемента справочника Номенклатура услуг

3. Внесите не менее 10 Актов приема в ремонт (рис. 67ж).

Рис. 67ж. Форма для ввода данных по документу Акт приема в ремонт


Дата добавления: 2018-04-15; просмотров: 390; Мы поможем в написании вашей работы!

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






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