[Специалист профессионал 1С 8.2 8.3 ]

16:46
Модули и их синтаксис .Расскажу вам сегодня про модули нормальным понятным языком.

Модули и их синтаксис

 

Расскажу вам сегодня про модули нормальным понятным языком.

 

 

1)Модуль приложения

2)Модуль Сеанса

3)Общий модуль

4)Модуль формы документа

5)Модуль формы справочника

6)Модуль объекта

7)Модуль менеджера

 

 

 

 

1)Модуль Управляемого приложения -Описание поведения  конфигурации .  при следующих событиях ,сами говорят за себя.

Здесь доступен вызов экспортируемых процедур и функций из Общих модулей

1) Процедура ПередНачаломРаботыСистемы()

2) Процедура ПриНачалеРаботыСистемы()

3) Процедура ПередЗавершениемРаботыСистемы(Отказ)

4) Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)

5)Процедура ПриЗавершенииРаботыСистемы();

6)Процедура ПриИзмененииПараметровСеанса();

 

2)Модуль Сеанса Обработка в режиме Com соединения и внешнего 

Более инфы я не нашел в мире, все что там написано в одной фразе привожу ниже:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

 

Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)

           

            // СтандартныеПодсистемы

            СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса);

            // Конец СтандартныеПодсистемы

           

            // ТехнологияСервиса

            ТехнологияСервиса.ВыполнитьДействияПриУстановкеПараметровСеанса(ИменаПараметровСеанса);

            // Конец ТехнологияСервиса

           

КонецПроцедуры

 

 

#КонецЕсли

 

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

Соответственно в Общем модуле 6 галок в настройках : по порядку 1) галка  глобальный говорит о ! долго искал  это определение . вот .что нашел:  У общего модуля есть такая галка.

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

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

2)клиент ,ну тут все понятно если мы поставим эту галку  ,то то когда мы пишем код в модулях формы или модуле объекта (документа )  если в процедуре стоит  метод компиляции  &наКлиенте то можно вызвать общ модуль с галкой на клиенте ,если &наСервере то мы сможем вызвать общ модуль где стоит галка вызов сервера

3)Внешнее соединение  модуль станет доступным в режиме внешнего соединения ( при обменах данными ) по com ,ole 

А вот что пишут на сайте одного франча :

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

 

Что за модуль внешнего соединения я так и не понял  не хера. Наверно был в старых версиях

 

4)Привелеригированный  - отработает у нас в любом случае .даже если на объект наложены права . нужна такая галка тогда когда происходят обмены между базами .

 

5) Модуль формы документа : Здесь мы можем описать действие самой формы ее обработчиков событий – команд . реквизитов формы .списков ,таблиц  Здесь мы приминяем в управл приложении директивы компиляции наклиенте ,насервере, насерверевнеконтекста  ,для работы с реквизитами достаточно на клиенте , для выборки данных из базы  с регистров ,документов . загрузить эти данные в табчасть документа  уже нужно работать на сервере  ,тут мы применяем 2 процедуры с директивой на сервере там делаем запрос с выборкой и выгружаем в таб часть , а к кнопке привязываем процедуру на клиенте  и в ней же вызываем серверную .( конечно можно напрямую вызывать серверную при нажатии кнопки .но правила  стандарта написания кода должны соответствовать .

6)Модуль объекта  говорит за себя :

Различия модуля формы и модуля объекта :

 

Модуль объекта

Модуль формы

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

Модуль формы инициализируется при создании переменной типа Форма, после вызовов метода ПолучитьФорму, ПолучитьФормуСписка и т.д., а также при открытии форм интерактивно (в этом случае ПолучитьФорму вызывает платформа).

Методически неправильно из этого модуля обращаться к формам и модулю формы.

Если основной реквизит формы является типа «Объект», то контекст этого модуля включает в себя экспортные сущности модуля объекта.

 

Слово сущности меня убило   Сущности – переменные ? имена процедур? Методы синтексиса? Что это ??? Они задолбали с этими сущностями .Реально!

 

 

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

Зачем нужны различия модуль объекта и модуль менеджера   . Для групповой обработки данных, для упрощения и оптимизации кода .  

Вот к примеру в УПП  модуль менеджера не используют. Так как упп давно изобрели.

 

Вот наверное пока все .спасибо за внимание к этой инфе.

Рогачев А.Н

Просмотров: 1245 | Добавил: moshefoo | Теги: Модули 1С их синтаксис, Модуль формы, Модуль менеджера, директивы компиляции 1С, Модуль объекта, Модуль приложения, Модуль сеанса | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: