Как обратиться к менеджеру документа в 1с
(4) Ну ведь имя документа на этот момент ты же знаешь
Документы[ДокументСсылка.Метаданные().Имя].ПечатьТОРГ12();
(5) вот реальный код:
Объект = ДокументЭлемент.Регистратор.ПолучитьОбъект(); // тип Документ объект: Реализация товаров и услуг
ТабличныйДокумент = Объект.ПечатьТОРГ12();
! Метод объекта не обнаружен (ПечатьТОРГ12)
(7) Так метод ПечатьТОРГ12() где находится?
В модуле менеджера? или в модуле объекта?
(6) А ПечатьТОРГ12() экспортная?
(8) в модуле менеджера.
кажется я понял
Документы[ДокументСсылка.Метаданные().Имя].ПечатьТОРГ12(МассивОбъектов, ОбъектыПечати);
(11) Если она не экспортная, как ты к ней вообще обращаться собрался?
(5) читаем: модуль менеджера!
(12) блин. а как же тогда напечатать документ программно?
Точнее получить табличный документ.
(14) типовая7
(16)используй процедуру модуля менеджера печать().
там есть параметр КоллекцияПечатныхФорм
(14) В типовых конфигурациях процедура печати должна быть экспортной, иначе печать документов будет не возможна.
Посмотрите повнимательнее, может есть другая какая-нибудь процедура печати — экспортная.
да, все правильно. в модуле менеджера процедура Печать() экспортная 🙂
В общем я все понял, всем спасибо за помощь 🙂
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший
Использование модуля объекта, модуля менеджера объекта и общих модулей
Область применения: управляемое приложение, мобильное приложение, обычное приложение.
Методическая рекомендация (полезный совет)
1. Модуль объекта предназначен для реализации поведения отдельного экземпляра объекта ( СправочникОбъект , ДокументОбъект и т.п.). В модуле объекта размещаются процедуры и функции, которые работают с данными объекта ( ЭтотОбъект и переменные модуля объекта), в том числе когда он еще не записан в информационную базу.
Например, в модуле объекта могут размещаться:
- обработчики событий объекта
- процедуры заполнения экземпляра объекта.
Следует иметь в виду, что для вызова экспортных процедур и функций модуля объекта из других модулей может потребоваться предварительно получить сам экземпляр объекта из информационной базы с помощью метода ПолучитьОбъект . При этом происходит загрузка объекта из базы целиком, вместе с его табличными частями, что достаточно ресурсоемко.
2. Модуль менеджера объекта предназначен для размещения «статической» функциональности, которая логически неразрывно связана с объектом метаданных, но не зависит от состояния конкретного экземпляра объекта данных. Это могут быть процедуры и функции:
- относящиеся не к одному, а сразу к некоторой совокупности объектов. Например, это функции для вывода на печать списка объектов; функции, возвращающие информацию, общую для всех экземпляров объекта метаданных; процедуры обновления данных информационной базы, которые связаны с объектом метаданных; и т.п.
- которые работают с объектом, записанным в ИБ. В таких функциях входным параметром является ссылка на объект. Например, это функции для получения печатной формы по ссылке на объект, процедуры формирования движений по ссылке на объект и т.п.
Для выполнения функций модуля менеджера объекта не должен требоваться экземпляр объекта данных ( СправочникОбъект , ДокументОбъект и т.п.).
3. Если функциональность невозможно однозначно отнести к тому или иному объекту метаданных, то она является логически общей для нескольких объектов. В этом случае ее следует размещать в общем модуле .
Менеджер 1С
Платформе 1С 8.3. менеджер 1С необходим для организации работы с объектами метаданных. Посредством менеджера 1С создаются новые экземпляры справочников, документов, осуществляется поиск и выборка объектов, получаются формы и макет, а также выполняется другая работа, не связанная с конкретным экземпляром объекта.
Менеджер объекта 1С
Для доступа к тому или иному объекту конфигурации 1С необходимо сначала обратиться к менеджеру этого объекта. Например, для управления документом, как объектом конфигурации, следует обратиться к менеджеру документа, а для управления справочником, как объектом конфигурации, нужно обратиться к менеджеру справочника.
Для обращения к менеджеру объекта, сначала необходимо воспользоваться свойством глобального контекста. Например, для обращения к документу нужно воспользоваться свойством Документы, а для обращения к справочнику — Справочники.
Узнать, какое свойство за какой объект отвечает, можно в синтакс-помощнике в разделе Глобальный контекст, подразделе Свойства.

Если в модуле написать название свойства глобального контекста, и поставить «.» (или Ctrl + Space), то появится контекстная подсказка в которой, будут отображены все объекты этого прототипа, существующие в конфигурации на данный момент. Например, справочники.

После выбора конкретного объекта, мы уже обратимся к менеджеру этого объекта. Например, к менеджеру справочника.
Справочники.Контрагенты
И нам будут доступны все свойства и методы менеджера объекта. Заметим, что менеджер объекта даёт доступ не к конкретному экземпляру объекта, а ко всему объекту в целом.
Все свойства и методы менеджера нужного объекта можно посмотреть в синтакс-помощнике. Например, для справочника будет следующий путь.

А для документа, следующий:

Так мы получаем доступ к менеджеру конкретного справочника Контрагенты.
Справочники.Контрагенты
А так, к менеджеру документа Счет.
Документы.Счет
Естественно, и справочник Контрагенты, и документ Счет уже созданы в конфигурации.
Если после получения доступа к менеджеру объекта, мы поставим точку или выполним комбинацию клавиш Ctrl + Space, то появится контекстная подсказка со свойствами и методами менеджера объекта.

Подробно об этих методах можно почитать в синтакс-помощнике. Например, о методах менеджера справочника.

Например, в случае справочника, при помощи этих методов можно найти элемент, создать элемент, получить выборку и т.д.
Создать экземпляр объекта справочника можно так:
НовыйЭлемент = Справочники.Контрагенты.СоздатьЭлемент();
Где СоздатьЭлемент() – это функция менеджера справочника, которая возвращает новый экземпляр объекта.
А получить выборку элементов справочника можно так:
Выборка = Справочники.Контрагенты.Выбрать();
Где Выбрать() – это функция менеджера справочника, которая возвращает выборку элементов.
К примеру, получить выборку всех элементов и вывести в сообщение их наименование можно так:
Выборка = Справочники.Контрагенты.Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Наименование); КонецЦикла;
Модуль менеджера 1С
Помимо методов менеджеров объектов, которые предоставляет платформа 1С можно создать собственные методы того или иного объекта. Делается это в модуле менеджера 1С. Открыть модуль менеджера объекта 1С достаточно просто: необходимо в дереве конфигурации выделить нужный объект, вызвать контекстное меню, и выполнить команду «Открыть модуль менеджера» этого меню.

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

Теперь, мы можем обратиться к этому методу посредством менеджера конкретного справочника.
Справочники.Контрагенты.ВывестиСправочник();
Т.е. с помощью модуля менеджера мы можем создавать свойства и методы, которые будут применимы только к конкретному справочнику, документу и т.д.
Читайте также по теме:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
Модуль менеджера и модуль объекта в 1С
В новых версиях конфигураций системы 1С:Предприятие многие функции и процедуры переместились из модулей объектов (документов, справочников и т.д.) в модули менеджера. Рассмотрим различия между этими двумя модулями.
Согласно теории объектно-ориентированного программирования, методы объектов делятся на две группы: статические и простые. Простые методы имеют доступ только к конкретному экземпляру класса. Статические методы не имеют доступа к данным объектов, а работают с классом в целом.
Если перевести все это в термины системы 1С:Предприятие, то Модуль объекта содержит простые методы. Для их использования необходимо сначала получить конкретный объект: элемент справочника, документа и т.п. Модуль менеджера содержит статические методы. Для его использования нет необходимости отдельно получать каждый конкретный объект, он позволяет работать со всей коллекцией сразу.
Модуль объекта может иметь процедуры и функции, которые можно использовать извне. Для этого такая процедура или функция обозначается словом Экспорт.
Функция Новая Функция ( ) Экспорт
Для того, чтобы использовать такую функцию из модуля объекта, нужно сначала, имея ссылку на необходимый объект, получить его с помощью функции ПолучитьОбъект().
ЭлементСправочника = Справочники . Номенклатура . НайтиПоКоду ( «000000001» ) ;
Объект = ЭлементСправочника . ПолучитьОбъект ( ) ;
Пер = Объект . НоваяФункция ( ) ;
Аналогично можно создавать новые переменные, которые могут быть использованы из различных объектов конфигурации.
Перем НоваяПеременная Экспорт
ЭлементСправочника = Справочники . Номенклатура . НайтиПоКоду ( «000000001» ) ;
Объект = ЭлементСправочника . ПолучитьОбъект ( ) ;
Объект . НоваяПеременная = ) ;
Таким образом можно дополнять стандартные процедуры, функции и свойства (переменные) объектов. Такие переменные являются динамическими, они не сохраняются в информационной базе и существуют только во время работы с полученным объектом.
Модуль менеджера имеет все те же возможности, разница лишь в том, что для его использования не нужно получать конкретный объект, модуль менеджера позволяет работать со всей коллекцией объектов определенного типа.