-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added reverse assignment #88
Changes from all commits
557aab9
de917af
dcf9c08
3c734c0
c4df2e4
38e1a13
0fc0f0a
e1de2a9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,21 +1,49 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Подсистема "Подписки на события" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Подписки на события применяются для реализации дополнительной постобработки или проверок, которые активируются после определённых событий в типовых объектах или модулях менеджера. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
В случае отстутствия типовой подписки, используется подсистема **"Подписки на события"**. Если нужно внести изменения в типовую логику работы подписки, используется заимствование методов в расширении с аннотацией &ИзменениеИКонтроль. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
В случае отсутствия типовой подписки используется подсистема **"Подписки на события"**. Если нужно внести изменения в типовую логику работы подписки, используется заимствование методов в расширении с аннотацией &ИзменениеИКонтроль. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**Общая структура подписок на события:** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Для каждого класса **общий модуль** (пример: "пбп_ДокументыОбработкаСобытий") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В каждом общем модуле распологаются процедуры-обработчики для данного класса (пример: "ОбработкаПроведения", "ПриЗаписи") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В области **СлужебныйПрограммныйИнтерфейс** добавляются одноименные процедуры для обработки конкретных событий (пример: "СписаниеБезналичныхДенежныхСредствПриЗаписи") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В общем модуле **пбп_ОбщегоНазначенияПовтИсп** необходимо добавить соответствие типа объекта и вызываемой процедуры в одноименной функции **(Указывать только имя процедуры!)** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**Важно!** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В одноимённых обработчиках событий необходимо после выполнения метода конфигурации делать обратное присвоение параметров из массива "ПараметрыМетода", так как они могут быть изменены в выполняемом методе. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В обработчиках, указанных в подписках на события, реализован возврат параметра **Отказ** согласно концепции фирмы 1С. При необходимости ускорить работу и избежать выполнения кода при условии **Отказ = Истина**, добавьте проверку этого условия в место проверки **ОбменДанными.Загрузка**. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**Пример:** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```1C (BSL) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процедура ПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Если Источник.ОбменДанными.Загрузка Или Отказ Тогда | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Возврат; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
КонецЕсли; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
КонецПроцедуры | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Общая структура подписок на события: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Для каждого класса **общий модуль** (пример: "пбп_ДокументыОбработчики") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В каждом общем модуле распологаются процедуры-обработчики класса (пример: "пбп_ДокументыОбработкаПроведения", "пбп_СправочникиПриЗаписи") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В области **СлужебныйПрограммныйИнтерфейс** добавляются одноименные процедуры (пример: "СписаниеБезналичныхДенежныхСредствПриЗаписи") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В общем модуле **пбп_ОбщегоНазначенияПовтИсп** добавить в соответствие тип объекта и вызываемую процедуру в одноименной функции **(Указывать только имя процедуры!)** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**Пример обратного присвоения:** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```1C (BSL) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процедура ПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// ... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ПараметрыМетода = Новый Массив; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ПараметрыМетода.Добавить(Источник); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ПараметрыМетода.Добавить(Отказ); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Источник = ПараметрыМетода[0]; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Отказ = ПараметрыМетода[1]; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// ... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
КонецПроцедуры | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+24
to
+37
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Replace hard tabs with spaces. Hard tabs should be replaced with spaces for consistent formatting. -
+
-
+ Committable suggestion
Suggested change
ToolsMarkdownlint
Comment on lines
+26
to
+37
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Replace hard tabs with spaces. Hard tabs should be replaced with spaces for consistent formatting. -
+
-
+
ToolsMarkdownlint
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Порядок действий при работе с подсистемой: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Необходимо проверить, существует ли общая подписка на нужный тип объекта и событие. Например: **пбп_ДокументыОбработкаПроведения**, **пбп_СправочникиПриЗаписи** и так далее. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Недопускается смешение типов объектов и событий в одной подписке. Если подписки не существует, нужно её добавить, а так же общий модуль с аналогичным названием (напр. **пбп_ДокументыОбработчики** - и подписка, и общий модуль). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**Порядок действий при работе с подсистемой:** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Необходимо проверить, существует ли общая подписка на нужный тип объекта и событие. Например: **ОбработкаПроведения**, **ПриЗаписи** и так далее. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**Важно!** Не допускается смешение типов объектов и событий в одной подписке. Если подписка не существует, нужно её создать, а так же добавить общий модуль с аналогичным названием (напр. **пбп_ДокументыПриЗаписи** - подписка, **пбп_ДокументыОбработкаСобытий** - общий модуль). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Добавить их в подсистему **пбп_ПодпискиНаСобытия**. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Если создана новая подписка и модуль, то в модуле создается обработчик для подписки и выбрать его в подписке. У каждого события свой набор параметров. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Структура общего модуля обработчиков: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В области **СлужебныйПрограммныйИнтерфейс** располагать обработчики объектов, в ней располагаются подобласти по обработчикам. Допустимо добавлению произвольных областей внутри **СлужебныйПрограммныйИнтерфейс**, для группировки по подсистемам. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В области **СлужебныйПрограммныйИнтерфейс** располагаются обработчики объектов. Внутри этой области могут быть подобласти по обработчикам. Допустимо добавлению произвольных областей внутри **СлужебныйПрограммныйИнтерфейс** для группировки по подсистемам. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+40
to
+46
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix unordered list indentation. The unordered list items should be indented consistently. -**Порядок действий при работе с подсистемой:**
- - Необходимо проверить, существует ли общая подписка на нужный тип объекта и событие. Например: **ОбработкаПроведения**, **ПриЗаписи** и так далее.
-**Важно!** Не допускается смешение типов объектов и событий в одной подписке. Если подписка не существует, нужно её создать, а так же добавить общий модуль с аналогичным названием (напр. **пбп_ДокументыПриЗаписи** - подписка, **пбп_ДокументыОбработкаСобытий** - общий модуль).
-Добавить их в подсистему **пбп_ПодпискиНаСобытия**.
- - Если создана новая подписка и модуль, то в модуле создается обработчик для подписки и выбрать его в подписке. У каждого события свой набор параметров.
- - Структура общего модуля обработчиков:
- - В области **СлужебныйПрограммныйИнтерфейс** располагаются обработчики объектов. Внутри этой области могут быть подобласти по обработчикам. Допустимо добавлению произвольных областей внутри **СлужебныйПрограммныйИнтерфейс** для группировки по подсистемам.
+**Порядок действий при работе с подсистемой:**
+ - Необходимо проверить, существует ли общая подписка на нужный тип объекта и событие. Например: **ОбработкаПроведения**, **ПриЗаписи** и так далее.
+**Важно!** Не допускается смешение типов объектов и событий в одной подписке. Если подписка не существует, нужно её создать, а так же добавить общий модуль с аналогичным названием (напр. **пбп_ДокументыПриЗаписи** - подписка, **пбп_ДокументыОбработкаСобытий** - общий модуль).
+Добавить их в подсистему **пбп_ПодпискиНаСобытия**.
+ - Если создана новая подписка и модуль, то в модуле создается обработчик для подписки и выбрать его в подписке. У каждого события свой набор параметров.
+ - Структура общего модуля обработчиков:
+ - В области **СлужебныйПрограммныйИнтерфейс** располагаются обработчики объектов. Внутри этой области могут быть подобласти по обработчикам. Допустимо добавлению произвольных областей внутри **СлужебныйПрограммныйИнтерфейс** для группировки по подсистемам. Committable suggestion
Suggested change
ToolsMarkdownlint
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```1C (BSL) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#Область ПрограммныйИнтерфейс | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -50,7 +78,7 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#КонецОбласти | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**Пример обработчика общего модуля "пбп_ДокументыОбработчики":** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**Пример обработчика общего модуля "пбп_ДокументыОбработкаСобытий":** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```1C (BSL) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процедура ПриЗаписи(Источник, Отказ) Экспорт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -77,7 +105,7 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
КонецПроцедуры | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В общем модуле **пбп_ОбщегоНазначенияПовтИсп** найти функцию с названием объекта и события и добавить в соответствие тип объекта и вызываемую процедуру **(Указывать только имя процедуры!)**. Если функции для данного набора нет, создать её, перед возвратом добавить вызов заранее созданной процедуры: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- В общем модуле **пбп_ОбщегоНазначенияПовтИсп** найдите функцию с названием объекта и события, и добавить в соответствие тип объекта и вызываемую процедуру **(Указывать только имя процедуры!)**. Если функции для данного набора нет, создать её, перед возвратом добавить вызов заранее созданной процедуры: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix unordered list indentation. The unordered list items should be indented consistently. - - В общем модуле **пбп_ОбщегоНазначенияПовтИсп** найдите функцию с названием объекта и события, и добавить в соответствие тип объекта и вызываемую процедуру **(Указывать только имя процедуры!)**. Если функции для данного набора нет, создать её, перед возвратом добавить вызов заранее созданной процедуры:
+ - В общем модуле **пбп_ОбщегоНазначенияПовтИсп** найдите функцию с названием объекта и события, и добавить в соответствие тип объекта и вызываемую процедуру **(Указывать только имя процедуры!)**. Если функции для данного набора нет, создать её, перед возвратом добавить вызов заранее созданной процедуры: Committable suggestion
Suggested change
ToolsMarkdownlint
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**Пример вызова процедуры для заполнения соответствия:** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```1C (BSL) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix unordered list indentation.
The unordered list items should be indented consistently.
Committable suggestion
Tools
Markdownlint