Модуль объекта и модуль менеджера в объектной модели доступа к данным

В модели разработки прикладных решений на платформе 1С:Предприятие для ряда сущностей предметной области используется объектный подход работы с данными.

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

   Рассмотрим часть типов, используемых в объектной модели доступа к данным платформы 1С:Предприятия 8 на примере работы с объектами метаданных Справочники.

Тип СправочникиМенеджер предназначен в основном для доступа к менеджерам конкретных справочников. Рассмотрим пример кода на встроенном языке 1С:

Справочники.Номенклатура.СоздатьЭлемент();

Первая часть строки «Справочники» является обращением к контексту всех справочников конфигурации.

Тип СправочникМенеджер предоставляют доступ к действиям, относящимся к конкретному справочнику в целом. В рамках рассмотренного выше примера обращение в целом к справочнику номенклатуры происходит за счет конструкции «Справочники.Номенклатура».  

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


Справочники.Номенклатура.Выбрать(); // обеспечивает выборку данных из таблицы,

Справочники.Номенклатура.НайтиПоКоду(“00001”); // искать запись в таблице по значению кода

 

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


Справочники.Номенклатура.ПолучитьМакет("РеестрНоменклатуры");

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

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

Открыть модуль менеджера можно на закладке “Прочее” в окне свойства объекта конфигурации или через контекстное меню в дереве конфигурации:

 

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

Рассмотрим теперь назначение типов СправочникСсылка и СправочникОбъект.

Значение типа СправочникСсылка – хранит ссылку, идентифицирующую запись в таблице справочника. Фактически значение СправочникСсылка хранит только внутренний идентификатор, хранящийся в стандартном реквизите Ссылка таблицы справочника. Это значение хранится в полях других таблиц базы данных, выбирается в поле ввода, указывается в параметрах запроса при поиске по ссылке и т.д. Приведенный выше пример вызова метода НайтиПоКоду() возвращает как раз ссылку на найденный элемент справочника.

 

Значение типа СправочникОбъект используется в основном для создания нового объекта, изменения существующего объекта и удаления объекта.

СпрОб = Справочники.Номенклатура.СоздатьЭлемент();

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

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

Использованные материалы:

https://its.1c.ru/db/metod8dev/content/2700/hdoc

https://its.1c.ru/db/v8std/content/486/hdoc

 

Материал подготовлен компанией БИА Технолоджис