Студопедия — Перебор элементов справочника внутри заданного родителя.
Студопедия Главная Случайная страница Обратная связь

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

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






В этом случае алгоритм будет точно таким же, что и при полном переборе справочника, за исключением одного предварительного шага. Требуется до инициализации выборки установить конкретного родителя (т.е. группу), внутри которого будет осуществляться поиск. Для этих целей можно использовать следующую последовательность действий:

Спр=СоздатьОбъект("Справочник.Материалы"); СпрГруппа=СоздатьОбъект("Справочник.Материалы"); СпрГруппа.НайтиПоНаименованию("Топливо"); Спр.ИспользоватьРодителя(СпрГруппа.ТекущийЭлемент()); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Предупреждение(Спр.ТекущийЭлемент().Наименование); КонецЦикла;

6. Перебор элементов подчиненного справочника.

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

Спр=СоздатьОбъект("Справочник.Модели"); СпрМарка=СоздатьОбъект("Справочник.Марки"); СпрМарка.НайтиПоНаименованию("SАMSUNG"); Спр.ИспользоватьВладельца(СпрМарка.ТекущийЭлемент()); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Предупреждение(Спр.ТекущийЭлемент().Наименование); КонецЦикла;

 

 

1. Создайте в чистой конфигурации Справочник «Сотрудники» (реквизиты Код, Наименование, Оклад); Код, Наименование создаются автоматически, необходимо создать реквизит Оклад

 

 

2. Создайте подчиненный ему справочник НалоговыеЛьготы.

 

 

3. Создайте Справочник Должности (2 уровня).

 

 

4. Создайте объект конфигурации Обработка с названием ЗаписьСправочника. Щелкните два раза по созданному объекту обработка. Добавьте на форму диалога (закладка Диалог) этой обработки два поля для ввода значений (значок Реквизит диалога на панели Редактора форм внизу). У первого поля будет идентификатор – ФИО, у второго – Оклад. Добавьте текстовое поле с заголовком «Введите ФИО и оклад сотрудника». Должно получиться вот так:

Рис.1

Измените заголовок кнопки Выполнить на Записать.

Перейдите на закладку Модуль. В теле процедуры «Выполнить» создайте процедуру записи элементов в справочник Сотрудники (см.теоретическую часть). Для того чтобы в теле процедуры обратиться к введенным в форму значениям ФИО и Оклада, необходимо использовать идентификаторы этих полей.

Например, Спр.Наименование=ФИО, где ФИО- идентификатор поля для ввода фамилии на форме;

СпрСотр = СоздатьОбъект("Справочник.Сотрудники");

СпрСотр.Новый();

СпрСотр.Наименование=ФИО;

СпрСотр.Оклад=Оклад;

СпрСотр.Записать();

(Процедура Выполнить запускается автоматически при нажатии кнопки Записать в режиме Конфигуратора. Это настраивается на закладке Дополнительно для кнопки. В поле Формула прописывается имя запускаемой процедуры).

 

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

• Иванов Иван Иванович, оклад 10000

• Петров Петр Петрович, оклад 12000

• Светлов Михаил Петрович, оклад 8000

• Цветков Антон Васильевич, оклад 5200

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

 

5. Перейдите на форму списка справочника Сотрудники.

 

 

6. Добавьте на форму кнопку Поиск.

 

На вкладке дополнительно в поле формула для этой кнопки укажите вызов процедуры ПоискЭлемента().

 

Добавьте также поле для ввода Фамилии (идентификатор Реквизит) (см. рис.2).

 

Рис.2

 

 

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

 

 

Процедура ПоискЭлемента ()

 

СпрСотр=СоздатьОбъект("Справочник.Сотрудники");

 

Если СпрСотр.НайтиПоНаименованию(ФИО)=1 Тогда

Предупреждение("Найденный элемент справочника "+ "имеет код "+СпрСотр.ТекущийЭлемент().Код);

 

Иначе

Предупреждение("Элемент с заданным наименованием "+"не найден");

КонецЕсли;

 

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

 

 

7. Аналогичным образом создайте на форме еще одну кнопку Удалить. При нажатии на эту кнопку должно осуществляться удаление сотрудника с указанной в поле ФИО фамилией.

 

 

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

Расширьте свою процедуру перебора: перебор должен осуществляться только по сотрудникам, оклад у которых больше заданного. Сумма оклада задается пользователем.

 

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

 

Руководители

• Директор

• Начальник отдела

Служащие

• Продавец

• Администратор

• Кассир

Обслуживающий персонал

• Техничка

• Сантехник

 

 

10. Заполните подчиненный справочник НалоговыеЛьготы следующими данным в режиме Предприятие:

 

(владелец Петров Петр Петрович)

• Льгота ветеранам

• Льгота на детей

(владелец Светлов Михаил Петрович)

• Льгота афганцам

 

Для справочника Сотрудники создайте процедуру, которая осуществит перебор элементов подчиненного справочника НалоговыеЛьготы (элемент-владелец задается пользователем на форме справочника).

 







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



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

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

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

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

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

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

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