Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы1-7.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
29.1 Mб
Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Методов у этого типа данных всего три: Следующий(); УровеньВВыборке(); ПолучитьОбъект();

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

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

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

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

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

Результат 7.28

7.6.3. Получение ссылки на элемент справочника

У менеджера справочника есть три метода, которые позволяют найти необходимую запись в справочнике и получить на нее ссылку: НайтиПоКоду(…); НайтиПоНаименованию(…); НайтиПоРеквизиту(…).

Все эти методы возвращают в качестве значения тип данных СправочникСсылка.<Имя справочника>.

При организации выборки Вы также можете получить ссылку на выбранную запись как на объект, если обратитесь к свойству Ссылка типа данных СправочникВыборка.<Имя справочника>.

7.6.4. Работа с отдельными записями как с объектами

У объектов типа СправочникСсылка.<Имя справочника> и СправочникВыборка.<Имя справочника> есть метод ПолучитьОбъект(), который позволяет получить доступ к объекту типа СправочникОбъект.<Имя справочника>.

Объект этого типа обладает достаточным набором свойств и методов, которые позволяет не только прочитать все поля записи из ИБ, но изменить эту запись, сохранив сделанные в ОП изменения.

Свойствами этого объекта являются все реквизиты справочника, поэтому обращаться к ним можно "через точку" по имени. А с полным набором методов можно ознакомится в документации.

У объекта типа СправочникМенеджер.<Имя справочника> есть два метода, которые позволяют создавать новые записи в справочнике: СоздатьГруппу(); СоздатьЭлемент().

Кроме этого новая запись может быть получена путем применения метода .Скопировать() у типов данных СправочникОбъект и СправочникСсылка. При этом процесс создания новой записи программным путем может выглядеть следующим образом:

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

Рисунок 7.15 - Закладка "Прочие".

Тот же вывод верен и для изменения (модификации) существующих записей.

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

Этот модуль предназначен для обработки системных событий связанных с конкретной записью, ее созданием, заполнением, записью в ИБ и удалением.