From 557aab981af62fc79fec8e5167fd8a2b546e7cc4 Mon Sep 17 00:00:00 2001 From: Denis Ushakov Date: Mon, 29 Jul 2024 12:54:08 +0300 Subject: [PATCH 1/7] Added reverse assignment --- ...20\261\321\213\321\202\320\270\321\217.md" | 43 +++++++++++++------ .../Ext/Module.bsl" | 21 ++++++++- .../Ext/Module.bsl" | 16 ++++++- 3 files changed, 65 insertions(+), 15 deletions(-) diff --git "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" index 8b6637f4..c5e9c805 100644 --- "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" +++ "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" @@ -1,21 +1,40 @@ # Подсистема "Подписки на события" Подписки на события применяются для реализации дополнительной постобработки или проверок, которые активируются после определённых событий в типовых объектах или модулях менеджера. -В случае отстутствия типовой подписки, используется подсистема **"Подписки на события"**. Если нужно внести изменения в типовую логику работы подписки, используется заимствование методов в расширении с аннотацией &ИзменениеИКонтроль. +В случае отсутствия типовой подписки используется подсистема **"Подписки на события"**. Если нужно внести изменения в типовую логику работы подписки, используется заимствование методов в расширении с аннотацией &ИзменениеИКонтроль. -Общая структура подписок на события: - - Для каждого класса **общий модуль** (пример: "пбп_ДокументыОбработчики") - - В каждом общем модуле распологаются процедуры-обработчики класса (пример: "пбп_ДокументыОбработкаПроведения", "пбп_СправочникиПриЗаписи") - - В области **СлужебныйПрограммныйИнтерфейс** добавляются одноименные процедуры (пример: "СписаниеБезналичныхДенежныхСредствПриЗаписи") - - В общем модуле **пбп_ОбщегоНазначенияПовтИсп** добавить в соответствие тип объекта и вызываемую процедуру в одноименной функции **(Указывать только имя процедуры!)** +**Общая структура подписок на события:** + - Для каждого класса **общий модуль** (пример: "пбп_ДокументыОбработкаСобытий") + - В каждом общем модуле распологаются процедуры-обработчики для данного класса (пример: "ОбработкаПроведения", "ПриЗаписи") + - В области **СлужебныйПрограммныйИнтерфейс** добавляются одноименные процедуры для обработки конкретных событий (пример: "СписаниеБезналичныхДенежныхСредствПриЗаписи") + - В общем модуле **пбп_ОбщегоНазначенияПовтИсп** необходимо добавить соответствие типа объекта и вызываемой процедуры в одноименной функции **(Указывать только имя процедуры!)** -Порядок действий при работе с подсистемой: - - Необходимо проверить, существует ли общая подписка на нужный тип объекта и событие. Например: **пбп_ДокументыОбработкаПроведения**, **пбп_СправочникиПриЗаписи** и так далее. -Недопускается смешение типов объектов и событий в одной подписке. Если подписки не существует, нужно её добавить, а так же общий модуль с аналогичным названием (напр. **пбп_ДокументыОбработчики** - и подписка, и общий модуль). +**Важно!** + В одноимённых обработчиках событий необходимо после выполнения метода конфигурации делать обратное присвоение параметров из массива "ПараметрыМетода", так как они могут быть изменены в выполняемом методе. + +**Пример обратного присвоения:** +```1C (BSL) +Процедура ПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт +// ... + ПараметрыМетода = Новый Массив; + ПараметрыМетода.Добавить(Источник); + ПараметрыМетода.Добавить(Отказ); + + пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + + Источник = ПараметрыМетода[0]; + Отказ = ПараметрыМетода[1]; +// ... +КонецПроцедуры +``` + +**Порядок действий при работе с подсистемой:** + - Необходимо проверить, существует ли общая подписка на нужный тип объекта и событие. Например: **ОбработкаПроведения**, **ПриЗаписи** и так далее. +**Важно!** Не допускается смешение типов объектов и событий в одной подписке. Если подписка не существует, нужно её создать, а так же добавить общий модуль с аналогичным названием (напр. **пбп_ДокументыПриЗаписи** - подписка, **пбп_ДокументыОбработкаСобытий** - общий модуль). Добавить их в подсистему **пбп_ПодпискиНаСобытия**. - Если создана новая подписка и модуль, то в модуле создается обработчик для подписки и выбрать его в подписке. У каждого события свой набор параметров. - Структура общего модуля обработчиков: - - В области **СлужебныйПрограммныйИнтерфейс** располагать обработчики объектов, в ней располагаются подобласти по обработчикам. Допустимо добавлению произвольных областей внутри **СлужебныйПрограммныйИнтерфейс**, для группировки по подсистемам. + - В области **СлужебныйПрограммныйИнтерфейс** располагаются обработчики объектов. Внутри этой области могут быть подобласти по обработчикам. Допустимо добавлению произвольных областей внутри **СлужебныйПрограммныйИнтерфейс** для группировки по подсистемам. ```1C (BSL) #Область ПрограммныйИнтерфейс @@ -50,7 +69,7 @@ #КонецОбласти ``` -**Пример обработчика общего модуля "пбп_ДокументыОбработчики":** +**Пример обработчика общего модуля "пбп_ДокументыОбработкаСобытий":** ```1C (BSL) Процедура ПриЗаписи(Источник, Отказ) Экспорт @@ -77,7 +96,7 @@ КонецПроцедуры ``` - - В общем модуле **пбп_ОбщегоНазначенияПовтИсп** найти функцию с названием объекта и события и добавить в соответствие тип объекта и вызываемую процедуру **(Указывать только имя процедуры!)**. Если функции для данного набора нет, создать её, перед возвратом добавить вызов заранее созданной процедуры: + - В общем модуле **пбп_ОбщегоНазначенияПовтИсп** найдите функцию с названием объекта и события, и добавить в соответствие тип объекта и вызываемую процедуру **(Указывать только имя процедуры!)**. Если функции для данного набора нет, создать её, перед возвратом добавить вызов заранее созданной процедуры: **Пример вызова процедуры для заполнения соответствия:** ```1C (BSL) diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" index 19decf0c..dd9b5c96 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" @@ -46,6 +46,8 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + Источник = ПараметрыМетода[0]; + Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); КонецПопытки; @@ -79,6 +81,9 @@ ПараметрыМетода.Добавить(ТекстЗаполнения); ПараметрыМетода.Добавить(СтандартнаяОбработка); + Источник = ПараметрыМетода[0]; + СтандартнаяОбработка = ПараметрыМетода[3]; + пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Исключение @@ -115,6 +120,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + Источник = ПараметрыМетода[0]; + Отказ = ПараметрыМетода[1]; + Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); КонецПопытки; @@ -146,6 +154,8 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + Отказ = ПараметрыМетода[1]; + Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); КонецПопытки; @@ -154,7 +164,8 @@ КонецПроцедуры // Возникает при проведении документа. -// Основное назначение процедуры-обработчика данного события - генерация движений по документу. Выполняется в транзакции записи. +// Основное назначение процедуры-обработчика данного события - генерация движений по документу. +// Выполняется в транзакции записи. // // Параметры: // Источник - ДокументОбъект - Объект, обрабатываемый подпиской на события. @@ -179,6 +190,8 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + Отказ = ПараметрыМетода[1]; + Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); КонецПопытки; @@ -187,7 +200,8 @@ КонецПроцедуры // Возникает при записи документа. -// Основное назначение процедуры-обработчика данного события - проверка правильности заполнения значений реквизитов объекта. +// Основное назначение процедуры-обработчика данного события - +// проверка правильности заполнения значений реквизитов объекта. // // Параметры: // Источник - ДокументОбъект - Объект, обрабатываемый подпиской на события. @@ -212,6 +226,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + Отказ = ПараметрыМетода[1]; + ПроверяемыеРеквизиты = ПараметрыМетода[2]; + Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); КонецПопытки; diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" index d907bb9a..f0e5d039 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" @@ -46,6 +46,8 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + Источник = ПараметрыМетода[0]; + Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); КонецПопытки; @@ -81,6 +83,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + Источник = ПараметрыМетода[0]; + СтандартнаяОбработка = ПараметрыМетода[3]; + Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); КонецПопытки; @@ -112,6 +117,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + Источник = ПараметрыМетода[0]; + Отказ = ПараметрыМетода[1]; + Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); КонецПопытки; @@ -143,6 +151,8 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + Отказ = ПараметрыМетода[1]; + Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); КонецПопытки; @@ -151,7 +161,8 @@ КонецПроцедуры // Возникает при записи документа. -// Основное назначение процедуры-обработчика данного события - проверка правильности заполнения значений реквизитов объекта. +// Основное назначение процедуры-обработчика данного события - +// проверка правильности заполнения значений реквизитов объекта. // // Параметры: // Источник - ДокументОбъект - Объект, обрабатываемый подпиской на события. @@ -176,6 +187,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + Отказ = ПараметрыМетода[1]; + ПроверяемыеРеквизиты = ПараметрыМетода[2]; + Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); КонецПопытки; From de917af1193cbdd26dd8f652e213db96f53aab9f Mon Sep 17 00:00:00 2001 From: Denis Ushakov Date: Tue, 30 Jul 2024 18:01:09 +0300 Subject: [PATCH 2/7] Fixed bugs and added documentation --- ...20\261\321\213\321\202\320\270\321\217.md" | 11 ++++++++- .../Ext/Module.bsl" | 24 ++++++++++++------- .../Ext/Module.bsl" | 18 +++++++++----- 3 files changed, 38 insertions(+), 15 deletions(-) diff --git "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" index c5e9c805..0a9ea9a5 100644 --- "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" +++ "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" @@ -10,7 +10,16 @@ - В общем модуле **пбп_ОбщегоНазначенияПовтИсп** необходимо добавить соответствие типа объекта и вызываемой процедуры в одноименной функции **(Указывать только имя процедуры!)** **Важно!** - В одноимённых обработчиках событий необходимо после выполнения метода конфигурации делать обратное присвоение параметров из массива "ПараметрыМетода", так как они могут быть изменены в выполняемом методе. + В одноимённых обработчиках событий необходимо после выполнения метода конфигурации делать обратное присвоение параметров из массива "ПараметрыМетода", так как они могут быть изменены в выполняемом методе. + В обработчиках, указанных в подписках на события, реализован возврат параметра **Отказ** согласно концепции фирмы 1С. При необходимости ускорить работу и избежать выполнения кода при условии **Отказ = Истина**, добавьте проверку этого условия в место проверки **ОбменДанными.Загрузка**. + Пример: + ```1C (BSL) + Процедура ПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт + Если Источник.ОбменДанными.Загрузка Или Отказ Тогда + Возврат; + КонецЕсли; + КонецПроцедуры + ``` **Пример обратного присвоения:** ```1C (BSL) diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" index dd9b5c96..136ccdce 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" @@ -104,7 +104,7 @@ // Процедура ПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда + Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -121,7 +121,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Источник = ПараметрыМетода[0]; - Отказ = ПараметрыМетода[1]; + Если ПараметрыМетода[1] Тогда + Отказ = Истина; + КонецЕсли; Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); @@ -139,7 +141,7 @@ // Процедура ПриЗаписи(Источник, Отказ) Экспорт - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда + Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -154,7 +156,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); - Отказ = ПараметрыМетода[1]; + Если ПараметрыМетода[1] Тогда + Отказ = Истина; + КонецЕсли; Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); @@ -174,7 +178,7 @@ // Процедура ОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда + Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -190,7 +194,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); - Отказ = ПараметрыМетода[1]; + Если ПараметрыМетода[1] Тогда + Отказ = Истина; + КонецЕсли; Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); @@ -210,7 +216,7 @@ // Процедура ОбработкаПроверкиЗаполнения(Источник, Отказ, ПроверяемыеРеквизиты) Экспорт - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда + Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -226,7 +232,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); - Отказ = ПараметрыМетода[1]; + Если ПараметрыМетода[1] Тогда + Отказ = Истина; + КонецЕсли; ПроверяемыеРеквизиты = ПараметрыМетода[2]; Исключение diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" index f0e5d039..46890954 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" @@ -102,7 +102,7 @@ // Процедура ПередЗаписью(Источник, Отказ) Экспорт - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда + Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -118,7 +118,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Источник = ПараметрыМетода[0]; - Отказ = ПараметрыМетода[1]; + Если ПараметрыМетода[1] Тогда + Отказ = Истина; + КонецЕсли; Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); @@ -136,7 +138,7 @@ // Процедура ПриЗаписи(Источник, Отказ) Экспорт - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда + Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -151,7 +153,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); - Отказ = ПараметрыМетода[1]; + Если ПараметрыМетода[1] Тогда + Отказ = Истина; + КонецЕсли; Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); @@ -171,7 +175,7 @@ // Процедура ОбработкаПроверкиЗаполнения(Источник, Отказ, ПроверяемыеРеквизиты) Экспорт - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда + Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -187,7 +191,9 @@ пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); - Отказ = ПараметрыМетода[1]; + Если ПараметрыМетода[1] Тогда + Отказ = Истина; + КонецЕсли; ПроверяемыеРеквизиты = ПараметрыМетода[2]; Исключение From dcf9c080f92cf29457067ca69c2d34b8069b05b1 Mon Sep 17 00:00:00 2001 From: Denis Ushakov <59319861+denisushakov@users.noreply.github.com> Date: Tue, 30 Jul 2024 18:13:05 +0300 Subject: [PATCH 3/7] =?UTF-8?q?Update=20docs/=D0=9F=D0=BE=D0=B4=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=BA=D0=B8=D0=9D=D0=B0=D0=A1=D0=BE=D0=B1=D1=8B?= =?UTF-8?q?=D1=82=D0=B8=D1=8F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- ...20\241\320\276\320\261\321\213\321\202\320\270\321\217.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" index 0a9ea9a5..b74f86a8 100644 --- "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" +++ "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" @@ -16,8 +16,8 @@ ```1C (BSL) Процедура ПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт Если Источник.ОбменДанными.Загрузка Или Отказ Тогда - Возврат; - КонецЕсли; + Возврат; + КонецЕсли; КонецПроцедуры ``` From 3c734c09c687d3b3cf88d5c2cf9306acec8318f5 Mon Sep 17 00:00:00 2001 From: Denis Ushakov Date: Tue, 30 Jul 2024 18:19:15 +0300 Subject: [PATCH 4/7] Fixed smells --- ...320\261\321\213\321\202\320\270\321\217.md" | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" index 0a9ea9a5..e8f282e9 100644 --- "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" +++ "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" @@ -10,16 +10,16 @@ - В общем модуле **пбп_ОбщегоНазначенияПовтИсп** необходимо добавить соответствие типа объекта и вызываемой процедуры в одноименной функции **(Указывать только имя процедуры!)** **Важно!** - В одноимённых обработчиках событий необходимо после выполнения метода конфигурации делать обратное присвоение параметров из массива "ПараметрыМетода", так как они могут быть изменены в выполняемом методе. - В обработчиках, указанных в подписках на события, реализован возврат параметра **Отказ** согласно концепции фирмы 1С. При необходимости ускорить работу и избежать выполнения кода при условии **Отказ = Истина**, добавьте проверку этого условия в место проверки **ОбменДанными.Загрузка**. + - В одноимённых обработчиках событий необходимо после выполнения метода конфигурации делать обратное присвоение параметров из массива "ПараметрыМетода", так как они могут быть изменены в выполняемом методе. + - В обработчиках, указанных в подписках на события, реализован возврат параметра **Отказ** согласно концепции фирмы 1С. При необходимости ускорить работу и избежать выполнения кода при условии **Отказ = Истина**, добавьте проверку этого условия в место проверки **ОбменДанными.Загрузка**. Пример: - ```1C (BSL) - Процедура ПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт - Если Источник.ОбменДанными.Загрузка Или Отказ Тогда - Возврат; - КонецЕсли; - КонецПроцедуры - ``` +```1C (BSL) +Процедура ПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт + Если Источник.ОбменДанными.Загрузка Или Отказ Тогда + Возврат; + КонецЕсли; +КонецПроцедуры +``` **Пример обратного присвоения:** ```1C (BSL) From 38e1a134836cc8ca2ca7a0f620796c262512f962 Mon Sep 17 00:00:00 2001 From: Denis Ushakov <59319861+denisushakov@users.noreply.github.com> Date: Tue, 30 Jul 2024 19:30:19 +0300 Subject: [PATCH 5/7] =?UTF-8?q?Update=20=D0=9F=D0=BE=D0=B4=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D0=B8=D0=9D=D0=B0=D0=A1=D0=BE=D0=B1=D1=8B=D1=82?= =?UTF-8?q?=D0=B8=D1=8F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\241\320\276\320\261\321\213\321\202\320\270\321\217.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" index e8f282e9..41994a10 100644 --- "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" +++ "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" @@ -9,10 +9,10 @@ - В области **СлужебныйПрограммныйИнтерфейс** добавляются одноименные процедуры для обработки конкретных событий (пример: "СписаниеБезналичныхДенежныхСредствПриЗаписи") - В общем модуле **пбп_ОбщегоНазначенияПовтИсп** необходимо добавить соответствие типа объекта и вызываемой процедуры в одноименной функции **(Указывать только имя процедуры!)** -**Важно!** +**Важно!** - В одноимённых обработчиках событий необходимо после выполнения метода конфигурации делать обратное присвоение параметров из массива "ПараметрыМетода", так как они могут быть изменены в выполняемом методе. - В обработчиках, указанных в подписках на события, реализован возврат параметра **Отказ** согласно концепции фирмы 1С. При необходимости ускорить работу и избежать выполнения кода при условии **Отказ = Истина**, добавьте проверку этого условия в место проверки **ОбменДанными.Загрузка**. - Пример: + **Пример:** ```1C (BSL) Процедура ПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт Если Источник.ОбменДанными.Загрузка Или Отказ Тогда From 0fc0f0a004ae89abe81b5a69d4a03de00f55fd72 Mon Sep 17 00:00:00 2001 From: Denis Ushakov Date: Mon, 5 Aug 2024 11:03:14 +0300 Subject: [PATCH 6/7] update version pssl --- .../Ext/Module.bsl" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" index d195a393..8e3aca39 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" @@ -74,7 +74,7 @@ Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "ПроектнаяБиблиотекаПодсистем"; - Описание.Версия = "1.0.0.2"; + Описание.Версия = "1.0.1.1"; // Требуется библиотека стандартных подсистем. Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы"); From e1de2a9438c8e05da0d28c5c3b96c9d491198638 Mon Sep 17 00:00:00 2001 From: Denis Ushakov Date: Mon, 5 Aug 2024 11:34:59 +0300 Subject: [PATCH 7/7] Update version PSSL --- .../Ext/Module.bsl" | 2 +- src/cf/Configuration.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" index 8e3aca39..0aa14522 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" @@ -74,7 +74,7 @@ Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "ПроектнаяБиблиотекаПодсистем"; - Описание.Версия = "1.0.1.1"; + Описание.Версия = "1.0.1.2"; // Требуется библиотека стандартных подсистем. Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы"); diff --git a/src/cf/Configuration.xml b/src/cf/Configuration.xml index 53063d22..0524e335 100644 --- a/src/cf/Configuration.xml +++ b/src/cf/Configuration.xml @@ -57,7 +57,7 @@ Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок Первый БИТ - 1.0.1.1 + 1.0.1.2 false false