#std486

Использование модуля объекта, модуля менеджера объекта и общих модулей

1.

Модуль объекта отвечает за поведение конкретного экземпляра объекта (СправочникОбъект, ДокументОбъект и т.п.).

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

Например:

  • обработчики событий объекта;
  • процедуры заполнения экземпляра.

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

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

2.

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

Это могут быть процедуры и функции:

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

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

3.

Если функциональность нельзя однозначно отнести к одному объекту метаданных, она считается общей для нескольких объектов.

В таком случае размещайте ее в общем модуле.

См. также
Источник

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