Разработка и Конфигурация · 11 мин
Где находится модуль менеджера в 1С и как его открыть
Где находится модуль менеджера в 1С: как открыть его в конфигураторе, чем отличается от модуля объекта, когда редактировать и какие ошибки допускают разработчики.
Модуль менеджера в 1С — это специальный программный модуль, который существует у объектов конфигурации, имеющих «менеджер»: справочников, документов, планов видов характеристик, планов счетов, регистров, бизнес-процессов, задач и некоторых других. В нём размещают процедуры и функции, которые работают не с конкретным элементом или документом, а с объектом в целом: поиск данных, создание новых элементов, формирование печатных форм, служебные операции.
Найти модуль менеджера можно только в конфигураторе — в пользовательском режиме «1С:Предприятие» программный код недоступен. Путь к нему зависит от типа объекта, но логика везде одинаковая: модуль открывается из контекстного меню объекта в дереве конфигурации.
Что такое модуль менеджера и зачем он нужен
Менеджер объекта — это программный интерфейс для работы с объектом метаданных как с типом, а не с отдельным экземпляром. Например, у справочника «Номенклатура» менеджер доступен в коде как Справочники.Номенклатура, и через него вызываются методы вроде НайтиПоКоду(), СоздатьЭлемент(), а также экспортные процедуры и функции, которые разработчик разместил в модуле менеджера.
Типичное содержимое модуля менеджера — функции печати (ДобавитьКомандыПечати, Печать), обработчики получения данных для полей ввода (ОбработкаПолученияДанныхВыбора), процедуры заполнения по умолчанию и вспомогательные функции, которые вызываются из других частей конфигурации. В типовых конфигурациях именно здесь часто находится логика формирования печатных форм документов.
Важно понимать: модуль менеджера компилируется и на клиенте, и на сервере (в зависимости от директив компиляции), поэтому код в нём должен учитывать контекст исполнения. Обращение к серверным данным из клиентского контекста приведёт к ошибке.
Как открыть модуль менеджера в конфигураторе
Основной способ — через дерево конфигурации. Запустите конфигуратор, откройте конфигурацию командой «Конфигурация → Открыть конфигурацию» (если дерево пустое). Затем раскройте нужную ветку: «Справочники», «Документы», «Регистры сведений» и так далее.
Найдите конкретный объект, нажмите на него правой кнопкой мыши и в контекстном меню выберите пункт «Открыть модуль менеджера». Если такого пункта нет — значит, у данного типа объекта менеджер не предусмотрен (например, у констант или подсистем его нет).
- 1Запустите конфигуратор и откройте конфигурацию (Конфигурация → Открыть конфигурацию)
- 2В дереве конфигурации раскройте ветку нужного типа объектов, например «Документы»
- 3Найдите объект, например «РеализацияТоваровУслуг»
- 4Нажмите правую кнопку мыши и выберите «Открыть модуль менеджера»
- 5Откроется окно редактора кода — можно просматривать и редактировать процедуры и функции
Альтернативный путь — через окно свойств объекта: двойной клик по объекту открывает палитру свойств, но быстрее всё же контекстное меню. Также модуль можно найти через глобальный поиск по конфигурации (Ctrl+Shift+F), если вы знаете имя процедуры, которая в нём находится.
Где физически хранится модуль менеджера
Модуль менеджера не существует отдельным файлом на диске в обычной файловой базе — он хранится внутри файла конфигурации (1Cv8.cf в выгрузке или внутри файла 1Cv8.1CD файловой базы) в составе описания объекта метаданных. Поэтому «найти файл модуля» через проводник Windows не получится.
Исключение — выгрузка конфигурации в файлы (команда «Конфигурация → Выгрузить конфигурацию в файлы») или работа через EDT/хранилище с выгрузкой в XML-формат. В этом случае модуль менеджера выгружается как отдельный файл с именем ManagerModule.bsl в каталоге соответствующего объекта.
Конфигурация\Documents\РеализацияТоваровУслуг\Ext\ManagerModule.bslЗнание этого пути полезно при работе с системами контроля версий (например, при разборе конфигурации через EDT или Git-конвертеры): изменения в модуле менеджера видны именно как изменения файла ManagerModule.bsl.
Чем модуль менеджера отличается от модуля объекта
Это самая частая путаница у начинающих разработчиков. У одного и того же справочника или документа в контекстном меню есть оба пункта — «Открыть модуль объекта» и «Открыть модуль менеджера», и это принципиально разные модули.
| Критерий | Модуль объекта | Модуль менеджера |
|---|---|---|
| Контекст | Конкретный экземпляр (документ, элемент справочника) | Объект в целом, без привязки к экземпляру |
| Типичные обработчики | ОбработкаПроведения, ПередЗаписью, ПриКопировании | ОбработкаПолученияДанныхВыбора, печать, поиск |
| Доступ к реквизитам | Напрямую по имени реквизита | Нет — экземпляр нужно получить отдельно |
| Вызов извне | Через объект: ДокументОбъект.Процедура() | Через менеджер: Документы.Имя.Процедура() |
Практическое правило: если код должен работать с конкретным записываемым документом — это модуль объекта. Если код ищет данные, формирует печатную форму или создаёт новые элементы без открытия существующего — это модуль менеджера.
У каких объектов есть модуль менеджера
Менеджер существует не у всех объектов конфигурации. Он есть у справочников, документов, планов видов характеристик, планов счетов, планов видов расчёта, планов обмена, бизнес-процессов, задач, регистров (сведений, накопления, бухгалтерии, расчёта), журналов документов, перечислений, отчётов и обработок.
Модуля менеджера нет у констант, подсистем, общих модулей, ролей, интерфейсов и других «неприкладных» объектов. Если в контекстном меню объекта нет пункта «Открыть модуль менеджера» — проверьте, к какому типу относится объект.
Можно размещать экспортные процедуры и функции
Проверьте тип объекта — возможно, это константа или подсистема
Это нормально: пустой модуль не содержит процедур, пока разработчик их не добавил
Когда редактировать модуль менеджера и какие есть риски
Типичные сценарии редактирования: доработка печатной формы документа, добавление функции поиска или создания элементов, переопределение обработчика ОбработкаПолученияДанныхВыбора для настройки подбора в полях ввода, добавление команд печати через БСП (библиотеку стандартных подсистем).
Главный риск — доработка типовой конфигурации напрямую. Изменённый модуль менеджера будет сравниваться при обновлении, и ваша логика может конфликтовать с изменениями поставщика. Безопасные варианты: использовать расширение конфигурации (в расширениях модуль менеджера можно дорабатывать через механизм аннотаций &ИзменениеИКонтроль, &Вместо, &После) либо выносить код в общие модули и подсистему переопределяемых обработчиков, если конфигурация это поддерживает.
Ещё одна тонкость — директивы компиляции. Если процедура в модуле менеджера вызывается с клиента, но помечена &НаСервере и при этом обращается к недоступным в данном контексте объектам, вы получите ошибку исполнения. В модулях менеджера чаще всего используют директиву &НаСервере или оставляют код без директивы с учётом двойной компиляции.
Как проверить, что изменения работают
После редактирования модуля менеджера сохраните конфигурацию (F7 или «Конфигурация → Обновить конфигурацию базы данных» — если изменения затрагивают структуру; для чистого кода модулей достаточно обновления конфигурации БД). Затем запустите режим предприятия и вызовите изменённую функциональность: откройте печатную форму, поле ввода с подбором или выполните код через внешнюю обработку.
Для отладки поставьте точку останова в модуле менеджера и запустите отладку (F5). Обратите внимание: если код исполняется на сервере, в настройках отладки конфигуратора должно быть разрешено отладочное подключение к серверу, иначе точка останова не сработает.
Как проверить результат
Конфигурация обновляется без ошибок в окне сообщений
Ошибки «Процедура или функция не обнаружена» или «Переменная не определена»
Вызов Справочники.Имя.МояФункция() выполняется и возвращает значение
Ошибка «Метод объекта не обнаружен» — забыто ключевое слово Экспорт
Печать, подбор и поиск работают как раньше или лучше
Поля ввода перестали открывать список выбора — сломан обработчик получения данных выбора
Частые вопросы о модуле менеджера
Можно ли открыть модуль менеджера в режиме 1С:Предприятие?
Нет. Режим предприятия предназначен для работы с данными, а программный код доступен только в конфигураторе или в среде разработки 1C:EDT. Внешние обработчики (вроде «Консоли кода») позволяют выполнять произвольный код, но не редактируют модули конфигурации.
Почему модуль менеджера открывается пустым?
Это нормально: модуль существует у объекта всегда, но изначально не содержит кода. Пустой модуль — просто заготовка. Код появится, когда разработчик добавит туда процедуры и функции. В типовых конфигурациях модули менеджеров обычно заполнены, в самописных — часто пусты.
Как вызвать функцию из модуля менеджера?
Через менеджер объекта: Документы.РеализацияТоваровУслуг.МояФункция(Параметры). Функция обязательно должна быть объявлена с ключевым словом Экспорт, иначе она будет недоступна извне модуля.
Можно ли доработать модуль менеджера через расширение?
Да. Расширения конфигурации поддерживают доработку модулей менеджера: добавление собственных процедур и функций, а также изменение типовых через аннотации &ИзменениеИКонтроль, &Вместо и &После. Это рекомендуемый способ для обновляемых типовых конфигураций.
Чем модуль менеджера отличается от модуля формы?
Модуль формы привязан к конкретной форме объекта и работает с элементами интерфейса и данными формы. Модуль менеджера не связан с интерфейсом вообще — это серверная логика работы с типом объекта. Общий код лучше выносить из формы в модуль менеджера или общий модуль.
Где искать модуль менеджера при выгрузке конфигурации в файлы?
В каталоге выгрузки найдите папку типа объектов (например, Documents или Catalogs), затем папку конкретного объекта, внутри — подкаталог Ext, а в нём файл ManagerModule.bsl. Именно этот файл содержит код модуля менеджера.
Что важно запомнить
Модуль менеджера открывается в конфигураторе из контекстного меню объекта метаданных (справочника, документа, регистра). Он содержит код, работающий с объектом в целом, а не с конкретным экземпляром, и отличается от модуля объекта. Для доработок типовых конфигураций используйте расширения, а перед правками делайте резервную копию.