#std486¶
Использование модуля объекта, модуля менеджера объекта и общих модулей¶
1.¶
Модуль объекта отвечает за поведение
конкретного экземпляра объекта
(СправочникОбъект, ДокументОбъект и т.п.).
Размещайте в нем процедуры и функции,
которые работают с данными объекта
(ЭтотОбъект и переменные модуля),
в том числе когда объект еще не записан в базу.
Например:
- обработчики событий объекта;
- процедуры заполнения экземпляра.
Учитывайте, что для вызова экспортных процедур и функций
из других модулей обычно нужно сначала получить экземпляр
через ПолучитьОбъект().
Это загружает объект целиком вместе с табличными частями и может быть ресурсоемко.
2.¶
Модуль менеджера предназначен для "статической" логики,
которая относится к объекту метаданных,
но не зависит от состояния конкретного экземпляра.
Это могут быть процедуры и функции:
- относящиеся к совокупности объектов: печать списка, общая информация для всех экземпляров, обновление данных, связанное с объектом метаданных;
- работающие с уже записанным объектом, когда на вход передается ссылка: печатная форма по ссылке, формирование движений по ссылке.
Для функций модуля менеджера
не должен требоваться экземпляр объекта данных
(СправочникОбъект, ДокументОбъект и т.п.).
3.¶
Если функциональность нельзя однозначно отнести к одному объекту метаданных, она считается общей для нескольких объектов.
В таком случае размещайте ее в общем модуле.