Created
September 9, 2016 07:46
-
-
Save pumbaEO/3ca5fb60e09c6a7283ff29c0d4ec4b60 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From a994a645b2eaee5ad01bc21ec226f5f0d7965346 Mon Sep 17 00:00:00 2001 | |
From: =?UTF-8?q?=D0=A1=D0=BE=D1=81=D0=BD=D0=B0=20=D0=95=D0=B2=D0=B3=D0=B5?= | |
=?UTF-8?q?=D0=BD=D0=B8=D0=B9?= <[email protected]> | |
Date: Fri, 9 Sep 2016 08:22:01 +0300 | |
Subject: [PATCH 2/2] =?UTF-8?q?=D0=9E=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7?= | |
=?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5?= | |
=?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BC=D0=B5=D0=BD=D0=B5=D0=B4=D0=B6=D0=B5?= | |
=?UTF-8?q?=D1=80=D0=B0=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D0=B0=20?= | |
=?UTF-8?q?=D0=BF=D0=BE=20=D0=BF=D0=BE=D0=BB=D0=BD=D0=BE=D0=BC=D1=83=20?= | |
=?UTF-8?q?=D0=B8=D0=BC=D0=B5=D0=BD=D0=B8?= | |
MIME-Version: 1.0 | |
Content-Type: text/plain; charset=UTF-8 | |
Content-Transfer-Encoding: 8bit | |
Оптимизация сделана за счет, выноса парсинга и создания менеджера в модуль повт. использования | |
--- | |
.../Ext/Module.bsl | 92 +------------------ | |
.../Ext/Module.bsl | 101 +++++++++++++++++++++ | |
2 files changed, 103 insertions(+), 90 deletions(-) | |
diff --git a/cf/CommonModules/ОбщегоНазначения/Ext/Module.bsl b/cf/CommonModules/ОбщегоНазначения/Ext/Module.bsl | |
index 8d93eb4..c70e3cf 100644 | |
--- a/cf/CommonModules/ОбщегоНазначения/Ext/Module.bsl | |
+++ b/cf/CommonModules/ОбщегоНазначения/Ext/Module.bsl | |
@@ -2608,96 +2608,8 @@ | |
// Возвращаемое значение: | |
// СправочникМенеджер, ДокументМенеджер. | |
// | |
-Функция МенеджерОбъектаПоПолномуИмени(ПолноеИмя) Экспорт | |
- Перем КлассОМ, ИмяОМ, Менеджер; | |
- | |
- ЧастиИмени = СтрРазделить(ПолноеИмя, "."); | |
- | |
- Если ЧастиИмени.Количество() >= 2 Тогда | |
- КлассОМ = ЧастиИмени[0]; | |
- ИмяОМ = ЧастиИмени[1]; | |
- КонецЕсли; | |
- | |
- Если ВРег(КлассОМ) = "ПЛАНОБМЕНА" Тогда | |
- Менеджер = ПланыОбмена; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "СПРАВОЧНИК" Тогда | |
- Менеджер = Справочники; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "ДОКУМЕНТ" Тогда | |
- Менеджер = Документы; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "ЖУРНАЛДОКУМЕНТОВ" Тогда | |
- Менеджер = ЖурналыДокументов; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "ПЕРЕЧИСЛЕНИЕ" Тогда | |
- Менеджер = Перечисления; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "ОТЧЕТ" Тогда | |
- Менеджер = Отчеты; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "ОБРАБОТКА" Тогда | |
- Менеджер = Обработки; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "ПЛАНВИДОВХАРАКТЕРИСТИК" Тогда | |
- Менеджер = ПланыВидовХарактеристик; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "ПЛАНСЧЕТОВ" Тогда | |
- Менеджер = ПланыСчетов; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "ПЛАНВИДОВРАСЧЕТА" Тогда | |
- Менеджер = ПланыВидовРасчета; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРСВЕДЕНИЙ" Тогда | |
- Менеджер = РегистрыСведений; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРНАКОПЛЕНИЯ" Тогда | |
- Менеджер = РегистрыНакопления; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРБУХГАЛТЕРИИ" Тогда | |
- Менеджер = РегистрыБухгалтерии; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРРАСЧЕТА" Тогда | |
- Если ЧастиИмени.Количество() = 2 Тогда | |
- // Регистр расчета | |
- Менеджер = РегистрыРасчета; | |
- Иначе | |
- КлассПодчиненногоОМ = ЧастиИмени[2]; | |
- ИмяПодчиненногоОМ = ЧастиИмени[3]; | |
- Если ВРег(КлассПодчиненногоОМ) = "ПЕРЕРАСЧЕТ" Тогда | |
- // Перерасчет | |
- Попытка | |
- Менеджер = РегистрыРасчета[ИмяОМ].Перерасчеты; | |
- ИмяОм = ИмяПодчиненногоОМ; | |
- Исключение | |
- Менеджер = Неопределено; | |
- КонецПопытки; | |
- КонецЕсли; | |
- КонецЕсли; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "БИЗНЕСПРОЦЕСС" Тогда | |
- Менеджер = БизнесПроцессы; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "ЗАДАЧА" Тогда | |
- Менеджер = Задачи; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "КОНСТАНТА" Тогда | |
- Менеджер = Константы; | |
- | |
- ИначеЕсли ВРег(КлассОМ) = "ПОСЛЕДОВАТЕЛЬНОСТЬ" Тогда | |
- Менеджер = Последовательности; | |
- КонецЕсли; | |
- | |
- Если Менеджер <> Неопределено Тогда | |
- Попытка | |
- Возврат Менеджер[ИмяОМ]; | |
- Исключение | |
- Менеджер = Неопределено; | |
- КонецПопытки; | |
- КонецЕсли; | |
- | |
- ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неизвестный тип объекта метаданных ""%1""'"), ПолноеИмя); | |
- | |
+Функция МенеджерОбъектаПоПолномуИмени(Знач ПолноеИмя) Экспорт | |
+ Возврат ОбщегоНазначенияПовтИсп.МенеджерОбъектаПоПолномуИмени(ПолноеИмя); | |
КонецФункции | |
// Возвращает менеджер объекта по ссылке на объект. | |
diff --git a/cf/CommonModules/ОбщегоНазначенияПовтИсп/Ext/Module.bsl b/cf/CommonModules/ОбщегоНазначенияПовтИсп/Ext/Module.bsl | |
index 3a3ff21..a33b20a 100644 | |
--- a/cf/CommonModules/ОбщегоНазначенияПовтИсп/Ext/Module.bsl | |
+++ b/cf/CommonModules/ОбщегоНазначенияПовтИсп/Ext/Module.bsl | |
@@ -635,4 +635,105 @@ | |
Возврат ДоступностьОбъектов; | |
КонецФункции | |
+// Возвращает менеджер объекта по полному имени объекта метаданных. | |
+// Ограничение: не обрабатываются точки маршрутов бизнес-процессов. | |
+// | |
+// Параметры: | |
+// ПолноеИмя - Строка - полное имя объекта метаданных. Пример: "Справочник.Организации". | |
+// | |
+// Возвращаемое значение: | |
+// СправочникМенеджер, ДокументМенеджер. | |
+// | |
+Функция МенеджерОбъектаПоПолномуИмени(ПолноеИмя) Экспорт | |
+ Перем КлассОМ, ИмяОМ, Менеджер; | |
+ | |
+ ЧастиИмени = СтрРазделить(ПолноеИмя, "."); | |
+ | |
+ Если ЧастиИмени.Количество() >= 2 Тогда | |
+ КлассОМ = Врег(ЧастиИмени[0]); | |
+ ИмяОМ = ЧастиИмени[1]; | |
+ КонецЕсли; | |
+ | |
+ Если КлассОМ = "ПЛАНОБМЕНА" Тогда | |
+ Менеджер = ПланыОбмена; | |
+ | |
+ ИначеЕсли КлассОМ = "СПРАВОЧНИК" Тогда | |
+ Менеджер = Справочники; | |
+ | |
+ ИначеЕсли КлассОМ = "ДОКУМЕНТ" Тогда | |
+ Менеджер = Документы; | |
+ | |
+ ИначеЕсли КлассОМ = "ЖУРНАЛДОКУМЕНТОВ" Тогда | |
+ Менеджер = ЖурналыДокументов; | |
+ | |
+ ИначеЕсли КлассОМ = "ПЕРЕЧИСЛЕНИЕ" Тогда | |
+ Менеджер = Перечисления; | |
+ | |
+ ИначеЕсли КлассОМ = "ОТЧЕТ" Тогда | |
+ Менеджер = Отчеты; | |
+ | |
+ ИначеЕсли КлассОМ = "ОБРАБОТКА" Тогда | |
+ Менеджер = Обработки; | |
+ | |
+ ИначеЕсли КлассОМ = "ПЛАНВИДОВХАРАКТЕРИСТИК" Тогда | |
+ Менеджер = ПланыВидовХарактеристик; | |
+ | |
+ ИначеЕсли КлассОМ = "ПЛАНСЧЕТОВ" Тогда | |
+ Менеджер = ПланыСчетов; | |
+ | |
+ ИначеЕсли КлассОМ = "ПЛАНВИДОВРАСЧЕТА" Тогда | |
+ Менеджер = ПланыВидовРасчета; | |
+ | |
+ ИначеЕсли КлассОМ = "РЕГИСТРСВЕДЕНИЙ" Тогда | |
+ Менеджер = РегистрыСведений; | |
+ | |
+ ИначеЕсли КлассОМ = "РЕГИСТРНАКОПЛЕНИЯ" Тогда | |
+ Менеджер = РегистрыНакопления; | |
+ | |
+ ИначеЕсли КлассОМ = "РЕГИСТРБУХГАЛТЕРИИ" Тогда | |
+ Менеджер = РегистрыБухгалтерии; | |
+ | |
+ ИначеЕсли КлассОМ = "РЕГИСТРРАСЧЕТА" Тогда | |
+ Если ЧастиИмени.Количество() = 2 Тогда | |
+ // Регистр расчета | |
+ Менеджер = РегистрыРасчета; | |
+ Иначе | |
+ КлассПодчиненногоОМ = ЧастиИмени[2]; | |
+ ИмяПодчиненногоОМ = ЧастиИмени[3]; | |
+ Если ВРег(КлассПодчиненногоОМ) = "ПЕРЕРАСЧЕТ" Тогда | |
+ // Перерасчет | |
+ Попытка | |
+ Менеджер = РегистрыРасчета[ИмяОМ].Перерасчеты; | |
+ ИмяОм = ИмяПодчиненногоОМ; | |
+ Исключение | |
+ Менеджер = Неопределено; | |
+ КонецПопытки; | |
+ КонецЕсли; | |
+ КонецЕсли; | |
+ | |
+ ИначеЕсли КлассОМ = "БИЗНЕСПРОЦЕСС" Тогда | |
+ Менеджер = БизнесПроцессы; | |
+ | |
+ ИначеЕсли КлассОМ = "ЗАДАЧА" Тогда | |
+ Менеджер = Задачи; | |
+ | |
+ ИначеЕсли КлассОМ = "КОНСТАНТА" Тогда | |
+ Менеджер = Константы; | |
+ | |
+ ИначеЕсли КлассОМ = "ПОСЛЕДОВАТЕЛЬНОСТЬ" Тогда | |
+ Менеджер = Последовательности; | |
+ КонецЕсли; | |
+ | |
+ Если Менеджер <> Неопределено Тогда | |
+ Попытка | |
+ Возврат Менеджер[ИмяОМ]; | |
+ Исключение | |
+ Менеджер = Неопределено; | |
+ КонецПопытки; | |
+ КонецЕсли; | |
+ | |
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неизвестный тип объекта метаданных ""%1""'"), ПолноеИмя); | |
+ | |
+КонецФункции //МенеджерОбъектаПоПолномуИмени | |
+ | |
#КонецОбласти | |
-- | |
2.6.2.windows.1 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@pumbaEO я правильно понимаю, что патч можно применить командой
git apply 0002-patch
?