В модели разработки прикладных решений на платформе 1С:Предприятие для ряда сущностей предметной области используется объектный подход работы с данными.
Эти сущности описываются в конфигурации объектами метаданных: Справочник, Документ, ПланВидовХарактеристик, ПланСчетов и ПланВидовРасчета. Рассмотрим принципы работы с таблицами, хранящими данные этих сущностей. Для чтения данных может быть использована табличная модель запросов. Для внесения изменений (редактирования записей, создания новых записей) и чтения данных используется объектная модель доступа к данным.
Рассмотрим часть типов, используемых в объектной модели доступа к данным платформы 1С:Предприятия 8 на примере работы с объектами метаданных Справочники.
Тип СправочникиМенеджер предназначен в основном для доступа к менеджерам конкретных справочников. Рассмотрим пример кода на встроенном языке 1С:
Справочники.Номенклатура.СоздатьЭлемент();
Первая часть строки «Справочники» является обращением к контексту всех справочников конфигурации.
Тип СправочникМенеджер предоставляют доступ к действиям, относящимся к конкретному справочнику в целом. В рамках рассмотренного выше примера обращение в целом к справочнику номенклатуры происходит за счет конструкции «Справочники.Номенклатура».
В контексте справочника номенклатуры есть типовые методы платформы позволяющие работать с данными:
Справочники.Номенклатура.Выбрать(); // обеспечивает выборку данных из таблицы,
Справочники.Номенклатура.НайтиПоКоду(“00001”); // искать запись в таблице по значению кода
Так же в целом для справочника определен метод получения макета, который востребован при разработке вывода данных справочника на печать:
Справочники.Номенклатура.ПолучитьМакет("РеестрНоменклатуры");
Для расширения методов менеджера справочника и обработки событий используется модуль менеджера. Модуль - часть конфигурации, предназначенная для хранения текста на встроенном языке.
Модуль менеджера предназначен для описания методов относящихся к объекту метаданных конфигурации (в целом к таблице), а не к его экземплярам (записям) в базе данных. В этом модуле могут быть описаны функции и процедуры, обращающиеся к совокупности объектов или работающие с уже записанным объектом.
Открыть модуль менеджера можно на закладке “Прочее” в окне свойства объекта конфигурации или через контекстное меню в дереве конфигурации:
Чтобы созданная в модуле менеджера процедура дополнила методы менеджера справочника и могла вызываться в других модулях она должна быть определена с ключевым словом Экспорт.
Рассмотрим теперь назначение типов СправочникСсылка и СправочникОбъект.
Значение типа СправочникСсылка – хранит ссылку, идентифицирующую запись в таблице справочника. Фактически значение СправочникСсылка хранит только внутренний идентификатор, хранящийся в стандартном реквизите Ссылка таблицы справочника. Это значение хранится в полях других таблиц базы данных, выбирается в поле ввода, указывается в параметрах запроса при поиске по ссылке и т.д. Приведенный выше пример вызова метода НайтиПоКоду() возвращает как раз ссылку на найденный элемент справочника.
Значение типа СправочникОбъект используется в основном для создания нового объекта, изменения существующего объекта и удаления объекта.
СпрОб = Справочники.Номенклатура.СоздатьЭлемент();
Модуль объекта предназначен для реализации поведения отдельного экземпляра объекта (отдельной записи в таблице). В модуле объекта размещаются процедуры и функции, которые работают с данными объекта (ЭтотОбъект и переменные модуля объекта), в том числе, когда он еще не записан в информационную базу.
Следует иметь в виду, что для вызова экспортных процедур и функций модуля объекта из других модулей требует получения объекта из информационной базы с помощью метода ПолучитьОбъект(). При этом происходит загрузка объекта из базы целиком, вместе с его табличными частями, что достаточно ресурсоемко.
Использованные материалы:
https://its.1c.ru/db/metod8dev/content/2700/hdoc
https://its.1c.ru/db/v8std/content/486/hdoc
Материал подготовлен компанией БИА Технолоджис