From 11ac12847166d4a21b19c5f3f158d711536f5e4a Mon Sep 17 00:00:00 2001 From: DenisUshakov Date: Mon, 15 Apr 2024 12:06:54 +0300 Subject: [PATCH 01/10] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=BE=D0=BD=D0=B0?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D0=91=D0=A1=D0=9F?= =?UTF-8?q?=20=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B0=D0=B4=D1=80=D0=B5?= =?UTF-8?q?=D1=81=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BD=D0=B0=20=D0=B2=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BE=D0=B4=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/ManagerModule.bsl" | 6 +- .../Ext/Form/Module.bsl" | 8 +- .../Ext/Form/Module.bsl" | 31 +- .../Ext/Form/Module.bsl" | 25 +- .../Ext/ManagerModule.bsl" | 8 +- .../Ext/ObjectModule.bsl" | 8 +- .../Ext/Form/Module.bsl" | 24 +- .../Ext/ManagerModule.bsl" | 26 +- .../Ext/Form/Module.bsl" | 51 +- .../Ext/Form/Module.bsl" | 6 +- .../Ext/Module.bsl" | 262 ---- .../Ext/Module.bsl" | 5 - .../Ext/Module.bsl" | 59 - .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 6 +- ...1\200\320\260\321\206\320\270\320\270.xml" | 10 +- .../Ext/Module.bsl" | 67 + ...0\265\320\261\320\275\321\213\320\271.xml" | 23 + .../Ext/Module.bsl" | 48 + .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 37 +- .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 36 +- ...1\200\320\262\320\265\321\200\320\260.xml" | 23 + .../Ext/Module.bsl" | 41 + .../Ext/Module.bsl" | 156 +++ .../Ext/Module.bsl" | 213 ++- .../Ext/Module.bsl" | 14 + .../Ext/Module.bsl" | 1191 ++++++++++++++++- ...0\265\320\261\320\275\321\213\320\271.xml" | 23 + .../Ext/Module.bsl" | 496 +++++++ ...0\273\320\270\320\265\320\275\321\202.xml" | 8 +- .../Ext/Module.bsl" | 67 + ...0\265\321\200\320\262\320\265\321\200.xml" | 12 +- .../Ext/Module.bsl" | 149 +++ ...0\260\321\202\320\265\320\273\320\270.xml" | 23 + .../Ext/Module.bsl" | 73 + ...0\265\321\200\320\262\320\265\321\200.xml" | 23 + .../Ext/Module.bsl" | 48 + ...0\265\320\261\320\275\321\213\320\271.xml" | 23 + .../Ext/Module.bsl" | 47 + .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 24 +- ...0\265\321\200\320\262\320\265\321\200.xml" | 23 + .../Ext/Module.bsl" | 320 +++++ ...0\265\321\200\320\262\320\265\321\200.xml" | 23 + .../Ext/Module.bsl" | 63 + .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 148 ++ ...0\265\321\200\320\262\320\265\321\200.xml" | 23 + .../Ext/Module.bsl" | 66 + src/Configuration.xml | 17 +- .../Ext/Form/Module.bsl" | 30 +- ...0\260\320\275\320\275\321\213\321\205.xml" | 262 ++++ .../Ext/ManagerModule.bsl" | 6 +- ...0\275\320\276\321\201\321\202\321\214.xml" | 24 + 62 files changed, 3766 insertions(+), 705 deletions(-) delete mode 100644 "src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214/Ext/Module.bsl" delete mode 100644 "src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" delete mode 100644 "src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" rename "src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214.xml" => "src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270.xml" (79%) create mode 100644 "src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Ext/Module.bsl" create mode 100644 "src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" create mode 100644 "src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" create mode 100644 "src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.xml" create mode 100644 "src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" create mode 100644 "src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" create mode 100644 "src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" rename "src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202.xml" => "src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml" (80%) create mode 100644 "src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" rename "src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" => "src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" (77%) create mode 100644 "src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" create mode 100644 "src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.xml" create mode 100644 "src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl" create mode 100644 "src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" create mode 100644 "src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" create mode 100644 "src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" create mode 100644 "src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" create mode 100644 "src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml" create mode 100644 "src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" create mode 100644 "src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.xml" create mode 100644 "src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" create mode 100644 "src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" create mode 100644 "src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" create mode 100644 "src/InformationRegisters/__\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\320\265\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\224\320\260\320\275\320\275\321\213\321\205.xml" create mode 100644 "src/Subsystems/__\320\221\320\260\320\267\320\276\320\262\320\260\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\321\214.xml" diff --git "a/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl" "b/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl" index 7f254d27..513cf88a 100644 --- "a/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl" +++ "b/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl" @@ -28,10 +28,6 @@ //Процедура очищает записи в справочнике старше чем установленное в предопределенном значении количество дней Процедура ОчиститьИсториюИнтеграции() Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ЖурналРегистрации = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ @@ -68,7 +64,7 @@ ТекстОшибки = __ОбщегоНазначенияСервер.ПолучениеПолногоТекстаОшибкиПриИсключении(ЗаголовокОшибки, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПолучитьСообщенияПользователю(Истина)); - ЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , ВыборкаДетальныеЗаписи.Ссылка, ТекстОшибки); + __ЖурналРегистрацииСлужебный.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , ВыборкаДетальныеЗаписи.Ссылка, ТекстОшибки); КонецПопытки; diff --git "a/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" index 5dd831f4..ac790c0d 100644 --- "a/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" @@ -66,14 +66,10 @@ &НаСервере Функция ПолучитьРегламентноеЗадание() - // ++ Обход ошибки отстутствия модуля БСП, не переносить - РегламентныеЗаданияСервер = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - ПараметрыЗадания = Новый Структура; ПараметрыЗадания.Вставить("Ключ" , "__ОчисткаИсторииИнтеграции"); ПараметрыЗадания.Вставить("Метаданные" , Метаданные.РегламентныеЗадания.__ОчисткаИсторииИнтеграции); - МассивРегламентныхЗаданий = РегламентныеЗаданияСервер.НайтиЗадания(ПараметрыЗадания); + МассивРегламентныхЗаданий = __РегламентныеЗаданияСлужебныйСервер.НайтиЗадания(ПараметрыЗадания); Если МассивРегламентныхЗаданий.Количество() Тогда РегламентноеЗадание = МассивРегламентныхЗаданий[0]; @@ -81,7 +77,7 @@ ПараметрыЗадания.Вставить("Использование" , Истина); ПараметрыЗадания.Вставить("Расписание" , Новый РасписаниеРегламентногоЗадания()); - РегламентноеЗадание = РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания); + РегламентноеЗадание = __РегламентныеЗаданияСлужебныйСервер.ДобавитьЗадание(ПараметрыЗадания); КонецЕсли; Возврат РегламентноеЗадание; diff --git "a/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index 8b2ddac2..21cd8cd6 100644 --- "a/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -68,11 +68,8 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = __ВспомогательныйМодульНеПереноситьКлиент; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если ЗначениеЗаполнено(Объект.ФорматЗапросаИнтеграции) И Объект.ФорматЗапросаИнтеграции <> ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.ПроизвольныйФормат") Тогда + Если ЗначениеЗаполнено(Объект.ФорматЗапросаИнтеграции) + И Объект.ФорматЗапросаИнтеграции <> __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.ПроизвольныйФормат") Тогда ИнициализироватьБазовыйФайлРедактора(ПолучитьФорматИнтеграции(Объект.ФорматЗапросаИнтеграции)); КонецЕсли; @@ -92,11 +89,7 @@ &НаКлиенте Процедура ЗапросИсходящийДокументСформирован_Подключаемый(Элемент) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.JSON") Тогда + Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.JSON") Тогда ИнициализироватьИЗаполнитьТекстомОбъектJSON("code", "Исходящий"); Иначе ИнициализироватьИЗаполнитьТекстомОбъектXML("Исходящий"); @@ -107,11 +100,7 @@ &НаКлиенте Процедура ЗапросВходящийДокументСформирован_Подключаемый(Элемент) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.JSON") Тогда + Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.JSON") Тогда ИнициализироватьИЗаполнитьТекстомОбъектJSON("code", "Входящий"); Иначе ИнициализироватьИЗаполнитьТекстомОбъектXML("Входящий"); @@ -126,11 +115,7 @@ &НаКлиенте Процедура РазвернутьВсе(Команда) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.XML") Тогда + Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.XML") Тогда Элементы.ЗапросИсходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", true); Элементы.ЗапросВходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", true); Иначе @@ -148,11 +133,7 @@ &НаКлиенте Процедура СвернутьВсе(Команда) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.XML") Тогда + Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.XML") Тогда Элементы.ЗапросИсходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", false); Элементы.ЗапросВходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", false); Иначе diff --git "a/src/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index 88bfa1d8..27d65d7a 100644 --- "a/src/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -30,13 +30,8 @@ Возврат; КонецЕсли; - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - Если ОбщегоНазначения <> Неопределено Тогда - // -- Обход ошибки отстутствия модуля БСП, не переносить - УстановитьПривилегированныйРежим(Истина); - СтруктураНастроек = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка); + СтруктураНастроек = __ОбщегоНазначенияСлужебный.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка); Если СтруктураНастроек = Неопределено Тогда Возврат; @@ -49,22 +44,11 @@ ЗаполнитьЗначенияСвойств(НоваяСтрока, КлючИЗначение.Значение); КонецЦикла; - // ++ Обход ошибки отстутствия модуля БСП, не переносить - КонецЕсли; - // -- Обход ошибки отстутствия модуля БСП, не переносить - КонецПроцедуры &НаСервере Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - Если ОбщегоНазначения <> Неопределено Тогда - // -- Обход ошибки отстутствия модуля БСП, не переносить - - УстановитьПривилегированныйРежим(Истина); - СтруктураНастроек = Новый Структура(); Для Каждого ТекСтрока Из СписокНастроек Цикл @@ -78,12 +62,9 @@ СтруктураНастроек.Вставить(ТекСтрока.ИмяНастройки, Настройка); КонецЦикла; - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, СтруктураНастроек); - + УстановитьПривилегированныйРежим(Истина); + __ОбщегоНазначенияСлужебный.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, СтруктураНастроек); УстановитьПривилегированныйРежим(Ложь); - // ++ Обход ошибки отстутствия модуля БСП, не переносить - КонецЕсли; - // -- Обход ошибки отстутствия модуля БСП, не переносить КонецПроцедуры diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" index 917bf067..7e9e7baf 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" @@ -29,10 +29,6 @@ // Процедура ОбновитьПредопределенныеЭлементы(Знач Макет = Неопределено, РежимСообщений = "Все") Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - ВыводитьОшибки = ?(РежимСообщений = "Все" Или РежимСообщений = "Ошибки", Истина, Ложь); ВыводитьИнформацию = ?(РежимСообщений = "Все", Истина, Ложь); @@ -76,7 +72,7 @@ Если ВыводитьОшибки Тогда - ОбщегоНазначения.СообщитьПользователю(СтрШаблон( + __ОбщегоНазначенияСлужебный.СообщитьПользователю(СтрШаблон( НСтр("ru='Не удалось найти предопределенный элемент справочника ""Пользовательские функции"" по имени %1'; |en='Failed to find a predefined element of the directory ""User-defined functions"" named %1'"), ОписаниеЭлемента.ИмяПредопределенного)); @@ -94,7 +90,7 @@ Если ВыводитьИнформацию Тогда - ОбщегоНазначения.СообщитьПользователю(СтрШаблон( + __ОбщегоНазначенияСлужебный.СообщитьПользователю(СтрШаблон( НСтр("ru='Выполнена проверка версий предопределенных элементов справочника ""Пользовательские функции"". Обновлено %1 элементов.'; |en='Successfully checked the versions of predefined elements of the directory ""User functions"". %1 elements updated.'"), Строка(Ном))); diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ObjectModule.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ObjectModule.bsl" index d1db5c67..8e60ae16 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ObjectModule.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ObjectModule.bsl" @@ -47,10 +47,6 @@ Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - СтруктураПараметров = Новый Структура; Для Каждого СтрокаТаблицы Из Переменные Цикл @@ -71,14 +67,14 @@ ТекстСообщения = СтрШаблон(НСтр("ru='Обнаружено некорректное имя ""%1"" в таблице ""Переменные"".'; |en='Found an incorrect name ""%1"" in table ""Variables.""'"),СтрокаТаблицы.Имя); - ОбщегоНазначения.СообщитьПользователю( + __ОбщегоНазначенияСлужебный.СообщитьПользователю( ТекстСообщения, ЭтотОбъект, СтрШаблон("Переменные[%1].Имя", НомерСтроки),, Отказ); КонецПопытки; Иначе ТекстСообщения = СтрШаблон(НСтр("ru='Обнаружено дублирующееся имя ""%1"" в таблице ""Переменные"".'; |en='Found a duplicate name ""%1"" in the table ""Variables.""'"), СтрокаТаблицы.Имя); - ОбщегоНазначения.СообщитьПользователю( + __ОбщегоНазначенияСлужебный.СообщитьПользователю( ТекстСообщения, ЭтотОбъект, СтрШаблон("Переменные[%1].Имя", НомерСтроки),, Отказ); КонецЕсли; КонецЦикла; diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index 92106fba..5253faa9 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -469,10 +469,6 @@ &НаСервере Процедура ВыполнитьКодСервер(ЗначенияПараметров) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - СтрПеременные = Новый Структура; Для Каждого СтрокаТаблицы Из Объект.Переменные Цикл @@ -502,7 +498,7 @@ Результат = __ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(ТекстФункции, ТабПараметров, СтрПеременные); - ОбщегоНазначения.СообщитьПользователю(Строка(Результат)); + __ОбщегоНазначенияСлужебный.СообщитьПользователю(Строка(Результат)); Исключение ТекстСообщения = СтрШаблон(НСтр("ru = 'Ошибка при выполнении функции по причине: %1'; @@ -596,11 +592,7 @@ &НаСервере Функция ПолучитьКаталогИсходногоКодаКонфигурации() - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Результат = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта(), + Результат = __ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта(), "__ПользовательскиеФункции_КаталогИсхКода", ""); Возврат Результат; @@ -610,11 +602,7 @@ &НаСервере Процедура СохранитьКаталогИсходногоКодаКонфигурации(Каталог) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(КлючОбъекта(), + __ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекСохранить(КлючОбъекта(), "__ПользовательскиеФункции_КаталогИсхКода", Каталог); КонецПроцедуры @@ -723,15 +711,11 @@ &НаКлиенте Процедура ПослеЗаписиФайлаМакета(ДопПараметры) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Попытка Файл = Новый ЧтениеZipФайла(КаталогИсходников + "bsl_console.zip"); Файл.ИзвлечьВсе(КаталогИсходников); Файл = Новый ЗаписьТекста(КаталогИсходников + ВерсияОбработки + ".ver"); - Файл.ЗаписатьСтроку(ОбщегоНазначенияКлиент.ДатаСеанса()); + Файл.ЗаписатьСтроку(__ОбщегоНазначенияСлужебныйКлиент.ДатаУниверсальная()); Файл.Закрыть(); ТочкаВхода = КаталогИсходников + "index.html"; ИндексныйФайл = ИндексныйФайл(); diff --git "a/src/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ManagerModule.bsl" "b/src/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ManagerModule.bsl" index d352063b..1273c85f 100644 --- "a/src/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ManagerModule.bsl" +++ "b/src/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ManagerModule.bsl" @@ -54,19 +54,14 @@ // Функция ПолучитьЗначения(Идентификаторы, ВРазрезеКлючей = Ложь) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиентСервер = Неопределено; - СтроковыеФункцииКлиентСервер = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если ВРазрезеКлючей Тогда Значения = Новый Соответствие; Иначе Значения = Новый Массив; КонецЕсли; - МассивИдентификаторов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Идентификаторы); - МассивИдентификаторов = ОбщегоНазначенияКлиентСервер.СвернутьМассив(МассивИдентификаторов); + МассивИдентификаторов = __СтроковыеФункцииСлужебныйКлиентСервер.РазложитьСтрокуВМассивПодстрок(Идентификаторы); + МассивИдентификаторов = __ОбщегоНазначенияСлужебныйКлиентСервер.СвернутьМассив(МассивИдентификаторов); Если Не ЗначениеЗаполнено(МассивИдентификаторов) Тогда Возврат Значения; @@ -75,7 +70,7 @@ Значения = ЗначенияПредопределенныхЭлементов(МассивИдентификаторов, , Истина, ВРазрезеКлючей); Если Не ВРазрезеКлючей Тогда - Значения = ОбщегоНазначенияКлиентСервер.СвернутьМассив(Значения); + Значения = __ОбщегоНазначенияСлужебныйКлиентСервер.СвернутьМассив(Значения); КонецЕсли; Возврат Значения; @@ -235,16 +230,12 @@ Процедура ДополнитьЗначенияПредопределенных(Приемник, Значение, Идентификатор = "", МножественныйВыбор = Ложь) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиентСервер = __ВспомогательныйМодульНеПереноситьКлиентСервер; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если МножественныйВыбор Тогда Если ТипЗнч(Приемник) = Тип("Соответствие") Тогда Приемник.Вставить(Идентификатор, Значение); Иначе Если ТипЗнч(Значение) = Тип("Массив") Тогда - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Приемник, Значение); + __ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьМассив(Приемник, Значение); Иначе Приемник.Добавить(Значение); КонецЕсли; @@ -257,16 +248,11 @@ Функция ПолучитьПарольПоИдентификатору(УИД) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - ОбщегоНазначенияКлиентСервер = __ВспомогательныйМодульНеПереноситьКлиентСервер; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - ДанныеХранилища = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Строка(УИД)); + ДанныеХранилища = __ОбщегоНазначенияСлужебный.ПрочитатьДанныеИзБезопасногоХранилища(Строка(УИД)); Значение = ""; Если ТипЗнч(ДанныеХранилища) = Тип("Структура") Тогда - Значение = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеХранилища, "bit_password", ""); + Значение = __ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДанныеХранилища, "bit_password", ""); КонецЕсли; Возврат Значение; diff --git "a/src/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index 4ed76e8f..d10b2c86 100644 --- "a/src/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -33,21 +33,17 @@ &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - ДанныеХранилища = Неопределено; УстановитьПривилегированныйРежим(Истина); Если Объект.Пароль Тогда ДанныеХранилища = Новый Структура("bit_password", Объект.Значение); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище( + __ОбщегоНазначенияСлужебный.ЗаписатьДанныеВБезопасноеХранилище( Строка(ТекущийОбъект.Ссылка.УникальныйИдентификатор()), ДанныеХранилища); ТекущийОбъект.Значение = ""; Иначе - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище( + __ОбщегоНазначенияСлужебный.ЗаписатьДанныеВБезопасноеХранилище( Строка(ТекущийОбъект.Ссылка.УникальныйИдентификатор()), Неопределено); КонецЕсли; @@ -75,15 +71,11 @@ &НаКлиенте Процедура ПарольПриИзменении(Элемент) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если ТипЗнч(Объект.Значение) <> Тип("Строка") Тогда Объект.Пароль = Ложь; - ОбщегоНазначенияКлиент.СообщитьПользователю( + __ОбщегоНазначенияСлужебныйКлиент.СообщитьПользователю( НСтр("ru='Пароль может использовать только тип ""Строка"".'; | en='The password can only use the type ""String"".'"), Объект.Ссылка, "ТипЗначения", "Объект.ТипЗначения"); @@ -94,7 +86,7 @@ Объект.Пароль = Ложь; - ОбщегоНазначенияКлиент.СообщитьПользователю( + __ОбщегоНазначенияСлужебныйКлиент.СообщитьПользователю( НСтр("ru='Использование пароля недоступен для списка значений.'; | en='Password usage is not available for the list of values.'"), Объект.Ссылка, "СписокЗначений", "Объект.СписокЗначений"); @@ -182,23 +174,19 @@ &НаСервере Процедура УправлениеФормой() - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиентСервер = __ВспомогательныйМодульНеПереноситьКлиентСервер; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( + __ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "НадписьНаличиеПароля", "Видимость", Объект.Пароль); - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( + __ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "Значение", "Видимость", Не Объект.СписокЗначений); - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( + __ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "Значение", "КнопкаВыбора", Не Объект.Пароль); - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( + __ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "Значение", "РежимПароля", Объект.Пароль); - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( + __ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "Значение", "КнопкаОткрытия", Не Объект.Пароль); - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( + __ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "ЗначенияЭлементов", "Видимость", Объект.СписокЗначений); - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( + __ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "СписокЗначений", "ТолькоПросмотр", Объект.Пароль); УстановитьНаличиеПароля(); @@ -208,11 +196,6 @@ &НаСервере Процедура УстановитьНаличиеПароля(ДанныеХранилища = Неопределено); - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - ОбщегоНазначенияКлиентСервер = __ВспомогательныйМодульНеПереноситьКлиентСервер; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если НЕ Объект.Пароль Тогда Возврат; КонецЕсли; @@ -220,14 +203,14 @@ Если ДанныеХранилища = Неопределено Тогда УстановитьПривилегированныйРежим(Истина); - ДанныеХранилища = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища( + ДанныеХранилища = __ОбщегоНазначенияСлужебный.ПрочитатьДанныеИзБезопасногоХранилища( Строка(Объект.Ссылка.УникальныйИдентификатор())); УстановитьПривилегированныйРежим(Ложь); КонецЕсли; Если ТипЗнч(ДанныеХранилища) = Тип("Структура") - И НЕ ПустаяСтрока(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеХранилища, "bit_password", "")) Тогда + И НЕ ПустаяСтрока(__ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДанныеХранилища, "bit_password", "")) Тогда Элементы.НадписьНаличиеПароля.Заголовок = НСтр("ru = 'Пароль установлен'"); Иначе @@ -252,16 +235,12 @@ &НаКлиенте Процедура ВводСтрокиЗавершение(Результат, ДополнительныеПараметры) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиентСервер = __ВспомогательныйМодульНеПереноситьКлиентСервер; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, "ТолькоПросмотр", Ложь) Тогда + Если __ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, "ТолькоПросмотр", Ложь) Тогда Возврат; КонецЕсли; Если Результат <> Неопределено Тогда - Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, "РеквизитШапки", Ложь) Тогда + Если __ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, "РеквизитШапки", Ложь) Тогда Объект[ДополнительныеПараметры.Реквизит] = Результат; Иначе ДополнительныеПараметры.Реквизит.Значение = Результат; diff --git "a/src/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form/Module.bsl" "b/src/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form/Module.bsl" index 47d12d0f..af2f2f4e 100644 --- "a/src/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form/Module.bsl" +++ "b/src/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form/Module.bsl" @@ -26,10 +26,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Параметры.Свойство("Режим", Режим); Если Параметры.Свойство("Переменные") Тогда @@ -44,7 +40,7 @@ ОбновитьДерево(); Если Не Поля.ПолучитьЭлементы().Количество() Тогда - ОбщегоНазначения.СообщитьПользователю(НСтр("ru='Нет полей для выбора.';en='No fields to select.'"),,,, Отказ); + __ОбщегоНазначенияСлужебный.СообщитьПользователю(НСтр("ru='Нет полей для выбора.';en='No fields to select.'"),,,, Отказ); КонецЕсли; КонецПроцедуры diff --git "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214/Ext/Module.bsl" "b/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214/Ext/Module.bsl" deleted file mode 100644 index 2780107a..00000000 --- "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214/Ext/Module.bsl" +++ /dev/null @@ -1,262 +0,0 @@ - -Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено, - СокращатьНепечатаемыеСимволы = Ложь) Экспорт - - Если СтрДлина(Разделитель) = 1 - И ПропускатьПустыеСтроки = Неопределено - И СокращатьНепечатаемыеСимволы Тогда - - Результат = СтрРазделить(Значение, Разделитель, Ложь); - Для Индекс = 0 По Результат.ВГраница() Цикл - Результат[Индекс] = СокрЛП(Результат[Индекс]) - КонецЦикла; - Возврат Результат; - - КонецЕсли; - - Результат = Новый Массив; - - // Для обеспечения обратной совместимости. - Если ПропускатьПустыеСтроки = Неопределено Тогда - ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); - Если ПустаяСтрока(Значение) Тогда - Если Разделитель = " " Тогда - Результат.Добавить(""); - КонецЕсли; - Возврат Результат; - КонецЕсли; - КонецЕсли; - // - - Позиция = СтрНайти(Значение, Разделитель); - Пока Позиция > 0 Цикл - Подстрока = Лев(Значение, Позиция - 1); - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда - Если СокращатьНепечатаемыеСимволы Тогда - Результат.Добавить(СокрЛП(Подстрока)); - Иначе - Результат.Добавить(Подстрока); - КонецЕсли; - КонецЕсли; - Значение = Сред(Значение, Позиция + СтрДлина(Разделитель)); - Позиция = СтрНайти(Значение, Разделитель); - КонецЦикла; - - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Значение) Тогда - Если СокращатьНепечатаемыеСимволы Тогда - Результат.Добавить(СокрЛП(Значение)); - Иначе - Результат.Добавить(Значение); - КонецЕсли; - КонецЕсли; - - Возврат Результат; - -КонецФункции - -Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт - - ПараметрыСтрока = ""; - Если Параметры <> Неопределено И Параметры.Количество() > 0 Тогда - Для Индекс = 0 По Параметры.ВГраница() Цикл - ПараметрыСтрока = ПараметрыСтрока + "Параметры[" + XMLСтрока(Индекс) + "],"; - КонецЦикла; - ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1); - КонецЕсли; - - Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; - -КонецПроцедуры - -Функция СократитьСтрокуКонтрольнойСуммой(Строка, МаксимальнаяДлина) Экспорт - - МинимальнаяДлина = 32; - Результат = Строка; - Если СтрДлина(Строка) > МаксимальнаяДлина Тогда - Результат = Лев(Строка, МаксимальнаяДлина - МинимальнаяДлина); - ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5); - ХешированиеДанных.Добавить(Сред(Строка, МаксимальнаяДлина - МинимальнаяДлина + 1)); - Результат = Результат + СтрЗаменить(ХешированиеДанных.ХешСумма, " ", ""); - КонецЕсли; - Возврат Результат; - -КонецФункции - -#Область ХранилищеНастроек - -Функция ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию = Неопределено, - ОписаниеНастроек = Неопределено, ИмяПользователя = Неопределено) Экспорт - - Возврат ХранилищеЗагрузить(ХранилищеОбщихНастроек, - КлючОбъекта, - КлючНастроек, - ЗначениеПоУмолчанию, - ОписаниеНастроек, - ИмяПользователя); - -КонецФункции - -Процедура ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки, - ОписаниеНастроек = Неопределено, - ИмяПользователя = Неопределено, - ОбновитьПовторноИспользуемыеЗначения = Ложь) Экспорт - - ХранилищеСохранить(ХранилищеОбщихНастроек, - КлючОбъекта, - КлючНастроек, - Настройки, - ОписаниеНастроек, - ИмяПользователя, - ОбновитьПовторноИспользуемыеЗначения); - -КонецПроцедуры - -Процедура ХранилищеСохранить(МенеджерХранилища, КлючОбъекта, КлючНастроек, Настройки, - ОписаниеНастроек, ИмяПользователя, ОбновитьПовторноИспользуемыеЗначения) - - Если Не ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда - Возврат; - КонецЕсли; - - МенеджерХранилища.Сохранить(КлючОбъекта, КлючНастроек(КлючНастроек), Настройки, - ОписаниеНастроек, ИмяПользователя); - - Если ОбновитьПовторноИспользуемыеЗначения Тогда - ОбновитьПовторноИспользуемыеЗначения(); - КонецЕсли; - -КонецПроцедуры - -Функция ХранилищеЗагрузить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию, - ОписаниеНастроек, ИмяПользователя) - - Результат = Неопределено; - - Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда - Результат = МенеджерХранилища.Загрузить(КлючОбъекта, КлючНастроек(КлючНастроек), - ОписаниеНастроек, ИмяПользователя); - КонецЕсли; - - Если Результат = Неопределено Тогда - Результат = ЗначениеПоУмолчанию; - КонецЕсли; - - Возврат Результат; - -КонецФункции - -Функция КлючНастроек(Знач Строка) - Возврат СократитьСтрокуКонтрольнойСуммой(Строка, 128); -КонецФункции - -#КонецОбласти - -Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт - Возврат; -КонецПроцедуры - -Функция ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт - - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиентСервер = __ВспомогательныйМодульНеПереноситьКлиентСервер; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Владельцы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Владелец); - ДанныеВладельца = ПрочитатьДанныеВладельцевИзБезопасногоХранилища(Владельцы, Ключи, ОбщиеДанные); - - Результат = ДанныеВладельца[Владелец]; - - Возврат Результат; - -КонецФункции - -Функция ПрочитатьДанныеВладельцевИзБезопасногоХранилища(Владельцы, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт - - Результат = ДанныеИзБезопасногоХранилища(Владельцы, Ключи, ОбщиеДанные); - - Возврат Результат; - -КонецФункции - -Функция ДанныеИзБезопасногоХранилища(Владельцы, Ключи, ОбщиеДанные) - - Результат = Новый Соответствие(); - - Возврат Результат; -КонецФункции - -Функция НайтиЗадания(Отбор) Экспорт - - СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор); - - Возврат СписокЗаданий; - -КонецФункции - -Процедура УдалитьЗадание(Знач Идентификатор) Экспорт - - Возврат; - -КонецПроцедуры - -Функция ДобавитьЗадание(Параметры) Экспорт - - Задание = ДобавитьРегламентноеЗадание(Параметры); - - Возврат Задание; - -КонецФункции - -Функция ДобавитьРегламентноеЗадание(Параметры) Экспорт - - МетаданныеЗадания = Параметры.Метаданные; - Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание(МетаданныеЗадания); - - Если Параметры.Свойство("Наименование") Тогда - Задание.Наименование = Параметры.Наименование; - Иначе - Задание.Наименование = МетаданныеЗадания.Наименование; - КонецЕсли; - - Если Параметры.Свойство("Использование") Тогда - Задание.Использование = Параметры.Использование; - Иначе - Задание.Использование = МетаданныеЗадания.Использование; - КонецЕсли; - - Если Параметры.Свойство("Ключ") Тогда - Задание.Ключ = Параметры.Ключ; - Иначе - Задание.Ключ = МетаданныеЗадания.Ключ; - КонецЕсли; - - Если Параметры.Свойство("ИмяПользователя") Тогда - Задание.ИмяПользователя = Параметры.ИмяПользователя; - КонецЕсли; - - Если Параметры.Свойство("ИнтервалПовтораПриАварийномЗавершении") Тогда - Задание.ИнтервалПовтораПриАварийномЗавершении = Параметры.ИнтервалПовтораПриАварийномЗавершении; - Иначе - Задание.ИнтервалПовтораПриАварийномЗавершении = МетаданныеЗадания.ИнтервалПовтораПриАварийномЗавершении; - КонецЕсли; - - Если Параметры.Свойство("КоличествоПовторовПриАварийномЗавершении") Тогда - Задание.КоличествоПовторовПриАварийномЗавершении = Параметры.КоличествоПовторовПриАварийномЗавершении; - Иначе - Задание.КоличествоПовторовПриАварийномЗавершении = МетаданныеЗадания.КоличествоПовторовПриАварийномЗавершении; - КонецЕсли; - - Если Параметры.Свойство("Параметры") Тогда - Задание.Параметры = Параметры.Параметры; - КонецЕсли; - - Если Параметры.Свойство("Расписание") Тогда - Задание.Расписание = Параметры.Расписание; - КонецЕсли; - - Задание.Записать(); - - Возврат Задание; - -КонецФункции - diff --git "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" deleted file mode 100644 index 0d263ec4..00000000 --- "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" +++ /dev/null @@ -1,5 +0,0 @@ -Функция ПредопределенныйЭлемент(ПолноеИмяПредопределенного) Экспорт - - Возврат ПредопределенноеЗначение(ПолноеИмяПредопределенного); - -КонецФункции \ No newline at end of file diff --git "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" deleted file mode 100644 index 219f7bab..00000000 --- "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ /dev/null @@ -1,59 +0,0 @@ - -Функция СвойствоСтруктуры(Структура, Ключ, ЗначениеПоУмолчанию = Неопределено) Экспорт - - Если Структура = Неопределено Тогда - Возврат ЗначениеПоУмолчанию; - КонецЕсли; - - Результат = ЗначениеПоУмолчанию; - Если Структура.Свойство(Ключ, Результат) Тогда - Возврат Результат; - Иначе - Возврат ЗначениеПоУмолчанию; - КонецЕсли; - -КонецФункции - -Процедура УстановитьСвойствоЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства, Значение) Экспорт - - ЭлементФормы = ЭлементыФормы.Найти(ИмяЭлемента); - Если ЭлементФормы <> Неопределено И ЭлементФормы[ИмяСвойства] <> Значение Тогда - ЭлементФормы[ИмяСвойства] = Значение; - КонецЕсли; - -КонецПроцедуры - -Функция ЗначениеВМассиве(Знач Значение) Экспорт - - Результат = Новый Массив; - Результат.Добавить(Значение); - Возврат Результат; - -КонецФункции - -Процедура ДополнитьМассив(МассивПриемник, МассивИсточник, ТолькоУникальныеЗначения = Ложь) Экспорт - - Если ТолькоУникальныеЗначения Тогда - - УникальныеЗначения = Новый Соответствие; - - Для Каждого Значение Из МассивПриемник Цикл - УникальныеЗначения.Вставить(Значение, Истина); - КонецЦикла; - - Для Каждого Значение Из МассивИсточник Цикл - Если УникальныеЗначения[Значение] = Неопределено Тогда - МассивПриемник.Добавить(Значение); - УникальныеЗначения.Вставить(Значение, Истина); - КонецЕсли; - КонецЦикла; - - Иначе - - Для Каждого Значение Из МассивИсточник Цикл - МассивПриемник.Добавить(Значение); - КонецЦикла; - - КонецЕсли; - -КонецПроцедуры \ No newline at end of file diff --git "a/src/CommonModules/__\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\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl" "b/src/CommonModules/__\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\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl" index c5c5b64a..52e930a7 100644 --- "a/src/CommonModules/__\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\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl" +++ "b/src/CommonModules/__\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\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl" @@ -37,10 +37,6 @@ // Процедура ДокументыОбработкаЗаполнения(Источник, ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -56,7 +52,7 @@ ПараметрыМетода.Добавить(ТекстЗаполнения); ПараметрыМетода.Добавить(СтандартнаяОбработка); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); diff --git "a/src/CommonModules/__\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\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217/Ext/Module.bsl" "b/src/CommonModules/__\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\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217/Ext/Module.bsl" index 7ab2c3f7..5ca609ac 100644 --- "a/src/CommonModules/__\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\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217/Ext/Module.bsl" +++ "b/src/CommonModules/__\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\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217/Ext/Module.bsl" @@ -36,10 +36,6 @@ // Процедура ДокументыОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -54,7 +50,7 @@ ПараметрыМетода.Добавить(Отказ); ПараметрыМетода.Добавить(РежимПроведения); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); diff --git "a/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl" "b/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl" index 0e7f2dc2..f05d0b8d 100644 --- "a/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl" @@ -37,10 +37,6 @@ // Процедура ДокументыПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -55,7 +51,7 @@ ПараметрыМетода.Добавить(РежимЗаписи); ПараметрыМетода.Добавить(РежимПроведения); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); diff --git "a/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl" "b/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl" index 9831a5e1..bec6773f 100644 --- "a/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl" @@ -35,10 +35,6 @@ // Процедура ДокументыПриЗаписи(Источник, Отказ) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -52,7 +48,7 @@ ПараметрыМетода.Добавить(Источник); ПараметрыМетода.Добавить(Отказ); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); diff --git "a/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl" "b/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl" index a71c6305..0bda5703 100644 --- "a/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl" @@ -34,10 +34,6 @@ // Процедура ДокументыПриКопировании(Источник, ОбъектКопирования) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -51,7 +47,7 @@ ПараметрыМетода.Добавить(Источник); ПараметрыМетода.Добавить(ОбъектКопирования); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); diff --git "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214.xml" "b/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270.xml" similarity index 79% rename from "src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214.xml" rename to "src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270.xml" index 2b4a1d1b..fd181501 100644 --- "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214.xml" +++ "b/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270.xml" @@ -1,16 +1,12 @@  - + - __ВспомогательныйМодульНеПереносить + __ЖурналРегистрации ru - Вспомогательный модуль (не переносить) - - - en - Auxiliary module (do not transfer) + Журнал регистрации diff --git "a/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Ext/Module.bsl" "b/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Ext/Module.bsl" new file mode 100644 index 00000000..2a2e1c6e --- /dev/null +++ "b/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Ext/Module.bsl" @@ -0,0 +1,67 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выше + +#Область ПрограммныйИнтерфейс + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +#Область МетодыАналогиБСП + +// Аналог метода БСП. Записывает сообщение в журнал регистрации. +// +// Параметры: +// ИмяСобытия - Строка - имя события для журнала регистрации. +// Уровень - УровеньЖурналаРегистрации - уровни важности событий журнала регистрации. +// ОбъектМетаданных - ОбъектМетаданных - объект метаданных, к которому относится событие. +// Данные - ЛюбаяСсылка +// - Число +// - Строка +// - Дата +// - Булево +// - Неопределено +// - Тип - данные, с которыми связано событие. +// Рекомендуется указывать ссылки на объекты данных (элементы справочников, документы, к которым +// относится событие). +// Комментарий - Строка - комментарий для события журнала. +// +Процедура ДобавитьСообщениеДляЖурналаРегистрации(Знач ИмяСобытия, Знач Уровень, + Знач ОбъектМетаданных = Неопределено, Знач Данные = Неопределено, Знач Комментарий = "") Экспорт + + Если ПустаяСтрока(ИмяСобытия) Тогда + ИмяСобытия = "Событие"; // не локализуется, чтобы не допускать остановки запуска в частично переведенной конфигурации + КонецЕсли; + + ЗаписьЖурналаРегистрации(ИмяСобытия, Уровень, ОбъектМетаданных, Данные, Комментарий, РежимТранзакцииЗаписиЖурналаРегистрации.Независимая); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" "b/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" new file mode 100644 index 00000000..82d3dc08 --- /dev/null +++ "b/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" @@ -0,0 +1,23 @@ + + + + + __ЖурналРегистрацииСлужебный + + + ru + Журнал регистрации служебный + + + + false + false + true + true + false + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" new file mode 100644 index 00000000..6bfe537b --- /dev/null +++ "b/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -0,0 +1,48 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выше + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ПереадресацияМетодов + +// См. __ЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации. +Процедура ДобавитьСообщениеДляЖурналаРегистрации(Знач ИмяСобытия, Знач Уровень, + Знач ОбъектМетаданных = Неопределено, Знач Данные = Неопределено, Знач Комментарий = "") Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, Уровень, ОбъектМетаданных, Данные, Комментарий); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьМодуль() + Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль("ЖурналРегистрации", "__ЖурналРегистрации"); +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/CommonModules/__\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" index a3992afa..3917013c 100644 --- "a/src/CommonModules/__\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" @@ -34,10 +34,6 @@ // Асинх Функция ЗагрузитьИзXLS(СоответствиеКолонок, НазваниеЛиста = "", НомерПервойСтроки = 1) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - АдресПомещения = __ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера.ПоместитьЗаглушку(СоответствиеКолонок); Параметры = Новый Структура("Макет, АдресПомещения, НазваниеЛиста, НомерПервойСтроки", СоответствиеКолонок, АдресПомещения, НазваниеЛиста, НомерПервойСтроки); @@ -53,7 +49,7 @@ Если ТипЗнч(ОписаниеФайла) = Тип("ОписаниеПомещенногоФайла") И Не ОписаниеФайла.ПомещениеФайлаОтменено Тогда __ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера.ФормированиеТаблицы(ОписаниеФайла.Адрес, ОписаниеФайла.СсылкаНаФайл.Расширение, Параметры); Иначе - ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Помещение файла отменено'")); + __ОбщегоНазначенияСлужебныйКлиент.СообщитьПользователю(НСтр("ru = 'Помещение файла отменено'")); АдресПомещения = Неопределено; КонецЕсли; diff --git "a/src/CommonModules/__\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 7a4f1ee7..8e1a13e8 100644 --- "a/src/CommonModules/__\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -31,10 +31,6 @@ // Процедура СоздатьСообщениеИсторииИнтеграции(СтруктураЗаписиИстории, ЭтоЗагрузка) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - Пользователи = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - УстановитьПривилегированныйРежим(Истина); ДополнительноОбработатьЗапросыИнтеграцииПередЗаписьюВИсторию(СтруктураЗаписиИстории); @@ -44,7 +40,7 @@ НовоеСообщение.ДатаИнтеграцииВМиллисекундах = ТекущаяУниверсальнаяДатаВМиллисекундах(); НовоеСообщение.Код = Новый УникальныйИдентификатор(); НовоеСообщение.Ошибка = ЗначениеЗаполнено(СтруктураЗаписиИстории.ОписаниеОшибки); - НовоеСообщение.Пользователь = Пользователи.ТекущийПользователь(); + НовоеСообщение.Пользователь = __ПользователиСлужебный.ТекущийПользователь(); НовоеСообщение.ДлительностьОбмена = НовоеСообщение.ДатаИнтеграции - СтруктураЗаписиИстории.ДатаНачалаИнтеграции; НовоеСообщение.ДлительностьВызова = СтруктураЗаписиИстории.ДлительностьВызова; Если ЭтоЗагрузка Тогда @@ -146,14 +142,10 @@ // Структура Функция ПолучитьСтруктуруНастроекИнтеграции(НастройкаИнтеграции) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - УстановитьПривилегированныйРежим(Истина); - СтруктураНастроек = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(НастройкаИнтеграции, "Сервер, Порт"); - ДанныеБезопасногоХранилища = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(НастройкаИнтеграции); + СтруктураНастроек = __ОбщегоНазначенияСлужебный.ЗначенияРеквизитовОбъекта(НастройкаИнтеграции, "Сервер, Порт"); + ДанныеБезопасногоХранилища = __ОбщегоНазначенияСлужебный.ПрочитатьДанныеИзБезопасногоХранилища(НастройкаИнтеграции); Для Каждого КлючИЗначение Из ДанныеБезопасногоХранилища Цикл СтруктураНастроек.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); @@ -173,14 +165,9 @@ // Структура Функция ПолучитьСтруктуруМетодаИНастроекИнтеграции(МетодИнтеграции) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - ОбщегоНазначенияКлиентСервер = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - СтруктураМетодаИНастроек = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(МетодИнтеграции, "НастройкаИнтеграции, Метод"); + СтруктураМетодаИНастроек = __ОбщегоНазначенияСлужебный.ЗначенияРеквизитовОбъекта(МетодИнтеграции, "НастройкаИнтеграции, Метод"); СтруктураНастроек = ПолучитьСтруктуруНастроекИнтеграции(СтруктураМетодаИНастроек.НастройкаИнтеграции); - ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(СтруктураМетодаИНастроек, СтруктураНастроек); + __ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьСтруктуру(СтруктураМетодаИНастроек, СтруктураНастроек); Возврат СтруктураМетодаИНастроек; @@ -237,13 +224,9 @@ Функция ПодготовитьТаблицуКодовОтветаHTTP() Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - ТаблицаКодовОтвета = Новый ТаблицаЗначений; - ТаблицаКодовОтвета.Колонки.Добавить("КодОтвета" , ОбщегоНазначения.ОписаниеТипаЧисло(3)); - ТаблицаКодовОтвета.Колонки.Добавить("КраткоеОписание" , ОбщегоНазначения.ОписаниеТипаСтрока(150)); + ТаблицаКодовОтвета.Колонки.Добавить("КодОтвета" , __ОбщегоНазначенияСлужебный.ОписаниеТипаЧисло(3)); + ТаблицаКодовОтвета.Колонки.Добавить("КраткоеОписание" , __ОбщегоНазначенияСлужебный.ОписаниеТипаСтрока(150)); // Успешные НоваяСтрока = ТаблицаКодовОтвета.Добавить(); @@ -391,11 +374,7 @@ Расшифровка = НСтр("ru = '<Неизвестный код состояния>.'"); КонецЕсли; - // ++ Обход ошибки отстутствия модуля БСП, не переносить - СтроковыеФункцииКлиентСервер = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + Возврат __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = '[%1] %2'"), КодСостояния, Расшифровка); diff --git "a/src/CommonModules/__\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 12fce2c8..2511e9fb 100644 --- "a/src/CommonModules/__\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -26,11 +26,7 @@ //Длительность хранения ошибок интеграции на месяц дольше, чем успешных записей Процедура ОчисткаИсторииИнтеграции() Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.__ОчисткаИсторииИнтеграции); + __ОбщегоНазначенияСлужебный.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.__ОчисткаИсторииИнтеграции); Справочники.__ИсторияИнтеграции.ОчиститьИсториюИнтеграции(); КонецПроцедуры diff --git "a/src/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl" index a0dcac38..74981b0c 100644 --- "a/src/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl" @@ -39,10 +39,6 @@ // Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка, ДополнительныеПараметры = Неопределено) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Отказ Тогда Возврат; КонецЕсли; @@ -57,7 +53,7 @@ ПараметрыМетода.Добавить(СтандартнаяОбработка); ПараметрыМетода.Добавить(ДополнительныеПараметры); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); КонецЕсли; @@ -74,10 +70,6 @@ // Процедура ПередЗаписьюНаСервере(Форма, Отказ, ТекущийОбъект, ПараметрыЗаписи) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Отказ Тогда Возврат; КонецЕсли; @@ -94,7 +86,7 @@ ПараметрыМетода.Добавить(ТекущийОбъект); ПараметрыМетода.Добавить(ПараметрыЗаписи); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); КонецПроцедуры @@ -108,10 +100,6 @@ // Процедура ПослеЗаписиНаСервере(Форма, ТекущийОбъект, ПараметрыЗаписи) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - ИмяМетода = ПолучитьИмяМетода(Форма, "ПослеЗаписиНаСервере"); Если ИмяМетода = Неопределено Тогда @@ -123,7 +111,7 @@ ПараметрыМетода.Добавить(ТекущийОбъект); ПараметрыМетода.Добавить(ПараметрыЗаписи); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); КонецПроцедуры @@ -137,10 +125,6 @@ // Процедура ОбработкаПроверкиЗаполненияНаСервере(Форма, Отказ, ПроверяемыеРеквизиты) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Отказ Тогда Возврат; КонецЕсли; @@ -156,7 +140,7 @@ ПараметрыМетода.Добавить(Отказ); ПараметрыМетода.Добавить(ПроверяемыеРеквизиты); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); КонецПроцедуры @@ -191,15 +175,11 @@ Функция ДобавитьРеквизитФормы(НаименованиеНовогоРеквизитаВход, ОписаниеТиповВход, МассивДобавленияВход, ЗаголовокРеквизитаВход = "", ФормаВход = Неопределено) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоназначенияКлиентСервер = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - МожноДобавлять = Истина; Если ФормаВход = Неопределено Тогда МожноДобавлять = Истина; Иначе - УжеЕстьРеквизит = ОбщегоназначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ФормаВход, НаименованиеНовогоРеквизитаВход); + УжеЕстьРеквизит = __ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ФормаВход, НаименованиеНовогоРеквизитаВход); МожноДобавлять = НЕ УжеЕстьРеквизит; КонецЕсли; Если МожноДобавлять Тогда @@ -557,12 +537,8 @@ Функция ПолучитьИмяМетода(Форма, ИмяПроцедурыВход) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - СтроковыеФункцииКлиентСервер = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - ИмяФормы = Форма.ИмяФормы; - МассивПодимен = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяФормы, "."); + МассивПодимен = __СтроковыеФункцииСлужебныйКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяФормы, "."); Если МассивПодимен.Количество() = 0 Тогда Возврат Неопределено; diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.xml" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.xml" new file mode 100644 index 00000000..b35d3dc3 --- /dev/null +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.xml" @@ -0,0 +1,23 @@ + + + + + __ОбщегоНазначенияВызовСервера + + + ru + Общего назначения вызов сервера + + + + false + false + true + false + false + true + false + DontUse + + + \ No newline at end of file diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" new file mode 100644 index 00000000..65388492 --- /dev/null +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" @@ -0,0 +1,41 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выше + +#Область СлужебныйПрограммныйИнтерфейс + +// См. __ОбщегоНазначенияСервер.СуществуетБиблиотекаСтандартныхПодсистем. +Функция СуществуетБиблиотекаСтандартныхПодсистем() Экспорт + + Возврат __ОбщегоНазначенияПовтИсп.СуществуетБиблиотекаСтандартныхПодсистем(); + +КонецФункции + +// См. __ОбщегоНазначенияСервер.ПолучитьОбщийМодуль +Функция ПолучитьОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт + + Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного); + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" index a4b4f332..bc92ae8a 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" @@ -26,6 +26,162 @@ #Область ПрограммныйИнтерфейс +#Область МетодыАналогиБСП + +// Аналог метода БСП. Возвращает ссылку на общий модуль или модуль менеджера по имени. +// +// См. ОбщегоНазначения.ОбщийМодуль +// +// Параметры: +// Имя - Строка - имя общего модуля. +// +// Возвращаемое значение: +// ОбщийМодуль +// СправочникМенеджер, +// ДокументМенеджер, +// ОбработкаМенеджер, +// РегистрСведенийМенеджер. +// +// Пример: +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда +// МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации"); +// МодульОбновлениеКонфигурации.<Имя метода>(); +// КонецЕсли; +// +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда +// МодульПолнотекстовыйПоискСервер = ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер"); +// МодульПолнотекстовыйПоискСервер.<Имя метода>(); +// КонецЕсли; +// +Функция ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного = "") Экспорт + + // Если ИмяМодуляВстроенного не передано, проверка не выполняется + Имя = ИмяМодуляВстроенного; + Если __ОбщегоНазначенияВызовСервера.СуществуетБиблиотекаСтандартныхПодсистем() Тогда + Имя = ИмяМодуляБСП; + ИначеЕсли ПустаяСтрока(Имя) Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Общий модуль БСП ""%1"" не существует и не указан встроенный.'"), + Имя); + КонецЕсли; + Модуль = Вычислить(Имя); + +#Если Не ВебКлиент Тогда + + // В веб-клиенте не проверяется + // т.к. при обращении к модулям с вызовом сервера типа такого модуля в веб-клиенте не существует. + + Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Общий модуль ""%1"" не существует.'"), + Имя); + КонецЕсли; + +#КонецЕсли + + Возврат Модуль; + +КонецФункции + +// Аналог метода БСП. Формирует и выводит сообщение, которое может быть связано с элементом управления формы. +// +// См. ОбщегоНазначения.СообщитьПользователю +// +// Параметры: +// ТекстСообщенияПользователю - Строка - текст сообщения. +// КлючДанных - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится. +// Поле - Строка - наименование реквизита формы. +// ПутьКДанным - Строка - путь к данным (путь к реквизиту формы). +// Отказ - Булево - выходной параметр, всегда устанавливается в значение Истина. +// +// Пример: +// +// 1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта: +// ОбщегоНазначенияКлиент.СообщитьПользователю( +// НСтр("ru = 'Сообщение об ошибке.'"), , +// "ПолеВРеквизитеФормыОбъект", +// "Объект"); +// +// Альтернативный вариант использования в форме объекта: +// ОбщегоНазначенияКлиент.СообщитьПользователю( +// НСтр("ru = 'Сообщение об ошибке.'"), , +// "Объект.ПолеВРеквизитеФормыОбъект"); +// +// 2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы: +// ОбщегоНазначенияКлиент.СообщитьПользователю( +// НСтр("ru = 'Сообщение об ошибке.'"), , +// "ИмяРеквизитаФормы"); +// +// 3. Для вывода сообщения связанного с объектом информационной базы: +// ОбщегоНазначенияКлиент.СообщитьПользователю( +// НСтр("ru = 'Сообщение об ошибке.'"), ОбъектИнформационнойБазы, "Ответственный",,Отказ); +// +// 4. Для вывода сообщения по ссылке на объект информационной базы: +// ОбщегоНазначенияКлиент.СообщитьПользователю( +// НСтр("ru = 'Сообщение об ошибке.'"), Ссылка, , , Отказ); +// +// Случаи некорректного использования: +// 1. Передача одновременно параметров КлючДанных и ПутьКДанным. +// 2. Передача в параметре КлючДанных значения типа отличного от допустимого. +// 3. Установка ссылки без установки поля (и/или пути к данным). +// +Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, + Знач Поле = "", Знач ПутьКДанным = "", Отказ = Ложь) Экспорт + + Сообщение = __ОбщегоНазначенияСлужебныйКлиентСервер.СообщениеПользователю(ТекстСообщенияПользователю, + КлючДанных, Поле, ПутьКДанным, Отказ); + + Сообщение.Сообщить(); + +КонецПроцедуры + +// Аналог метода БСП. Возвращает универсальную дату сеанса, получаемую из текущей даты сеанса. +// +// Функция возвращает время, близкое к результату функции УниверсальноеВремя() в серверном контексте. +// Погрешность обусловлена временем выполнения серверного вызова. +// Предназначена для использования вместо функции УниверсальноеВремя(). +// +// Возвращаемое значение: +// Дата - универсальная дата сеанса. +// +Функция ДатаУниверсальная() Экспорт + + ДатаСеанса = ТекущаяДата(); + Возврат ДатаСеанса; + +КонецФункции + +// Аналог метода БСП. Возвращает ссылку предопределенного элемента по его полному имени. +// Предопределенные элементы могут содержаться только в следующих объектах: +// - справочники; +// - планы видов характеристик; +// - планы счетов; +// - планы видов расчета. +// После изменения состава предопределенных следует выполнить метод +// ОбновитьПовторноИспользуемыеЗначения(), который сбросит кэш ПовтИсп в текущем сеансе. +// +// См. ОбщегоНазначения.ПредопределенныйЭлемент +// +// Параметры: +// ПолноеИмяПредопределенного - Строка - полный путь к предопределенному элементу, включая его имя. +// Формат аналогичен функции глобального контекста ПредопределенноеЗначение(). +// Например: +// "Справочник.ВидыКонтактнойИнформации.EmailПользователя" +// "ПланСчетов.Хозрасчетный.Материалы" +// "ПланВидовРасчета.Начисления.ОплатаПоОкладу". +// +// Возвращаемое значение: +// ЛюбаяСсылка - ссылка на предопределенный элемент. +// Неопределено - если предопределенный элемент есть в метаданных, но не создан в ИБ. +// +Функция ПредопределенныйЭлемент(ПолноеИмяПредопределенного) Экспорт + + Возврат ПредопределенноеЗначение(ПолноеИмяПредопределенного); + +КонецФункции + +#КонецОбласти + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index d8b28686..8f7ec54b 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -21,7 +21,6 @@ // // Требования: платформа 1С версии 8.3.17 и выше - //////////////////////////////////////////////////////////////////////////////// // Общего назначения (клиент): для клиентских и серверных функций общего назначения @@ -88,6 +87,218 @@ КонецФункции +#Область МетодыАналогиБСП + +// Аналог метода БСП. Устанавливает свойство ИмяСвойства элемента формы с именем ИмяЭлемента в значение Значение. +// Применяется в тех случаях, когда элемента формы может не быть на форме из-за отсутствия прав у пользователя +// на объект, реквизит объекта или команду. +// +// Параметры: +// ЭлементыФормы - ВсеЭлементыФормы +// - ЭлементыФормы - коллекция элементов управляемой формы. +// ИмяЭлемента - Строка - имя элемента формы. +// ИмяСвойства - Строка - имя устанавливаемого свойства элемента формы. +// Значение - Произвольный - новое значение элемента. +// +Процедура УстановитьСвойствоЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства, Значение) Экспорт + + ЭлементФормы = ЭлементыФормы.Найти(ИмяЭлемента); + Если ЭлементФормы <> Неопределено И ЭлементФормы[ИмяСвойства] <> Значение Тогда + ЭлементФормы[ИмяСвойства] = Значение; + КонецЕсли; + +КонецПроцедуры + +// Аналог метода БСП. Возвращает значение свойства структуры. +// +// Параметры: +// Структура - Структура +// - ФиксированнаяСтруктура - объект, из которого необходимо прочитать значение ключа. +// Ключ - Строка - имя свойства структуры, для которого необходимо прочитать значение. +// ЗначениеПоУмолчанию - Произвольный - возвращается когда в структуре нет значения по указанному +// ключу. +// Для скорости рекомендуется передавать только быстро вычисляемые значения (например примитивные типы), +// а инициализацию более тяжелых значений выполнять после проверки полученного значения (только если это +// требуется). +// +// Возвращаемое значение: +// Произвольный - значение свойства структуры. ЗначениеПоУмолчанию если в структуре нет указанного свойства. +// +Функция СвойствоСтруктуры(Структура, Ключ, ЗначениеПоУмолчанию = Неопределено) Экспорт + + Если Структура = Неопределено Тогда + Возврат ЗначениеПоУмолчанию; + КонецЕсли; + + Результат = ЗначениеПоУмолчанию; + Если Структура.Свойство(Ключ, Результат) Тогда + Возврат Результат; + Иначе + Возврат ЗначениеПоУмолчанию; + КонецЕсли; + +КонецФункции + +// Аналог метода БСП. Дополняет массив МассивПриемник значениями из массива МассивИсточник. +// +// Параметры: +// МассивПриемник - Массив - массив, в который необходимо добавить значения. +// МассивИсточник - Массив - массив значений для заполнения. +// ТолькоУникальныеЗначения - Булево - если истина, то в массив будут включены только уникальные значения. +// +Процедура ДополнитьМассив(МассивПриемник, МассивИсточник, ТолькоУникальныеЗначения = Ложь) Экспорт + + Если ТолькоУникальныеЗначения Тогда + + УникальныеЗначения = Новый Соответствие; + + Для Каждого Значение Из МассивПриемник Цикл + УникальныеЗначения.Вставить(Значение, Истина); + КонецЦикла; + + Для Каждого Значение Из МассивИсточник Цикл + Если УникальныеЗначения[Значение] = Неопределено Тогда + МассивПриемник.Добавить(Значение); + УникальныеЗначения.Вставить(Значение, Истина); + КонецЕсли; + КонецЦикла; + + Иначе + + Для Каждого Значение Из МассивИсточник Цикл + МассивПриемник.Добавить(Значение); + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +// Аналог метода БСП. Возвращает копию исходного массива с уникальными значениями. +// +// Параметры: +// Массив - Массив - массив произвольных значений. +// +// Возвращаемое значение: +// Массив - массив уникальных элементов. +// +Функция СвернутьМассив(Знач Массив) Экспорт + Результат = Новый Массив; + ДополнитьМассив(Результат, Массив, Истина); + Возврат Результат; +КонецФункции + +// Аналог метода БСП. Возвращает значение свойства ИмяСвойства элемента формы с именем ИмяЭлемента. +// Применяется в тех случаях, когда элемент формы может не быть на форме из-за отсутствия прав у пользователя +// на объект, реквизит объекта или команду. +// +// Параметры: +// ЭлементыФормы - ВсеЭлементыФормы +// - ЭлементыФормы - коллекция элементов управляемой формы. +// ИмяЭлемента - Строка - имя элемента формы. +// ИмяСвойства - Строка - имя свойства элемента формы. +// +// Возвращаемое значение: +// Произвольный - значение свойства ИмяСвойства элемента формы ИмяЭлемента. +// +Функция ЗначениеСвойстваЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства) Экспорт + + ЭлементФормы = ЭлементыФормы.Найти(ИмяЭлемента); + Возврат ?(ЭлементФормы <> Неопределено, ЭлементФормы[ИмяСвойства], Неопределено); + +КонецФункции + +// Аналог метода БСП. Проверяет наличие реквизита или свойства у произвольного объекта без обращения к метаданным. +// +// Параметры: +// Объект - Произвольный - объект, у которого нужно проверить наличие реквизита или свойства; +// ИмяРеквизита - Строка - имя реквизита или свойства. +// +// Возвращаемое значение: +// Булево - Истина, если есть. +// +Функция ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита) Экспорт + + КлючУникальности = Новый УникальныйИдентификатор; + СтруктураРеквизита = Новый Структура(ИмяРеквизита, КлючУникальности); + ЗаполнитьЗначенияСвойств(СтруктураРеквизита, Объект); + + Возврат СтруктураРеквизита[ИмяРеквизита] <> КлючУникальности; + +КонецФункции + +// Аналог метода БСП. Дополняет структуру значениями из другой структуры. +// +// Параметры: +// Приемник - Структура - коллекция, в которую будут добавляться новые значения. +// Источник - Структура - коллекция, из которой будут считываться пары Ключ и Значение для заполнения. +// Заменять - Булево +// - Неопределено - что делать в местах пересечения ключей источника и приемника: +// Истина - заменять значения приемника (самый быстрый способ), +// Ложь - не заменять значения приемника (пропускать), +// Неопределено - значение по умолчанию. Бросать исключение. +// +Процедура ДополнитьСтруктуру(Приемник, Источник, Заменять = Неопределено) Экспорт + + Для Каждого Элемент Из Источник Цикл + Если Заменять <> Истина И Приемник.Свойство(Элемент.Ключ) Тогда + Если Заменять = Ложь Тогда + Продолжить; + Иначе + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Пересечение ключей источника и приемника: ""%1"".'"), Элемент.Ключ); + КонецЕсли + КонецЕсли; + Приемник.Вставить(Элемент.Ключ, Элемент.Значение); + КонецЦикла; + +КонецПроцедуры + +// Аналог метода БСП. Создает массив и помещает в него переданное значение. +// +// Параметры: +// Значение - Произвольный - любое значение. +// +// Возвращаемое значение: +// Массив - массив из одного элемента. +// +Функция ЗначениеВМассиве(Знач Значение) Экспорт + + Результат = Новый Массив; + Результат.Добавить(Значение); + Возврат Результат; + +КонецФункции + +// Аналог метода БСП. Вызывает исключение с текстом Сообщение, если Условие не равно Истина. +// Применяется для самодиагностики кода. +// +// Параметры: +// Условие - Булево - если не равно Истина, то вызывается исключение. +// Сообщение - Строка - текст сообщения. Если не задан, то исключение вызывается с сообщением по умолчанию. +// КонтекстПроверки - Строка - например, имя процедуры или функции, в которой выполняется проверка. +// +Процедура Проверить(Знач Условие, Знач Сообщение = "", Знач КонтекстПроверки = "") Экспорт + + Если Условие <> Истина Тогда + + Если ПустаяСтрока(Сообщение) Тогда + ТекстИсключения = НСтр("ru = 'Недопустимая операция'"); // Assertion failed + Иначе + ТекстИсключения = Сообщение; + КонецЕсли; + + Если Не ПустаяСтрока(КонтекстПроверки) Тогда + ТекстИсключения = __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 в %2'"), ТекстИсключения, КонтекстПроверки); + КонецЕсли; + + ВызватьИсключение ТекстИсключения; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" index c3076451..21069921 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" @@ -97,6 +97,20 @@ КонецФункции +// См. __ОбщегоНазначенияСервер.СуществуетБиблиотекаСтандартныхПодсистем. +Функция СуществуетБиблиотекаСтандартныхПодсистем() Экспорт + + Возврат __ОбщегоНазначенияСервер.СуществуетБиблиотекаСтандартныхПодсистем(); + +КонецФункции + +// См. __ОбщегоНазначенияСервер.ПолучитьОбщийМодуль. +Функция ПолучитьОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт + + Возврат __ОбщегоНазначенияСервер.ПолучитьОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного); + +КонецФункции + #Область ПодпискиНаСобытияДокументов // Определяет соответствие типа источника подписки и имени метода. diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 41cfa777..f9228f32 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -120,37 +120,6 @@ КонецФункции -// Возвращает массив значений произвольного типа, объекта соответствия. -// -// Параметры: -// ТипСоответствия - СправочникСсылка.__ТипСоответствияОбъектовИБ - Тип соответствия. -// ИмяКлюча - Строка - поле регистра сведений __СоответствияОбъектовИБ, по которому устанавливается отбор. -// ЗначениеКлюча - ПроизвольныйТип - Значение ключа по которому установлен отбор. -// ИмяОбъекта - Строка - получаемое поле регистра сведений __СоответствияОбъектовИБ. -// ИспользоватьКэш - Булево - Признак получения данных из кэша. -// -// Возвращаемое значение: -// - Массив - Значения объекта из регистра сведений __СоответствияОбъектовИБ, -// если соответствие одно в массив будет один элемент -// -Функция ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта, ИспользоватьКэш = Ложь) Экспорт - - Если ИспользоватьКэш Тогда - Возврат __ОбщегоНазначенияПовтИсп.ПолучитьЗначенияОбъектаСоответствияПоКлючу( - ТипСоответствия, - ИмяКлюча, - ЗначениеКлюча, - ИмяОбъекта); - Иначе - Возврат РегистрыСведений.__СоответствияОбъектовИБ.ПолучитьЗначенияОбъектаСоответствияПоКлючу( - ТипСоответствия, - ИмяКлюча, - ЗначениеКлюча, - ИмяОбъекта); - КонецЕсли; - -КонецФункции - // Возвращает таблицу значений с датами за период // // Параметры: @@ -283,17 +252,13 @@ // Процедура УдалитьЭкземплярРегламентногоЗадания(КлючЗадания) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - РегламентныеЗаданияСервер = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - ОтборЗадания = Новый Структура; ОтборЗадания.Вставить("Ключ", КлючЗадания); - МассивРегламентныхЗаданий = РегламентныеЗаданияСервер.НайтиЗадания(ОтборЗадания); + МассивРегламентныхЗаданий = __РегламентныеЗаданияСлужебныйСервер.НайтиЗадания(ОтборЗадания); Если МассивРегламентныхЗаданий.Количество() Тогда РегламентноеЗадание = МассивРегламентныхЗаданий[0]; - РегламентныеЗаданияСервер.УдалитьЗадание(РегламентноеЗадание.УникальныйИдентификатор); + __РегламентныеЗаданияСлужебныйСервер.УдалитьЗадание(РегламентноеЗадание.УникальныйИдентификатор); КонецЕсли; КонецПроцедуры @@ -311,10 +276,6 @@ // Функция ЗаписатьСправочник(ТекущийОбъект, Заголовок = "", РежимСообщений = "Все", РежимЗагрузки = Ложь) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - СправочникЗаписан = Ложь; РежимыВывода = ОпределитьРежимыВывода(РежимСообщений); @@ -332,7 +293,7 @@ ТекущийОбъект.Записать(); Если РежимыВывода.ВыводитьИнформацию Тогда - ОбщегоНазначения.СообщитьПользователю( + __ОбщегоНазначенияСлужебный.СообщитьПользователю( СтрШаблон(НСтр("ru='Записан справочник ""%1"".';en='Directory ""%1"" saved.'"), ТекущийОбъект.Ссылка)); КонецЕсли; КонецЕсли; @@ -341,7 +302,7 @@ СправочникЗаписан = Ложь; Если РежимыВывода.ВыводитьОшибки Тогда - ОбщегоНазначения.СообщитьПользователю(КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + __ОбщегоНазначенияСлужебный.СообщитьПользователю(КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); КонецЕсли; ЗаписьЖурналаРегистрации("__.ОшибкаЗаписиСправочника", УровеньЖурналаРегистрации.Ошибка,,, @@ -818,6 +779,1030 @@ #КонецОбласти // ОтладкаВременныхТаблиц +// Возвращает массив значений произвольного типа, объекта соответствия. +// +// Параметры: +// ТипСоответствия - СправочникСсылка.__ТипСоответствияОбъектовИБ - Тип соответствия. +// ИмяКлюча - Строка - поле регистра сведений __СоответствияОбъектовИБ, по которому устанавливается отбор. +// ЗначениеКлюча - ПроизвольныйТип - Значение ключа по которому установлен отбор. +// ИмяОбъекта - Строка - получаемое поле регистра сведений __СоответствияОбъектовИБ. +// ИспользоватьКэш - Булево - Признак получения данных из кэша. +// +// Возвращаемое значение: +// - Массив - Значения объекта из регистра сведений __СоответствияОбъектовИБ, +// если соответствие одно в массив будет один элемент +// +Функция ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта, ИспользоватьКэш = Ложь) Экспорт + + Если ИспользоватьКэш Тогда + Возврат __ОбщегоНазначенияПовтИсп.ПолучитьЗначенияОбъектаСоответствияПоКлючу( + ТипСоответствия, + ИмяКлюча, + ЗначениеКлюча, + ИмяОбъекта); + Иначе + Возврат РегистрыСведений.__СоответствияОбъектовИБ.ПолучитьЗначенияОбъектаСоответствияПоКлючу( + ТипСоответствия, + ИмяКлюча, + ЗначениеКлюча, + ИмяОбъекта); + КонецЕсли; + +КонецФункции + +// Перенаправляет экспортную процедуру в ОбщийМодуль.ВыполнитьМетодКонфигурации(), если в конфигурации есть БСП, +// перенаправляет на метод БСП, если нет выполняется аналог метода БСП, встроенный в конфигурацию. +// +// Параметры: +// ИмяМетода - Строка - имя экспортной процедуры в формате +// <имя объекта>.<имя процедуры>, где <имя объекта> - это +// общий модуль или модуль менеджера объекта. +// Параметры - Массив - параметры передаются в процедуру <ИмяЭкспортнойПроцедуры> +// в порядке расположения элементов массива. +// +// Пример: +// Параметры = Новый Массив(); +// Параметры.Добавить("1"); +// ОбщегоНазначения.ВыполнитьМетодКонфигурации("МойОбщийМодуль.МояПроцедура", Параметры); +// +Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт + + Если Метаданные.ОбщиеМодули.Найти("ОбщегоНазначения") <> Неопределено Тогда + УстановитьБезопасныйРежим(Истина); + Модуль = Вычислить("ОбщегоНазначения"); + Модуль.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры); + Иначе + __ОбщегоНазначенияСлужебный.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры); + КонецЕсли; + +КонецПроцедуры + +// Возвращает Истину или Ложь, существует ли "Библиотеки стандартных подсистем" (БСП), +// встроенная в конфигурацию. +// +// Возвращаемое значение: +// Булево - Истина, если БСП существует. +// +Функция СуществуетБиблиотекаСтандартныхПодсистем() Экспорт + + ВерсияБСП = Неопределено; + // Точка входа, где можно попытаться проверить подключена ли БСП + Если Метаданные.ОбщиеМодули.Найти("СтандартныеПодсистемыСервер") <> Неопределено Тогда + Попытка + МодульБСП = Вычислить("СтандартныеПодсистемыСервер"); + ВерсияБСП = МодульБСП.ВерсияБиблиотеки(); + Исключение + // Не обрабатываем + КонецПопытки; + КонецЕсли; + + Возврат ВерсияБСП <> Неопределено; + +КонецФункции + +Функция ПолучитьОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт + + Имя = ИмяМодуляВстроенного; + Если __ОбщегоНазначенияПовтИсп.СуществуетБиблиотекаСтандартныхПодсистем() + И Метаданные.ОбщиеМодули.Найти(ИмяМодуляБСП) <> Неопределено Тогда + Имя = ИмяМодуляБСП; + КонецЕсли; + + Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда + УстановитьБезопасныйРежим(Истина); + Модуль = Вычислить(Имя); + Иначе + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Общий модуль ""%1"" не существует.'"), + Имя); + КонецЕсли; + + Возврат Модуль; + +КонецФункции + +#Область МетодыАналогиБСП + +// Аналог метода БСП. Записывает конфиденциальные данные в безопасное хранилище. +// Вызывающий код должен самостоятельно устанавливать привилегированный режим. +// +// Безопасное хранилище недоступно для чтения пользователям (кроме администраторов), +// а доступно только коду, который делает обращения только к своей части данных и +// в том контексте, который предполагает чтение или запись конфиденциальных данных. +// +// Параметры: +// Владелец - ПланОбменаСсылка +// - СправочникСсылка +// - Строка - ссылка на объект информационной базы, +// представляющий объект-владелец сохраняемого пароля или строка до 128 символов. +// Для объектов других типов в качестве владельца рекомендуется использовать ссылку на +// элемент метаданных этого типа в справочнике ИдентификаторыОбъектовМетаданных +// или ключ в виде строки с учетом имен подсистем. +// Например, для БСП: +// Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("РегистрСведений.АдресныеОбъекты"); +// если нужно 1 хранилище на подсистему БСП: +// Владелец = "СтандартныеПодсистемы.УправлениеДоступом"; +// если нужно более 1 хранилища на подсистему БСП: +// Владелец = "СтандартныеПодсистемы.УправлениеДоступом.<Уточнение>"; +// Данные - Произвольный - данные помещаемые в безопасное хранилище. Неопределенно - удаляет все данные. +// Для удаления данных по ключу следует использовать процедуру УдалитьДанныеИзБезопасногоХранилища. +// - Структура - если параметр Ключ содержит Неопределено. Подробнее см. описание параметра Ключ +// Ключ - Строка - ключ сохраняемых настроек, по умолчанию "Пароль". +// Ключ должен соответствовать правилам имен идентификаторов: +// 1. Первым символом ключа должна быть буква или символ подчеркивания (_). +// 2. Каждый из последующих символов может быть буквой, цифрой или символом подчеркивания (_). +// Неопределено - для добавления набора данных структурой, где ключ структуры - это имя ключа данных, +// а значение - сохраняемые данные. Пример использования см. ниже. +// +// Пример: +// +// Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) +// Если ТекущийПользовательМожетИзменятьПароль Тогда +// УстановитьПривилегированныйРежим(Истина); +// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Логин, "Логин"); +// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Пароль); +// УстановитьПривилегированныйРежим(Ложь); +// КонецЕсли; +// КонецПроцедуры +// +// Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) +// Если ТекущийПользовательМожетИзменятьПароль Тогда +// ЛогинИПароль = Новый Структура; +// ЛогинИПароль.Вставить("Логин", Логин); +// ЛогинИПароль.Вставить("Пароль", Пароль); +// УстановитьПривилегированныйРежим(Истина); +// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, ЛогинИПароль, Неопределено); +// УстановитьПривилегированныйРежим(Ложь); +// КонецЕсли; +// КонецПроцедуры +// +Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт + + __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ЗначениеЗаполнено(Владелец), + __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |параметр должен содержать ссылку; передано значение: %3 (тип %4).'"), + "Владелец", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Владелец, ТипЗнч(Владелец))); + + Если ЗначениеЗаполнено(Ключ) Тогда + + __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ТипЗнч(Ключ) = Тип("Строка"), + __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |параметр должен содержать строку; передано значение: %3 (тип %4).'"), + "Ключ", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Ключ, ТипЗнч(Ключ))); + + Иначе + + __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ТипЗнч(Данные) = Тип("Структура"), + __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |Если Ключ = Неопределено, то параметр должен содержать структуру; передано значение: %3 (тип %4).'"), + "Данные", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Данные, ТипЗнч(Данные))); + + КонецЕсли; + + БезопасноеХранилищеДанных = РегистрыСведений.__БезопасноеХранилищеДанных.СоздатьМенеджерЗаписи(); + + БезопасноеХранилищеДанных.Владелец = Владелец; + БезопасноеХранилищеДанных.Прочитать(); + + Если Данные <> Неопределено Тогда + + Если БезопасноеХранилищеДанных.Выбран() Тогда + + ДанныеДляСохранения = БезопасноеХранилищеДанных.Данные.Получить(); + + Если ТипЗнч(ДанныеДляСохранения) <> Тип("Структура") Тогда + ДанныеДляСохранения = Новый Структура(); + КонецЕсли; + + Если ЗначениеЗаполнено(Ключ) Тогда + ДанныеДляСохранения.Вставить(Ключ, Данные); + Иначе + __ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьСтруктуру(ДанныеДляСохранения, Данные, Истина); + КонецЕсли; + + ДанныеДляХранилищеЗначения = Новый ХранилищеЗначения(ДанныеДляСохранения, Новый СжатиеДанных(6)); + БезопасноеХранилищеДанных.Данные = ДанныеДляХранилищеЗначения; + БезопасноеХранилищеДанных.Записать(); + + Иначе + + ДанныеДляСохранения = ?(ЗначениеЗаполнено(Ключ), Новый Структура(Ключ, Данные), Данные); + ДанныеДляХранилищеЗначения = Новый ХранилищеЗначения(ДанныеДляСохранения, Новый СжатиеДанных(6)); + + БезопасноеХранилищеДанных.Данные = ДанныеДляХранилищеЗначения; + БезопасноеХранилищеДанных.Владелец = Владелец; + БезопасноеХранилищеДанных.Записать(); + + КонецЕсли; + Иначе + + БезопасноеХранилищеДанных.Удалить(); + + КонецЕсли; + +КонецПроцедуры + +// Аналог метода БСП. Возвращает данные из безопасного хранилища. +// Вызывающий код должен самостоятельно устанавливать привилегированный режим. +// +// Безопасное хранилище недоступно для чтения пользователям (кроме администраторов), +// а доступно только коду, который делает обращения только к своей части данных и +// в том контексте, который предполагает чтение или запись конфиденциальных данных. +// +// Параметры: +// Владелец - ПланОбменаСсылка +// - СправочникСсылка +// - Строка - ссылка на объект информационной базы, +// представляющий объект-владелец сохраняемого пароля или уникальная строка(до 128 символов). +// Ключи - Строка - содержит список имен сохраненных данных, указанных через запятую. +// - Неопределено - будут возвращены все сохраненные данные владельца. +// ОбщиеДанные - Булево - Истина, если требуется в модели сервиса получить данные из общих данных в разделенном режиме. +// +// Возвращаемое значение: +// Произвольный, Структура, Неопределено - данные из безопасного хранилища. Если указан один ключ, +// то возвращается его значение, иначе структура. +// Если данные отсутствуют - Неопределенно. +// +// Пример: +// Если ТекущийПользовательМожетИзменятьПароль Тогда +// УстановитьПривилегированныйРежим(Истина); +// Логин = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка, "Логин"); +// Пароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка); +// УстановитьПривилегированныйРежим(Ложь); +// Иначе +// Элементы.ГруппаЛогинИПароль.Видимость = Ложь; +// КонецЕсли; +// +// УстановитьПривилегированныйРежим(Истина); +// ЛогинИПароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка, Неопределено); +// +Функция ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт + + Владельцы = __ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(Владелец); + ДанныеВладельца = ПрочитатьДанныеВладельцевИзБезопасногоХранилища(Владельцы, Ключи, ОбщиеДанные); + + Результат = ДанныеВладельца[Владелец]; + + Возврат Результат; + +КонецФункции + +// Аналог метода БСП. Возвращает данные из безопасного хранилища. +// Вызывающий код должен самостоятельно устанавливать привилегированный режим. +// +// Безопасное хранилище недоступно для чтения пользователям (кроме администраторов), +// а доступно только коду, который делает обращения только к своей части данных и +// в том контексте, который предполагает чтение или запись конфиденциальных данных. +// +// Параметры: +// Владельцы - Массив из ПланОбменаСсылка +// - Массив из СправочникСсылка +// - Массив из Строка - ссылки на объекты информационной базы, +// представляющих объекты-владельцы или уникальные строки(до 128 символов) владельцев данных. +// Ключи - Строка - содержит имя ключа данных или список имен ключей, указанных через запятую. +// - Неопределено - будут возвращены все сохраненные данные переданных владельцев. +// ОбщиеДанные - Булево - Истина, если требуется в модели сервиса получить данные из общих данных в разделенном режиме. +// +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - ПланОбменаСсылка +// - СправочникСсылка +// - Строка - ссылка на объект информационной базы +// или строка до 128 символов идентифицирующая владельца данных. +// * Значение - Произвольный - если в параметре Ключи указан один ключ, +// то возвращается его значение произвольного типа. +// - Структура - если в параметре Ключи указано несколько ключей или Неопределено, +// где ключ структуры - это имя ключа сохраненных данных, +// а значение - данные произвольного типа. Когда для ключа отсутствуют данные, +// то значение содержит Неопределено. +// - Неопределено - если данные по ключу отсутствуют. +// +// Пример: +// Процедура РассылкаПриглашений(Пользователи) +// +// УстановитьПривилегированныйРежим(Истина); +// ДанныеАвторизации = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Пользователи, "Логин, Пароль"); +// УстановитьПривилегированныйРежим(Ложь); +// +// Для каждого Пользователь Из Пользователи Цикл +// ОтправитьПриглашение(Пользователь, ДанныеАвторизации[Пользователь]); +// КонецЦикла; +// +// КонецПроцедуры +// +Функция ПрочитатьДанныеВладельцевИзБезопасногоХранилища(Владельцы, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт + + __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ТипЗнч(Владельцы) = Тип("Массив"), + __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |параметр должен содержать массив; передано значение: %3 (тип %4).'"), + "Владельцы", "ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища", Владельцы, ТипЗнч(Владельцы))); + + Результат = ДанныеИзБезопасногоХранилища(Владельцы, Ключи, ОбщиеДанные); + + Возврат Результат; + +КонецФункции + +// Аналог метода БСП. Формирует и выводит сообщение, которое может быть связано с элементом управления формы. +// +// В фоновом задании длительной операции, если вызов выполнен вне транзакции, +// сообщение записывается в служебный регистр и отправляется сразу на клиент, +// если подключена система взаимодействия. +// В конце фонового задания длительной операции, а также при отправке прогресса, +// все сообщения извлекаются из очереди сообщений фонового задания, +// записываются в служебный регистр и отправляются сразу на клиент, +// если подключена система взаимодействия. +// +// АПК:142-выкл 4 необязательных параметра для совместимости +// с устаревшей процедурой ОбщегоНазначенияКлиентСервер.СообщитьПользователю. +// +// Параметры: +// ТекстСообщенияПользователю - Строка - текст сообщения. +// КлючДанных - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится. +// Поле - Строка - наименование реквизита формы. +// ПутьКДанным - Строка - путь к данным (путь к реквизиту формы). +// Отказ - Булево - выходной параметр, всегда устанавливается в значение Истина. +// +// Пример: +// +// 1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта: +// ОбщегоНазначения.СообщитьПользователю( +// НСтр("ru = 'Сообщение об ошибке.'"), , +// "ПолеВРеквизитеФормыОбъект", +// "Объект"); +// +// Альтернативный вариант использования в форме объекта: +// ОбщегоНазначения.СообщитьПользователю( +// НСтр("ru = 'Сообщение об ошибке.'"), , +// "Объект.ПолеВРеквизитеФормыОбъект"); +// +// 2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы: +// ОбщегоНазначения.СообщитьПользователю( +// НСтр("ru = 'Сообщение об ошибке.'"), , +// "ИмяРеквизитаФормы"); +// +// 3. Для вывода сообщения связанного с объектом информационной базы: +// ОбщегоНазначения.СообщитьПользователю( +// НСтр("ru = 'Сообщение об ошибке.'"), ОбъектИнформационнойБазы, "Ответственный",,Отказ); +// +// 4. Для вывода сообщения по ссылке на объект информационной базы: +// ОбщегоНазначения.СообщитьПользователю( +// НСтр("ru = 'Сообщение об ошибке.'"), Ссылка, , , Отказ); +// +// Случаи некорректного использования: +// 1. Передача одновременно параметров КлючДанных и ПутьКДанным. +// 2. Передача в параметре КлючДанных значения типа отличного от допустимого. +// 3. Установка ссылки без установки поля (и/или пути к данным). +// +Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, Знач Поле = "", + Знач ПутьКДанным = "", Отказ = Ложь) Экспорт + + ЭтоОбъект = Ложь; + + Если КлючДанных <> Неопределено + И XMLТипЗнч(КлючДанных) <> Неопределено Тогда + + ТипЗначенияСтрокой = XMLТипЗнч(КлючДанных).ИмяТипа; + ЭтоОбъект = СтрНайти(ТипЗначенияСтрокой, "Object.") > 0; + КонецЕсли; + + Сообщение = __ОбщегоНазначенияКлиентСервер.СообщениеПользователю(ТекстСообщенияПользователю, + КлючДанных, Поле, ПутьКДанным, Отказ, ЭтоОбъект); + + Сообщение.Сообщить(); + +КонецПроцедуры + +// Аналог метода БСП. Сокращает строку до нужной длины, при этом обрезанная часть хешируется, +// обеспечивая уникальность строки. Проверяет длину строки на входе и, в случае +// превышения максимальной длины, преобразует ее конец по алгоритму MD5 в +// уникальную строку из 32 символов. +// +// Параметры: +// Строка - Строка - исходная строка произвольной длины. +// МаксимальнаяДлина - Число - требуемое максимальное количество символов в строке, +// минимальное значение: 32. +// +// Возвращаемое значение: +// Строка - строка, не превышающая максимальную длину. +// +Функция СократитьСтрокуКонтрольнойСуммой(Строка, МаксимальнаяДлина) Экспорт + + Если МаксимальнаяДлина < 32 Тогда + __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(Ложь, + __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Параметр %1 не может быть меньше 32.'"), + "МаксимальнаяДлина"), "ОбщегоНазначения.СократитьСтрокуКонтрольнойСуммой"); + КонецЕсли; + + Результат = Строка; + Если СтрДлина(Строка) > МаксимальнаяДлина Тогда + Результат = Лев(Строка, МаксимальнаяДлина - 32); + ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5); + ХешированиеДанных.Добавить(Сред(Строка, МаксимальнаяДлина - 32 + 1)); + Результат = Результат + СтрЗаменить(ХешированиеДанных.ХешСумма, " ", ""); + КонецЕсли; + Возврат Результат; + +КонецФункции + +#Область ХранилищеНастроек + +// Аналог метода БСП. Загружает настройку из хранилища общих настроек, как метод платформы Загрузить, +// объектов СтандартноеХранилищеНастроекМенеджер или ХранилищеНастроекМенеджер.<Имя хранилища>, +// но с поддержкой длины ключа настроек более 128 символов путем хеширования части, +// которая превышает 96 символов. +// Кроме того, возвращает указанное значение по умолчанию, если настройки не существуют. +// Если нет права СохранениеДанныхПользователя, возвращается значение по умолчанию без ошибки. +// +// В возвращаемом значении очищаются ссылки на несуществующий объект в базе данных, а именно +// - возвращаемая ссылка заменяется на указанное значение по умолчанию; +// - из данных типа Массив ссылки удаляются; +// - у данных типа Структура и Соответствие ключ не меняется, а значение устанавливается Неопределено; +// - анализ значений в данных типа Массив, Структура, Соответствие выполняется рекурсивно. +// +// Параметры: +// КлючОбъекта - Строка - см. синтакс-помощник платформы. +// КлючНастроек - Строка - см. синтакс-помощник платформы. +// ЗначениеПоУмолчанию - Произвольный - значение, которое возвращается, если настройки не существуют. +// Если не указано, возвращается значение Неопределено. +// ОписаниеНастроек - ОписаниеНастроек - см. синтакс-помощник платформы. +// ИмяПользователя - Строка - см. синтакс-помощник платформы. +// +// Возвращаемое значение: +// Произвольный - см. синтакс-помощник платформы. +// +Функция ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию = Неопределено, + ОписаниеНастроек = Неопределено, ИмяПользователя = Неопределено) Экспорт + + Возврат ХранилищеЗагрузить(ХранилищеОбщихНастроек, + КлючОбъекта, + КлючНастроек, + ЗначениеПоУмолчанию, + ОписаниеНастроек, + ИмяПользователя); + +КонецФункции + +// Аналог метода БСП. Сохраняет настройку в хранилище общих настроек, как метод платформы Сохранить, +// объектов СтандартноеХранилищеНастроекМенеджер или ХранилищеНастроекМенеджер.<Имя хранилища>, +// но с поддержкой длины ключа настроек более 128 символов путем хеширования части, +// которая превышает 96 символов. +// Если нет права СохранениеДанныхПользователя, сохранение пропускается без ошибки. +// +// Параметры: +// КлючОбъекта - Строка - см. синтакс-помощник платформы. +// КлючНастроек - Строка - см. синтакс-помощник платформы. +// Настройки - Произвольный - см. синтакс-помощник платформы. +// ОписаниеНастроек - ОписаниеНастроек - см. синтакс-помощник платформы. +// ИмяПользователя - Строка - см. синтакс-помощник платформы. +// ОбновитьПовторноИспользуемыеЗначения - Булево - выполнить одноименный метод платформы. +// +Процедура ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки, + ОписаниеНастроек = Неопределено, + ИмяПользователя = Неопределено, + ОбновитьПовторноИспользуемыеЗначения = Ложь) Экспорт + + ХранилищеСохранить(ХранилищеОбщихНастроек, + КлючОбъекта, + КлючНастроек, + Настройки, + ОписаниеНастроек, + ИмяПользователя, + ОбновитьПовторноИспользуемыеЗначения); + +КонецПроцедуры + +#КонецОбласти + +// Аналог метода БСП. Пока заглушка, см. ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания +Процедура ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание = Неопределено) Экспорт +КонецПроцедуры + +// Аналог метода БСП. Возвращает структуру, содержащую значения реквизитов, прочитанные из информационной базы по ссылке на объект. +// Рекомендуется использовать вместо обращения к реквизитам объекта через точку от ссылки на объект +// для быстрого чтения отдельных реквизитов объекта из базы данных. +// +// Если необходимо зачитать реквизит независимо от прав текущего пользователя, +// то следует использовать предварительный переход в привилегированный режим. +// +// Параметры: +// Ссылка - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить. +// - Строка - полное имя предопределенного элемента, значения реквизитов которого необходимо получить. +// Реквизиты - Строка - имена реквизитов, перечисленные через запятую, в формате +// требований к свойствам структуры. +// Например, "Код, Наименование, Родитель". +// - Структура +// - ФиксированнаяСтруктура - в качестве ключа передается +// псевдоним поля для возвращаемой структуры с результатом, а в качестве +// значения (опционально) фактическое имя поля в таблице. +// Если ключ задан, а значение не определено, то имя поля берется из ключа. +// Допускается указание имени поля через точку, но при этом параметр КодЯзыка для такого поля +// учитываться не будет. +// - Массив из Строка +// - ФиксированныйМассив из Строка - имена реквизитов в формате требований к свойствам структуры. +// ВыбратьРазрешенные - Булево - если Истина, то запрос к объекту выполняется с учетом прав пользователя; +// если есть ограничение на уровне записей, то все реквизиты вернутся со +// значением Неопределено; если нет прав для работы с таблицей, то возникнет исключение; +// если Ложь, то возникнет исключение при отсутствии прав на таблицу +// или любой из реквизитов. +// КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации. +// +// Возвращаемое значение: +// Структура - содержит имена (ключи) и значения затребованных реквизитов. +// Если в параметр Реквизиты передана пустая строка, то возвращается пустая структура. +// Если в параметр Ссылка передана пустая ссылка, то возвращается структура, +// соответствующая именам реквизитов со значениями Неопределено. +// Если в параметр Ссылка передана ссылка несуществующего объекта (битая ссылка), +// то все реквизиты вернутся со значением Неопределено. +// +Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт + + // Если передано имя предопределенного. + Если ТипЗнч(Ссылка) = Тип("Строка") Тогда + + ПолноеИмяПредопределенногоЭлемента = Ссылка; + + // Вычисление ссылки по имени предопределенного. + // - дополнительно выполняет проверку метаданных предопределенного, выполняется предварительно. + Попытка + Ссылка = ПредопределенноеЗначение(ПолноеИмяПредопределенногоЭлемента); + Исключение + ТекстОшибки = __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверный первый параметр %1 в функции %2: + |%3'"), "Ссылка", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта", + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение ТекстОшибки; + КонецПопытки; + + // Разбор полного имени предопределенного. + ЧастиПолногоИмени = СтрРазделить(ПолноеИмяПредопределенногоЭлемента, "."); + ПолноеИмяОбъектаМетаданных = ЧастиПолногоИмени[0] + "." + ЧастиПолногоИмени[1]; + + // Если предопределенный не создан в ИБ, то требуется выполнить проверку доступа к объекту. + // В других сценариях проверка доступа выполняется в момент исполнения запроса. + Если Ссылка = Неопределено Тогда + МетаданныеОбъекта = ОбъектМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных); + Если Не ПравоДоступа("Чтение", МетаданныеОбъекта) Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недостаточно прав для работы с таблицей ""%1""'"), ПолноеИмяОбъектаМетаданных); + КонецЕсли; + КонецЕсли; + + Иначе // Если передана ссылка. + + Попытка + ПолноеИмяОбъектаМетаданных = Ссылка.Метаданные().ПолноеИмя(); + Исключение + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверный первый параметр %1 в функции %2: + |Значение должно быть ссылкой или именем предопределенного элемента.'"), + "Ссылка", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта"); + КонецПопытки; + + КонецЕсли; + + // Разбор реквизитов, если второй параметр Строка. + Если ТипЗнч(Реквизиты) = Тип("Строка") Тогда + Если ПустаяСтрока(Реквизиты) Тогда + Возврат Новый Структура; + КонецЕсли; + + Реквизиты = СтрРазделить(Реквизиты, ",", Ложь); + Для Индекс = 0 По Реквизиты.ВГраница() Цикл + Реквизиты[Индекс] = СокрЛП(Реквизиты[Индекс]); + КонецЦикла; + КонецЕсли; + + // Приведение реквизитов к единому формату. + СтруктураПолей = Новый Структура; + Если ТипЗнч(Реквизиты) = Тип("Структура") + Или ТипЗнч(Реквизиты) = Тип("ФиксированнаяСтруктура") Тогда + + Для Каждого КлючИЗначение Из Реквизиты Цикл + СтруктураПолей.Вставить(КлючИЗначение.Ключ, СокрЛП(КлючИЗначение.Значение)); + КонецЦикла; + + ИначеЕсли ТипЗнч(Реквизиты) = Тип("Массив") + Или ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда + + Для Каждого Реквизит Из Реквизиты Цикл + Реквизит = СокрЛП(Реквизит); + Попытка + ПсевдонимПоля = СтрЗаменить(Реквизит, ".", ""); + СтруктураПолей.Вставить(ПсевдонимПоля, Реквизит); + Исключение + // Если псевдоним не является ключом. + + // Поиск ошибки доступности полей. + Результат = ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, Реквизиты); + Если Результат.Ошибка Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверный второй параметр %1 в функции %2: %3'"), + "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта", Результат.ОписаниеОшибки); + КонецЕсли; + + // Не удалось распознать ошибку, проброс первичной ошибки. + ВызватьИсключение; + + КонецПопытки; + КонецЦикла; + Иначе + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверный тип второго параметра %1 в функции %2: %3.'"), + "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта", Строка(ТипЗнч(Реквизиты))); + КонецЕсли; + + // Подготовка результата (после выполнения запроса переопределится). + Результат = Новый Структура; + + // Формирование текста запроса к выбираемым полям. + ТекстЗапросаПолей = ""; + Для каждого КлючИЗначение Из СтруктураПолей Цикл + + ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение), + КлючИЗначение.Значение, + КлючИЗначение.Ключ); + ПсевдонимПоля = КлючИЗначение.Ключ; + + ТекстЗапросаПолей = + ТекстЗапросаПолей + ?(ПустаяСтрока(ТекстЗапросаПолей), "", ",") + " + | " + ИмяПоля + " КАК " + ПсевдонимПоля; + + // Предварительное добавление поля по псевдониму в возвращаемый результат. + Результат.Вставить(ПсевдонимПоля); + + КонецЦикла; + + // Если предопределенного нет в ИБ. + // - приведение результата к отсутствию объекта в ИБ или передаче пустой ссылки. + Если Ссылка = Неопределено Тогда + Возврат Результат; + КонецЕсли; + + Если Тип("Структура") = ТипЗнч(Реквизиты) + Или Тип("ФиксированнаяСтруктура") = ТипЗнч(Реквизиты) Тогда + Реквизиты = Новый Массив; + Для Каждого КлючИЗначение Из СтруктураПолей Цикл + ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение), + КлючИЗначение.Значение, + КлючИЗначение.Ключ); + Реквизиты.Добавить(ИмяПоля); + КонецЦикла; + КонецЕсли; + + РеквизитыЧерезТочку = Новый Массив; + Для Индекс = -Реквизиты.ВГраница() По 0 Цикл + ИмяПоля = Реквизиты[-Индекс]; + Если СтрНайти(ИмяПоля, ".") Тогда + РеквизитыЧерезТочку.Добавить(ИмяПоля); + Реквизиты.Удалить(-Индекс); + КонецЕсли; + КонецЦикла; + + Если ЗначениеЗаполнено(Реквизиты) Тогда + ЗначенияРеквизитовОбъекта = ЗначенияРеквизитовОбъектов(__ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(Ссылка), Реквизиты, ВыбратьРазрешенные, КодЯзыка)[Ссылка]; + Если ЗначенияРеквизитовОбъекта <> Неопределено Тогда + Для Каждого КлючИЗначение Из СтруктураПолей Цикл + ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение), + КлючИЗначение.Значение, + КлючИЗначение.Ключ); + Если СтрНайти(ИмяПоля, ".") = 0 И ЗначенияРеквизитовОбъекта.Свойство(ИмяПоля) Тогда + Результат[КлючИЗначение.Ключ] = ЗначенияРеквизитовОбъекта[ИмяПоля]; + КонецЕсли; + КонецЦикла; + КонецЕсли; + КонецЕсли; + + Если Не ЗначениеЗаполнено(РеквизитыЧерезТочку) Тогда + Возврат Результат; + КонецЕсли; + + Реквизиты = РеквизитыЧерезТочку; + + ТекстЗапроса = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + |&ТекстЗапросаПолей + |ИЗ + | &ПолноеИмяОбъектаМетаданных КАК ПсевдонимЗаданнойТаблицы + |ГДЕ + | ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка"; + + Если Не ВыбратьРазрешенные Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1 + КонецЕсли; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстЗапросаПолей", ТекстЗапросаПолей); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъектаМетаданных", ПолноеИмяОбъектаМетаданных); + + // Выполнение запроса. + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Ссылка", Ссылка); + Запрос.Текст = ТекстЗапроса; + + Попытка + Выборка = Запрос.Выполнить().Выбрать(); + Исключение + + // Если реквизиты были переданы строкой, то они уже конвертированы в массив. + // Если реквизиты - массив, оставляем без изменений. + // Если реквизиты - структура - конвертируем в массив. + // В остальных случаях уже было бы выброшено исключение. + Если Тип("Структура") = ТипЗнч(Реквизиты) + Или Тип("ФиксированнаяСтруктура") = ТипЗнч(Реквизиты) Тогда + Реквизиты = Новый Массив; + Для каждого КлючИЗначение Из СтруктураПолей Цикл + ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение), + КлючИЗначение.Значение, + КлючИЗначение.Ключ); + Реквизиты.Добавить(ИмяПоля); + КонецЦикла; + КонецЕсли; + + // Поиск ошибки доступности полей. + Результат = ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, Реквизиты); + Если Результат.Ошибка Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверный второй параметр %1 в функции %2: %3'"), + "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта", Результат.ОписаниеОшибки); + КонецЕсли; + + // Не удалось распознать ошибку, проброс первичной ошибки. + ВызватьИсключение; + + КонецПопытки; + + // Заполнение реквизитов. + Если Выборка.Следующий() Тогда + ЗаполнитьЗначенияСвойств(Результат, Выборка); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Аналог метода БСП. Возвращает значения реквизитов, прочитанные из информационной базы для нескольких объектов. +// Рекомендуется использовать вместо обращения к реквизитам объекта через точку от ссылки на объект +// для быстрого чтения отдельных реквизитов объекта из базы данных. +// +// Если необходимо зачитать реквизит независимо от прав текущего пользователя, +// то следует использовать предварительный переход в привилегированный режим. +// +// Если передано имя несуществующего реквизита, то вызывается исключение "Поле объекта не существует". +// +// Параметры: +// Ссылки - Массив из ЛюбаяСсылка +// - ФиксированныйМассив из ЛюбаяСсылка - ссылки на объекты. +// Если массив пуст, то результатом будет пустое соответствие. +// Реквизиты - Строка - имена реквизитов перечисленные через запятую, в формате требований к свойствам +// структуры. Например, "Код, Наименование, Родитель". +// - Массив из Строка +// - ФиксированныйМассив из Строка - имена реквизитов в формате требований к свойствам структуры. +// ВыбратьРазрешенные - Булево - если Истина, то запрос к объектам выполняется с учетом прав пользователя; +// если какой-либо объект будет исключен из выборки по правам, то этот объект +// будет исключен и из результата; +// если Ложь, то возникнет исключение при отсутствии прав на таблицу +// или любой из реквизитов. +// КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации. +// +// Возвращаемое значение: +// Соответствие из КлючИЗначение - список объектов и значений их реквизитов: +// * Ключ - ЛюбаяСсылка - ссылка на объект; +// * Значение - Структура: +// ** Ключ - Строка - имя реквизита; +// ** Значение - Произвольный - значение реквизита. +// +Функция ЗначенияРеквизитовОбъектов(Ссылки, Знач Реквизиты, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт + + Если ТипЗнч(Реквизиты) = Тип("Массив") Или ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда + Реквизиты = СтрСоединить(Реквизиты, ","); + КонецЕсли; + + Если ПустаяСтрока(Реквизиты) Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверный второй параметр %1 в функции %2: + |Поле объекта должно быть указано.'"), "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов"); + КонецЕсли; + + Если СтрНайти(Реквизиты, ".") <> 0 Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверный второй параметр %1 в функции %2: + |Обращение через точку не поддерживается.'"), "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов"); + КонецЕсли; + + ЗначенияРеквизитов = Новый Соответствие; + Если Ссылки.Количество() = 0 Тогда + Возврат ЗначенияРеквизитов; + КонецЕсли; + + Если ЗначениеЗаполнено(КодЯзыка) Тогда + КодЯзыка = СтрРазделить(КодЯзыка, "_", Истина)[0]; + КонецЕсли; + + РеквизитыТекстЗапроса = Реквизиты; + + СсылкиПоТипам = Новый Соответствие; + Для Каждого Ссылка Из Ссылки Цикл + Тип = ТипЗнч(Ссылка); + Если СсылкиПоТипам[Тип] = Неопределено Тогда + СсылкиПоТипам[Тип] = Новый Массив; + КонецЕсли; + ЭлементПоТипу = СсылкиПоТипам[Тип]; // Массив + ЭлементПоТипу.Добавить(Ссылка); + КонецЦикла; + + ТекстыЗапросов = Новый Массив; + ПараметрыЗапроса = Новый Структура; + + ИменаОбъектовМетаданных = Новый Массив; + + Для Каждого СсылкиПоТипу Из СсылкиПоТипам Цикл + Тип = СсылкиПоТипу.Ключ; + ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип); + Если ОбъектМетаданных = Неопределено Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверный первый параметр %1 в функции %2: + |Значения массива должны быть ссылками.'"), "Ссылки", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов"); + КонецЕсли; + + ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя(); + ИменаОбъектовМетаданных.Добавить(ПолноеИмяОбъектаМетаданных); + + ТекстЗапроса = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | Ссылка, + | &Реквизиты + |ИЗ + | &ПолноеИмяОбъектаМетаданных КАК ПсевдонимЗаданнойТаблицы + |ГДЕ + | ПсевдонимЗаданнойТаблицы.Ссылка В (&Ссылки)"; + Если Не ВыбратьРазрешенные Или ТекстыЗапросов.Количество() > 0 Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1 + КонецЕсли; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Реквизиты", РеквизитыТекстЗапроса); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъектаМетаданных", ПолноеИмяОбъектаМетаданных); + ИмяПараметра = "Ссылки" + СтрЗаменить(ПолноеИмяОбъектаМетаданных, ".", ""); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Ссылки", "&" + ИмяПараметра); // @Query-part-1 + ПараметрыЗапроса.Вставить(ИмяПараметра, СсылкиПоТипу.Значение); + + ТекстыЗапросов.Добавить(ТекстЗапроса); + КонецЦикла; + + ТекстЗапроса = СтрСоединить(ТекстыЗапросов, Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС); + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("КодЯзыка", КодЯзыка); + Для Каждого Параметр Из ПараметрыЗапроса Цикл + Запрос.УстановитьПараметр(Параметр.Ключ, Параметр.Значение); + КонецЦикла; + + Попытка + Выборка = Запрос.Выполнить().Выбрать(); + Исключение + + // Удаление пробелов. + Реквизиты = СтрЗаменить(Реквизиты, " ", ""); + // Преобразование параметра в массив полей. + Реквизиты = СтрРазделить(Реквизиты, ","); + + // Поиск ошибки доступности полей. + СписокОшибок = Новый Массив; + Для Каждого ПолноеИмяОбъектаМетаданных Из ИменаОбъектовМетаданных Цикл + Результат = ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, Реквизиты); + Если Результат.Ошибка Тогда + СписокОшибок.Добавить(Результат.ОписаниеОшибки); + КонецЕсли; + КонецЦикла; + + Если ЗначениеЗаполнено(СписокОшибок) Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверный второй параметр %1 в функции %2: %3'"), + "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов", СтрСоединить(СписокОшибок, Символы.ПС)); + КонецЕсли; + + // Не удалось распознать ошибку, проброс первичной ошибки. + ВызватьИсключение; + + КонецПопытки; + + Пока Выборка.Следующий() Цикл + Результат = Новый Структура(Реквизиты); + ЗаполнитьЗначенияСвойств(Результат, Выборка); + ЗначенияРеквизитов[Выборка.Ссылка] = Результат; + + КонецЦикла; + + Возврат ЗначенияРеквизитов; + +КонецФункции + +// Аналог метода БСП. Возвращает ОбъектМетаданных, быстро найденный по полному имени. +// Более производительный аналог метода платформы Метаданные.НайтиПоПолномуИмени +// для корневых объектов метаданных. +// +// Параметры: +// ПолноеИмя - Строка - полное имя объекта метаданных, например, Справочник.Организации +// +// Возвращаемое значение: +// ОбъектМетаданных - когда найден +// Неопределено - когда не найден +// +Функция ОбъектМетаданныхПоПолномуИмени(ПолноеИмя) Экспорт + + ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмя); + + Возврат ОбъектМетаданных; + +КонецФункции + +// Аналог метода БСП. Проверяет существование указанных реквизитов у объекта метаданных. +// +// Параметры: +// ПолноеИмяОбъектаМетаданных - Строка - полное имя проверяемого объекта. +// ПроверяемыеВыражения - Массив - имена полей или проверяемые выражения объекта метаданных. +// +// Возвращаемое значение: +// Структура: +// * Ошибка - Булево - найдена ошибка. +// * ОписаниеОшибки - Строка - описание найденных ошибок. +// +// Пример: +// +// Реквизиты = Новый Массив; +// Реквизиты.Добавить("Номер"); +// Реквизиты.Добавить("Валюта.НаименованиеПолное"); +// +// Результат = ОбщегоНазначения.ПроверитьСуществованиеРеквизитовОбъекта("Документ._ДемоЗаказПокупателя", Реквизиты); +// +// Если Результат.Ошибка Тогда +// ВызватьИсключение Результат.ОписаниеОшибки; +// КонецЕсли; +// +Функция ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, ПроверяемыеВыражения) + + МетаданныеОбъекта = ОбъектМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных); + Если МетаданныеОбъекта = Неопределено Тогда + Возврат Новый Структура("Ошибка, ОписаниеОшибки", Истина, + __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Несуществующий объект метаданных ""%1"".'"), ПолноеИмяОбъектаМетаданных)); + КонецЕсли; + + // Разрешение вызова из безопасного режима внешней обработки или расширения. + // Информация о доступности полей источника схемы при проверке метаданных не является секретной. + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + + Схема = Новый СхемаЗапроса; + Пакет = Схема.ПакетЗапросов.Добавить(Тип("ЗапросВыбораСхемыЗапроса")); + Оператор = Пакет.Операторы.Получить(0); + + Источник = Оператор.Источники.Добавить(ПолноеИмяОбъектаМетаданных, "Таблица"); + ТекстОшибки = ""; + + Возврат Новый Структура("Ошибка, ОписаниеОшибки", Не ПустаяСтрока(ТекстОшибки), ТекстОшибки); + +КонецФункции + +// Аналог метода БСП. Создает объект ОписаниеТипов, содержащий тип Строка. +// +// Параметры: +// ДлинаСтроки - Число - длина строки. +// +// Возвращаемое значение: +// ОписаниеТипов - описание типа Строка. +// +Функция ОписаниеТипаСтрока(ДлинаСтроки) Экспорт + + Возврат Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(ДлинаСтроки)); + +КонецФункции + +// Аналог метода БСП. Создает объект ОписаниеТипов, содержащий тип Число. +// +// Параметры: +// Разрядность - Число - общее количество разрядов числа (количество разрядов +// целой части плюс количество разрядов дробной части). +// РазрядностьДробнойЧасти - Число - число разрядов дробной части. +// ЗнакЧисла - ДопустимыйЗнак - допустимый знак числа. +// +// Возвращаемое значение: +// ОписаниеТипов - описание типа Число. +// +Функция ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти = 0, Знач ЗнакЧисла = Неопределено) Экспорт + + Если ЗнакЧисла = Неопределено Тогда + ЗнакЧисла = ДопустимыйЗнак.Любой; + КонецЕсли; + + Возврат Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(Разрядность, РазрядностьДробнойЧасти, ЗнакЧисла)); + +КонецФункции + +#КонецОбласти + #КонецОбласти // ПрограммныйИнтерфейс #Область СлужебныеПроцедурыИФункции @@ -931,4 +1916,124 @@ КонецФункции +#Область МетодыАналогиБСП + +#Область ХранилищеНастроек + +// Аналог метода БСП. +// +Процедура ХранилищеСохранить(МенеджерХранилища, КлючОбъекта, КлючНастроек, Настройки, + ОписаниеНастроек, ИмяПользователя, ОбновитьПовторноИспользуемыеЗначения) + + Если Не ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда + Возврат; + КонецЕсли; + + МенеджерХранилища.Сохранить(КлючОбъекта, КлючНастроек(КлючНастроек), Настройки, + ОписаниеНастроек, ИмяПользователя); + + Если ОбновитьПовторноИспользуемыеЗначения Тогда + ОбновитьПовторноИспользуемыеЗначения(); + КонецЕсли; + +КонецПроцедуры + +// Аналог метода БСП. +// +Функция ХранилищеЗагрузить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию, + ОписаниеНастроек, ИмяПользователя) + + Результат = Неопределено; + + Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда + Результат = МенеджерХранилища.Загрузить(КлючОбъекта, КлючНастроек(КлючНастроек), + ОписаниеНастроек, ИмяПользователя); + КонецЕсли; + + Если Результат = Неопределено Тогда + Результат = ЗначениеПоУмолчанию; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Аналог метода БСП. Возвращает строку ключа настроек, не превышающую допустимую длину 128 символов. +// Если указанная строка превышает 128, тогда вместо символов сверх 96 символов +// добавляется их хеш-сумма по алгоритму MD5 размером 32 символа. +// +// Параметры: +// Строка - Строка - строка произвольной длины. +// +// Возвращаемое значение: +// Строка - не более 128 символов. +// +Функция КлючНастроек(Знач Строка) + Возврат СократитьСтрокуКонтрольнойСуммой(Строка, 128); +КонецФункции + +#КонецОбласти + +// Аналог метода БСП. +// +Функция ДанныеИзБезопасногоХранилища(Владельцы, Ключи, ОбщиеДанные) + + ИмяБезопасногоХранилищаДанных = "РегистрСведений.__БезопасноеХранилищеДанных"; + + ТекстЗапроса = + "ВЫБРАТЬ + | БезопасноеХранилищеДанных.Владелец КАК ВладелецДанных, + | БезопасноеХранилищеДанных.Данные КАК Данные + |ИЗ + | #ИмяБезопасногоХранилищаДанных КАК БезопасноеХранилищеДанных + |ГДЕ + | БезопасноеХранилищеДанных.Владелец В (&Владельцы)"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИмяБезопасногоХранилищаДанных", ИмяБезопасногоХранилищаДанных); + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Владельцы", Владельцы); + РезультатЗапроса = Запрос.Выполнить().Выбрать(); + + Результат = Новый Соответствие(); + + НаборДанныхКлюча = ?(ЗначениеЗаполнено(Ключи) И СтрНайти(Ключи, ","), Новый Структура(Ключи), Неопределено); + Для Каждого ВладелецДанных Из Владельцы Цикл + Результат.Вставить(ВладелецДанных, НаборДанныхКлюча); + КонецЦикла; + + Пока РезультатЗапроса.Следующий() Цикл + + ДанныеВладельца = Новый Структура(Ключи); + + Если ЗначениеЗаполнено(РезультатЗапроса.Данные) Тогда + + СохраненныеДанные = РезультатЗапроса.Данные.Получить(); + Если ЗначениеЗаполнено(СохраненныеДанные) Тогда + + Если ЗначениеЗаполнено(Ключи) Тогда + ВладелецДанных = Результат[РезультатЗапроса.ВладелецДанных]; + ЗаполнитьЗначенияСвойств(ДанныеВладельца, СохраненныеДанные); + Иначе + ДанныеВладельца = СохраненныеДанные; + КонецЕсли; + + Если Ключи <> Неопределено + И ДанныеВладельца <> Неопределено + И ДанныеВладельца.Количество() = 1 Тогда + ЗначениеПоКлючу = ?(ДанныеВладельца.Свойство(Ключи), ДанныеВладельца[Ключи], Неопределено); + Результат.Вставить(РезультатЗапроса.ВладелецДанных, ЗначениеПоКлючу); + Иначе + Результат.Вставить(РезультатЗапроса.ВладелецДанных, ДанныеВладельца); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + КонецЦикла; + + Возврат Результат; +КонецФункции + +#КонецОбласти + #КонецОбласти // СлужебныеПроцедурыИФункции \ No newline at end of file diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" new file mode 100644 index 00000000..2ad4d3f4 --- /dev/null +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" @@ -0,0 +1,23 @@ + + + + + __ОбщегоНазначенияСлужебный + + + ru + Общего назначения служебный + + + + false + false + true + true + false + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" new file mode 100644 index 00000000..233e37b3 --- /dev/null +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -0,0 +1,496 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выше + +//////////////////////////////////////////////////////////////////////////////// +// Общего назначения (служебный): для серверных функций общего назначения, аналогов методов БСП + +#Область ПрограммныйИнтерфейс + +// Выполнить экспортную процедуру по имени. +// +// Параметры: +// ИмяМетода - Строка - имя экспортной процедуры в формате +// <имя объекта>.<имя процедуры>, где <имя объекта> - это +// общий модуль или модуль менеджера объекта. +// Параметры - Массив - параметры передаются в процедуру <ИмяЭкспортнойПроцедуры> +// в порядке расположения элементов массива. +// +// Пример: +// Параметры = Новый Массив(); +// Параметры.Добавить("1"); +// ОбщегоНазначения.ВыполнитьМетодКонфигурации("МойОбщийМодуль.МояПроцедура", Параметры); +// +Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт + + ПроверитьИмяПроцедурыКонфигурации(ИмяМетода); + + ПараметрыСтрока = ""; + Если Параметры <> Неопределено И Параметры.Количество() > 0 Тогда + Для Индекс = 0 По Параметры.ВГраница() Цикл + ПараметрыСтрока = ПараметрыСтрока + "Параметры[" + XMLСтрока(Индекс) + "],"; + КонецЦикла; + ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1); + КонецЕсли; + + Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; + +КонецПроцедуры + +#Область УсловныеВызовы + +// Аналог метода БСП. Возвращает ссылку на общий модуль или модуль менеджера по имени. +// +// Параметры: +// Имя - Строка - имя общего модуля. +// +// Возвращаемое значение: +// ОбщийМодуль +// МодульМенеджераОбъекта +// +// Пример: +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда +// МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации"); +// МодульОбновлениеКонфигурации.<Имя метода>(); +// КонецЕсли; +// +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда +// МодульПолнотекстовыйПоискСервер = ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер"); +// МодульПолнотекстовыйПоискСервер.<Имя метода>(); +// КонецЕсли; +// +Функция ОбщийМодуль(Имя) Экспорт + + Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда + УстановитьБезопасныйРежим(Истина); + Модуль = Вычислить(Имя); + ИначеЕсли СтрЧислоВхождений(Имя, ".") = 1 Тогда + Возврат СерверныйМодульМенеджера(Имя); + Иначе + Модуль = Неопределено; + КонецЕсли; + + Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Общий модуль ""%1"" не существует.'"), + Имя); + КонецЕсли; + + Возврат Модуль; + +КонецФункции + +#КонецОбласти + +#Область ПереадресацияМетодов + +// См. __ОбщегоНазначенияСервер.ЗаписатьДанныеВБезопасноеХранилище. +Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСервер.ПрочитатьДанныеИзБезопасногоХранилища. +Функция ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи, ОбщиеДанные); + +КонецФункции + +// См. __ОбщегоНазначенияСервер.СообщитьПользователю. +Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, Знач Поле = "", + Знач ПутьКДанным = "", Отказ = Ложь) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.СообщитьПользователю(ТекстСообщенияПользователю, КлючДанных, Поле, ПутьКДанным, Отказ); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСервер.ХранилищеОбщихНастроекСохранить. +Процедура ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки, + ОписаниеНастроек = Неопределено, + ИмяПользователя = Неопределено, + ОбновитьПовторноИспользуемыеЗначения = Ложь) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки, ОписаниеНастроек, + ИмяПользователя, ОбновитьПовторноИспользуемыеЗначения); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСервер.ХранилищеОбщихНастроекЗагрузить. +Функция ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию = Неопределено, + ОписаниеНастроек = Неопределено, ИмяПользователя = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию, + ОписаниеНастроек, ИмяПользователя); + +КонецФункции + +// См. __ОбщегоНазначенияСервер.ПриНачалеВыполненияРегламентногоЗадания. +Процедура ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСервер.ЗначенияРеквизитовОбъекта. +Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ЗначенияРеквизитовОбъекта(Ссылка, Реквизиты, ВыбратьРазрешенные, КодЯзыка); + +КонецФункции + +// См. __ОбщегоНазначенияСервер.ОписаниеТипаСтрока. +Функция ОписаниеТипаСтрока(ДлинаСтроки) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ОписаниеТипаСтрока(ДлинаСтроки); + +КонецФункции + +// См. __ОбщегоНазначенияСервер.ОписаниеТипаЧисло. +Функция ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти = 0, Знач ЗнакЧисла = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти, ЗнакЧисла); + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область БезопасноеВыполнениеВнешнегоКода + +// Аналог метода БСП. Проверяет, что переданное имя ИмяПроцедуры является именем экспортной процедуры конфигурации. +// Может использоваться для проверки, что переданная строка не содержит произвольного алгоритма +// на встроенном языке 1С:Предприятия перед использованием его в операторах Выполнить и Вычислить +// при их использовании для динамического вызова методов код конфигурации. +// +// В случае если переданная строка не является именем процедуры конфигурации, генерируется исключение. +// +// Предназначена для вызова из см. процедуру ВыполнитьМетодКонфигурации. +// +// Параметры: +// ИмяПроцедуры - Строка - проверяемое имя экспортной процедуры. +// +Процедура ПроверитьИмяПроцедурыКонфигурации(Знач ИмяПроцедуры) + + ЧастиИмени = СтрРазделить(ИмяПроцедуры, "."); + Если ЧастиИмени.Количество() <> 2 И ЧастиИмени.Количество() <> 3 Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3.'"), + "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации"); + КонецЕсли; + + ИмяОбъекта = ЧастиИмени[0]; + Если ЧастиИмени.Количество() = 2 И Метаданные.ОбщиеМодули.Найти("__"+ИмяОбъекта+"Служебный") = Неопределено Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: + |Не существует общий модуль ""%4"".'"), + "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяОбъекта); + КонецЕсли; + + Если ЧастиИмени.Количество() = 3 Тогда + ПолноеИмяОбъекта = ЧастиИмени[0] + "." + ЧастиИмени[1]; + Попытка + Менеджер = МенеджерОбъектаПоИмени(ПолноеИмяОбъекта); + Исключение + Менеджер = Неопределено; + КонецПопытки; + Если Менеджер = Неопределено Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: + |Не существует менеджер объекта ""%4"".'"), + "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ПолноеИмяОбъекта); + КонецЕсли; + КонецЕсли; + + ИмяМетодаОбъекта = ЧастиИмени[ЧастиИмени.ВГраница()]; + ВременнаяСтруктура = Новый Структура; + Попытка + // Проверка того, что ИмяПроцедуры является допустимым идентификатором. + // Например: МояПроцедура. + ВременнаяСтруктура.Вставить(ИмяМетодаОбъекта); + Исключение + КодОсновногоЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка; + ЗаписьЖурналаРегистрации(НСтр("ru = 'Безопасное выполнение метода'", КодОсновногоЯзыка), + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: + |Имя метода ""%4"" не соответствует требованиям образования имен процедур и функций.'"), + "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяМетодаОбъекта); + КонецПопытки; + +КонецПроцедуры + +// Аналог метода БСП. Возвращает менеджер объекта по имени. +// Ограничение: не обрабатываются точки маршрутов бизнес-процессов. +// +// Параметры: +// Имя - Строка - имя например, "Справочник", "Справочники", "Справочник.Организации". +// +// Возвращаемое значение: +// СправочникиМенеджер +// СправочникМенеджер +// ДокументыМенеджер +// ДокументМенеджер +// ... +// +Функция МенеджерОбъектаПоИмени(Имя) + Перем КлассОМ, ИмяОМ, Менеджер; + + ЧастиИмени = СтрРазделить(Имя, "."); + + Если ЧастиИмени.Количество() > 0 Тогда + КлассОМ = ВРег(ЧастиИмени[0]); + КонецЕсли; + + Если ЧастиИмени.Количество() > 1 Тогда + ИмяОМ = ЧастиИмени[1]; + КонецЕсли; + + Если КлассОМ = "ПЛАНОБМЕНА" + Или КлассОМ = "ПЛАНЫОБМЕНА" Тогда + Менеджер = ПланыОбмена; + + ИначеЕсли КлассОМ = "СПРАВОЧНИК" + Или КлассОМ = "СПРАВОЧНИКИ" Тогда + Менеджер = Справочники; + + ИначеЕсли КлассОМ = "ДОКУМЕНТ" + Или КлассОМ = "ДОКУМЕНТЫ" Тогда + Менеджер = Документы; + + ИначеЕсли КлассОМ = "ЖУРНАЛДОКУМЕНТОВ" + Или КлассОМ = "ЖУРНАЛЫДОКУМЕНТОВ" Тогда + Менеджер = ЖурналыДокументов; + + ИначеЕсли КлассОМ = "ПЕРЕЧИСЛЕНИЕ" + Или КлассОМ = "ПЕРЕЧИСЛЕНИЯ" Тогда + Менеджер = Перечисления; + + ИначеЕсли КлассОМ = "ОБЩИЙМОДУЛЬ" + Или КлассОМ = "ОБЩИЕМОДУЛИ" Тогда + + Возврат ОбщийМодуль(ИмяОМ); + + ИначеЕсли КлассОМ = "ОТЧЕТ" + Или КлассОМ = "ОТЧЕТЫ" Тогда + Менеджер = Отчеты; + + ИначеЕсли КлассОМ = "ОБРАБОТКА" + Или КлассОМ = "ОБРАБОТКИ" Тогда + Менеджер = Обработки; + + ИначеЕсли КлассОМ = "ПЛАНВИДОВХАРАКТЕРИСТИК" + Или КлассОМ = "ПЛАНЫВИДОВХАРАКТЕРИСТИК" Тогда + Менеджер = ПланыВидовХарактеристик; + + ИначеЕсли КлассОМ = "ПЛАНСЧЕТОВ" + Или КлассОМ = "ПЛАНЫСЧЕТОВ" Тогда + Менеджер = ПланыСчетов; + + ИначеЕсли КлассОМ = "ПЛАНВИДОВРАСЧЕТА" + Или КлассОМ = "ПЛАНЫВИДОВРАСЧЕТА" Тогда + Менеджер = ПланыВидовРасчета; + + ИначеЕсли КлассОМ = "РЕГИСТРСВЕДЕНИЙ" + Или КлассОМ = "РЕГИСТРЫСВЕДЕНИЙ" Тогда + Менеджер = РегистрыСведений; + + ИначеЕсли КлассОМ = "РЕГИСТРНАКОПЛЕНИЯ" + Или КлассОМ = "РЕГИСТРЫНАКОПЛЕНИЯ" Тогда + Менеджер = РегистрыНакопления; + + ИначеЕсли КлассОМ = "РЕГИСТРБУХГАЛТЕРИИ" + Или КлассОМ = "РЕГИСТРЫБУХГАЛТЕРИИ" Тогда + Менеджер = РегистрыБухгалтерии; + + ИначеЕсли КлассОМ = "РЕГИСТРРАСЧЕТА" + Или КлассОМ = "РЕГИСТРЫРАСЧЕТА" Тогда + + Если ЧастиИмени.Количество() < 3 Тогда + // Регистр расчета + Менеджер = РегистрыРасчета; + Иначе + КлассПодчиненногоОМ = ВРег(ЧастиИмени[2]); + Если ЧастиИмени.Количество() > 3 Тогда + ИмяПодчиненногоОМ = ЧастиИмени[3]; + КонецЕсли; + Если КлассПодчиненногоОМ = "ПЕРЕРАСЧЕТ" + Или КлассПодчиненногоОМ = "ПЕРЕРАСЧЕТЫ" Тогда + // Перерасчет + Попытка + Менеджер = РегистрыРасчета[ИмяОМ].Перерасчеты; + ИмяОМ = ИмяПодчиненногоОМ; + Исключение + Менеджер = Неопределено; + КонецПопытки; + КонецЕсли; + КонецЕсли; + + ИначеЕсли КлассОМ = "БИЗНЕСПРОЦЕСС" + Или КлассОМ = "БИЗНЕСПРОЦЕССЫ" Тогда + Менеджер = БизнесПроцессы; + + ИначеЕсли КлассОМ = "ЗАДАЧА" + Или КлассОМ = "ЗАДАЧИ" Тогда + Менеджер = Задачи; + + ИначеЕсли КлассОМ = "КОНСТАНТА" + Или КлассОМ = "КОНСТАНТЫ" Тогда + Менеджер = Константы; + + ИначеЕсли КлассОМ = "ПОСЛЕДОВАТЕЛЬНОСТЬ" + Или КлассОМ = "ПОСЛЕДОВАТЕЛЬНОСТИ" Тогда + Менеджер = Последовательности; + КонецЕсли; + + Если Менеджер <> Неопределено Тогда + Если ЗначениеЗаполнено(ИмяОМ) Тогда + Попытка + Возврат Менеджер[ИмяОМ]; + Исключение + Менеджер = Неопределено; + КонецПопытки; + Иначе + Возврат Менеджер; + КонецЕсли; + КонецЕсли; + + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось получить менеджер для объекта ""%1""'"), Имя); + +КонецФункции + +#КонецОбласти + +#Область УсловныеВызовы + +// Аналог метода БСП. Возвращает серверный модуль менеджера по имени объекта. +Функция СерверныйМодульМенеджера(Имя) + ОбъектНайден = Ложь; + + ЧастиИмени = СтрРазделить(Имя, "."); + Если ЧастиИмени.Количество() = 2 Тогда + + ИмяВида = ВРег(ЧастиИмени[0]); + ИмяОбъекта = ЧастиИмени[1]; + + Если ИмяВида = ВРег("Константы") Тогда + Если Метаданные.Константы.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыСведений") Тогда + Если Метаданные.РегистрыСведений.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыНакопления") Тогда + Если Метаданные.РегистрыНакопления.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыБухгалтерии") Тогда + Если Метаданные.РегистрыБухгалтерии.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыРасчета") Тогда + Если Метаданные.РегистрыРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Справочники") Тогда + Если Метаданные.Справочники.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Документы") Тогда + Если Метаданные.Документы.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Отчеты") Тогда + Если Метаданные.Отчеты.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Обработки") Тогда + Если Метаданные.Обработки.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("БизнесПроцессы") Тогда + Если Метаданные.БизнесПроцессы.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ЖурналыДокументов") Тогда + Если Метаданные.ЖурналыДокументов.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Задачи") Тогда + Если Метаданные.Задачи.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыСчетов") Тогда + Если Метаданные.ПланыСчетов.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыОбмена") Тогда + Если Метаданные.ПланыОбмена.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыВидовХарактеристик") Тогда + Если Метаданные.ПланыВидовХарактеристик.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыВидовРасчета") Тогда + Если Метаданные.ПланыВидовРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + КонецЕсли; + + КонецЕсли; + + Если Не ОбъектНайден Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Объект метаданных ""%1"" не существует.'"), Имя); + КонецЕсли; + + // АПК:488-выкл ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно. + УстановитьБезопасныйРежим(Истина); + Модуль = Вычислить(Имя); + // АПК:488-вкл + + Возврат Модуль; +КонецФункции + +#КонецОбласти + +Функция ПолучитьМодуль() + Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль("ОбщегоНазначения", "__ОбщегоНазначенияСервер"); +КонецФункции + +#КонецОбласти diff --git "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml" similarity index 80% rename from "src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202.xml" rename to "src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml" index 1a312f1b..f1c6d7d8 100644 --- "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202.xml" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml" @@ -1,16 +1,16 @@  - + - __ВспомогательныйМодульНеПереноситьКлиент + __ОбщегоНазначенияСлужебныйКлиент ru - Вспомогательный модуль клиент (не переносить) клиент + Общего назначения служебный клиент en - Auxiliary module client (do not transfer) client + General purpose customer diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" new file mode 100644 index 00000000..6b0fa370 --- /dev/null +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" @@ -0,0 +1,67 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выше + +//////////////////////////////////////////////////////////////////////////////// +// Общего назначения (клиент) служебный: для клиентских функций общего назначения + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ПереадресацияМетодов + +// См. __ОбщегоНазначенияКлиент.СообщитьПользователю. +Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, + Знач Поле = "", Знач ПутьКДанным = "", Отказ = Ложь) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.СообщитьПользователю(ТекстСообщенияПользователю, КлючДанных, Поле, ПутьКДанным, Отказ); + +КонецПроцедуры + +// См. __ОбщегоНазначенияКлиент.ДатаУниверсальная. +Функция ДатаУниверсальная() Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ДатаУниверсальная(); + +КонецФункции + +// См. __ОбщегоНазначенияКлиент.ПредопределенныйЭлемент. +Функция ПредопределенныйЭлемент(ПолноеИмяПредопределенного) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ПредопределенныйЭлемент(ПолноеИмяПредопределенного); + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьМодуль() + Возврат __ОбщегоНазначенияКлиент.ОбщийМодуль("ОбщегоНазначенияКлиент", "__ОбщегоНазначенияКлиент"); +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" similarity index 77% rename from "src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" rename to "src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" index 692810e3..e4893e9f 100644 --- "a/src/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" @@ -1,15 +1,19 @@  - + - __ВспомогательныйМодульНеПереноситьКлиентСервер + __ОбщегоНазначенияСлужебныйКлиентСервер ru - Вспомогательный модуль (не переносить) клиент сервер + Общего назначения служебный клиент сервер + + + en + Common client-server - Клиентские и серверные процедуры общего назначения + false true true diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" new file mode 100644 index 00000000..20de228c --- /dev/null +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -0,0 +1,149 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выше + +//////////////////////////////////////////////////////////////////////////////// +// Общего назначения служебный (клиент) сервер: для клиентских и серверных функций общего назначения + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ПереадресацияМетодов + +// См. __ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы. +Процедура УстановитьСвойствоЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства, Значение) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.УстановитьСвойствоЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства, Значение); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры. +Функция СвойствоСтруктуры(Структура, Ключ, ЗначениеПоУмолчанию = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.СвойствоСтруктуры(Структура, Ключ, ЗначениеПоУмолчанию); + +КонецФункции + +// См. __ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьМассив. +Процедура ДополнитьМассив(МассивПриемник, МассивИсточник, ТолькоУникальныеЗначения = Ложь) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.ДополнитьМассив(МассивПриемник, МассивИсточник, ТолькоУникальныеЗначения); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСлужебныйКлиентСервер.СвернутьМассив. +Функция СвернутьМассив(Знач Массив) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.СвернутьМассив(Массив); + +КонецФункции + +// См. __ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеСвойстваЭлементаФормы. +Функция ЗначениеСвойстваЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ЗначениеСвойстваЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства); + +КонецФункции + +// См. __ОбщегоНазначенияСлужебныйКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта. +Функция ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита); + +КонецФункции + +// См. __ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьСтруктуру. +Процедура ДополнитьСтруктуру(Приемник, Источник, Заменять = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.ДополнитьСтруктуру(Приемник, Источник, Заменять); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве. +Функция ЗначениеВМассиве(Знач Значение) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ЗначениеВМассиве(Значение); + +КонецФункции + +// См. __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить. +Процедура Проверить(Знач Условие, Знач Сообщение = "", Знач КонтекстПроверки = "") Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.Проверить(Условие, Сообщение, КонтекстПроверки); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область МетодыАналогиБСП + +// Аналог метода БСП. +// +Функция СообщениеПользователю( + Знач ТекстСообщенияПользователю, + Знач КлючДанных, + Знач Поле, + Знач ПутьКДанным = "", + Отказ = Ложь, + ЭтоОбъект = Ложь) Экспорт + + Сообщение = Новый СообщениеПользователю; + Сообщение.Текст = ТекстСообщенияПользователю; + Сообщение.Поле = Поле; + + Если ЭтоОбъект Тогда + Сообщение.УстановитьДанные(КлючДанных); + Иначе + Сообщение.КлючДанных = КлючДанных; + КонецЕсли; + + Если НЕ ПустаяСтрока(ПутьКДанным) Тогда + Сообщение.ПутьКДанным = ПутьКДанным; + КонецЕсли; + + Отказ = Истина; + + Возврат Сообщение; + +КонецФункции + +#КонецОбласти + +Функция ПолучитьМодуль() + Возврат __ОбщегоНазначенияВызовСервера.ПолучитьОбщийМодуль( + "ОбщегоНазначенияКлиентСервер", + "__ОбщегоНазначенияКлиентСервер"); +КонецФункции + +#КонецОбласти diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.xml" "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.xml" new file mode 100644 index 00000000..99958dcc --- /dev/null +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.xml" @@ -0,0 +1,23 @@ + + + + + __Пользователи + + + ru + Пользователи + + + + false + false + true + true + false + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl" "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl" new file mode 100644 index 00000000..f144c090 --- /dev/null +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl" @@ -0,0 +1,73 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выше + +#Область ПрограммныйИнтерфейс + +#Область МетодыАналогиБСП + +// Аналог метода БСП. Возвращает текущего пользователя. +// Рекомендуется использовать в коде, который не поддерживает работу с внешними пользователями. +// +// Если вход в сеанс выполнил внешний пользователь, тогда будет вызвано исключение. +// +// Возвращаемое значение: +// СправочникСсылка.Пользователи - пользователь. +// +Функция ТекущийПользователь() Экспорт + + Возврат __ПользователиКлиентСервер.ТекущийПользователь(АвторизованныйПользователь()); + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +#Область МетодыАналогиБСП + +// Аналог метода БСП. Только для внутреннего использования. +// +// Возвращаемое значение: +// СправочникСсылка.Пользователи +// СправочникСсылка.ВнешниеПользователи +// +Функция АвторизованныйПользователь() Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Возврат ?(ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь), + ПараметрыСеанса.ТекущийПользователь, + ПараметрыСеанса.ТекущийВнешнийПользователь); + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" new file mode 100644 index 00000000..b5918ee0 --- /dev/null +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" @@ -0,0 +1,23 @@ + + + + + __ПользователиКлиентСервер + + + ru + Пользователи клиент сервер + + + + false + true + true + true + false + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" new file mode 100644 index 00000000..1e6d43a0 --- /dev/null +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -0,0 +1,48 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выш + +#Область ПрограммныйИнтерфейс + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +#Область МетодыАналогиБСП + +// Аналог метода БСП. Только для внутреннего использования. +Функция ТекущийПользователь(АвторизованныйПользователь) Экспорт + + Если ТипЗнч(АвторизованныйПользователь) <> Тип("СправочникСсылка.Пользователи") Тогда + ВызватьИсключение + НСтр("ru = 'Невозможно получить текущего пользователя + |в сеансе внешнего пользователя.'"); + КонецЕсли; + + Возврат АвторизованныйПользователь; + +КонецФункции + +#КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" new file mode 100644 index 00000000..5a1a2828 --- /dev/null +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" @@ -0,0 +1,23 @@ + + + + + __ПользователиСлужебный + + + ru + Пользователи служебный + + + + false + false + true + true + false + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" new file mode 100644 index 00000000..d98da308 --- /dev/null +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -0,0 +1,47 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выше + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ПереадресацияМетодов + +// См. __Пользователи.ТекущийПользователь. +Функция ТекущийПользователь() Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ТекущийПользователь(); + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьМодуль() + Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль("Пользователи", "__Пользователи"); +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl" "b/src/CommonModules/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl" index e360ee60..24f1135a 100644 --- "a/src/CommonModules/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl" @@ -81,10 +81,6 @@ Процедура СоздатьПредопределенноеЗначение(СтрокаТаблицы, МенеджерОбъекта) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - ПроверяемыйТип = ТипЗнч(МенеджерОбъекта); НовыйПредопределенныйЭлемент = МенеджерОбъекта.СоздатьЭлемент(); ЗаполнитьЗначенияСвойств(НовыйПредопределенныйЭлемент, СтрокаТаблицы); @@ -96,7 +92,7 @@ Попытка НовыйПредопределенныйЭлемент.Записать(); Исключение - ОбщегоНазначения.СообщитьПользователю(ОписаниеОшибки()); + __ОбщегоНазначенияСлужебный.СообщитьПользователю(ОписаниеОшибки()); КонецПопытки; КонецПроцедуры diff --git "a/src/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Ext/Module.bsl" "b/src/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Ext/Module.bsl" index 5cb0a1ad..b51a2edf 100644 --- "a/src/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Ext/Module.bsl" @@ -55,22 +55,14 @@ // Создание типа "Таблица значений" Функция ОписаниеТипаТаблицаЗначений() Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиентСервер = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Возврат Новый ОписаниеТипов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Тип("ТаблицаЗначений"))); + Возврат Новый ОписаниеТипов(__ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(Тип("ТаблицаЗначений"))); КонецФункции // Создание типа "Динамический список" Функция ОписаниеТипаДинамическийСписок() Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиентСервер = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Возврат Новый ОписаниеТипов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Тип("ДинамическийСписок"))); + Возврат Новый ОписаниеТипов(__ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(Тип("ДинамическийСписок"))); КонецФункции @@ -1301,11 +1293,7 @@ // ИмяРеквизита - Строка - Имя удаляемого реквизита, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! Процедура УдалитьРеквизит(Форма, ИмяРеквизита) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиентСервер = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - УдалитьРеквизиты(Форма, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИмяРеквизита)); + УдалитьРеквизиты(Форма, __ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(ИмяРеквизита)); КонецПроцедуры @@ -1329,11 +1317,7 @@ // ИмяРеквизита - Строка - Имя удаляемого элемента на форме, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! Процедура УдалитьЭлемент(Форма, ИмяЭлемента) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиентСервер = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - УдалитьЭлементы(Форма, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИмяЭлемента)); + УдалитьЭлементы(Форма, __ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(ИмяЭлемента)); КонецПроцедуры diff --git "a/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml" new file mode 100644 index 00000000..ac2af259 --- /dev/null +++ "b/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml" @@ -0,0 +1,23 @@ + + + + + __РегламентныеЗаданияСервер + + + ru + Регламентные задания сервер + + + + false + false + true + true + false + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" new file mode 100644 index 00000000..850d2b20 --- /dev/null +++ "b/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -0,0 +1,320 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выше + +#Область ПрограммныйИнтерфейс + +#Область МетодыАналогиБСП + +// Аналог метода БСП. В локальном режиме работы возвращает регламентные задания, соответствующие отбору. +// В модели сервиса - таблицу значений, в которой содержится описание найденных заданий +// в справочнике ОчередьЗаданий. +// +// Параметры: +// Отбор - Структура - со свойствами: +// 1) Общие для любого режима работы: +// * УникальныйИдентификатор - УникальныйИдентификатор - идентификатор регламентного задания в локальном +// режиме работы или идентификатор ссылки задания очереди в модели сервиса. +// - Строка - строка уникального идентификатора регламентного задания в локальном +// режиме работы или идентификатор ссылки задания очереди в модели сервиса. +// - СправочникСсылка.ОчередьЗаданий - идентификатор задания +// очереди в модели сервиса. +// - СтрокаТаблицыЗначений из см. НайтиЗадания +// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - метаданные регламентного задания. +// - Строка - имя метаданных регламентного задания. +// * Использование - Булево - если Истина, задание включено. +// * Ключ - Строка - прикладной идентификатор задания. +// 2) Возможные ключи только локального режима: +// * Наименование - Строка - наименование регламентного задания. +// * Предопределенное - Булево - если Истина, регламентное задание определено в метаданных. +// 3) Возможные ключи только для модели сервиса: +// * ИмяМетода - Строка - имя метода (или псевдоним) обработчика очереди задании. +// * ОбластьДанных - Число - значение разделителя области данных задания. +// * СостояниеЗадания - ПеречислениеСсылка.СостоянияЗаданий - состояние задания очереди. +// * Шаблон - СправочникСсылка.ШаблоныЗаданийОчереди - шаблон задания, используется только +// для разделенных заданий очереди. +// +// Возвращаемое значение: +// Массив из РегламентноеЗадание - в локальном режиме работы массив регламентных заданий. +// ТаблицаЗначений - в модели сервиса с колонками: +// * Использование - Булево - если Истина, задание включено. +// * Ключ - Строка - прикладной идентификатор задания. +// * Параметры - Массив - параметры, передаваемые в обработчик задания. +// * Расписание - РасписаниеРегламентногоЗадания - расписание задания. +// * УникальныйИдентификатор - СправочникСсылка.ОчередьЗаданий - идентификатор задания +// очереди в модели сервиса. +// * ЗапланированныйМоментЗапуска - Дата - дата и время запланированного запуска задания +// (в часовом поясе области данных). +// * ИмяМетода - Строка - имя метода (или псевдоним) обработчика очереди задании. +// * ОбластьДанных - Число - значение разделителя области данных задания. +// * СостояниеЗадания - ПеречислениеСсылка.СостоянияЗаданий - состояние задания очереди. +// * Шаблон - СправочникСсылка.ШаблоныЗаданийОчереди - шаблон задания, +// используется только для разделенных заданий очереди. +// * ЭксклюзивноеВыполнение - Булево - при установленном флаге задание будет выполнено +// даже при установленной блокировке начала сеансов в области +// данных. Так же если в области есть задания с таким флагом +// сначала будут выполнены они. +// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать +// задание в случае его аварийного завершения. +// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания. +// +Функция НайтиЗадания(Отбор) Экспорт + + СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор); + + Возврат СписокЗаданий; + +КонецФункции + +// Аналог метода БСП. Удаляет задание из очереди или регламентное. +// +// Параметры: +// Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска +// непредопределенного регламентного задания. +// - Строка - имя метаданных предопределенного регламентного задания в любом режиме работы +// или строка уникального идентификатора регламентного задания в локальном режиме работы +// или строка уникального идентификатора ссылки задания очереди в модели сервиса. +// - УникальныйИдентификатор - идентификатор регламентного задания в локальном режиме работы. +// или идентификатор ссылки задания очереди в модели сервиса. +// - РегламентноеЗадание - регламентное задание, уникальный идентификатор которого используется +// для определения удаляемого экземпляра регламентного задания в локальном режиме работы. +// - СправочникСсылка.ОчередьЗаданий - идентификатор задания очереди в модели сервиса. +// - СтрокаТаблицыЗначений из см. НайтиЗадания +// +Процедура УдалитьЗадание(Знач Идентификатор) Экспорт + + Идентификатор = УточненныйИдентификаторЗадания(Идентификатор); + + УдалитьРегламентноеЗадание(Идентификатор); + +КонецПроцедуры + +// Аналог метода БСП. Добавляет новое задание в очередь или регламентное. +// +// Параметры: +// Параметры - Структура - параметры добавляемого задания, возможные свойства: +// * Использование - Булево - Истина, если регламентное задание должно выполняться автоматически согласно расписанию. +// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - обязательно для указания. Объект метаданных, на основе +// которого будет создано регламентное задание. +// * Параметры - Массив - параметры регламентного задания. Количество и состав параметров должны соответствовать +// параметрам метода регламентного задания. +// * Ключ - Строка - прикладной идентификатор регламентного задания. +// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать задание +// в случае его аварийного завершения. +// * Расписание - РасписаниеРегламентногоЗадания - расписание задания. +// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания. +// +// Возвращаемое значение: +// РегламентноеЗадание - в локальном режиме работы. +// СтрокаТаблицыЗначений из см. НайтиЗадания +// +Функция ДобавитьЗадание(Параметры) Экспорт + + Задание = ДобавитьРегламентноеЗадание(Параметры); + + Возврат Задание; + +КонецФункции + +// Аналог метода БСП. Добавляет новое регламентное задание (без учета очереди заданий модели сервиса). +// +// Параметры: +// Параметры - Структура - параметры добавляемого задания, возможные свойства: +// * Использование - Булево - Истина, если регламентное задание должно выполняться автоматически согласно расписанию. +// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - обязательно для указания. Объект метаданных, на основе +// которого будет создано регламентное задание. +// * Параметры - Массив - параметры регламентного задания. Количество и состав параметров должны соответствовать +// параметрам метода регламентного задания. +// * Ключ - Строка - прикладной идентификатор регламентного задания. +// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать задание +// в случае его аварийного завершения. +// * Расписание - РасписаниеРегламентногоЗадания - расписание задания. +// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания. +// +// Возвращаемое значение: +// РегламентноеЗадание +// +Функция ДобавитьРегламентноеЗадание(Параметры) Экспорт + + МетаданныеЗадания = Параметры.Метаданные; + Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание(МетаданныеЗадания); + + Если Параметры.Свойство("Наименование") Тогда + Задание.Наименование = Параметры.Наименование; + Иначе + Задание.Наименование = МетаданныеЗадания.Наименование; + КонецЕсли; + + Если Параметры.Свойство("Использование") Тогда + Задание.Использование = Параметры.Использование; + Иначе + Задание.Использование = МетаданныеЗадания.Использование; + КонецЕсли; + + Если Параметры.Свойство("Ключ") Тогда + Задание.Ключ = Параметры.Ключ; + Иначе + Задание.Ключ = МетаданныеЗадания.Ключ; + КонецЕсли; + + Если Параметры.Свойство("ИмяПользователя") Тогда + Задание.ИмяПользователя = Параметры.ИмяПользователя; + КонецЕсли; + + Если Параметры.Свойство("ИнтервалПовтораПриАварийномЗавершении") Тогда + Задание.ИнтервалПовтораПриАварийномЗавершении = Параметры.ИнтервалПовтораПриАварийномЗавершении; + Иначе + Задание.ИнтервалПовтораПриАварийномЗавершении = МетаданныеЗадания.ИнтервалПовтораПриАварийномЗавершении; + КонецЕсли; + + Если Параметры.Свойство("КоличествоПовторовПриАварийномЗавершении") Тогда + Задание.КоличествоПовторовПриАварийномЗавершении = Параметры.КоличествоПовторовПриАварийномЗавершении; + Иначе + Задание.КоличествоПовторовПриАварийномЗавершении = МетаданныеЗадания.КоличествоПовторовПриАварийномЗавершении; + КонецЕсли; + + Если Параметры.Свойство("Параметры") Тогда + Задание.Параметры = Параметры.Параметры; + КонецЕсли; + + Если Параметры.Свойство("Расписание") Тогда + Задание.Расписание = Параметры.Расписание; + КонецЕсли; + + Задание.Записать(); + + Возврат Задание; + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область МетодыАналогиБСП + +// Аналог метода БСП. +// +Функция УточненныйИдентификаторЗадания(Знач Идентификатор) + + Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда + Идентификатор = Идентификатор.УникальныйИдентификатор; + КонецЕсли; + + Если ТипЗнч(Идентификатор) = Тип("Строка") Тогда + ОбъектМетаданных = Метаданные.РегламентныеЗадания.Найти(Идентификатор); + Если ОбъектМетаданных = Неопределено Тогда + Идентификатор = Новый УникальныйИдентификатор(Идентификатор); + Иначе + Идентификатор = ОбъектМетаданных; + КонецЕсли; + КонецЕсли; + + Возврат Идентификатор; + +КонецФункции + +// Аналог метода БСП. Удаляет непредопределенное регламентное задание (без учета очереди заданий модели сервиса). +// +// Параметры: +// Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска +// непредопределенного регламентного задания. +// - Строка - имя метаданных предопределенного регламентного задания +// или строка уникального идентификатора регламентного задания. +// - УникальныйИдентификатор - идентификатор регламентного задания. +// - РегламентноеЗадание - регламентное задание, уникальный идентификатор которого используется +// для определения удаляемого экземпляра регламентного задания. +// +Процедура УдалитьРегламентноеЗадание(Знач Идентификатор) Экспорт + + Идентификатор = УточненныйИдентификаторЗадания(Идентификатор); + + СписокЗаданий = Новый Массив; // Массив из РегламентноеЗадание. + + Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") Тогда + Отбор = Новый Структура("Метаданные, Предопределенное", Идентификатор, Ложь); + СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор); + Иначе + РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор); + Если РегламентноеЗадание <> Неопределено Тогда + СписокЗаданий.Добавить(РегламентноеЗадание); + КонецЕсли; + КонецЕсли; + + Для Каждого РегламентноеЗадание Из СписокЗаданий Цикл + ИдентификаторЗадания = УникальныйИдентификаторЗадания(РегламентноеЗадание); + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КэшПрограммныхИнтерфейсов"); + ЭлементБлокировки.УстановитьЗначение("Идентификатор", Строка(ИдентификаторЗадания)); + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания); + Если Задание <> Неопределено Тогда + Задание.Удалить(); + КонецЕсли; + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + КонецЦикла; + +КонецПроцедуры + +// Аналог метода БСП. +// +Функция УникальныйИдентификаторЗадания(Знач Идентификатор, ВРазделенномРежимеИдентификаторЗаданияОчереди = Ложь) + + Если ТипЗнч(Идентификатор) = Тип("УникальныйИдентификатор") Тогда + Возврат Идентификатор; + КонецЕсли; + + Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда + Возврат Идентификатор.УникальныйИдентификатор; + КонецЕсли; + + Если ТипЗнч(Идентификатор) = Тип("Строка") Тогда + Возврат Новый УникальныйИдентификатор(Идентификатор); + КонецЕсли; + + Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") И Идентификатор.Предопределенное Тогда + Возврат РегламентныеЗадания.НайтиПредопределенное(Идентификатор).УникальныйИдентификатор; + ИначеЕсли ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") И НЕ Идентификатор.Предопределенное Тогда + СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Новый Структура("Метаданные", Идентификатор)); + Для каждого РегламентноеЗадание Из СписокЗаданий Цикл + Возврат РегламентноеЗадание.УникальныйИдентификатор; + КонецЦикла; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +#КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.xml" new file mode 100644 index 00000000..ce33e00c --- /dev/null +++ "b/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.xml" @@ -0,0 +1,23 @@ + + + + + __РегламентныеЗаданияСлужебныйСервер + + + ru + Регламентные задания служебный сервер + + + + false + false + true + true + false + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" new file mode 100644 index 00000000..e873a4ee --- /dev/null +++ "b/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -0,0 +1,63 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выше + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ПереадресацияМетодов + +// См. __РегламентныеЗаданияСервер.НайтиЗадания. +Функция НайтиЗадания(Отбор) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.НайтиЗадания(Отбор); + +КонецФункции + +// См. __РегламентныеЗаданияСервер.ДобавитьЗадание. +Функция ДобавитьЗадание(Параметры) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ДобавитьЗадание(Параметры); + +КонецФункции + +// См. __РегламентныеЗаданияСервер.УдалитьЗадание. +Процедура УдалитьЗадание(Знач Идентификатор) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.НайтиЗадания(Идентификатор); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьМодуль() + Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль("РегламентныеЗаданияСервер", "__РегламентныеЗаданияСервер"); +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\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\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl" "b/src/CommonModules/__\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\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl" index c59c2956..1177d2e8 100644 --- "a/src/CommonModules/__\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\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl" +++ "b/src/CommonModules/__\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\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl" @@ -37,10 +37,6 @@ // Процедура СправочникиОбработкаЗаполнения(Источник, ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -56,7 +52,7 @@ ПараметрыМетода.Добавить(ТекстЗаполнения); ПараметрыМетода.Добавить(СтандартнаяОбработка); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); diff --git "a/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl" "b/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl" index 7f005667..3ba78fb6 100644 --- "a/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl" @@ -35,10 +35,6 @@ // Процедура СправочникиПередЗаписью(Источник, Отказ) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -52,7 +48,7 @@ ПараметрыМетода.Добавить(Источник); ПараметрыМетода.Добавить(Отказ); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); diff --git "a/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl" "b/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl" index 9005bec7..67377838 100644 --- "a/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl" @@ -35,10 +35,6 @@ // Процедура СправочникиПриЗаписи(Источник, Отказ) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Отказ Или Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -52,7 +48,7 @@ ПараметрыМетода.Добавить(Источник); ПараметрыМетода.Добавить(Отказ); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); diff --git "a/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl" "b/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl" index e73c8137..95d555c7 100644 --- "a/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl" @@ -34,10 +34,6 @@ // Процедура СправочникиПриКопировании(Источник, ОбъектКопирования) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = __ВспомогательныйМодульНеПереносить; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; @@ -51,7 +47,7 @@ ПараметрыМетода.Добавить(Источник); ПараметрыМетода.Добавить(ОбъектКопирования); - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); Исключение ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); diff --git "a/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 662458b4..bbf932a8 100644 --- "a/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -118,6 +118,154 @@ КонецФункции +#Область МетодыАналогиБСП + +// Аналог метода БСП. Разбивает строку на несколько строк по указанному разделителю. Разделитель может иметь любую длину. +// В случаях, когда разделителем является строка из одного символа, и не используется параметр СокращатьНепечатаемыеСимволы, +// рекомендуется использовать функцию платформы СтрРазделить. +// +// Параметры: +// Значение - Строка - текст с разделителями. +// Разделитель - Строка - разделитель строк текста, минимум 1 символ. +// ПропускатьПустыеСтроки - Булево - признак необходимости включения в результат пустых строк. +// Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией: +// > для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки +// включаются в результат; +// > если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в +// случае разделителя-пробела результатом функции будет массив, содержащий одно значение "" (пустая строка), а +// при других разделителях результатом функции будет пустой массив. +// СокращатьНепечатаемыеСимволы - Булево - сокращать непечатаемые символы по краям каждой из найденных подстрок. +// +// Возвращаемое значение: +// Массив из Строка +// +// Пример: +// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(",один,,два,", ",") +// - возвратит массив из 5 элементов, три из которых - пустые: "", "один", "", "два", ""; +// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(",один,,два,", ",", Истина) +// - возвратит массив из двух элементов: "один", "два"; +// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(" один два ", " ") +// - возвратит массив из двух элементов: "один", "два"; +// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("") +// - возвратит пустой массив; +// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("",,Ложь) +// - возвратит массив с одним элементом: ""(пустая строка); +// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("", " ") +// - возвратит массив с одним элементом: "" (пустая строка). +// +Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено, + СокращатьНепечатаемыеСимволы = Ложь) Экспорт + + Если СтрДлина(Разделитель) = 1 + И ПропускатьПустыеСтроки = Неопределено + И СокращатьНепечатаемыеСимволы Тогда + + Результат = СтрРазделить(Значение, Разделитель, Ложь); + Для Индекс = 0 По Результат.ВГраница() Цикл + Результат[Индекс] = СокрЛП(Результат[Индекс]) + КонецЦикла; + Возврат Результат; + + КонецЕсли; + + Результат = Новый Массив; + + // Для обеспечения обратной совместимости. + Если ПропускатьПустыеСтроки = Неопределено Тогда + ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); + Если ПустаяСтрока(Значение) Тогда + Если Разделитель = " " Тогда + Результат.Добавить(""); + КонецЕсли; + Возврат Результат; + КонецЕсли; + КонецЕсли; + // + + Позиция = СтрНайти(Значение, Разделитель); + Пока Позиция > 0 Цикл + Подстрока = Лев(Значение, Позиция - 1); + Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда + Если СокращатьНепечатаемыеСимволы Тогда + Результат.Добавить(СокрЛП(Подстрока)); + Иначе + Результат.Добавить(Подстрока); + КонецЕсли; + КонецЕсли; + Значение = Сред(Значение, Позиция + СтрДлина(Разделитель)); + Позиция = СтрНайти(Значение, Разделитель); + КонецЦикла; + + Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Значение) Тогда + Если СокращатьНепечатаемыеСимволы Тогда + Результат.Добавить(СокрЛП(Значение)); + Иначе + Результат.Добавить(Значение); + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Аналог метода БСП. Подставляет параметры в строку. Максимально возможное число параметров - 9. +// Параметры в строке задаются как %<номер параметра>. Нумерация параметров начинается с единицы. +// +// Параметры: +// ШаблонСтроки - Строка - шаблон строки с параметрами (вхождениями вида "%<номер параметра>", +// например "%1 пошел в %2"); +// Параметр1 - Строка - значение подставляемого параметра. +// Параметр2 - Строка +// Параметр3 - Строка +// Параметр4 - Строка +// Параметр5 - Строка +// Параметр6 - Строка +// Параметр7 - Строка +// Параметр8 - Строка +// Параметр9 - Строка +// +// Возвращаемое значение: +// Строка - текстовая строка с подставленными параметрами. +// +// Пример: +// СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 пошел в %2'"), "Вася", "Зоопарк") = "Вася пошел +// в Зоопарк". +// +Функция ПодставитьПараметрыВСтроку(Знач ШаблонСтроки, + Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено, + Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено, + Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) Экспорт + + ЕстьПараметрыСПроцентом = СтрНайти(Параметр1, "%") + Или СтрНайти(Параметр2, "%") + Или СтрНайти(Параметр3, "%") + Или СтрНайти(Параметр4, "%") + Или СтрНайти(Параметр5, "%") + Или СтрНайти(Параметр6, "%") + Или СтрНайти(Параметр7, "%") + Или СтрНайти(Параметр8, "%") + Или СтрНайти(Параметр9, "%"); + + Если ЕстьПараметрыСПроцентом Тогда + //Возврат ПодставитьПараметрыСПроцентом(ШаблонСтроки, Параметр1, + // Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9); + КонецЕсли; + + ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%1", Параметр1); + ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%2", Параметр2); + ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%3", Параметр3); + ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%4", Параметр4); + ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%5", Параметр5); + ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%6", Параметр6); + ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%7", Параметр7); + ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%8", Параметр8); + ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%9", Параметр9); + Возврат ШаблонСтроки; + +КонецФункции + +#КонецОбласти + #КонецОбласти // ПрограммныйИнтерфейс #Область СлужебныеПроцедурыИФункции diff --git "a/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" new file mode 100644 index 00000000..5d8c0dd2 --- /dev/null +++ "b/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" @@ -0,0 +1,23 @@ + + + + + __СтроковыеФункцииСлужебныйКлиентСервер + + + ru + Строковые функции служебный клиент сервер + + + + false + true + true + true + false + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" new file mode 100644 index 00000000..f95bd93a --- /dev/null +++ "b/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -0,0 +1,66 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выше + +//////////////////////////////////////////////////////////////////////////////// +// Строковые функции клиент сервер служебный: Аналог общего модуля БСП + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ПереадресацияМетодов + +// См. __СтроковыеФункцииСлужебныйКлиентСервер.РазложитьСтрокуВМассивПодстрок. +Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено, + СокращатьНепечатаемыеСимволы = Ложь) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.РазложитьСтрокуВМассивПодстрок(Значение, Разделитель, ПропускатьПустыеСтроки, + СокращатьНепечатаемыеСимволы); + +КонецФункции + +// См. __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку. +Функция ПодставитьПараметрыВСтроку(Знач ШаблонСтроки, + Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено, + Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено, + Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ПодставитьПараметрыВСтроку(ШаблонСтроки, Параметр1, Параметр2, Параметр3, Параметр4 , Параметр5, + Параметр6, Параметр7, Параметр8, Параметр9); + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьМодуль() + Возврат __ОбщегоНазначенияВызовСервера.ПолучитьОбщийМодуль( + "СтроковыеФункцииКлиентСервер", + "__СтроковыеФункцииКлиентСервер"); +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/src/Configuration.xml b/src/Configuration.xml index 5a7f62c2..121b3950 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -250,6 +250,7 @@ __СоответствиеОбъектовИБ __УправлениеИнтеграциями __ЗагрузкаИзТабличногоДокумента + __БазоваяФункциональность __ПодсистемаУправлениеИнтеграциями __Реквизит __Реквизиты @@ -268,9 +269,6 @@ __BSLEditor __JSONEditor __XMLEditor - __ВспомогательныйМодульНеПереносить - __ВспомогательныйМодульНеПереноситьКлиент - __ВспомогательныйМодульНеПереноситьКлиентСервер __ДокументыОбработкаЗаполнения __ДокументыОбработкаПроведения __ДокументыПередЗаписью @@ -302,6 +300,18 @@ __СправочникиПриКопировании __СтроковыеФункцииКлиентСервер __ТипСоответствияОбъектовИБПереопределяемый + __ОбщегоНазначенияСлужебный + __СтроковыеФункцииСлужебныйКлиентСервер + __ОбщегоНазначенияСлужебныйКлиентСервер + __ОбщегоНазначенияВызовСервера + __ОбщегоНазначенияСлужебныйКлиент + __РегламентныеЗаданияСлужебныйСервер + __РегламентныеЗаданияСервер + __ЖурналРегистрации + __ЖурналРегистрацииСлужебный + __Пользователи + __ПользователиСлужебный + __ПользователиКлиентСервер __ДокументыОбработкаЗаполнения __ДокументыОбработкаПроведения __ДокументыПередЗаписью @@ -326,6 +336,7 @@ __СтатусыИнтеграции __ФорматыЗапросовИнтеграции __СоответствияОбъектовИБ + __БезопасноеХранилищеДанных __ПредопределенныеЗначения diff --git "a/src/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index 2d7f5596..e33cc056 100644 --- "a/src/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -57,13 +57,9 @@ &НаКлиенте Процедура ПодсказатьКогдаОбед(Команда) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - ОбщегоНазначенияКлиент.СообщитьПользователю(СтрШаблон( + __ОбщегоНазначенияСлужебныйКлиент.СообщитьПользователю(СтрШаблон( НСтр("ru='Привет, текущее время %1'; en='Hello, the current time is %1'"), - Формат(ОбщегоНазначенияКлиент.ДатаУниверсальная(), "ДЛФ=DT"))); + Формат(__ОбщегоНазначенияСлужебныйКлиент.ДатаУниверсальная(), "ДЛФ=DT"))); КонецПроцедуры @@ -81,15 +77,10 @@ &НаСервере Процедура СкрытьОтцаНаСервере() - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - ОбщегоНазначенияКлиентСервер = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если Не ОбщегоНазначенияКлиентСервер.ЗначениеСвойстваЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость") Тогда - ОбщегоНазначения.СообщитьПользователю(НСтр("ru='Он и так не с нами.'; en='He`s not with us anyway.'")); + Если Не __ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеСвойстваЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость") Тогда + __ОбщегоНазначенияСлужебный.СообщитьПользователю(НСтр("ru='Он и так не с нами.'; en='He`s not with us anyway.'")); Иначе - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость", Ложь); + __ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость", Ложь); КонецЕсли; КонецПроцедуры @@ -97,15 +88,10 @@ &НаСервере Процедура ПоказатьОтцаНаСервере() - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначения = Неопределено; - ОбщегоНазначенияКлиентСервер = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если ОбщегоНазначенияКлиентСервер.ЗначениеСвойстваЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость") Тогда - ОбщегоНазначения.СообщитьПользователю(НСтр("ru='Присмотрись получше.'; en='Take a closer look.'")); + Если __ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеСвойстваЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость") Тогда + __ОбщегоНазначенияСлужебный.СообщитьПользователю(НСтр("ru='Присмотрись получше.'; en='Take a closer look.'")); Иначе - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость", Истина); + __ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость", Истина); КонецЕсли; КонецПроцедуры diff --git "a/src/InformationRegisters/__\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\320\265\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\224\320\260\320\275\320\275\321\213\321\205.xml" "b/src/InformationRegisters/__\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\320\265\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\224\320\260\320\275\320\275\321\213\321\205.xml" new file mode 100644 index 00000000..707451a0 --- /dev/null +++ "b/src/InformationRegisters/__\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\320\265\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\224\320\260\320\275\320\275\321\213\321\205.xml" @@ -0,0 +1,262 @@ + + + + + + 3337b29f-2cea-4862-8409-05ff756ec545 + 42b0d6d2-7aa9-4b62-b56d-03589ab24d41 + + + 9157eb12-182c-4f15-bc41-571fe6437c9b + 0f3488cd-0dc1-476d-8569-95a5c503519e + + + 9867f530-fa5b-4dc2-9bf7-6cac0a1357b4 + 5414c487-194a-444e-8031-4be6c8a361e1 + + + f25c655f-7014-4d3b-b791-77c703fa83e2 + bc387b25-c00f-4287-bb4f-cb55d42ad779 + + + 5e2b748c-b887-4088-a99c-23c9a0aadbf0 + 30a66f87-5e3b-4c91-8233-a838523910b6 + + + af81d233-9ed8-43ad-9949-6087b69936cb + 99fb2191-7d06-4c57-8d8d-1203700e5cba + + + e7174c57-26f5-483b-962d-38fb30b43f39 + 940d6978-313c-46bd-bf65-91e10c6614a4 + + + + __БезопасноеХранилищеДанных + + + ru + Безопасное хранилище данных + + + аналог регистра БСП + false + InDialog + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + ShowError + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + Nonperiodical + Independent + false + false + Managed + DontUse + false + false + + + + + + DontUse + false + false + + + + + Данные + + + ru + Данные + + + + + v8:ValueStorage + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Владелец + + + ru + Владелец + + + + + xs:string + cfg:ExchangePlanRef + cfg:CatalogRef + + 128 + Variable + + + false + + + + false + + false + false + + + true + + DontCheck + Items + + + Auto + Auto + + + Auto + false + true + false + Index + DontUse + Use + + + + + \ No newline at end of file diff --git "a/src/InformationRegisters/__\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ManagerModule.bsl" "b/src/InformationRegisters/__\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ManagerModule.bsl" index 612312e3..4392587a 100644 --- "a/src/InformationRegisters/__\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ManagerModule.bsl" +++ "b/src/InformationRegisters/__\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ManagerModule.bsl" @@ -109,10 +109,6 @@ // Функция ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта) Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - СтроковыеФункцииКлиентСервер = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - МетаданныеРегистра = Метаданные.РегистрыСведений.__СоответствияОбъектовИБ; КлючСуществует = МетаданныеРегистра.Измерения.Найти(ИмяКлюча) <> Неопределено; @@ -129,7 +125,7 @@ Шаблон = НСтр("ru = 'В регистре сведений __СоответствияОбъектовИБ не существует " + ?(КлючСуществует, "", "ключа %1") + ?(ОбъектСуществует, "", ?(КлючСуществует, "", "; ") + "объект %2") + "'"); - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( Шаблон, ИмяКлюча, ИмяОбъекта); diff --git "a/src/Subsystems/__\320\221\320\260\320\267\320\276\320\262\320\260\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\321\214.xml" "b/src/Subsystems/__\320\221\320\260\320\267\320\276\320\262\320\260\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\321\214.xml" new file mode 100644 index 00000000..e537bcaf --- /dev/null +++ "b/src/Subsystems/__\320\221\320\260\320\267\320\276\320\262\320\260\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\321\214.xml" @@ -0,0 +1,24 @@ + + + + + __БазоваяФункциональность + + + ru + Базовая функциональность + + + + true + true + false + + + + InformationRegister.__БезопасноеХранилищеДанных + + + + + \ No newline at end of file From f6eca49323e9068b8cd47cb033c09e3dfff0768f Mon Sep 17 00:00:00 2001 From: DenisUshakov Date: Mon, 15 Apr 2024 15:28:26 +0300 Subject: [PATCH 02/10] =?UTF-8?q?=D1=83=D1=81=D1=82=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA?= =?UTF-8?q?=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80=D0=B0,=20=D1=83=D0=B4=D0=B0?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B5=D0=BD=D1=83=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BA=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/ManagerModule.bsl" | 7 +- .../Ext/Form/Module.bsl" | 15 +- .../Ext/Module.bsl" | 2 +- .../Ext/Module.bsl" | 182 +----------- .../Ext/Module.bsl" | 4 +- .../Ext/Module.bsl" | 9 +- src/Configuration.xml | 2 - ...0\260\320\275\320\275\321\213\321\205.xml" | 262 ------------------ .../Ext/Rights.xml" | 110 +++++++- ...0\275\320\276\321\201\321\202\321\214.xml" | 24 -- 10 files changed, 144 insertions(+), 473 deletions(-) delete mode 100644 "src/InformationRegisters/__\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\320\265\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\224\320\260\320\275\320\275\321\213\321\205.xml" delete mode 100644 "src/Subsystems/__\320\221\320\260\320\267\320\276\320\262\320\260\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\321\214.xml" diff --git "a/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl" "b/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl" index 513cf88a..b49f59aa 100644 --- "a/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl" +++ "b/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl" @@ -64,7 +64,12 @@ ТекстОшибки = __ОбщегоНазначенияСервер.ПолучениеПолногоТекстаОшибкиПриИсключении(ЗаголовокОшибки, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПолучитьСообщенияПользователю(Истина)); - __ЖурналРегистрацииСлужебный.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , ВыборкаДетальныеЗаписи.Ссылка, ТекстОшибки); + __ЖурналРегистрацииСлужебный.ДобавитьСообщениеДляЖурналаРегистрации( + ИмяСобытия, + УровеньЖурналаРегистрации.Ошибка, + , + ВыборкаДетальныеЗаписи.Ссылка, + ТекстОшибки); КонецПопытки; diff --git "a/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index 21cd8cd6..bd4fd493 100644 --- "a/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -68,8 +68,9 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) + Предопределенный = "Перечисление.__ФорматыЗапросовИнтеграции.ПроизвольныйФормат"; Если ЗначениеЗаполнено(Объект.ФорматЗапросаИнтеграции) - И Объект.ФорматЗапросаИнтеграции <> __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.ПроизвольныйФормат") Тогда + И Объект.ФорматЗапросаИнтеграции <> __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда ИнициализироватьБазовыйФайлРедактора(ПолучитьФорматИнтеграции(Объект.ФорматЗапросаИнтеграции)); КонецЕсли; @@ -89,7 +90,8 @@ &НаКлиенте Процедура ЗапросИсходящийДокументСформирован_Подключаемый(Элемент) - Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.JSON") Тогда + Предопределенный = "Перечисление.__ФорматыЗапросовИнтеграции.JSON"; + Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда ИнициализироватьИЗаполнитьТекстомОбъектJSON("code", "Исходящий"); Иначе ИнициализироватьИЗаполнитьТекстомОбъектXML("Исходящий"); @@ -100,7 +102,8 @@ &НаКлиенте Процедура ЗапросВходящийДокументСформирован_Подключаемый(Элемент) - Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.JSON") Тогда + Предопределенный = "Перечисление.__ФорматыЗапросовИнтеграции.JSON"; + Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда ИнициализироватьИЗаполнитьТекстомОбъектJSON("code", "Входящий"); Иначе ИнициализироватьИЗаполнитьТекстомОбъектXML("Входящий"); @@ -115,7 +118,8 @@ &НаКлиенте Процедура РазвернутьВсе(Команда) - Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.XML") Тогда + Предопределенный = "Перечисление.__ФорматыЗапросовИнтеграции.XML"; + Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда Элементы.ЗапросИсходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", true); Элементы.ЗапросВходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", true); Иначе @@ -133,7 +137,8 @@ &НаКлиенте Процедура СвернутьВсе(Команда) - Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.XML") Тогда + Предопределенный = "Перечисление.__ФорматыЗапросовИнтеграции.XML"; + Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда Элементы.ЗапросИсходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", false); Элементы.ЗапросВходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", false); Иначе diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 8f7ec54b..e559004f 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -245,7 +245,7 @@ Продолжить; Иначе ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Пересечение ключей источника и приемника: ""%1"".'"), Элемент.Ключ); - КонецЕсли + КонецЕсли; КонецЕсли; Приемник.Вставить(Элемент.Ключ, Элемент.Значение); КонецЦикла; diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index f9228f32..75737b67 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -827,7 +827,8 @@ // Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт - Если Метаданные.ОбщиеМодули.Найти("ОбщегоНазначения") <> Неопределено Тогда + Если __ОбщегоНазначенияПовтИсп.СуществуетБиблиотекаСтандартныхПодсистем() + И Метаданные.ОбщиеМодули.Найти("ОбщегоНазначения") <> Неопределено Тогда УстановитьБезопасныйРежим(Истина); Модуль = Вычислить("ОбщегоНазначения"); Модуль.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры); @@ -943,7 +944,7 @@ НСтр("ru = 'Недопустимое значение параметра %1 в %2. |параметр должен содержать ссылку; передано значение: %3 (тип %4).'"), "Владелец", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Владелец, ТипЗнч(Владелец))); - + Если ЗначениеЗаполнено(Ключ) Тогда __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ТипЗнч(Ключ) = Тип("Строка"), @@ -951,7 +952,7 @@ НСтр("ru = 'Недопустимое значение параметра %1 в %2. |параметр должен содержать строку; передано значение: %3 (тип %4).'"), "Ключ", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Ключ, ТипЗнч(Ключ))); - + Иначе __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ТипЗнч(Данные) = Тип("Структура"), @@ -959,50 +960,15 @@ НСтр("ru = 'Недопустимое значение параметра %1 в %2. |Если Ключ = Неопределено, то параметр должен содержать структуру; передано значение: %3 (тип %4).'"), "Данные", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Данные, ТипЗнч(Данные))); - - КонецЕсли; - - БезопасноеХранилищеДанных = РегистрыСведений.__БезопасноеХранилищеДанных.СоздатьМенеджерЗаписи(); - - БезопасноеХранилищеДанных.Владелец = Владелец; - БезопасноеХранилищеДанных.Прочитать(); - Если Данные <> Неопределено Тогда - - Если БезопасноеХранилищеДанных.Выбран() Тогда - - ДанныеДляСохранения = БезопасноеХранилищеДанных.Данные.Получить(); - - Если ТипЗнч(ДанныеДляСохранения) <> Тип("Структура") Тогда - ДанныеДляСохранения = Новый Структура(); - КонецЕсли; - - Если ЗначениеЗаполнено(Ключ) Тогда - ДанныеДляСохранения.Вставить(Ключ, Данные); - Иначе - __ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьСтруктуру(ДанныеДляСохранения, Данные, Истина); - КонецЕсли; - - ДанныеДляХранилищеЗначения = Новый ХранилищеЗначения(ДанныеДляСохранения, Новый СжатиеДанных(6)); - БезопасноеХранилищеДанных.Данные = ДанныеДляХранилищеЗначения; - БезопасноеХранилищеДанных.Записать(); - - Иначе - - ДанныеДляСохранения = ?(ЗначениеЗаполнено(Ключ), Новый Структура(Ключ, Данные), Данные); - ДанныеДляХранилищеЗначения = Новый ХранилищеЗначения(ДанныеДляСохранения, Новый СжатиеДанных(6)); - - БезопасноеХранилищеДанных.Данные = ДанныеДляХранилищеЗначения; - БезопасноеХранилищеДанных.Владелец = Владелец; - БезопасноеХранилищеДанных.Записать(); - - КонецЕсли; - Иначе - - БезопасноеХранилищеДанных.Удалить(); - КонецЕсли; + // Загулшка. + // Перенаправление в хранилище общих настроек, не используется регистр сведений БезопасноеХранилищеДанных + ХранилищеОбщихНастроекСохранить(Владелец, Ключ, Данные); + Возврат; + // Загулшка + КонецПроцедуры // Аналог метода БСП. Возвращает данные из безопасного хранилища. @@ -1041,69 +1007,11 @@ // Функция ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт - Владельцы = __ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(Владелец); - ДанныеВладельца = ПрочитатьДанныеВладельцевИзБезопасногоХранилища(Владельцы, Ключи, ОбщиеДанные); - - Результат = ДанныеВладельца[Владелец]; - - Возврат Результат; - -КонецФункции - -// Аналог метода БСП. Возвращает данные из безопасного хранилища. -// Вызывающий код должен самостоятельно устанавливать привилегированный режим. -// -// Безопасное хранилище недоступно для чтения пользователям (кроме администраторов), -// а доступно только коду, который делает обращения только к своей части данных и -// в том контексте, который предполагает чтение или запись конфиденциальных данных. -// -// Параметры: -// Владельцы - Массив из ПланОбменаСсылка -// - Массив из СправочникСсылка -// - Массив из Строка - ссылки на объекты информационной базы, -// представляющих объекты-владельцы или уникальные строки(до 128 символов) владельцев данных. -// Ключи - Строка - содержит имя ключа данных или список имен ключей, указанных через запятую. -// - Неопределено - будут возвращены все сохраненные данные переданных владельцев. -// ОбщиеДанные - Булево - Истина, если требуется в модели сервиса получить данные из общих данных в разделенном режиме. -// -// Возвращаемое значение: -// Соответствие из КлючИЗначение: -// * Ключ - ПланОбменаСсылка -// - СправочникСсылка -// - Строка - ссылка на объект информационной базы -// или строка до 128 символов идентифицирующая владельца данных. -// * Значение - Произвольный - если в параметре Ключи указан один ключ, -// то возвращается его значение произвольного типа. -// - Структура - если в параметре Ключи указано несколько ключей или Неопределено, -// где ключ структуры - это имя ключа сохраненных данных, -// а значение - данные произвольного типа. Когда для ключа отсутствуют данные, -// то значение содержит Неопределено. -// - Неопределено - если данные по ключу отсутствуют. -// -// Пример: -// Процедура РассылкаПриглашений(Пользователи) -// -// УстановитьПривилегированныйРежим(Истина); -// ДанныеАвторизации = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Пользователи, "Логин, Пароль"); -// УстановитьПривилегированныйРежим(Ложь); -// -// Для каждого Пользователь Из Пользователи Цикл -// ОтправитьПриглашение(Пользователь, ДанныеАвторизации[Пользователь]); -// КонецЦикла; -// -// КонецПроцедуры -// -Функция ПрочитатьДанныеВладельцевИзБезопасногоХранилища(Владельцы, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт - - __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ТипЗнч(Владельцы) = Тип("Массив"), - __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Недопустимое значение параметра %1 в %2. - |параметр должен содержать массив; передано значение: %3 (тип %4).'"), - "Владельцы", "ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища", Владельцы, ТипЗнч(Владельцы))); - - Результат = ДанныеИзБезопасногоХранилища(Владельцы, Ключи, ОбщиеДанные); - + // Загулшка. + // Перенаправление в хранилище общих настроек, не используется регистр сведений БезопасноеХранилищеДанных + Результат = ХранилищеОбщихНастроекЗагрузить(Владелец, Ключи, ОбщиеДанные); Возврат Результат; + // Загулшка КонецФункции @@ -1170,7 +1078,7 @@ ЭтоОбъект = СтрНайти(ТипЗначенияСтрокой, "Object.") > 0; КонецЕсли; - Сообщение = __ОбщегоНазначенияКлиентСервер.СообщениеПользователю(ТекстСообщенияПользователю, + Сообщение = __ОбщегоНазначенияСлужебныйКлиентСервер.СообщениеПользователю(ТекстСообщенияПользователю, КлючДанных, Поле, ПутьКДанным, Отказ, ЭтоОбъект); Сообщение.Сообщить(); @@ -1974,66 +1882,6 @@ #КонецОбласти -// Аналог метода БСП. -// -Функция ДанныеИзБезопасногоХранилища(Владельцы, Ключи, ОбщиеДанные) - - ИмяБезопасногоХранилищаДанных = "РегистрСведений.__БезопасноеХранилищеДанных"; - - ТекстЗапроса = - "ВЫБРАТЬ - | БезопасноеХранилищеДанных.Владелец КАК ВладелецДанных, - | БезопасноеХранилищеДанных.Данные КАК Данные - |ИЗ - | #ИмяБезопасногоХранилищаДанных КАК БезопасноеХранилищеДанных - |ГДЕ - | БезопасноеХранилищеДанных.Владелец В (&Владельцы)"; - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИмяБезопасногоХранилищаДанных", ИмяБезопасногоХранилищаДанных); - Запрос = Новый Запрос(ТекстЗапроса); - Запрос.УстановитьПараметр("Владельцы", Владельцы); - РезультатЗапроса = Запрос.Выполнить().Выбрать(); - - Результат = Новый Соответствие(); - - НаборДанныхКлюча = ?(ЗначениеЗаполнено(Ключи) И СтрНайти(Ключи, ","), Новый Структура(Ключи), Неопределено); - Для Каждого ВладелецДанных Из Владельцы Цикл - Результат.Вставить(ВладелецДанных, НаборДанныхКлюча); - КонецЦикла; - - Пока РезультатЗапроса.Следующий() Цикл - - ДанныеВладельца = Новый Структура(Ключи); - - Если ЗначениеЗаполнено(РезультатЗапроса.Данные) Тогда - - СохраненныеДанные = РезультатЗапроса.Данные.Получить(); - Если ЗначениеЗаполнено(СохраненныеДанные) Тогда - - Если ЗначениеЗаполнено(Ключи) Тогда - ВладелецДанных = Результат[РезультатЗапроса.ВладелецДанных]; - ЗаполнитьЗначенияСвойств(ДанныеВладельца, СохраненныеДанные); - Иначе - ДанныеВладельца = СохраненныеДанные; - КонецЕсли; - - Если Ключи <> Неопределено - И ДанныеВладельца <> Неопределено - И ДанныеВладельца.Количество() = 1 Тогда - ЗначениеПоКлючу = ?(ДанныеВладельца.Свойство(Ключи), ДанныеВладельца[Ключи], Неопределено); - Результат.Вставить(РезультатЗапроса.ВладелецДанных, ЗначениеПоКлючу); - Иначе - Результат.Вставить(РезультатЗапроса.ВладелецДанных, ДанныеВладельца); - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции - #КонецОбласти #КонецОбласти // СлужебныеПроцедурыИФункции \ No newline at end of file diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" index 233e37b3..0f51870b 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -213,7 +213,9 @@ КонецЕсли; ИмяОбъекта = ЧастиИмени[0]; - Если ЧастиИмени.Количество() = 2 И Метаданные.ОбщиеМодули.Найти("__"+ИмяОбъекта+"Служебный") = Неопределено Тогда + Если ЧастиИмени.Количество() = 2 + И Метаданные.ОбщиеМодули.Найти("__"+ИмяОбъекта+"Служебный") = Неопределено + И Метаданные.ОбщиеМодули.Найти(ИмяОбъекта) = Неопределено Тогда ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: |Не существует общий модуль ""%4"".'"), diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl" "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl" index f144c090..26209ea1 100644 --- "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl" @@ -51,16 +51,11 @@ // Аналог метода БСП. Только для внутреннего использования. // // Возвращаемое значение: -// СправочникСсылка.Пользователи -// СправочникСсылка.ВнешниеПользователи +// Неопределено // Функция АвторизованныйПользователь() Экспорт - УстановитьПривилегированныйРежим(Истина); - - Возврат ?(ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь), - ПараметрыСеанса.ТекущийПользователь, - ПараметрыСеанса.ТекущийВнешнийПользователь); + Возврат Неопределено; КонецФункции diff --git a/src/Configuration.xml b/src/Configuration.xml index 121b3950..aa17736c 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -250,7 +250,6 @@ __СоответствиеОбъектовИБ __УправлениеИнтеграциями __ЗагрузкаИзТабличногоДокумента - __БазоваяФункциональность __ПодсистемаУправлениеИнтеграциями __Реквизит __Реквизиты @@ -336,7 +335,6 @@ __СтатусыИнтеграции __ФорматыЗапросовИнтеграции __СоответствияОбъектовИБ - __БезопасноеХранилищеДанных __ПредопределенныеЗначения diff --git "a/src/InformationRegisters/__\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\320\265\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\224\320\260\320\275\320\275\321\213\321\205.xml" "b/src/InformationRegisters/__\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\320\265\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\224\320\260\320\275\320\275\321\213\321\205.xml" deleted file mode 100644 index 707451a0..00000000 --- "a/src/InformationRegisters/__\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\320\265\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\224\320\260\320\275\320\275\321\213\321\205.xml" +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - 3337b29f-2cea-4862-8409-05ff756ec545 - 42b0d6d2-7aa9-4b62-b56d-03589ab24d41 - - - 9157eb12-182c-4f15-bc41-571fe6437c9b - 0f3488cd-0dc1-476d-8569-95a5c503519e - - - 9867f530-fa5b-4dc2-9bf7-6cac0a1357b4 - 5414c487-194a-444e-8031-4be6c8a361e1 - - - f25c655f-7014-4d3b-b791-77c703fa83e2 - bc387b25-c00f-4287-bb4f-cb55d42ad779 - - - 5e2b748c-b887-4088-a99c-23c9a0aadbf0 - 30a66f87-5e3b-4c91-8233-a838523910b6 - - - af81d233-9ed8-43ad-9949-6087b69936cb - 99fb2191-7d06-4c57-8d8d-1203700e5cba - - - e7174c57-26f5-483b-962d-38fb30b43f39 - 940d6978-313c-46bd-bf65-91e10c6614a4 - - - - __БезопасноеХранилищеДанных - - - ru - Безопасное хранилище данных - - - аналог регистра БСП - false - InDialog - - - - - - - - DontCheck - false - false - Auto - - - false - - - Auto - Auto - - false - Use - false - - - - Use - - - - - - - - DontCheck - false - false - Auto - - - false - - - Auto - Auto - - false - Use - false - - - - Use - - - - - - - - DontCheck - false - false - Auto - - - false - - - Auto - Auto - - false - Use - false - - - - Use - - - - - - - - ShowError - false - false - Auto - - - false - - - Auto - Auto - - false - Use - false - - - - Use - - - - - - - Nonperiodical - Independent - false - false - Managed - DontUse - false - false - - - - - - DontUse - false - false - - - - - Данные - - - ru - Данные - - - - - v8:ValueStorage - - false - - - - false - - false - false - - - false - - DontCheck - Items - - - Auto - Auto - - - Auto - DontIndex - Use - Use - - - - - Владелец - - - ru - Владелец - - - - - xs:string - cfg:ExchangePlanRef - cfg:CatalogRef - - 128 - Variable - - - false - - - - false - - false - false - - - true - - DontCheck - Items - - - Auto - Auto - - - Auto - false - true - false - Index - DontUse - Use - - - - - \ No newline at end of file diff --git "a/src/Roles/__\320\247\321\202\320\265\320\275\320\270\320\265\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/Rights.xml" "b/src/Roles/__\320\247\321\202\320\265\320\275\320\270\320\265\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/Rights.xml" index dc3008bf..1951598d 100644 --- "a/src/Roles/__\320\247\321\202\320\265\320\275\320\270\320\265\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/Rights.xml" +++ "b/src/Roles/__\320\247\321\202\320\265\320\275\320\270\320\265\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/Rights.xml" @@ -4,14 +4,118 @@ true false - InformationRegister.__СоответствияОбъектовИБ + InformationRegister.__СоответствияОбъектовИБ.Dimension.Объект2 - Read + View + false + + + Edit + false + + + + Configuration.ПроектнаяБиблиотекаПодсистем + + MainWindowModeNormal true - View + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace true + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + + InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.Active + + View + false + + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.LineNumber + + View + false + + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.Recorder + + View + false + + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.Period + + View + false + + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.Resource.Объект3 + + View + false + + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.Dimension.ТипСоответствия + + View + false + + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.Dimension.Объект1 + + View + false + + + Edit + false + \ No newline at end of file diff --git "a/src/Subsystems/__\320\221\320\260\320\267\320\276\320\262\320\260\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\321\214.xml" "b/src/Subsystems/__\320\221\320\260\320\267\320\276\320\262\320\260\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\321\214.xml" deleted file mode 100644 index e537bcaf..00000000 --- "a/src/Subsystems/__\320\221\320\260\320\267\320\276\320\262\320\260\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\321\214.xml" +++ /dev/null @@ -1,24 +0,0 @@ - - - - - __БазоваяФункциональность - - - ru - Базовая функциональность - - - - true - true - false - - - - InformationRegister.__БезопасноеХранилищеДанных - - - - - \ No newline at end of file From 1610dc5a8a6cf919edadfb855dfa6202c7b2f068 Mon Sep 17 00:00:00 2001 From: DenisUshakov Date: Mon, 15 Apr 2024 15:44:07 +0300 Subject: [PATCH 03/10] =?UTF-8?q?=D0=BD=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D0=B8,=20=D0=BD=D0=BE=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80?= =?UTF-8?q?=20=D1=80=D1=83=D0=B3=D0=B0=D0=B5=D1=82=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/Form/Module.bsl" | 2 +- .../Ext/Module.bsl" | 7 +++++++ .../Ext/Module.bsl" | 18 +++++++++++++++++- .../Ext/Form/Module.bsl" | 2 +- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index 5253faa9..90297258 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -715,7 +715,7 @@ Файл = Новый ЧтениеZipФайла(КаталогИсходников + "bsl_console.zip"); Файл.ИзвлечьВсе(КаталогИсходников); Файл = Новый ЗаписьТекста(КаталогИсходников + ВерсияОбработки + ".ver"); - Файл.ЗаписатьСтроку(__ОбщегоНазначенияСлужебныйКлиент.ДатаУниверсальная()); + Файл.ЗаписатьСтроку(__ОбщегоНазначенияВызовСервера.ТекущаяДатаПользователя()); Файл.Закрыть(); ТочкаВхода = КаталогИсходников + "index.html"; ИндексныйФайл = ИндексныйФайл(); diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" index 65388492..77079db3 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" @@ -37,5 +37,12 @@ Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного); КонецФункции + +// См. __ОбщегоНазначенияСервер.ТекущаяДатаПользователя +Функция ТекущаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт + + Возврат __ОбщегоНазначенияСервер.ТекущаяДатаПользователя(ИмяПользователя); +КонецФункции + #КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 75737b67..6f43ed5d 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -853,7 +853,7 @@ МодульБСП = Вычислить("СтандартныеПодсистемыСервер"); ВерсияБСП = МодульБСП.ВерсияБиблиотеки(); Исключение - // Не обрабатываем + ВерсияБСП = Неопределено; КонецПопытки; КонецЕсли; @@ -1709,6 +1709,22 @@ КонецФункции +// Аналог метода БСП. Возвращает значение настройки рабочей даты для пользователя или текущей даты сеанса, +// если рабочая дата пользователя не задана. +// +// Параметры: +// ИмяПользователя - Строка - имя пользователя, для которого запрашивается рабочая дата. +// Если не задано, то устанавливается для текущего пользователя. +// +// Возвращаемое значение: +// Дата - значение настройки рабочей даты пользователя или текущая дата сеанса, если настройка не задана. +// +Функция ТекущаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт + + Возврат ТекущаяДатаСеанса(); + +КонецФункции + #КонецОбласти #КонецОбласти // ПрограммныйИнтерфейс diff --git "a/src/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index e33cc056..ef4bc4e4 100644 --- "a/src/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -59,7 +59,7 @@ __ОбщегоНазначенияСлужебныйКлиент.СообщитьПользователю(СтрШаблон( НСтр("ru='Привет, текущее время %1'; en='Hello, the current time is %1'"), - Формат(__ОбщегоНазначенияСлужебныйКлиент.ДатаУниверсальная(), "ДЛФ=DT"))); + Формат(__ОбщегоНазначенияВызовСервера.ТекущаяДатаПользователя(), "ДЛФ=DT"))); КонецПроцедуры From 3473a44e3fac63630a799aa209fd879f261baac3 Mon Sep 17 00:00:00 2001 From: DenisUshakov Date: Mon, 15 Apr 2024 15:48:26 +0300 Subject: [PATCH 04/10] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D1=82?= =?UTF-8?q?=D0=B5=D0=BA=D1=83=D1=89=D1=83=D1=8E=20=D0=B4=D0=B0=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/Module.bsl" | 16 ---------------- 1 file changed, 16 deletions(-) diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" index bc92ae8a..dc6f831c 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" @@ -135,22 +135,6 @@ КонецПроцедуры -// Аналог метода БСП. Возвращает универсальную дату сеанса, получаемую из текущей даты сеанса. -// -// Функция возвращает время, близкое к результату функции УниверсальноеВремя() в серверном контексте. -// Погрешность обусловлена временем выполнения серверного вызова. -// Предназначена для использования вместо функции УниверсальноеВремя(). -// -// Возвращаемое значение: -// Дата - универсальная дата сеанса. -// -Функция ДатаУниверсальная() Экспорт - - ДатаСеанса = ТекущаяДата(); - Возврат ДатаСеанса; - -КонецФункции - // Аналог метода БСП. Возвращает ссылку предопределенного элемента по его полному имени. // Предопределенные элементы могут содержаться только в следующих объектах: // - справочники; From 3163a51be39b901ee11a04a0eb4264c32b9d3161 Mon Sep 17 00:00:00 2001 From: DenisUshakov Date: Mon, 15 Apr 2024 16:03:25 +0300 Subject: [PATCH 05/10] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BD?= =?UTF-8?q?=D0=B5=D0=B4=D0=BE=D0=BF=D1=83=D1=81=D1=82=D0=B8=D0=BC=D1=8B?= =?UTF-8?q?=D0=B9=20=D1=82=D0=B8=D0=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/Module.bsl" | 6 --- .../Ext/Rights.xml" | 39 +++++-------------- 2 files changed, 9 insertions(+), 36 deletions(-) diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 1e6d43a0..7c68f83d 100644 --- "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -33,12 +33,6 @@ // Аналог метода БСП. Только для внутреннего использования. Функция ТекущийПользователь(АвторизованныйПользователь) Экспорт - Если ТипЗнч(АвторизованныйПользователь) <> Тип("СправочникСсылка.Пользователи") Тогда - ВызватьИсключение - НСтр("ru = 'Невозможно получить текущего пользователя - |в сеансе внешнего пользователя.'"); - КонецЕсли; - Возврат АвторизованныйПользователь; КонецФункции diff --git "a/src/Roles/__\320\247\321\202\320\265\320\275\320\270\320\265\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/Rights.xml" "b/src/Roles/__\320\247\321\202\320\265\320\275\320\270\320\265\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/Rights.xml" index 1951598d..9e25cee6 100644 --- "a/src/Roles/__\320\247\321\202\320\265\320\275\320\270\320\265\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/Rights.xml" +++ "b/src/Roles/__\320\247\321\202\320\265\320\275\320\270\320\265\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/Rights.xml" @@ -5,10 +5,6 @@ false InformationRegister.__СоответствияОбъектовИБ.Dimension.Объект2 - - View - false - Edit false @@ -42,11 +38,18 @@ - InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.Active + InformationRegister.__СоответствияОбъектовИБ + + Read + true + View - false + true + + + InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.Active Edit false @@ -54,10 +57,6 @@ InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.LineNumber - - View - false - Edit false @@ -65,10 +64,6 @@ InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.Recorder - - View - false - Edit false @@ -76,10 +71,6 @@ InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.Period - - View - false - Edit false @@ -87,10 +78,6 @@ InformationRegister.__СоответствияОбъектовИБ.Resource.Объект3 - - View - false - Edit false @@ -98,10 +85,6 @@ InformationRegister.__СоответствияОбъектовИБ.Dimension.ТипСоответствия - - View - false - Edit false @@ -109,10 +92,6 @@ InformationRegister.__СоответствияОбъектовИБ.Dimension.Объект1 - - View - false - Edit false From 896aed1cc4cee80f0583f2a3f1761cdc3c74397e Mon Sep 17 00:00:00 2001 From: DenisUshakov Date: Mon, 15 Apr 2024 16:37:26 +0300 Subject: [PATCH 06/10] =?UTF-8?q?=D1=83=D1=81=D1=82=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B1=D0=B5=D0=B7=D0=BE=D0=BF=D0=B0=D1=81=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/Module.bsl" | 15 +- .../Ext/Module.bsl" | 1 + .../Ext/Module.bsl" | 2 - ...1\200\320\275\320\265\321\202\320\260.xml" | 23 ++++ .../Ext/Module.bsl" | 129 ++++++++++++++++++ ...0\265\320\261\320\275\321\213\320\271.xml" | 23 ++++ .../Ext/Module.bsl" | 48 +++++++ src/Configuration.xml | 2 + 8 files changed, 231 insertions(+), 12 deletions(-) create mode 100644 "src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260.xml" create mode 100644 "src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl" create mode 100644 "src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" create mode 100644 "src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" diff --git "a/src/CommonModules/__\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP/Ext/Module.bsl" "b/src/CommonModules/__\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP/Ext/Module.bsl" index 74d3b32d..1d9b930d 100644 --- "a/src/CommonModules/__\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP/Ext/Module.bsl" @@ -1998,17 +1998,12 @@ КонецФункции Функция ПроксиПоУмолчанию(URL) - + ПроксиПоУмолчанию = Новый ИнтернетПрокси; - // BSLLS:ExecuteExternalCodeInCommonModule-off - ИмяОМПолученияФайловБСП = "ПолучениеФайловИзИнтернета"; - Если Метаданные.ОбщиеМодули.Найти(ИмяОМПолученияФайловБСП) <> Неопределено Тогда - СтруктураURL = РазобратьURL(URL); - Модуль = Вычислить(ИмяОМПолученияФайловБСП); - ПроксиПоУмолчанию = Модуль.ПолучитьПрокси(СтруктураURL.Схема); - КонецЕсли; - // BSLLS:ExecuteExternalCodeInCommonModule-on - + + СтруктураURL = РазобратьURL(URL); + ПроксиПоУмолчанию = __ПолучениеФайловИзИнтернетаСлужебный.ПолучитьПрокси(СтруктураURL.Схема); + Возврат ПроксиПоУмолчанию; КонецФункции diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 6f43ed5d..63bc8e78 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -850,6 +850,7 @@ // Точка входа, где можно попытаться проверить подключена ли БСП Если Метаданные.ОбщиеМодули.Найти("СтандартныеПодсистемыСервер") <> Неопределено Тогда Попытка + УстановитьБезопасныйРежим(Истина); МодульБСП = Вычислить("СтандартныеПодсистемыСервер"); ВерсияБСП = МодульБСП.ВерсияБиблиотеки(); Исключение diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" index 0f51870b..6438b747 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -481,10 +481,8 @@ НСтр("ru = 'Объект метаданных ""%1"" не существует.'"), Имя); КонецЕсли; - // АПК:488-выкл ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно. УстановитьБезопасныйРежим(Истина); Модуль = Вычислить(Имя); - // АПК:488-вкл Возврат Модуль; КонецФункции diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260.xml" "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260.xml" new file mode 100644 index 00000000..6ddc8c58 --- /dev/null +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260.xml" @@ -0,0 +1,23 @@ + + + + + __ПолучениеФайловИзИнтернета + + + ru + Получение файлов из Интернета + + + + false + false + true + true + true + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl" "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl" new file mode 100644 index 00000000..e2106466 --- /dev/null +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl" @@ -0,0 +1,129 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выш + +#Область ПрограммныйИнтерфейс + +// Аналог метода БСП. Возвращает объект ИнтернетПрокси для доступа в Интернет. +// Допустимые протоколы для создания ИнтернетПрокси http, https, ftp и ftps. +// +// Параметры: +// URLИлиПротокол - Строка - url в формате [Протокол://]<Сервер>/<Путь к файлу на сервере>, +// либо идентификатор протокола (http, ftp, ...). +// +// Возвращаемое значение: +// ИнтернетПрокси - описывает параметры прокси-серверов для различных протоколов. +// Если не удалось распознать схему сетевой протокол, +// то будет создать прокси на основании протокола HTTP. +// +Функция ПолучитьПрокси(Знач URLИлиПротокол) Экспорт + + НастройкиПрокси = __ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекЗагрузить("НастройкаПроксиСервера", ""); + Возврат НовыйИнтернетПрокси(НастройкиПрокси, URLИлиПротокол); + +КонецФункции + +// Аналог метода БСП. Возвращает прокси по настройкам НастройкаПроксиСервера для заданного протокола Протокол. +// +// Параметры: +// НастройкаПроксиСервера - Соответствие из КлючИЗначение: +// * Ключ - Строка - см. ниже список возможных ключей. +// * Значение - Произвольный +// ИспользоватьПрокси - Булево - использовать ли прокси-сервер. +// НеИспользоватьПроксиДляЛокальныхАдресов - использовать ли прокси-сервер для локальных адресов. +// НеИспользоватьПроксиДляАдресов - Массив из Строка +// ИспользоватьСистемныеНастройки - Булево - использовать ли системные настройки прокси-сервера. +// Сервер - Строка - адрес прокси-сервера. +// Порт - Строка - порт прокси-сервера. +// Пользователь - Строка - имя пользователя для авторизации на прокси-сервере. +// Пароль - Строка - пароль пользователя. +// ИспользоватьАутентификациюОС - Булево - признак использования аутентификации средствами операционной системы. +// URLИлиПротокол - Строка - адрес ресурса или протокол, для которого устанавливаются параметры прокси сервера, +// например "https://1c.ru", "http", "https", "ftp", "ftps". +// +// Возвращаемое значение: +// ИнтернетПрокси +// +Функция НовыйИнтернетПрокси(НастройкаПроксиСервера, URLИлиПротокол) Экспорт + + Если НастройкаПроксиСервера = Неопределено Тогда + // Системные установки прокси-сервера. + Возврат Неопределено; + КонецЕсли; + + ИспользоватьПрокси = НастройкаПроксиСервера.Получить("ИспользоватьПрокси"); + Если Не ИспользоватьПрокси Тогда + // Не использовать прокси-сервер. + Возврат Новый ИнтернетПрокси(Ложь); + КонецЕсли; + + ИспользоватьСистемныеНастройки = НастройкаПроксиСервера.Получить("ИспользоватьСистемныеНастройки"); + Если ИспользоватьСистемныеНастройки Тогда + // Системные настройки прокси-сервера. + Возврат Новый ИнтернетПрокси(Истина); + КонецЕсли; + + ИспользоватьАутентификациюОС = НастройкаПроксиСервера.Получить("ИспользоватьАутентификациюОС"); + ИспользоватьАутентификациюОС = ?(ИспользоватьАутентификациюОС = Истина, Истина, Ложь); + + ДополнительныеНастройки = НастройкаПроксиСервера.Получить("ДополнительныеНастройкиПрокси"); + Если ТипЗнч(ДополнительныеНастройки) <> Тип("Соответствие") Тогда + ДополнительныеНастройки = Новый Соответствие; + КонецЕсли; + + // Настройки прокси-сервера, заданные вручную. + Прокси = Новый ИнтернетПрокси; + + Протоколы = СтрРазделить("http,https,ftp,ftps", ",", Ложь); + Для Каждого Протокол Из Протоколы Цикл + АдресСервера = НастройкаПроксиСервера["Сервер"]; + Порт = НастройкаПроксиСервера["Порт"]; + + ПроксиПоПротоколу = ДополнительныеНастройки[Протокол]; + Если ТипЗнч(ПроксиПоПротоколу) = Тип("Структура") Тогда + АдресСервера = ПроксиПоПротоколу.Адрес; + Порт = ПроксиПоПротоколу.Порт; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Порт) Тогда + Порт = Неопределено; + КонецЕсли; + + Прокси.Установить(Протокол, АдресСервера, Порт, + НастройкаПроксиСервера["Пользователь"], НастройкаПроксиСервера["Пароль"], ИспользоватьАутентификациюОС); + КонецЦикла; + + Прокси.НеИспользоватьПроксиДляЛокальныхАдресов = НастройкаПроксиСервера["НеИспользоватьПроксиДляЛокальныхАдресов"]; + + АдресаИсключений = НастройкаПроксиСервера.Получить("НеИспользоватьПроксиДляАдресов"); + Если ТипЗнч(АдресаИсключений) = Тип("Массив") Тогда + Для каждого АдресИсключения Из АдресаИсключений Цикл + Прокси.НеИспользоватьПроксиДляАдресов.Добавить(АдресИсключения); + КонецЦикла; + КонецЕсли; + + Возврат Прокси; + +КонецФункции + +#КонецОбласти diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" new file mode 100644 index 00000000..e2cf02e0 --- /dev/null +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" @@ -0,0 +1,23 @@ + + + + + __ПолучениеФайловИзИнтернетаСлужебный + + + ru + Получение файлов из Интернета служебный + + + + false + false + true + true + true + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" new file mode 100644 index 00000000..6d7db49e --- /dev/null +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -0,0 +1,48 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 2017-2024 First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// e-mail: ivssmirnov@1bit.com +// Версия: 1.0.0.1 +// +// Требования: платформа 1С версии 8.3.17 и выш + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ПереадресацияМетодов + +// См. __ПолучениеФайловИзИнтернета.ПолучитьПрокси. +Функция ПолучитьПрокси(Знач URLИлиПротокол) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ПолучитьПрокси(URLИлиПротокол); + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьМодуль() + Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль("ПолучениеФайловИзИнтернета", "__ПолучениеФайловИзИнтернета"); +КонецФункции + +#КонецОбласти + diff --git a/src/Configuration.xml b/src/Configuration.xml index aa17736c..5571f36c 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -311,6 +311,8 @@ __Пользователи __ПользователиСлужебный __ПользователиКлиентСервер + __ПолучениеФайловИзИнтернета + __ПолучениеФайловИзИнтернетаСлужебный __ДокументыОбработкаЗаполнения __ДокументыОбработкаПроведения __ДокументыПередЗаписью From 97bd51b7c6a1fee3b95ddbcf4c503c2039108c3f Mon Sep 17 00:00:00 2001 From: DenisUshakov Date: Mon, 15 Apr 2024 16:49:06 +0300 Subject: [PATCH 07/10] =?UTF-8?q?=D0=92=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D0=BD=D1=8F?= =?UTF-8?q?=D0=B5=D1=82=D1=81=D1=8F=20=D0=B2=20=D0=B1=D0=B5=D0=B7=D0=BE?= =?UTF-8?q?=D0=BF=D0=B0=D1=81=D0=BD=D0=BE=D0=BC=20=D1=80=D0=B5=D0=B6=D0=B8?= =?UTF-8?q?=D0=BC=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/Module.bsl" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" index 6438b747..c8dc6123 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -52,7 +52,7 @@ КонецЦикла; ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1); КонецЕсли; - + УстановитьБезопасныйРежим(Истина); Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; КонецПроцедуры From eaa5a1968c781fa9b3c08082659c3471295969d0 Mon Sep 17 00:00:00 2001 From: DenisUshakov Date: Tue, 16 Apr 2024 09:37:40 +0300 Subject: [PATCH 08/10] =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B5=D0=B4=D0=B8=D0=BD=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B0=D0=B4=D1=80=D0=B5=D1=81=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=B4=D0=BE=D0=B2=20=D0=91=D0=A1=D0=9F=20?= =?UTF-8?q?=D0=B8=20=D0=B8=D1=85=20=D0=B0=D0=BD=D0=B0=D0=BB=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/Module.bsl" | 2 +- .../Ext/Module.bsl" | 4 +- .../Ext/Module.bsl" | 4 +- .../Ext/Module.bsl" | 399 ++++++++++++++++-- .../Ext/Module.bsl" | 381 +---------------- .../Ext/Module.bsl" | 2 +- .../Ext/Module.bsl" | 2 +- .../Ext/Module.bsl" | 4 +- .../Ext/Module.bsl" | 2 +- .../Ext/Module.bsl" | 2 +- .../Ext/Module.bsl" | 2 +- src/Configuration.xml | 28 +- 12 files changed, 399 insertions(+), 433 deletions(-) diff --git "a/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" index 6bfe537b..04cfacf8 100644 --- "a/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -42,7 +42,7 @@ #Область СлужебныеПроцедурыИФункции Функция ПолучитьМодуль() - Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль("ЖурналРегистрации", "__ЖурналРегистрации"); + Возврат __ОбщегоНазначенияПовтИсп.ОбщийМодуль("ЖурналРегистрации", "__ЖурналРегистрации"); КонецФункции #КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" index 77079db3..280d5d37 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" @@ -32,9 +32,9 @@ КонецФункции // См. __ОбщегоНазначенияСервер.ПолучитьОбщийМодуль -Функция ПолучитьОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт +Функция ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт - Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного); + Возврат __ОбщегоНазначенияПовтИсп.ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного); КонецФункции diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" index 21069921..cc96e4ea 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" @@ -105,9 +105,9 @@ КонецФункции // См. __ОбщегоНазначенияСервер.ПолучитьОбщийМодуль. -Функция ПолучитьОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт +Функция ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт - Возврат __ОбщегоНазначенияСервер.ПолучитьОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного); + Возврат __ОбщегоНазначенияСервер.ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного); КонецФункции diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 63bc8e78..46e649fd 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -810,34 +810,6 @@ КонецФункции -// Перенаправляет экспортную процедуру в ОбщийМодуль.ВыполнитьМетодКонфигурации(), если в конфигурации есть БСП, -// перенаправляет на метод БСП, если нет выполняется аналог метода БСП, встроенный в конфигурацию. -// -// Параметры: -// ИмяМетода - Строка - имя экспортной процедуры в формате -// <имя объекта>.<имя процедуры>, где <имя объекта> - это -// общий модуль или модуль менеджера объекта. -// Параметры - Массив - параметры передаются в процедуру <ИмяЭкспортнойПроцедуры> -// в порядке расположения элементов массива. -// -// Пример: -// Параметры = Новый Массив(); -// Параметры.Добавить("1"); -// ОбщегоНазначения.ВыполнитьМетодКонфигурации("МойОбщийМодуль.МояПроцедура", Параметры); -// -Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт - - Если __ОбщегоНазначенияПовтИсп.СуществуетБиблиотекаСтандартныхПодсистем() - И Метаданные.ОбщиеМодули.Найти("ОбщегоНазначения") <> Неопределено Тогда - УстановитьБезопасныйРежим(Истина); - Модуль = Вычислить("ОбщегоНазначения"); - Модуль.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры); - Иначе - __ОбщегоНазначенияСлужебный.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры); - КонецЕсли; - -КонецПроцедуры - // Возвращает Истину или Ложь, существует ли "Библиотеки стандартных подсистем" (БСП), // встроенная в конфигурацию. // @@ -851,7 +823,7 @@ Если Метаданные.ОбщиеМодули.Найти("СтандартныеПодсистемыСервер") <> Неопределено Тогда Попытка УстановитьБезопасныйРежим(Истина); - МодульБСП = Вычислить("СтандартныеПодсистемыСервер"); + МодульБСП = ОбщийМодуль("СтандартныеПодсистемыСервер"); ВерсияБСП = МодульБСП.ВерсияБиблиотеки(); Исключение ВерсияБСП = Неопределено; @@ -862,7 +834,29 @@ КонецФункции -Функция ПолучитьОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт +#Область МетодыАналогиБСП + +// Аналог метода БСП. Возвращает ссылку на общий модуль или модуль менеджера по имени. +// +// Параметры: +// Имя - Строка - имя общего модуля. +// +// Возвращаемое значение: +// ОбщийМодуль +// МодульМенеджераОбъекта +// +// Пример: +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда +// МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации"); +// МодульОбновлениеКонфигурации.<Имя метода>(); +// КонецЕсли; +// +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда +// МодульПолнотекстовыйПоискСервер = ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер"); +// МодульПолнотекстовыйПоискСервер.<Имя метода>(); +// КонецЕсли; +// +Функция ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного = "") Экспорт Имя = ИмяМодуляВстроенного; Если __ОбщегоНазначенияПовтИсп.СуществуетБиблиотекаСтандартныхПодсистем() @@ -873,17 +867,56 @@ Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда УстановитьБезопасныйРежим(Истина); Модуль = Вычислить(Имя); + ИначеЕсли СтрЧислоВхождений(Имя, ".") = 1 Тогда + Возврат СерверныйМодульМенеджера(Имя); Иначе + Модуль = Неопределено; + КонецЕсли; + + Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Общий модуль ""%1"" не существует.'"), - Имя); + ?(ПустаяСтрока(Имя), ИмяМодуляБСП, Имя)); КонецЕсли; - + Возврат Модуль; КонецФункции -#Область МетодыАналогиБСП +// Аналог метода БСП. Выполнить экспортную процедуру по имени с уровнем привилегий конфигурации. +// При включении профилей безопасности для вызова оператора Выполнить() используется +// переход в безопасный режим с профилем безопасности, используемым для информационной базы +// (если выше по стеку не был установлен другой безопасный режим). +// +// Параметры: +// ИмяМетода - Строка - имя экспортной процедуры в формате +// <имя объекта>.<имя процедуры>, где <имя объекта> - это +// общий модуль или модуль менеджера объекта. +// Параметры - Массив - параметры передаются в процедуру <ИмяЭкспортнойПроцедуры> +// в порядке расположения элементов массива. +// +// Пример: +// Параметры = Новый Массив(); +// Параметры.Добавить("1"); +// ОбщегоНазначения.ВыполнитьМетодКонфигурации("МойОбщийМодуль.МояПроцедура", Параметры); +// +Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт + + ПроверитьИмяПроцедурыКонфигурации(ИмяМетода); + + УстановитьБезопасныйРежим(Истина); + + ПараметрыСтрока = ""; + Если Параметры <> Неопределено И Параметры.Количество() > 0 Тогда + Для Индекс = 0 По Параметры.ВГраница() Цикл + ПараметрыСтрока = ПараметрыСтрока + "Параметры[" + XMLСтрока(Индекс) + "],"; + КонецЦикла; + ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1); + КонецЕсли; + + Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; + +КонецПроцедуры // Аналог метода БСП. Записывает конфиденциальные данные в безопасное хранилище. // Вызывающий код должен самостоятельно устанавливать привилегированный режим. @@ -1843,6 +1876,306 @@ #Область МетодыАналогиБСП +#Область БезопасноеВыполнениеВнешнегоКода + +// Аналог метода БСП. Проверяет, что переданное имя ИмяПроцедуры является именем экспортной процедуры конфигурации. +// Может использоваться для проверки, что переданная строка не содержит произвольного алгоритма +// на встроенном языке 1С:Предприятия перед использованием его в операторах Выполнить и Вычислить +// при их использовании для динамического вызова методов код конфигурации. +// +// В случае если переданная строка не является именем процедуры конфигурации, генерируется исключение. +// +// Предназначена для вызова из см. процедуру ВыполнитьМетодКонфигурации. +// +// Параметры: +// ИмяПроцедуры - Строка - проверяемое имя экспортной процедуры. +// +Процедура ПроверитьИмяПроцедурыКонфигурации(Знач ИмяПроцедуры) + + ЧастиИмени = СтрРазделить(ИмяПроцедуры, "."); + Если ЧастиИмени.Количество() <> 2 И ЧастиИмени.Количество() <> 3 Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3.'"), + "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации"); + КонецЕсли; + + ИмяОбъекта = ЧастиИмени[0]; + Если ЧастиИмени.Количество() = 2 + И Метаданные.ОбщиеМодули.Найти("__"+ИмяОбъекта+"Служебный") = Неопределено + И Метаданные.ОбщиеМодули.Найти(ИмяОбъекта) = Неопределено Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: + |Не существует общий модуль ""%4"".'"), + "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяОбъекта); + КонецЕсли; + + Если ЧастиИмени.Количество() = 3 Тогда + ПолноеИмяОбъекта = ЧастиИмени[0] + "." + ЧастиИмени[1]; + Попытка + Менеджер = МенеджерОбъектаПоИмени(ПолноеИмяОбъекта); + Исключение + Менеджер = Неопределено; + КонецПопытки; + Если Менеджер = Неопределено Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: + |Не существует менеджер объекта ""%4"".'"), + "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ПолноеИмяОбъекта); + КонецЕсли; + КонецЕсли; + + ИмяМетодаОбъекта = ЧастиИмени[ЧастиИмени.ВГраница()]; + ВременнаяСтруктура = Новый Структура; + Попытка + // Проверка того, что ИмяПроцедуры является допустимым идентификатором. + // Например: МояПроцедура. + ВременнаяСтруктура.Вставить(ИмяМетодаОбъекта); + Исключение + КодОсновногоЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка; + ЗаписьЖурналаРегистрации(НСтр("ru = 'Безопасное выполнение метода'", КодОсновногоЯзыка), + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: + |Имя метода ""%4"" не соответствует требованиям образования имен процедур и функций.'"), + "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяМетодаОбъекта); + КонецПопытки; + +КонецПроцедуры + +// Аналог метода БСП. Возвращает менеджер объекта по имени. +// Ограничение: не обрабатываются точки маршрутов бизнес-процессов. +// +// Параметры: +// Имя - Строка - имя например, "Справочник", "Справочники", "Справочник.Организации". +// +// Возвращаемое значение: +// СправочникиМенеджер +// СправочникМенеджер +// ДокументыМенеджер +// ДокументМенеджер +// ... +// +Функция МенеджерОбъектаПоИмени(Имя) + Перем КлассОМ, ИмяОМ, Менеджер; + + ЧастиИмени = СтрРазделить(Имя, "."); + + Если ЧастиИмени.Количество() > 0 Тогда + КлассОМ = ВРег(ЧастиИмени[0]); + КонецЕсли; + + Если ЧастиИмени.Количество() > 1 Тогда + ИмяОМ = ЧастиИмени[1]; + КонецЕсли; + + Если КлассОМ = "ПЛАНОБМЕНА" + Или КлассОМ = "ПЛАНЫОБМЕНА" Тогда + Менеджер = ПланыОбмена; + + ИначеЕсли КлассОМ = "СПРАВОЧНИК" + Или КлассОМ = "СПРАВОЧНИКИ" Тогда + Менеджер = Справочники; + + ИначеЕсли КлассОМ = "ДОКУМЕНТ" + Или КлассОМ = "ДОКУМЕНТЫ" Тогда + Менеджер = Документы; + + ИначеЕсли КлассОМ = "ЖУРНАЛДОКУМЕНТОВ" + Или КлассОМ = "ЖУРНАЛЫДОКУМЕНТОВ" Тогда + Менеджер = ЖурналыДокументов; + + ИначеЕсли КлассОМ = "ПЕРЕЧИСЛЕНИЕ" + Или КлассОМ = "ПЕРЕЧИСЛЕНИЯ" Тогда + Менеджер = Перечисления; + + ИначеЕсли КлассОМ = "ОБЩИЙМОДУЛЬ" + Или КлассОМ = "ОБЩИЕМОДУЛИ" Тогда + + Возврат ОбщийМодуль(ИмяОМ); + + ИначеЕсли КлассОМ = "ОТЧЕТ" + Или КлассОМ = "ОТЧЕТЫ" Тогда + Менеджер = Отчеты; + + ИначеЕсли КлассОМ = "ОБРАБОТКА" + Или КлассОМ = "ОБРАБОТКИ" Тогда + Менеджер = Обработки; + + ИначеЕсли КлассОМ = "ПЛАНВИДОВХАРАКТЕРИСТИК" + Или КлассОМ = "ПЛАНЫВИДОВХАРАКТЕРИСТИК" Тогда + Менеджер = ПланыВидовХарактеристик; + + ИначеЕсли КлассОМ = "ПЛАНСЧЕТОВ" + Или КлассОМ = "ПЛАНЫСЧЕТОВ" Тогда + Менеджер = ПланыСчетов; + + ИначеЕсли КлассОМ = "ПЛАНВИДОВРАСЧЕТА" + Или КлассОМ = "ПЛАНЫВИДОВРАСЧЕТА" Тогда + Менеджер = ПланыВидовРасчета; + + ИначеЕсли КлассОМ = "РЕГИСТРСВЕДЕНИЙ" + Или КлассОМ = "РЕГИСТРЫСВЕДЕНИЙ" Тогда + Менеджер = РегистрыСведений; + + ИначеЕсли КлассОМ = "РЕГИСТРНАКОПЛЕНИЯ" + Или КлассОМ = "РЕГИСТРЫНАКОПЛЕНИЯ" Тогда + Менеджер = РегистрыНакопления; + + ИначеЕсли КлассОМ = "РЕГИСТРБУХГАЛТЕРИИ" + Или КлассОМ = "РЕГИСТРЫБУХГАЛТЕРИИ" Тогда + Менеджер = РегистрыБухгалтерии; + + ИначеЕсли КлассОМ = "РЕГИСТРРАСЧЕТА" + Или КлассОМ = "РЕГИСТРЫРАСЧЕТА" Тогда + + Если ЧастиИмени.Количество() < 3 Тогда + // Регистр расчета + Менеджер = РегистрыРасчета; + Иначе + КлассПодчиненногоОМ = ВРег(ЧастиИмени[2]); + Если ЧастиИмени.Количество() > 3 Тогда + ИмяПодчиненногоОМ = ЧастиИмени[3]; + КонецЕсли; + Если КлассПодчиненногоОМ = "ПЕРЕРАСЧЕТ" + Или КлассПодчиненногоОМ = "ПЕРЕРАСЧЕТЫ" Тогда + // Перерасчет + Попытка + Менеджер = РегистрыРасчета[ИмяОМ].Перерасчеты; + ИмяОМ = ИмяПодчиненногоОМ; + Исключение + Менеджер = Неопределено; + КонецПопытки; + КонецЕсли; + КонецЕсли; + + ИначеЕсли КлассОМ = "БИЗНЕСПРОЦЕСС" + Или КлассОМ = "БИЗНЕСПРОЦЕССЫ" Тогда + Менеджер = БизнесПроцессы; + + ИначеЕсли КлассОМ = "ЗАДАЧА" + Или КлассОМ = "ЗАДАЧИ" Тогда + Менеджер = Задачи; + + ИначеЕсли КлассОМ = "КОНСТАНТА" + Или КлассОМ = "КОНСТАНТЫ" Тогда + Менеджер = Константы; + + ИначеЕсли КлассОМ = "ПОСЛЕДОВАТЕЛЬНОСТЬ" + Или КлассОМ = "ПОСЛЕДОВАТЕЛЬНОСТИ" Тогда + Менеджер = Последовательности; + КонецЕсли; + + Если Менеджер <> Неопределено Тогда + Если ЗначениеЗаполнено(ИмяОМ) Тогда + Попытка + Возврат Менеджер[ИмяОМ]; + Исключение + Менеджер = Неопределено; + КонецПопытки; + Иначе + Возврат Менеджер; + КонецЕсли; + КонецЕсли; + + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось получить менеджер для объекта ""%1""'"), Имя); + +КонецФункции + +#КонецОбласти + +#Область УсловныеВызовы + +// Аналог метода БСП. Возвращает серверный модуль менеджера по имени объекта. +Функция СерверныйМодульМенеджера(Имя) + ОбъектНайден = Ложь; + + ЧастиИмени = СтрРазделить(Имя, "."); + Если ЧастиИмени.Количество() = 2 Тогда + + ИмяВида = ВРег(ЧастиИмени[0]); + ИмяОбъекта = ЧастиИмени[1]; + + Если ИмяВида = ВРег("Константы") Тогда + Если Метаданные.Константы.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыСведений") Тогда + Если Метаданные.РегистрыСведений.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыНакопления") Тогда + Если Метаданные.РегистрыНакопления.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыБухгалтерии") Тогда + Если Метаданные.РегистрыБухгалтерии.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыРасчета") Тогда + Если Метаданные.РегистрыРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Справочники") Тогда + Если Метаданные.Справочники.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Документы") Тогда + Если Метаданные.Документы.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Отчеты") Тогда + Если Метаданные.Отчеты.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Обработки") Тогда + Если Метаданные.Обработки.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("БизнесПроцессы") Тогда + Если Метаданные.БизнесПроцессы.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ЖурналыДокументов") Тогда + Если Метаданные.ЖурналыДокументов.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Задачи") Тогда + Если Метаданные.Задачи.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыСчетов") Тогда + Если Метаданные.ПланыСчетов.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыОбмена") Тогда + Если Метаданные.ПланыОбмена.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыВидовХарактеристик") Тогда + Если Метаданные.ПланыВидовХарактеристик.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыВидовРасчета") Тогда + Если Метаданные.ПланыВидовРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + КонецЕсли; + + КонецЕсли; + + Если Не ОбъектНайден Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Объект метаданных ""%1"" не существует.'"), Имя); + КонецЕсли; + + УстановитьБезопасныйРежим(Истина); + Модуль = Вычислить(Имя); + + Возврат Модуль; +КонецФункции + +#КонецОбласти + #Область ХранилищеНастроек // Аналог метода БСП. diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" index c8dc6123..30371ade 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -23,87 +23,20 @@ // Требования: платформа 1С версии 8.3.17 и выше //////////////////////////////////////////////////////////////////////////////// -// Общего назначения (служебный): для серверных функций общего назначения, аналогов методов БСП +// Общего назначения (служебный): для серверных функций общего назначения, переадресация на методы БСП или их аналоги #Область ПрограммныйИнтерфейс -// Выполнить экспортную процедуру по имени. -// -// Параметры: -// ИмяМетода - Строка - имя экспортной процедуры в формате -// <имя объекта>.<имя процедуры>, где <имя объекта> - это -// общий модуль или модуль менеджера объекта. -// Параметры - Массив - параметры передаются в процедуру <ИмяЭкспортнойПроцедуры> -// в порядке расположения элементов массива. -// -// Пример: -// Параметры = Новый Массив(); -// Параметры.Добавить("1"); -// ОбщегоНазначения.ВыполнитьМетодКонфигурации("МойОбщийМодуль.МояПроцедура", Параметры); -// +#Область ПереадресацияМетодов + +// См. __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации. Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт - ПроверитьИмяПроцедурыКонфигурации(ИмяМетода); - - ПараметрыСтрока = ""; - Если Параметры <> Неопределено И Параметры.Количество() > 0 Тогда - Для Индекс = 0 По Параметры.ВГраница() Цикл - ПараметрыСтрока = ПараметрыСтрока + "Параметры[" + XMLСтрока(Индекс) + "],"; - КонецЦикла; - ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1); - КонецЕсли; - УстановитьБезопасныйРежим(Истина); - Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; + Модуль = ПолучитьМодуль(); + Модуль.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры); КонецПроцедуры -#Область УсловныеВызовы - -// Аналог метода БСП. Возвращает ссылку на общий модуль или модуль менеджера по имени. -// -// Параметры: -// Имя - Строка - имя общего модуля. -// -// Возвращаемое значение: -// ОбщийМодуль -// МодульМенеджераОбъекта -// -// Пример: -// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда -// МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации"); -// МодульОбновлениеКонфигурации.<Имя метода>(); -// КонецЕсли; -// -// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда -// МодульПолнотекстовыйПоискСервер = ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер"); -// МодульПолнотекстовыйПоискСервер.<Имя метода>(); -// КонецЕсли; -// -Функция ОбщийМодуль(Имя) Экспорт - - Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда - УстановитьБезопасныйРежим(Истина); - Модуль = Вычислить(Имя); - ИначеЕсли СтрЧислоВхождений(Имя, ".") = 1 Тогда - Возврат СерверныйМодульМенеджера(Имя); - Иначе - Модуль = Неопределено; - КонецЕсли; - - Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда - ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Общий модуль ""%1"" не существует.'"), - Имя); - КонецЕсли; - - Возврат Модуль; - -КонецФункции - -#КонецОбласти - -#Область ПереадресацияМетодов - // См. __ОбщегоНазначенияСервер.ЗаписатьДанныеВБезопасноеХранилище. Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт @@ -189,308 +122,8 @@ #Область СлужебныеПроцедурыИФункции -#Область БезопасноеВыполнениеВнешнегоКода - -// Аналог метода БСП. Проверяет, что переданное имя ИмяПроцедуры является именем экспортной процедуры конфигурации. -// Может использоваться для проверки, что переданная строка не содержит произвольного алгоритма -// на встроенном языке 1С:Предприятия перед использованием его в операторах Выполнить и Вычислить -// при их использовании для динамического вызова методов код конфигурации. -// -// В случае если переданная строка не является именем процедуры конфигурации, генерируется исключение. -// -// Предназначена для вызова из см. процедуру ВыполнитьМетодКонфигурации. -// -// Параметры: -// ИмяПроцедуры - Строка - проверяемое имя экспортной процедуры. -// -Процедура ПроверитьИмяПроцедурыКонфигурации(Знач ИмяПроцедуры) - - ЧастиИмени = СтрРазделить(ИмяПроцедуры, "."); - Если ЧастиИмени.Количество() <> 2 И ЧастиИмени.Количество() <> 3 Тогда - ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3.'"), - "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации"); - КонецЕсли; - - ИмяОбъекта = ЧастиИмени[0]; - Если ЧастиИмени.Количество() = 2 - И Метаданные.ОбщиеМодули.Найти("__"+ИмяОбъекта+"Служебный") = Неопределено - И Метаданные.ОбщиеМодули.Найти(ИмяОбъекта) = Неопределено Тогда - ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: - |Не существует общий модуль ""%4"".'"), - "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяОбъекта); - КонецЕсли; - - Если ЧастиИмени.Количество() = 3 Тогда - ПолноеИмяОбъекта = ЧастиИмени[0] + "." + ЧастиИмени[1]; - Попытка - Менеджер = МенеджерОбъектаПоИмени(ПолноеИмяОбъекта); - Исключение - Менеджер = Неопределено; - КонецПопытки; - Если Менеджер = Неопределено Тогда - ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: - |Не существует менеджер объекта ""%4"".'"), - "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ПолноеИмяОбъекта); - КонецЕсли; - КонецЕсли; - - ИмяМетодаОбъекта = ЧастиИмени[ЧастиИмени.ВГраница()]; - ВременнаяСтруктура = Новый Структура; - Попытка - // Проверка того, что ИмяПроцедуры является допустимым идентификатором. - // Например: МояПроцедура. - ВременнаяСтруктура.Вставить(ИмяМетодаОбъекта); - Исключение - КодОсновногоЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка; - ЗаписьЖурналаРегистрации(НСтр("ru = 'Безопасное выполнение метода'", КодОсновногоЯзыка), - УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: - |Имя метода ""%4"" не соответствует требованиям образования имен процедур и функций.'"), - "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяМетодаОбъекта); - КонецПопытки; - -КонецПроцедуры - -// Аналог метода БСП. Возвращает менеджер объекта по имени. -// Ограничение: не обрабатываются точки маршрутов бизнес-процессов. -// -// Параметры: -// Имя - Строка - имя например, "Справочник", "Справочники", "Справочник.Организации". -// -// Возвращаемое значение: -// СправочникиМенеджер -// СправочникМенеджер -// ДокументыМенеджер -// ДокументМенеджер -// ... -// -Функция МенеджерОбъектаПоИмени(Имя) - Перем КлассОМ, ИмяОМ, Менеджер; - - ЧастиИмени = СтрРазделить(Имя, "."); - - Если ЧастиИмени.Количество() > 0 Тогда - КлассОМ = ВРег(ЧастиИмени[0]); - КонецЕсли; - - Если ЧастиИмени.Количество() > 1 Тогда - ИмяОМ = ЧастиИмени[1]; - КонецЕсли; - - Если КлассОМ = "ПЛАНОБМЕНА" - Или КлассОМ = "ПЛАНЫОБМЕНА" Тогда - Менеджер = ПланыОбмена; - - ИначеЕсли КлассОМ = "СПРАВОЧНИК" - Или КлассОМ = "СПРАВОЧНИКИ" Тогда - Менеджер = Справочники; - - ИначеЕсли КлассОМ = "ДОКУМЕНТ" - Или КлассОМ = "ДОКУМЕНТЫ" Тогда - Менеджер = Документы; - - ИначеЕсли КлассОМ = "ЖУРНАЛДОКУМЕНТОВ" - Или КлассОМ = "ЖУРНАЛЫДОКУМЕНТОВ" Тогда - Менеджер = ЖурналыДокументов; - - ИначеЕсли КлассОМ = "ПЕРЕЧИСЛЕНИЕ" - Или КлассОМ = "ПЕРЕЧИСЛЕНИЯ" Тогда - Менеджер = Перечисления; - - ИначеЕсли КлассОМ = "ОБЩИЙМОДУЛЬ" - Или КлассОМ = "ОБЩИЕМОДУЛИ" Тогда - - Возврат ОбщийМодуль(ИмяОМ); - - ИначеЕсли КлассОМ = "ОТЧЕТ" - Или КлассОМ = "ОТЧЕТЫ" Тогда - Менеджер = Отчеты; - - ИначеЕсли КлассОМ = "ОБРАБОТКА" - Или КлассОМ = "ОБРАБОТКИ" Тогда - Менеджер = Обработки; - - ИначеЕсли КлассОМ = "ПЛАНВИДОВХАРАКТЕРИСТИК" - Или КлассОМ = "ПЛАНЫВИДОВХАРАКТЕРИСТИК" Тогда - Менеджер = ПланыВидовХарактеристик; - - ИначеЕсли КлассОМ = "ПЛАНСЧЕТОВ" - Или КлассОМ = "ПЛАНЫСЧЕТОВ" Тогда - Менеджер = ПланыСчетов; - - ИначеЕсли КлассОМ = "ПЛАНВИДОВРАСЧЕТА" - Или КлассОМ = "ПЛАНЫВИДОВРАСЧЕТА" Тогда - Менеджер = ПланыВидовРасчета; - - ИначеЕсли КлассОМ = "РЕГИСТРСВЕДЕНИЙ" - Или КлассОМ = "РЕГИСТРЫСВЕДЕНИЙ" Тогда - Менеджер = РегистрыСведений; - - ИначеЕсли КлассОМ = "РЕГИСТРНАКОПЛЕНИЯ" - Или КлассОМ = "РЕГИСТРЫНАКОПЛЕНИЯ" Тогда - Менеджер = РегистрыНакопления; - - ИначеЕсли КлассОМ = "РЕГИСТРБУХГАЛТЕРИИ" - Или КлассОМ = "РЕГИСТРЫБУХГАЛТЕРИИ" Тогда - Менеджер = РегистрыБухгалтерии; - - ИначеЕсли КлассОМ = "РЕГИСТРРАСЧЕТА" - Или КлассОМ = "РЕГИСТРЫРАСЧЕТА" Тогда - - Если ЧастиИмени.Количество() < 3 Тогда - // Регистр расчета - Менеджер = РегистрыРасчета; - Иначе - КлассПодчиненногоОМ = ВРег(ЧастиИмени[2]); - Если ЧастиИмени.Количество() > 3 Тогда - ИмяПодчиненногоОМ = ЧастиИмени[3]; - КонецЕсли; - Если КлассПодчиненногоОМ = "ПЕРЕРАСЧЕТ" - Или КлассПодчиненногоОМ = "ПЕРЕРАСЧЕТЫ" Тогда - // Перерасчет - Попытка - Менеджер = РегистрыРасчета[ИмяОМ].Перерасчеты; - ИмяОМ = ИмяПодчиненногоОМ; - Исключение - Менеджер = Неопределено; - КонецПопытки; - КонецЕсли; - КонецЕсли; - - ИначеЕсли КлассОМ = "БИЗНЕСПРОЦЕСС" - Или КлассОМ = "БИЗНЕСПРОЦЕССЫ" Тогда - Менеджер = БизнесПроцессы; - - ИначеЕсли КлассОМ = "ЗАДАЧА" - Или КлассОМ = "ЗАДАЧИ" Тогда - Менеджер = Задачи; - - ИначеЕсли КлассОМ = "КОНСТАНТА" - Или КлассОМ = "КОНСТАНТЫ" Тогда - Менеджер = Константы; - - ИначеЕсли КлассОМ = "ПОСЛЕДОВАТЕЛЬНОСТЬ" - Или КлассОМ = "ПОСЛЕДОВАТЕЛЬНОСТИ" Тогда - Менеджер = Последовательности; - КонецЕсли; - - Если Менеджер <> Неопределено Тогда - Если ЗначениеЗаполнено(ИмяОМ) Тогда - Попытка - Возврат Менеджер[ИмяОМ]; - Исключение - Менеджер = Неопределено; - КонецПопытки; - Иначе - Возврат Менеджер; - КонецЕсли; - КонецЕсли; - - ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось получить менеджер для объекта ""%1""'"), Имя); - -КонецФункции - -#КонецОбласти - -#Область УсловныеВызовы - -// Аналог метода БСП. Возвращает серверный модуль менеджера по имени объекта. -Функция СерверныйМодульМенеджера(Имя) - ОбъектНайден = Ложь; - - ЧастиИмени = СтрРазделить(Имя, "."); - Если ЧастиИмени.Количество() = 2 Тогда - - ИмяВида = ВРег(ЧастиИмени[0]); - ИмяОбъекта = ЧастиИмени[1]; - - Если ИмяВида = ВРег("Константы") Тогда - Если Метаданные.Константы.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("РегистрыСведений") Тогда - Если Метаданные.РегистрыСведений.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("РегистрыНакопления") Тогда - Если Метаданные.РегистрыНакопления.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("РегистрыБухгалтерии") Тогда - Если Метаданные.РегистрыБухгалтерии.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("РегистрыРасчета") Тогда - Если Метаданные.РегистрыРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("Справочники") Тогда - Если Метаданные.Справочники.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("Документы") Тогда - Если Метаданные.Документы.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("Отчеты") Тогда - Если Метаданные.Отчеты.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("Обработки") Тогда - Если Метаданные.Обработки.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("БизнесПроцессы") Тогда - Если Метаданные.БизнесПроцессы.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("ЖурналыДокументов") Тогда - Если Метаданные.ЖурналыДокументов.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("Задачи") Тогда - Если Метаданные.Задачи.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("ПланыСчетов") Тогда - Если Метаданные.ПланыСчетов.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("ПланыОбмена") Тогда - Если Метаданные.ПланыОбмена.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("ПланыВидовХарактеристик") Тогда - Если Метаданные.ПланыВидовХарактеристик.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("ПланыВидовРасчета") Тогда - Если Метаданные.ПланыВидовРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - КонецЕсли; - - КонецЕсли; - - Если Не ОбъектНайден Тогда - ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Объект метаданных ""%1"" не существует.'"), Имя); - КонецЕсли; - - УстановитьБезопасныйРежим(Истина); - Модуль = Вычислить(Имя); - - Возврат Модуль; -КонецФункции - -#КонецОбласти - Функция ПолучитьМодуль() - Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль("ОбщегоНазначения", "__ОбщегоНазначенияСервер"); + Возврат __ОбщегоНазначенияПовтИсп.ОбщийМодуль("ОбщегоНазначения", "__ОбщегоНазначенияСервер"); КонецФункции #КонецОбласти diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 20de228c..5d02f8f3 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -141,7 +141,7 @@ #КонецОбласти Функция ПолучитьМодуль() - Возврат __ОбщегоНазначенияВызовСервера.ПолучитьОбщийМодуль( + Возврат __ОбщегоНазначенияВызовСервера.ОбщийМодуль( "ОбщегоНазначенияКлиентСервер", "__ОбщегоНазначенияКлиентСервер"); КонецФункции diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl" "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl" index e2106466..d0d18f72 100644 --- "a/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl" @@ -20,7 +20,7 @@ // e-mail: ivssmirnov@1bit.com // Версия: 1.0.0.1 // -// Требования: платформа 1С версии 8.3.17 и выш +// Требования: платформа 1С версии 8.3.17 и выше #Область ПрограммныйИнтерфейс diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" index 6d7db49e..debf1808 100644 --- "a/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -20,7 +20,7 @@ // e-mail: ivssmirnov@1bit.com // Версия: 1.0.0.1 // -// Требования: платформа 1С версии 8.3.17 и выш +// Требования: платформа 1С версии 8.3.17 и выше #Область СлужебныйПрограммныйИнтерфейс @@ -41,7 +41,7 @@ #Область СлужебныеПроцедурыИФункции Функция ПолучитьМодуль() - Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль("ПолучениеФайловИзИнтернета", "__ПолучениеФайловИзИнтернета"); + Возврат __ОбщегоНазначенияПовтИсп.ОбщийМодуль("ПолучениеФайловИзИнтернета", "__ПолучениеФайловИзИнтернета"); КонецФункции #КонецОбласти diff --git "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" index d98da308..72ce7eda 100644 --- "a/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -41,7 +41,7 @@ #Область СлужебныеПроцедурыИФункции Функция ПолучитьМодуль() - Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль("Пользователи", "__Пользователи"); + Возврат __ОбщегоНазначенияПовтИсп.ОбщийМодуль("Пользователи", "__Пользователи"); КонецФункции #КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index e873a4ee..506b33bf 100644 --- "a/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -57,7 +57,7 @@ #Область СлужебныеПроцедурыИФункции Функция ПолучитьМодуль() - Возврат __ОбщегоНазначенияПовтИсп.ПолучитьОбщийМодуль("РегламентныеЗаданияСервер", "__РегламентныеЗаданияСервер"); + Возврат __ОбщегоНазначенияПовтИсп.ОбщийМодуль("РегламентныеЗаданияСервер", "__РегламентныеЗаданияСервер"); КонецФункции #КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index f95bd93a..9026b4c6 100644 --- "a/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -58,7 +58,7 @@ #Область СлужебныеПроцедурыИФункции Функция ПолучитьМодуль() - Возврат __ОбщегоНазначенияВызовСервера.ПолучитьОбщийМодуль( + Возврат __ОбщегоНазначенияВызовСервера.ОбщийМодуль( "СтроковыеФункцииКлиентСервер", "__СтроковыеФункцииКлиентСервер"); КонецФункции diff --git a/src/Configuration.xml b/src/Configuration.xml index 5571f36c..c2f8d37d 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -273,6 +273,8 @@ __ДокументыПередЗаписью __ДокументыПриЗаписи __ДокументыПриКопировании + __ЖурналРегистрации + __ЖурналРегистрацииСлужебный __ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера __ЗагрузкаФайлаЧерезТабличныйДокументКлиент __ИнтеграцииСервер @@ -282,37 +284,35 @@ __МодификацияКонфигурацииКлиентСерверПереопределяемый __МодификацияКонфигурацииПереопределяемый __МодификацияКонфигурацииПереопределяемыйДокумент + __ОбщегоНазначенияВызовСервера __ОбщегоНазначенияКлиент __ОбщегоНазначенияКлиентСервер __ОбщегоНазначенияПовтИсп __ОбщегоНазначенияПолныеПрава __ОбщегоНазначенияСервер + __ОбщегоНазначенияСлужебный + __ОбщегоНазначенияСлужебныйКлиент + __ОбщегоНазначенияСлужебныйКлиентСервер + __ПолучениеФайловИзИнтернета + __ПолучениеФайловИзИнтернетаСлужебный + __Пользователи + __ПользователиКлиентСервер + __ПользователиСлужебный __ПредопределенныеЗначения __ПредопределенныеЗначенияПереопределяемый __РаботаСДиалогамиКлиент __РаботаСДиалогамиСервер __РаботаСКоллекциямиКлиентСервер __РаботаСФормами + __РегламентныеЗаданияСервер + __РегламентныеЗаданияСлужебныйСервер __СправочникиОбработкаЗаполнения __СправочникиПередЗаписью __СправочникиПриЗаписи __СправочникиПриКопировании __СтроковыеФункцииКлиентСервер - __ТипСоответствияОбъектовИБПереопределяемый - __ОбщегоНазначенияСлужебный __СтроковыеФункцииСлужебныйКлиентСервер - __ОбщегоНазначенияСлужебныйКлиентСервер - __ОбщегоНазначенияВызовСервера - __ОбщегоНазначенияСлужебныйКлиент - __РегламентныеЗаданияСлужебныйСервер - __РегламентныеЗаданияСервер - __ЖурналРегистрации - __ЖурналРегистрацииСлужебный - __Пользователи - __ПользователиСлужебный - __ПользователиКлиентСервер - __ПолучениеФайловИзИнтернета - __ПолучениеФайловИзИнтернетаСлужебный + __ТипСоответствияОбъектовИБПереопределяемый __ДокументыОбработкаЗаполнения __ДокументыОбработкаПроведения __ДокументыПередЗаписью From 804296661d4a8bdf665559e311d6ab935ad55575 Mon Sep 17 00:00:00 2001 From: DenisUshakov Date: Tue, 16 Apr 2024 09:38:28 +0300 Subject: [PATCH 09/10] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/Module.bsl" | 2 +- .../Ext/Module.bsl" | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" index 280d5d37..1c0f639d 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" @@ -31,7 +31,7 @@ КонецФункции -// См. __ОбщегоНазначенияСервер.ПолучитьОбщийМодуль +// См. __ОбщегоНазначенияСервер.ОбщийМодуль Функция ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт Возврат __ОбщегоНазначенияПовтИсп.ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного); diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" index cc96e4ea..1cbe164a 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" @@ -104,7 +104,7 @@ КонецФункции -// См. __ОбщегоНазначенияСервер.ПолучитьОбщийМодуль. +// См. __ОбщегоНазначенияСервер.ОбщийМодуль. Функция ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт Возврат __ОбщегоНазначенияСервер.ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного); From c57c75a04756e2242c3be008b35688f79848ef0f Mon Sep 17 00:00:00 2001 From: DenisUshakov Date: Tue, 16 Apr 2024 10:09:30 +0300 Subject: [PATCH 10/10] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/Module.bsl" | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 46e649fd..9243aff1 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -1900,9 +1900,7 @@ КонецЕсли; ИмяОбъекта = ЧастиИмени[0]; - Если ЧастиИмени.Количество() = 2 - И Метаданные.ОбщиеМодули.Найти("__"+ИмяОбъекта+"Служебный") = Неопределено - И Метаданные.ОбщиеМодули.Найти(ИмяОбъекта) = Неопределено Тогда + Если ЧастиИмени.Количество() = 2 И Метаданные.ОбщиеМодули.Найти(ИмяОбъекта) = Неопределено Тогда ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3: |Не существует общий модуль ""%4"".'"),