- •Лабораторная работа 7. Справочники и Перечисления
- •7.1. Справочник "Фирмы"
- •7.1.1. Закладка "Данные"
- •7.1.2. Закладка "Нумерация"
- •7.1.3. Закладка "Формы"
- •7.1.4. Закладка "Макеты"
- •7.1.5. Закладка "Интерфейсы"
- •7.2. Справочник "Подразделения"
- •7.2.1. Закладка "Иерархия"
- •7.2.2. Закладка "Владельцы"
- •7.2.3. Закладка "Нумерация"
- •7.2.4. Закладка "Формы"
- •7.2.5. Закладка "Интерфейсы"
- •7.3. Самостоятельная работа: справочник "Сотрудники"
- •7.4. Справочник "ОсновныеСредства"
- •7.4.1. Реквизит "Фирма"
- •7.4.2. Перечисление "ГруппыОс" и реквизит "ГруппаОс"
- •7.4.3. Реквизит "ЕстьДетали"
- •7.4.4. Табличная часть "СписокДеталей"
- •7.4.5. Реквизиты "ДатаВвода" и "ДатаСписания"
- •7.4.6. Реквизит "Изображение"
- •7.4.7. Закладка "Нумерация"
- •7.5. Самостоятельная работа: справочник "Детали"
- •7.6. Работа со справочником из встроенного языка системы
- •7.6.1. Менеджер справочника
- •7.6.2. Организация выборки
- •7.6.3. Получение ссылки на элемент справочника
- •7.6.4. Работа с отдельными записями как с объектами
- •7.6.5. Закладка "Прочие" и Модуль объекта
- •7.7. Предопределенные записи в справочнике
- •7.8. Работа со справочниками в режиме "1с:Предприятие"
- •7.8.1. Ввод элементов в справочник "Фирмы"
- •7.8.2. Ввод элементов в справочник "Подразделения"
- •7.8.3. Ввод записей в справочник "Сотрудники"
- •7.9. Использование языка запросов
- •7.9.1. Конструктор запросов
- •7.9.2. Конструктор выходных форм
- •7.10. Что мы узнали
7.5. Самостоятельная работа: справочник "Детали"
В пункте 8 постановки задачи сказано: "Для каждой Детали необходимо, помимо ее наименования, хранить в ИБ ее цену в У.Е. Самостоятельно создайте справочник "Детали":
Упражнение №7.26. |
||||||||||||||||||||||||||||||||||||
Создайте самостоятельно в конфигурации новый справочник со следующим свойствами:
Необходимо ли для справочника указывать владельцев? Добавьте в справочник новый реквизит со следующим свойствами:
Внимание! Не забудьте изменить тип в реквизите "Деталь" справочника "ОсновныеСредства"! |
||||||||||||||||||||||||||||||||||||
7.6. Работа со справочником из встроенного языка системы
Для того чтобы обратиться к справочникам из встроенного языка системы необходимо воспользоваться свойством Справочники глобального контекста. Это свойство имеет тип СправочникиМенеджер.
7.6.1. Менеджер справочника
Чтобы обратиться к конкретному справочнику необходимо его имя записать "через точку", например: Справочники.Фирмы.
Такая запись имеет тип СправочникМенеджер.<Имя справочника> - это менеджер конкретного справочника, который имеет только методы:
для организации выборки,
для поиска отдельных записей,
для получения макета,
для получения формы справочника,
для создания отдельных записей.
7.6.2. Организация выборки
Для того чтобы открыть выборку записей в справочнике необходимо применить либо метод .Выбрать(…), либо метод .ВыбратьИерархически(…).
Приведем ряд примеров.
В предыдущем разделе мы с помощью конструктора печати написали в модуле формы списка справочника "Фирмы" процедуру Печать(), в которой цикл выборки выглядит следующим образом:
Процедура Печать(Элемент) …………………… Выборка = Справочники.Фирмы.Выбрать(); Пока Выборка.Следующий() = Истина Цикл Объект = Выборка.ПолучитьОбъект(); Секция = Макет.ПолучитьОбласть("Элемент"); Секция.Параметры.Код = Объект.Код; Секция.Параметры.Наименование = Объект.Наименование; ТабДок.Вывести(Секция); КонецЦикла; ………………………
Обычно метод .Выбрать() применяют для неиерархических справочников. Если справочник имеет два и более уровня, то в таких случаях лучше применять метод .ВыбратьИерархически(…), поскольку он открывает выборку с учетом иерархии записей.
Для того чтобы привести пример иерархической выборки, сформируем с помощью Конструктора печати макет для формы списка справочника "Подразделения".
Упражнение №7.27. |
Для справочника "Подразделения" вызовите Конструктор печати и сформируйте макет печатной формы для печати списка записей. После чего "вручную" укажите вызов процедуры печать из новой кнопки нижней командной панели инструментов. |
Откроем модуль основной формы списка справочника "Подразделения" и обратим внимание на цикл выборки из процедуры "Печать":
……………………………………………………………… Выборка = Справочники.Подразделения.ВыбратьИерархически(); Пока Выборка.Следующий() = Истина Цикл Объект = Выборка.ПолучитьОбъект(); Если Объект.ЭтоГруппа = Истина Тогда Секция = Макет.ПолучитьОбласть("Группа"); Секция.Параметры.Код = Объект.Код; Секция.Параметры.Наименование = Объект.Наименование; ТабДок.Вывести(Секция); Иначе Секция = Макет.ПолучитьОбласть("Элемент"); Секция.Параметры.Код = Объект.Код; Секция.Параметры.Наименование = Объект.Наименование; ТабДок.Вывести(Секция); КонецЕсли; КонецЦикла; ………………………………………………………………
В этих примерах переменная Выборка имеет тип СправочникВыборка. Свойствами этого типа будут имена всех реквизитов справочника и его табличных частей. Кроме этого свойство ЭтоГруппа позволяет определить является ли текущая выбранная запись группой или это элемент.
Методов у этого типа данных всего три:
Следующий();
УровеньВВыборке();
ПолучитьОбъект();
Метод .Следующий() извлекает очередную запись из выборки, к полям которой можно обратиться через свойства объекта.
Метод УровеньВВыборке() имеет смысл применять, если выборка была открыта методом ВыбратьИерархически(…). Номер уровня отсчитывается от 0.
Упражнение №7.28. |
Внесите изменения в алгоритм работы процедуры Печать() из модуля формы списка "Подразделения" и его макет таким образом, чтобы результирующий табличный документ отображал бы колонку "Владелец". Удалите комментарии конструктора и исправьте текст процедуры. |
