Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №7 «Справочники и перечисле...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
732.16 Кб
Скачать

7.5. Самостоятельная работа: справочник "Детали"

В пункте 8 постановки задачи сказано: "Для каждой Детали необходимо, помимо ее наименования, хранить в ИБ ее цену в У.Е. Самостоятельно создайте справочник "Детали":

Упражнение №7.26.

Создайте самостоятельно в конфигурации новый справочник со следующим свойствами:

Свойство

Значение

Имя:

Детали

Синоним:

Детали

Комментарий:

Список деталей

Иерархический справочник:

Вид иерархии:

Иерархия групп и элементов

Ограничение количества уровней иерархии:

Количество уровней иерархии:

4

Необходимо ли для справочника указывать владельцев?

Добавьте в справочник новый реквизит со следующим свойствами:

Свойство

Значение

Группа свойств "Основные:"

Имя:

ЦенаУЕ

Синоним:

Цена УЕ

Комментарий:

Цена в УЕ

Группа свойств "Тип:"

Тип:

Число

Длина:

14

Точность:

2

Неотрицательное:

Внимание! Не забудьте изменить тип в реквизите "Деталь" справочника "ОсновныеСредства"!

7.6. Работа со справочником из встроенного языка системы

Для того чтобы обратиться к справочникам из встроенного языка системы необходимо воспользоваться свойством Справочники глобального контекста. Это свойство имеет тип СправочникиМенеджер.

7.6.1. Менеджер справочника

Чтобы обратиться к конкретному справочнику необходимо его имя записать "через точку", например: Справочники.Фирмы.

Такая запись имеет тип СправочникМенеджер.<Имя справочника> - это менеджер конкретного справочника, который имеет только методы:

  • для организации выборки,

  • для поиска отдельных записей,

  • для получения макета,

  • для получения формы справочника,

  • для создания отдельных записей.

7.6.2. Организация выборки

Для того чтобы открыть выборку записей в справочнике необходимо применить либо метод .Выбрать(…), либо метод .ВыбратьИерархически(…).

Приведем ряд примеров.

В предыдущем разделе мы с помощью конструктора печати написали в модуле формы списка справочника "Фирмы" процедуру Печать(), в которой цикл выборки выглядит следующим образом:

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

Обычно метод .Выбрать() применяют для неиерархических справочников. Если справочник имеет два и более уровня, то в таких случаях лучше применять метод .ВыбратьИерархически(…), поскольку он открывает выборку с учетом иерархии записей.

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

Упражнение №7.27.

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

Откроем модуль основной формы списка справочника "Подразделения" и обратим внимание на цикл выборки из процедуры "Печать":

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

В этих примерах переменная Выборка имеет тип СправочникВыборка. Свойствами этого типа будут имена всех реквизитов справочника и его табличных частей. Кроме этого свойство ЭтоГруппа позволяет определить является ли текущая выбранная запись группой или это элемент.

Методов у этого типа данных всего три:

  • Следующий();

  • УровеньВВыборке();

  • ПолучитьОбъект();

Метод .Следующий() извлекает очередную запись из выборки, к полям которой можно обратиться через свойства объекта.

Метод УровеньВВыборке() имеет смысл применять, если выборка была открыта методом ВыбратьИерархически(…). Номер уровня отсчитывается от 0.

Упражнение №7.28.

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

Удалите комментарии конструктора и исправьте текст процедуры.