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

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

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






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

Спр=СоздатьОбъект("Справочник.Материалы"); СпрГруппа=СоздатьОбъект("Справочник.Материалы"); СпрГруппа.НайтиПоНаименованию("Топливо"); Спр.ИспользоватьРодителя(СпрГруппа.ТекущийЭлемент()); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=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; просмотров: 420. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Виды сухожильных швов После выделения культи сухожилия и эвакуации гематомы приступают к восстановлению целостности сухожилия...

КОНСТРУКЦИЯ КОЛЕСНОЙ ПАРЫ ВАГОНА Тип колёсной пары определяется типом оси и диаметром колес. Согласно ГОСТ 4835-2006* устанавливаются типы колесных пар для грузовых вагонов с осями РУ1Ш и РВ2Ш и колесами диаметром по кругу катания 957 мм. Номинальный диаметр колеса – 950 мм...

Философские школы эпохи эллинизма (неоплатонизм, эпикуреизм, стоицизм, скептицизм). Эпоха эллинизма со времени походов Александра Македонского, в результате которых была образована гигантская империя от Индии на востоке до Греции и Македонии на западе...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

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

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