Как открыть модуль объекта 1с

Обновлено: 07.07.2024


Модуль объекта есть почти у всех основных прикладных объектов конфигурации в 1С.


Также модуль объекта можно открыть из контекстного меню объекта:


Или из меню Действия:


Модуль объекта выполняется при создании объекта. В нем можно объявлять переменные модуля. Экспортные процедуры и функции можно вызывать у созданных программных объектов. К экспортным переменным можно обращаться как к свойствам программных объектов. В модуле есть прямой доступ к реквизитам и табличным частям объекта.

Вызов методов модуля объекта


В модуле объекта напишем следующий код:

Теперь создадим обработку с одной формой и в модуле обработки в событии ПриСозданииНаСервере напишем следующий код:

Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка ) ОбъектНоменклатура = Справочники . Номенклатура . СоздатьЭлемент ( ) ; //заполняем экспортную переменную модуля объекта вызвав экспортную функцию ОбъектНоменклатура . ОбщийОстаток = ОбъектНоменклатура . ОбщийОстаток ( ) ;

Здесь мы сначала создаем новый программный объект справочника Номенклатура вызвав встроенный метод Справочники.Номенклатура.СоздатьЭлемент(). Потом через ссылку на этот объект обращаемся к экспортным переменной и функции объекта.

Теперь поменяем код в модуле формы обработки на следующий:

Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка ) ОбъектНоменклатура = Справочники . Номенклатура . СоздатьЭлемент ( ) ; //пытаемся заполнить переменную модуля объекта вызвав функцию модуля объекта ОбъектНоменклатура . ПолноеНаименование = ОбъектНоменклатура . ПолноеНаименованиеНоменклатуры ( ) ; Сообщить ( ОбъектНоменклатура . ПолноеНаименование ) ; //ошибка

Здесь мы делаем все то же самое, но обращаемся к не экспортным переменной и функции.


Так как переменная ПолноеНаименование не является экспортной, то к ней нет доступа из других модулей.

Теперь попробуем обратиться к не экспортной функции модуля объекта. Вставим в модуль формы следующий код и откроем обработку:

Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка ) ОбъектНоменклатура = Справочники . Номенклатура . СоздатьЭлемент ( ) ; Сообщить ( ОбъектНоменклатура . ПолноеНаименованиеНоменклатуры ( ) ) ; //опять ошибка


Теперь вставим в форму обработки такой код и откроем обработку:

Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка ) ОбъектНоменклатура = Справочники . Номенклатура . СоздатьЭлемент ( ) ;

Здесь мы вызываем экспорную процедуру модуля объекта, а потом встроенным методом Записать записываем объект в базу данных.

В результате в базе данных будет создан новый элемент, у которого заполнен артикул и добавлены 2 строки в табличную часть:


В методе ЗаполнитьРеквизиты() мы обращались напрямую к реквизитам объекта, после чего записали его методом Записать(). Значения реквизитов сохранились в базе данных.

Обработчики событий


В результате откроется список возможных событий:


Рассмотрим основные события модуля объекта:

Для примера создадим в модуле объекта 3 обработчика события и вставим в них следующий код:

Платформе 1С 8.3. менеджер 1С необходим для организации работы с объектами метаданных. Посредством менеджера 1С создаются новые экземпляры справочников, документов, осуществляется поиск и выборка объектов, получаются формы и макет, а также выполняется другая работа, не связанная с конкретным экземпляром объекта.

Менеджер объекта 1С

Для доступа к тому или иному объекту конфигурации 1С необходимо сначала обратиться к менеджеру этого объекта. Например, для управления документом, как объектом конфигурации, следует обратиться к менеджеру документа, а для управления справочником, как объектом конфигурации, нужно обратиться к менеджеру справочника.

Узнать, какое свойство за какой объект отвечает, можно в синтакс-помощнике в разделе Глобальный контекст, подразделе Свойства.

Свойство глобального контекста 1С

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

Свойство глобального контекста 1С

После выбора конкретного объекта, мы уже обратимся к менеджеру этого объекта. Например, к менеджеру справочника.

И нам будут доступны все свойства и методы менеджера объекта. Заметим, что менеджер объекта даёт доступ не к конкретному экземпляру объекта, а ко всему объекту в целом.

Все свойства и методы менеджера нужного объекта можно посмотреть в синтакс-помощнике. Например, для справочника будет следующий путь.

Менеджер объекта 1С

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

Менеджер объекта 1С

Так мы получаем доступ к менеджеру конкретного справочника Контрагенты.

А так, к менеджеру документа Счет.

Естественно, и справочник Контрагенты, и документ Счет уже созданы в конфигурации.

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

Менеджер объекта 1С

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

Менеджер объекта 1С

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

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

А получить выборку элементов справочника можно так:

Где Выбрать() – это функция менеджера справочника, которая возвращает выборку элементов.

Модуль менеджера 1С

Помимо методов менеджеров объектов, которые предоставляет платформа 1С можно создать собственные методы того или иного объекта. Делается это в модуле менеджера 1С. Открыть модуль менеджера объекта 1С достаточно просто: необходимо в дереве конфигурации выделить нужный объект, вызвать контекстное меню, и выполнить команду «Открыть модуль менеджера» этого меню.

Модуль менеджера 1С

Теперь, мы можем обратиться к этому методу посредством менеджера конкретного справочника.

Т.е. с помощью модуля менеджера мы можем создавать свойства и методы, которые будут применимы только к конкретному справочнику, документу и т.д.

Программировать в 1С за 11 шагов

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:



Откроется конструктор формы. В нем можно выбрать тип формы, указать имя и синоним:


Добавим в модуль формы код:


Директивы компиляции

Для того чтобы определить где будет выполняться процедура или функция модуля формы можно использовать директивы компиляции:

  • &НаКлиенте
  • &НаСервере
  • &НаСервереБезКонтекста
  • &НаКлиентеНаСервереБезКонтекста

Что такое контекст будет рассмотрено позже, пока можно сказать, что это доступность реквизитов, элементов и параметров формы.

Добавим в модуль формы две процедуры:

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

Для переменных модуля тоже можно использовать директивы компиляции:

При этом нужно учитывать, что серверная переменная формы будет инициализироваться при каждом вызове сервера. То есть если мы вызовем с клиента серверную процедуру, в ней изменим серверную переменную, то при следующем серверном вызове значение переменной будет инициализироваться заново, предыдущее значение будет потеряно.

Обработчики событий модуля формы

В модуле формы тоже есть события, для которых можно создавать обработчики:


У обработчиков событий формы нельзя изменить директиву компиляции. Часть из них доступны на клиенте, часть на сервере.

Рассмотрим основные из них:

Для примера добавим в модуль формы 2 обработки событий: ПриСозданииНаСервере и ПередЗакрытием и добавим туда следующий код:

В этой статье я разберу особенности программного открытия обработок в 1С. Мы узнаем, как открыть форму обработки, как открыть форму внешней обработки из самой внешней обработки, а также как открыть форму внешней обработки из клиентского режима платформы 1С 8.3.

Открыть форму обработки 1С

Начнем с того, что саму по себе открыть программной обработку нельзя. Можно открыть какую-либо из форм обработки. Для программного открытия управляемой формы обработки необходимо использовать метод ОткрытьФорму.

В первой статье, в которой мы начали знакомиться с обработками в 1С, я создал обработку «Обработка для примера» с формой.

В этой статье я покажу, как открыть программно форму этой обработки из другой обработки «Обработка1». Для этого у Обработки1 я создал управляемую форму и команду формы.

Обработка 1С и форма обработки 1С

В клиентском обработчике команды, напишем код, который будет открывать основную форму обработки.

Какая именно форма обработки будет открыта, можно указать в контекстной подсказке, которая появляется после ввода названия обработки.

Обработка 1С и форма обработки 1С

После, в результате выполнения команды, в отдельном окне будет открываться форма обработки «Обработка для примера».

Обработка 1С и форма обработки 1С

Открыть форму внешней обработки 1С

Если нам необходимо, чтобы из одной формы внешней обработки открылась другая форма этой же внешней обработки, то также необходимо использовать метод ОткрытьФорму, как в примере выше, только вместо слова Обработка необходимо написать ВнешняяОбработка.

Разберем пример. Пусть, у внешней обработки будут две формы: Основная и Дополнительная.

Открыть форму внешней обработки

На основной форме создадим команду «Открытие дополнительной», при выполнении которой будет открываться дополнительная форма.

Открыть форму внешней обработки

У этой команды будет клиентский обработчик события, со следующим кодом:

Теперь, открыв внешнюю обработку, мы сможем из её основной формы открыть дополнительную.

Открыть форму внешней обработки

Открыть внешнюю обработку 1С

Выше мы разбирали пример, когда внешняя обработка открыта, и нам нужно открыть форму внешней обработки из самой внешней обработки, но иногда возникают задачи, когда нужно открыть форму внешней обработки из какого-то другого места, зная путь к этой обработке на жестком диске, или выбрав непосредственно файл обработки.

В этой обработке создадим команду, при выполнении которой откроется форма внешней обработки.

Открыть внешнюю обработку 1С

В форме обработки напишем следующий код:

Код работает, начиная с платформы 8.3.15.

После выполнения команды, откроется окно выбора файла внешней обработки.

Если файл будет выбран, внешняя обработка откроется.

Открыть внешнюю обработку 1С

Статьи про открытие форм:

Статьи по конфигурированию в 1С:

Программировать в 1С за 11 шагов

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Читайте также: