From 0ede67c24e73f9394f4b25923959e83c409128d7 Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Tue, 16 Apr 2024 11:22:47 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=20?= =?UTF-8?q?=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=BE=D0=BD=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D0=91=D0=A1=D0=9F=20?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B0=D0=B4=D1=80=D0=B5=D1=81?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BD=D0=B0=20=D0=B2=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=BE=D0=B4=D1=8B=20(#41)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлена проверка использования БСП и переадресация на встроенные методы --- .../Ext/ManagerModule.bsl" | 11 +- .../Ext/Form/Module.bsl" | 8 +- .../Ext/Form/Module.bsl" | 36 +- .../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" | 15 +- .../Ext/Module.bsl" | 6 +- .../Ext/Module.bsl" | 36 +- ...1\200\320\262\320\265\321\200\320\260.xml" | 23 + .../Ext/Module.bsl" | 48 + .../Ext/Module.bsl" | 140 ++ .../Ext/Module.bsl" | 213 ++- .../Ext/Module.bsl" | 14 + .../Ext/Module.bsl" | 1575 +++++++++++++++-- ...0\265\320\261\320\275\321\213\320\271.xml" | 23 + .../Ext/Module.bsl" | 129 ++ ...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 ++ ...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 + ...0\260\321\202\320\265\320\273\320\270.xml" | 23 + .../Ext/Module.bsl" | 68 + ...0\265\321\200\320\262\320\265\321\200.xml" | 23 + .../Ext/Module.bsl" | 42 + ...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 +- .../Ext/ManagerModule.bsl" | 6 +- .../Ext/Rights.xml" | 83 + 66 files changed, 3704 insertions(+), 809 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\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" 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" 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..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" @@ -28,10 +28,6 @@ //Процедура очищает записи в справочнике старше чем установленное в предопределенном значении количество дней Процедура ОчиститьИсториюИнтеграции() Экспорт - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ЖурналРегистрации = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ @@ -68,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\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..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,11 +68,9 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = __ВспомогательныйМодульНеПереноситьКлиент; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если ЗначениеЗаполнено(Объект.ФорматЗапросаИнтеграции) И Объект.ФорматЗапросаИнтеграции <> ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.ПроизвольныйФормат") Тогда + Предопределенный = "Перечисление.__ФорматыЗапросовИнтеграции.ПроизвольныйФормат"; + Если ЗначениеЗаполнено(Объект.ФорматЗапросаИнтеграции) + И Объект.ФорматЗапросаИнтеграции <> __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда ИнициализироватьБазовыйФайлРедактора(ПолучитьФорматИнтеграции(Объект.ФорматЗапросаИнтеграции)); КонецЕсли; @@ -92,11 +90,8 @@ &НаКлиенте Процедура ЗапросИсходящийДокументСформирован_Подключаемый(Элемент) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.JSON") Тогда + Предопределенный = "Перечисление.__ФорматыЗапросовИнтеграции.JSON"; + Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда ИнициализироватьИЗаполнитьТекстомОбъектJSON("code", "Исходящий"); Иначе ИнициализироватьИЗаполнитьТекстомОбъектXML("Исходящий"); @@ -107,11 +102,8 @@ &НаКлиенте Процедура ЗапросВходящийДокументСформирован_Подключаемый(Элемент) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.JSON") Тогда + Предопределенный = "Перечисление.__ФорматыЗапросовИнтеграции.JSON"; + Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда ИнициализироватьИЗаполнитьТекстомОбъектJSON("code", "Входящий"); Иначе ИнициализироватьИЗаполнитьТекстомОбъектXML("Входящий"); @@ -126,11 +118,8 @@ &НаКлиенте Процедура РазвернутьВсе(Команда) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.XML") Тогда + Предопределенный = "Перечисление.__ФорматыЗапросовИнтеграции.XML"; + Если Объект.ФорматЗапросаИнтеграции = __ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда Элементы.ЗапросИсходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", true); Элементы.ЗапросВходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", true); Иначе @@ -148,11 +137,8 @@ &НаКлиенте Процедура СвернутьВсе(Команда) - // ++ Обход ошибки отстутствия модуля БСП, не переносить - ОбщегоНазначенияКлиент = Неопределено; - // -- Обход ошибки отстутствия модуля БСП, не переносить - - Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.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..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" @@ -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 0aed7730..308dc48d 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]; 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 cca63bd7..97caf89d 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]; 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..04cfacf8 --- /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\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\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..1c0f639d --- /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,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\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..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" @@ -26,6 +26,146 @@ #Область ПрограммныйИнтерфейс +#Область МетодыАналогиБСП + +// Аналог метода БСП. Возвращает ссылку на общий модуль или модуль менеджера по имени. +// +// См. ОбщегоНазначения.ОбщийМодуль +// +// Параметры: +// Имя - Строка - имя общего модуля. +// +// Возвращаемое значение: +// ОбщийМодуль +// СправочникМенеджер, +// ДокументМенеджер, +// ОбработкаМенеджер, +// РегистрСведенийМенеджер. +// +// Пример: +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда +// МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации"); +// МодульОбновлениеКонфигурации.<Имя метода>(); +// КонецЕсли; +// +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда +// МодульПолнотекстовыйПоискСервер = ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер"); +// МодульПолнотекстовыйПоискСервер.<Имя метода>(); +// КонецЕсли; +// +Функция ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного = "") Экспорт + + // Если ИмяМодуляВстроенного не передано, проверка не выполняется + Имя = ИмяМодуляВстроенного; + Если __ОбщегоНазначенияВызовСервера.СуществуетБиблиотекаСтандартныхПодсистем() Тогда + Имя = ИмяМодуляБСП; + ИначеЕсли ПустаяСтрока(Имя) Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("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..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" @@ -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..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" @@ -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..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" @@ -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,117 +779,1457 @@ #КонецОбласти // ОтладкаВременныхТаблиц -#КонецОбласти // ПрограммныйИнтерфейс +// Возвращает массив значений произвольного типа, объекта соответствия. +// +// Параметры: +// ТипСоответствия - СправочникСсылка.__ТипСоответствияОбъектовИБ - Тип соответствия. +// ИмяКлюча - Строка - поле регистра сведений __СоответствияОбъектовИБ, по которому устанавливается отбор. +// ЗначениеКлюча - ПроизвольныйТип - Значение ключа по которому установлен отбор. +// ИмяОбъекта - Строка - получаемое поле регистра сведений __СоответствияОбъектовИБ. +// ИспользоватьКэш - Булево - Признак получения данных из кэша. +// +// Возвращаемое значение: +// - Массив - Значения объекта из регистра сведений __СоответствияОбъектовИБ, +// если соответствие одно в массив будет один элемент +// +Функция ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта, ИспользоватьКэш = Ложь) Экспорт + + Если ИспользоватьКэш Тогда + Возврат __ОбщегоНазначенияПовтИсп.ПолучитьЗначенияОбъектаСоответствияПоКлючу( + ТипСоответствия, + ИмяКлюча, + ЗначениеКлюча, + ИмяОбъекта); + Иначе + Возврат РегистрыСведений.__СоответствияОбъектовИБ.ПолучитьЗначенияОбъектаСоответствияПоКлючу( + ТипСоответствия, + ИмяКлюча, + ЗначениеКлюча, + ИмяОбъекта); + КонецЕсли; + +КонецФункции -#Область СлужебныеПроцедурыИФункции +// Возвращает Истину или Ложь, существует ли "Библиотеки стандартных подсистем" (БСП), +// встроенная в конфигурацию. +// +// Возвращаемое значение: +// Булево - Истина, если БСП существует. +// +Функция СуществуетБиблиотекаСтандартныхПодсистем() Экспорт + + ВерсияБСП = Неопределено; + // Точка входа, где можно попытаться проверить подключена ли БСП + Если Метаданные.ОбщиеМодули.Найти("СтандартныеПодсистемыСервер") <> Неопределено Тогда + Попытка + УстановитьБезопасныйРежим(Истина); + МодульБСП = ОбщийМодуль("СтандартныеПодсистемыСервер"); + ВерсияБСП = МодульБСП.ВерсияБиблиотеки(); + Исключение + ВерсияБСП = Неопределено; + КонецПопытки; + КонецЕсли; + + Возврат ВерсияБСП <> Неопределено; + +КонецФункции -Функция ЗаполнитьТаблицыПоСпискуИмен(СтруктураОтвета, МассивИменТаблиц, Менеджер) +#Область МетодыАналогиБСП + +// Аналог метода БСП. Возвращает ссылку на общий модуль или модуль менеджера по имени. +// +// Параметры: +// Имя - Строка - имя общего модуля. +// +// Возвращаемое значение: +// ОбщийМодуль +// МодульМенеджераОбъекта +// +// Пример: +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда +// МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации"); +// МодульОбновлениеКонфигурации.<Имя метода>(); +// КонецЕсли; +// +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда +// МодульПолнотекстовыйПоискСервер = ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер"); +// МодульПолнотекстовыйПоискСервер.<Имя метода>(); +// КонецЕсли; +// +Функция ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного = "") Экспорт - ОтсутствующиеИменаТаблиц = Новый Массив; + Имя = ИмяМодуляВстроенного; + Если __ОбщегоНазначенияПовтИсп.СуществуетБиблиотекаСтандартныхПодсистем() + И Метаданные.ОбщиеМодули.Найти(ИмяМодуляБСП) <> Неопределено Тогда + Имя = ИмяМодуляБСП; + КонецЕсли; - Запрос = Новый Запрос; - Запрос.МенеджерВременныхТаблиц = Менеджер; + Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда + УстановитьБезопасныйРежим(Истина); + Модуль = Вычислить(Имя); + ИначеЕсли СтрЧислоВхождений(Имя, ".") = 1 Тогда + Возврат СерверныйМодульМенеджера(Имя); + Иначе + Модуль = Неопределено; + КонецЕсли; - Для Каждого ИмяТаблицы Из МассивИменТаблиц Цикл - Если НЕ СтруктураОтвета.Свойство(ИмяТаблицы) Тогда - - Запрос.Текст = "ВЫБРАТЬ * ИЗ " + ИмяТаблицы + " КАК " + ИмяТаблицы; - Попытка - СтруктураОтвета.Вставить(ИмяТаблицы, Запрос.Выполнить().Выгрузить()); - Исключение - СтруктураОтвета.Вставить(ИмяТаблицы, ОписаниеОшибки()); - ОтсутствующиеИменаТаблиц.Добавить(ИмяТаблицы); - КонецПопытки; - - КонецЕсли; - КонецЦикла; + Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда + ВызватьИсключение __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Общий модуль ""%1"" не существует.'"), + ?(ПустаяСтрока(Имя), ИмяМодуляБСП, Имя)); + КонецЕсли; - Возврат ОтсутствующиеИменаТаблиц; + Возврат Модуль; КонецФункции -Функция НайтиИменаТаблицПоРасположениюСлов(Знач Текст, ПервоеИскомоеСлово, ВтороеИскомоеСлово = "") +// Аналог метода БСП. Выполнить экспортную процедуру по имени с уровнем привилегий конфигурации. +// При включении профилей безопасности для вызова оператора Выполнить() используется +// переход в безопасный режим с профилем безопасности, используемым для информационной базы +// (если выше по стеку не был установлен другой безопасный режим). +// +// Параметры: +// ИмяМетода - Строка - имя экспортной процедуры в формате +// <имя объекта>.<имя процедуры>, где <имя объекта> - это +// общий модуль или модуль менеджера объекта. +// Параметры - Массив - параметры передаются в процедуру <ИмяЭкспортнойПроцедуры> +// в порядке расположения элементов массива. +// +// Пример: +// Параметры = Новый Массив(); +// Параметры.Добавить("1"); +// ОбщегоНазначения.ВыполнитьМетодКонфигурации("МойОбщийМодуль.МояПроцедура", Параметры); +// +Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт - СписокИгнорируемыхСимволов = Новый СписокЗначений; - СписокИгнорируемыхСимволов.Добавить(Символы.ПС); - СписокИгнорируемыхСимволов.Добавить(Символы.ВК); - СписокИгнорируемыхСимволов.Добавить(Символы.НПП); - СписокИгнорируемыхСимволов.Добавить(Символы.Таб); - СписокИгнорируемыхСимволов.Добавить(" "); + ПроверитьИмяПроцедурыКонфигурации(ИмяМетода); - СписокРазделителей = Новый СписокЗначений; - СписокРазделителей.Добавить("("); - СписокРазделителей.Добавить(")"); - СписокРазделителей.Добавить("."); - СписокРазделителей.Добавить(","); - СписокРазделителей.Добавить(";"); - СписокРазделителей.Добавить("&"); + УстановитьБезопасныйРежим(Истина); - НайденныеИмена = Новый Структура; - ПервоеИскомоеСлово = ВРег(ПервоеИскомоеСлово); - ВтороеИскомоеСлово = ВРег(ВтороеИскомоеСлово); + ПараметрыСтрока = ""; + Если Параметры <> Неопределено И Параметры.Количество() > 0 Тогда + Для Индекс = 0 По Параметры.ВГраница() Цикл + ПараметрыСтрока = ПараметрыСтрока + "Параметры[" + XMLСтрока(Индекс) + "],"; + КонецЦикла; + ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1); + КонецЕсли; - Пока Истина Цикл + Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; + +КонецПроцедуры + +// Аналог метода БСП. Записывает конфиденциальные данные в безопасное хранилище. +// Вызывающий код должен самостоятельно устанавливать привилегированный режим. +// +// Безопасное хранилище недоступно для чтения пользователям (кроме администраторов), +// а доступно только коду, который делает обращения только к своей части данных и +// в том контексте, который предполагает чтение или запись конфиденциальных данных. +// +// Параметры: +// Владелец - ПланОбменаСсылка +// - СправочникСсылка +// - Строка - ссылка на объект информационной базы, +// представляющий объект-владелец сохраняемого пароля или строка до 128 символов. +// Для объектов других типов в качестве владельца рекомендуется использовать ссылку на +// элемент метаданных этого типа в справочнике ИдентификаторыОбъектовМетаданных +// или ключ в виде строки с учетом имен подсистем. +// Например, для БСП: +// Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("РегистрСведений.АдресныеОбъекты"); +// если нужно 1 хранилище на подсистему БСП: +// Владелец = "СтандартныеПодсистемы.УправлениеДоступом"; +// если нужно более 1 хранилища на подсистему БСП: +// Владелец = "СтандартныеПодсистемы.УправлениеДоступом.<Уточнение>"; +// Данные - Произвольный - данные помещаемые в безопасное хранилище. Неопределенно - удаляет все данные. +// Для удаления данных по ключу следует использовать процедуру УдалитьДанныеИзБезопасногоХранилища. +// - Структура - если параметр Ключ содержит Неопределено. Подробнее см. описание параметра Ключ +// Ключ - Строка - ключ сохраняемых настроек, по умолчанию "Пароль". +// Ключ должен соответствовать правилам имен идентификаторов: +// 1. Первым символом ключа должна быть буква или символ подчеркивания (_). +// 2. Каждый из последующих символов может быть буквой, цифрой или символом подчеркивания (_). +// Неопределено - для добавления набора данных структурой, где ключ структуры - это имя ключа данных, +// а значение - сохраняемые данные. Пример использования см. ниже. +// +// Пример: +// +// Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) +// Если ТекущийПользовательМожетИзменятьПароль Тогда +// УстановитьПривилегированныйРежим(Истина); +// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Логин, "Логин"); +// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Пароль); +// УстановитьПривилегированныйРежим(Ложь); +// КонецЕсли; +// КонецПроцедуры +// +// Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) +// Если ТекущийПользовательМожетИзменятьПароль Тогда +// ЛогинИПароль = Новый Структура; +// ЛогинИПароль.Вставить("Логин", Логин); +// ЛогинИПароль.Вставить("Пароль", Пароль); +// УстановитьПривилегированныйРежим(Истина); +// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, ЛогинИПароль, Неопределено); +// УстановитьПривилегированныйРежим(Ложь); +// КонецЕсли; +// КонецПроцедуры +// +Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт + + __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ЗначениеЗаполнено(Владелец), + __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |параметр должен содержать ссылку; передано значение: %3 (тип %4).'"), + "Владелец", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Владелец, ТипЗнч(Владелец))); + + Если ЗначениеЗаполнено(Ключ) Тогда - Найдено = Найти(Текст, " " + ВРег(ПервоеИскомоеСлово) + " "); - Если Найдено > 0 Тогда - - Текст = СокрЛП(Прав(Текст, СтрДлина(Текст) - Найдено - СтрДлина(ПервоеИскомоеСлово) - 1)); - СоставляемоеСлово = ""; - НайденноеСлово = ""; - - Для НомерСтроки = 1 По СтрДлина(Текст) Цикл - - ОчереднойСимвол = Сред(Текст, НомерСтроки, 1); - - Если НЕ СписокРазделителей.НайтиПоЗначению(ОчереднойСимвол) = Неопределено Тогда - - СоставляемоеСлово = ""; - НайденноеСлово = ""; - - Прервать; - - ИначеЕсли НЕ СписокИгнорируемыхСимволов.НайтиПоЗначению(ОчереднойСимвол) = Неопределено Тогда - - Если СоставляемоеСлово = "" Тогда - Продолжить; - Иначе - Если НайденноеСлово = "" Тогда - - НайденноеСлово = СоставляемоеСлово; - СоставляемоеСлово = ""; - - Если ВтороеИскомоеСлово = "" Тогда - Прервать; - КонецЕсли; - - Иначе - - Если НЕ СоставляемоеСлово = ВтороеИскомоеСлово Тогда - НайденноеСлово = ""; - КонецЕсли; - - Прервать; - - КонецЕсли; - КонецЕсли; - Иначе - СоставляемоеСлово = СоставляемоеСлово + ОчереднойСимвол; - КонецЕсли; - - КонецЦикла; - - Если НЕ НайденноеСлово = "" Тогда - НайденныеИмена.Вставить(НайденноеСлово, Найдено); - КонецЕсли; - Иначе - Прервать; - КонецЕсли; + __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ТипЗнч(Ключ) = Тип("Строка"), + __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |параметр должен содержать строку; передано значение: %3 (тип %4).'"), + "Ключ", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Ключ, ТипЗнч(Ключ))); + + Иначе - КонецЦикла; + __ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ТипЗнч(Данные) = Тип("Структура"), + __СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |Если Ключ = Неопределено, то параметр должен содержать структуру; передано значение: %3 (тип %4).'"), + "Данные", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Данные, ТипЗнч(Данные))); - Возврат НайденныеИмена; + КонецЕсли; + + // Загулшка. + // Перенаправление в хранилище общих настроек, не используется регистр сведений БезопасноеХранилищеДанных + ХранилищеОбщихНастроекСохранить(Владелец, Ключ, Данные); + Возврат; + // Загулшка + +КонецПроцедуры + +// Аналог метода БСП. Возвращает данные из безопасного хранилища. +// Вызывающий код должен самостоятельно устанавливать привилегированный режим. +// +// Безопасное хранилище недоступно для чтения пользователям (кроме администраторов), +// а доступно только коду, который делает обращения только к своей части данных и +// в том контексте, который предполагает чтение или запись конфиденциальных данных. +// +// Параметры: +// Владелец - ПланОбменаСсылка +// - СправочникСсылка +// - Строка - ссылка на объект информационной базы, +// представляющий объект-владелец сохраняемого пароля или уникальная строка(до 128 символов). +// Ключи - Строка - содержит список имен сохраненных данных, указанных через запятую. +// - Неопределено - будут возвращены все сохраненные данные владельца. +// ОбщиеДанные - Булево - Истина, если требуется в модели сервиса получить данные из общих данных в разделенном режиме. +// +// Возвращаемое значение: +// Произвольный, Структура, Неопределено - данные из безопасного хранилища. Если указан один ключ, +// то возвращается его значение, иначе структура. +// Если данные отсутствуют - Неопределенно. +// +// Пример: +// Если ТекущийПользовательМожетИзменятьПароль Тогда +// УстановитьПривилегированныйРежим(Истина); +// Логин = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка, "Логин"); +// Пароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка); +// УстановитьПривилегированныйРежим(Ложь); +// Иначе +// Элементы.ГруппаЛогинИПароль.Видимость = Ложь; +// КонецЕсли; +// +// УстановитьПривилегированныйРежим(Истина); +// ЛогинИПароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка, Неопределено); +// +Функция ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт + + // Загулшка. + // Перенаправление в хранилище общих настроек, не используется регистр сведений БезопасноеХранилищеДанных + Результат = ХранилищеОбщихНастроекЗагрузить(Владелец, Ключи, ОбщиеДанные); + Возврат Результат; + // Загулшка + +КонецФункции + +// Аналог метода БСП. Формирует и выводит сообщение, которое может быть связано с элементом управления формы. +// +// В фоновом задании длительной операции, если вызов выполнен вне транзакции, +// сообщение записывается в служебный регистр и отправляется сразу на клиент, +// если подключена система взаимодействия. +// В конце фонового задания длительной операции, а также при отправке прогресса, +// все сообщения извлекаются из очереди сообщений фонового задания, +// записываются в служебный регистр и отправляются сразу на клиент, +// если подключена система взаимодействия. +// +// АПК: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, Знач ЗнакЧисла = Неопределено) Экспорт + + Если ЗнакЧисла = Неопределено Тогда + ЗнакЧисла = ДопустимыйЗнак.Любой; + КонецЕсли; + + Возврат Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(Разрядность, РазрядностьДробнойЧасти, ЗнакЧисла)); + +КонецФункции + +// Аналог метода БСП. Возвращает значение настройки рабочей даты для пользователя или текущей даты сеанса, +// если рабочая дата пользователя не задана. +// +// Параметры: +// ИмяПользователя - Строка - имя пользователя, для которого запрашивается рабочая дата. +// Если не задано, то устанавливается для текущего пользователя. +// +// Возвращаемое значение: +// Дата - значение настройки рабочей даты пользователя или текущая дата сеанса, если настройка не задана. +// +Функция ТекущаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт + + Возврат ТекущаяДатаСеанса(); + +КонецФункции + +#КонецОбласти + +#КонецОбласти // ПрограммныйИнтерфейс + +#Область СлужебныеПроцедурыИФункции + +Функция ЗаполнитьТаблицыПоСпискуИмен(СтруктураОтвета, МассивИменТаблиц, Менеджер) + + ОтсутствующиеИменаТаблиц = Новый Массив; + + Запрос = Новый Запрос; + Запрос.МенеджерВременныхТаблиц = Менеджер; + + Для Каждого ИмяТаблицы Из МассивИменТаблиц Цикл + Если НЕ СтруктураОтвета.Свойство(ИмяТаблицы) Тогда + + Запрос.Текст = "ВЫБРАТЬ * ИЗ " + ИмяТаблицы + " КАК " + ИмяТаблицы; + Попытка + СтруктураОтвета.Вставить(ИмяТаблицы, Запрос.Выполнить().Выгрузить()); + Исключение + СтруктураОтвета.Вставить(ИмяТаблицы, ОписаниеОшибки()); + ОтсутствующиеИменаТаблиц.Добавить(ИмяТаблицы); + КонецПопытки; + + КонецЕсли; + КонецЦикла; + + Возврат ОтсутствующиеИменаТаблиц; + +КонецФункции + +Функция НайтиИменаТаблицПоРасположениюСлов(Знач Текст, ПервоеИскомоеСлово, ВтороеИскомоеСлово = "") + + СписокИгнорируемыхСимволов = Новый СписокЗначений; + СписокИгнорируемыхСимволов.Добавить(Символы.ПС); + СписокИгнорируемыхСимволов.Добавить(Символы.ВК); + СписокИгнорируемыхСимволов.Добавить(Символы.НПП); + СписокИгнорируемыхСимволов.Добавить(Символы.Таб); + СписокИгнорируемыхСимволов.Добавить(" "); + + СписокРазделителей = Новый СписокЗначений; + СписокРазделителей.Добавить("("); + СписокРазделителей.Добавить(")"); + СписокРазделителей.Добавить("."); + СписокРазделителей.Добавить(","); + СписокРазделителей.Добавить(";"); + СписокРазделителей.Добавить("&"); + + НайденныеИмена = Новый Структура; + ПервоеИскомоеСлово = ВРег(ПервоеИскомоеСлово); + ВтороеИскомоеСлово = ВРег(ВтороеИскомоеСлово); + + Пока Истина Цикл + + Найдено = Найти(Текст, " " + ВРег(ПервоеИскомоеСлово) + " "); + Если Найдено > 0 Тогда + + Текст = СокрЛП(Прав(Текст, СтрДлина(Текст) - Найдено - СтрДлина(ПервоеИскомоеСлово) - 1)); + СоставляемоеСлово = ""; + НайденноеСлово = ""; + + Для НомерСтроки = 1 По СтрДлина(Текст) Цикл + + ОчереднойСимвол = Сред(Текст, НомерСтроки, 1); + + Если НЕ СписокРазделителей.НайтиПоЗначению(ОчереднойСимвол) = Неопределено Тогда + + СоставляемоеСлово = ""; + НайденноеСлово = ""; + + Прервать; + + ИначеЕсли НЕ СписокИгнорируемыхСимволов.НайтиПоЗначению(ОчереднойСимвол) = Неопределено Тогда + + Если СоставляемоеСлово = "" Тогда + Продолжить; + Иначе + Если НайденноеСлово = "" Тогда + + НайденноеСлово = СоставляемоеСлово; + СоставляемоеСлово = ""; + + Если ВтороеИскомоеСлово = "" Тогда + Прервать; + КонецЕсли; + + Иначе + + Если НЕ СоставляемоеСлово = ВтороеИскомоеСлово Тогда + НайденноеСлово = ""; + КонецЕсли; + + Прервать; + + КонецЕсли; + КонецЕсли; + Иначе + СоставляемоеСлово = СоставляемоеСлово + ОчереднойСимвол; + КонецЕсли; + + КонецЦикла; + + Если НЕ НайденноеСлово = "" Тогда + НайденныеИмена.Вставить(НайденноеСлово, Найдено); + КонецЕсли; + Иначе + Прервать; + КонецЕсли; + + КонецЦикла; + + Возврат НайденныеИмена; + +КонецФункции + +#Область МетодыАналогиБСП + +#Область БезопасноеВыполнениеВнешнегоКода + +// Аналог метода БСП. Проверяет, что переданное имя ИмяПроцедуры является именем экспортной процедуры конфигурации. +// Может использоваться для проверки, что переданная строка не содержит произвольного алгоритма +// на встроенном языке 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"" не существует.'"), Имя); + КонецЕсли; + + УстановитьБезопасныйРежим(Истина); + Модуль = Вычислить(Имя); + + Возврат Модуль; +КонецФункции + +#КонецОбласти + +#Область ХранилищеНастроек + +// Аналог метода БСП. +// +Процедура ХранилищеСохранить(МенеджерХранилища, КлючОбъекта, КлючНастроек, Настройки, + ОписаниеНастроек, ИмяПользователя, ОбновитьПовторноИспользуемыеЗначения) + + Если Не ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда + Возврат; + КонецЕсли; + + МенеджерХранилища.Сохранить(КлючОбъекта, КлючНастроек(КлючНастроек), Настройки, + ОписаниеНастроек, ИмяПользователя); + + Если ОбновитьПовторноИспользуемыеЗначения Тогда + ОбновитьПовторноИспользуемыеЗначения(); + КонецЕсли; + +КонецПроцедуры + +// Аналог метода БСП. +// +Функция ХранилищеЗагрузить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию, + ОписаниеНастроек, ИмяПользователя) + + Результат = Неопределено; + + Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда + Результат = МенеджерХранилища.Загрузить(КлючОбъекта, КлючНастроек(КлючНастроек), + ОписаниеНастроек, ИмяПользователя); + КонецЕсли; + + Если Результат = Неопределено Тогда + Результат = ЗначениеПоУмолчанию; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Аналог метода БСП. Возвращает строку ключа настроек, не превышающую допустимую длину 128 символов. +// Если указанная строка превышает 128, тогда вместо символов сверх 96 символов +// добавляется их хеш-сумма по алгоритму MD5 размером 32 символа. +// +// Параметры: +// Строка - Строка - строка произвольной длины. +// +// Возвращаемое значение: +// Строка - не более 128 символов. +// +Функция КлючНастроек(Знач Строка) + Возврат СократитьСтрокуКонтрольнойСуммой(Строка, 128); +КонецФункции + +#КонецОбласти + +#КонецОбласти + #КонецОбласти // СлужебныеПроцедурыИФункции \ 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..30371ade --- /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,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 и выше + +//////////////////////////////////////////////////////////////////////////////// +// Общего назначения (служебный): для серверных функций общего назначения, переадресация на методы БСП или их аналоги + +#Область ПрограммныйИнтерфейс + +#Область ПереадресацияМетодов + +// См. __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации. +Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСервер.ЗаписатьДанныеВБезопасноеХранилище. +Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСервер.ПрочитатьДанныеИзБезопасногоХранилища. +Функция ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи, ОбщиеДанные); + +КонецФункции + +// См. __ОбщегоНазначенияСервер.СообщитьПользователю. +Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, Знач Поле = "", + Знач ПутьКДанным = "", Отказ = Ложь) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.СообщитьПользователю(ТекстСообщенияПользователю, КлючДанных, Поле, ПутьКДанным, Отказ); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСервер.ХранилищеОбщихНастроекСохранить. +Процедура ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки, + ОписаниеНастроек = Неопределено, + ИмяПользователя = Неопределено, + ОбновитьПовторноИспользуемыеЗначения = Ложь) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки, ОписаниеНастроек, + ИмяПользователя, ОбновитьПовторноИспользуемыеЗначения); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСервер.ХранилищеОбщихНастроекЗагрузить. +Функция ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию = Неопределено, + ОписаниеНастроек = Неопределено, ИмяПользователя = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию, + ОписаниеНастроек, ИмяПользователя); + +КонецФункции + +// См. __ОбщегоНазначенияСервер.ПриНачалеВыполненияРегламентногоЗадания. +Процедура ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание); + +КонецПроцедуры + +// См. __ОбщегоНазначенияСервер.ЗначенияРеквизитовОбъекта. +Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ЗначенияРеквизитовОбъекта(Ссылка, Реквизиты, ВыбратьРазрешенные, КодЯзыка); + +КонецФункции + +// См. __ОбщегоНазначенияСервер.ОписаниеТипаСтрока. +Функция ОписаниеТипаСтрока(ДлинаСтроки) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ОписаниеТипаСтрока(ДлинаСтроки); + +КонецФункции + +// См. __ОбщегоНазначенияСервер.ОписаниеТипаЧисло. +Функция ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти = 0, Знач ЗнакЧисла = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти, ЗнакЧисла); + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьМодуль() + Возврат __ОбщегоНазначенияПовтИсп.ОбщийМодуль("ОбщегоНазначения", "__ОбщегоНазначенияСервер"); +КонецФункции + +#КонецОбласти 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..5d02f8f3 --- /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\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..d0d18f72 --- /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..debf1808 --- /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/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..26209ea1 --- /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,68 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 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..7c68f83d --- /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,42 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 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\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..72ce7eda --- /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..506b33bf --- /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 3c450bbc..51cfdf93 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]; 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 a06ead47..790b63b4 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]; 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..9026b4c6 --- /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 894a3bb1..52befe22 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -264,14 +264,13 @@ __BSLEditor __JSONEditor __XMLEditor - __ВспомогательныйМодульНеПереносить - __ВспомогательныйМодульНеПереноситьКлиент - __ВспомогательныйМодульНеПереноситьКлиентСервер __ДокументыОбработкаЗаполнения __ДокументыОбработкаПроведения __ДокументыПередЗаписью __ДокументыПриЗаписи __ДокументыПриКопировании + __ЖурналРегистрации + __ЖурналРегистрацииСлужебный __ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера __ЗагрузкаФайлаЧерезТабличныйДокументКлиент __ИнтеграцииСервер @@ -281,22 +280,34 @@ __МодификацияКонфигурацииКлиентСерверПереопределяемый __МодификацияКонфигурацииПереопределяемый __МодификацияКонфигурацииПереопределяемыйДокумент + __ОбщегоНазначенияВызовСервера __ОбщегоНазначенияКлиент __ОбщегоНазначенияКлиентСервер __ОбщегоНазначенияПовтИсп __ОбщегоНазначенияПолныеПрава __ОбщегоНазначенияСервер + __ОбщегоНазначенияСлужебный + __ОбщегоНазначенияСлужебныйКлиент + __ОбщегоНазначенияСлужебныйКлиентСервер + __ПолучениеФайловИзИнтернета + __ПолучениеФайловИзИнтернетаСлужебный + __Пользователи + __ПользователиКлиентСервер + __ПользователиСлужебный __ПредопределенныеЗначения __ПредопределенныеЗначенияПереопределяемый __РаботаСДиалогамиКлиент __РаботаСДиалогамиСервер __РаботаСКоллекциямиКлиентСервер __РаботаСФормами + __РегламентныеЗаданияСервер + __РегламентныеЗаданияСлужебныйСервер __СправочникиОбработкаЗаполнения __СправочникиПередЗаписью __СправочникиПриЗаписи __СправочникиПриКопировании __СтроковыеФункцииКлиентСервер + __СтроковыеФункцииСлужебныйКлиентСервер __ТипСоответствияОбъектовИБПереопределяемый __ДокументыОбработкаЗаполнения __ДокументыОбработкаПроведения 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..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" @@ -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\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/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..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" @@ -3,6 +3,40 @@ false true false + + InformationRegister.__СоответствияОбъектовИБ.Dimension.Объект2 + + Edit + false + + + + Configuration.ПроектнаяБиблиотекаПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + InformationRegister.__СоответствияОбъектовИБ @@ -14,4 +48,53 @@ true + + InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.Active + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.LineNumber + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.Recorder + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.StandardAttribute.Period + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.Resource.Объект3 + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.Dimension.ТипСоответствия + + Edit + false + + + + InformationRegister.__СоответствияОбъектовИБ.Dimension.Объект1 + + Edit + false + + \ No newline at end of file