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

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

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






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

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



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

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

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

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

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

Оценка качества Анализ документации. Имеющийся рецепт, паспорт письменного контроля и номер лекарственной формы соответствуют друг другу. Ингредиенты совместимы, расчеты сделаны верно, паспорт письменного контроля выписан верно. Правильность упаковки и оформления....

СПИД: морально-этические проблемы Среди тысяч заболеваний совершенно особое, даже исключительное, место занимает ВИЧ-инфекция...

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

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

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