From 76e0f74f9dd00affa2fbc103e927c5830dd12ad2 Mon Sep 17 00:00:00 2001 From: Denis Ushakov Date: Tue, 10 Dec 2024 09:59:24 +0300 Subject: [PATCH] fixed bugs and smells --- .../Ext/Module.bsl" | 2 +- .../Ext/Module.bsl" | 7 - ...0\273\320\270\320\265\320\275\321\202.xml" | 23 +++ .../Ext/Module.bsl" | 64 ++++++ .../Ext/Module.bsl" | 8 - .../Ext/Module.bsl" | 178 ++++++++++++++--- .../Ext/Module.bsl" | 185 ++++-------------- .../Ext/Module.bsl" | 16 +- .../Ext/Module.bsl" | 24 ++- .../Ext/Module.bsl" | 18 +- ...0\265\320\261\320\275\321\213\320\271.xml" | 27 +++ .../Ext/Module.bsl" | 40 ++++ src/cf/Configuration.xml | 4 +- 13 files changed, 377 insertions(+), 219 deletions(-) create mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\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.xml" create mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\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" create mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\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\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" create mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\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\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" index 4ffe0cac..a3ac2dfb 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" @@ -74,7 +74,7 @@ Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "ПроектнаяБиблиотекаПодсистем"; - Описание.Версия = "1.0.4.13"; + Описание.Версия = "1.0.4.14"; // Требуется библиотека стандартных подсистем. Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы"); diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\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/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" index 7a88ad97..c4dc2f02 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\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/cf/CommonModules/\320\277\320\261\320\277_\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" @@ -27,13 +27,6 @@ КонецФункции -// См. пбп_ОбщегоНазначенияСервер.ПереадресацияОбщегоМодуля -Функция ПереадресацияОбщегоМодуля(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт - - Возврат пбп_ОбщегоНазначенияПовтИсп.ПереадресацияОбщегоМодуля(ИмяМодуляБСП, ИмяМодуляВстроенного); - -КонецФункции - // См. пбп_ОбщегоНазначенияСервер.ТекущаяДатаПользователя Функция ТекущаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\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.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\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.xml" new file mode 100644 index 00000000..569b2c4f --- /dev/null +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\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.xml" @@ -0,0 +1,23 @@ + + + + + пбп_ОбщегоНазначенияКлиент + + + ru + Общего назначения клиент + + + + false + true + false + false + false + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\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/cf/CommonModules/\320\277\320\261\320\277_\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" new file mode 100644 index 00000000..dd6a045b --- /dev/null +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\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" @@ -0,0 +1,64 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 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/ +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +#Область УсловныеВызовы + +// Возвращает ссылку на общий модуль по имени. +// Применяется для условного вызова процедуры или функции совместно с ОбщегоНазначенияКлиент.ПодсистемаСуществует. +// См. также ОбщегоНазначения.ОбщийМодуль для вызова серверного кода. +// +// Параметры: +// Имя - Строка - имя общего модуля, например "ОбновлениеКонфигурацииКлиент", "ОтчетыВызовСервера". +// +// Возвращаемое значение: +// ОбщийМодуль +// +// Пример: +// Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда +// МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент"); +// МодульОбновлениеКонфигурацииКлиент.<Имя процедуры>(); +// КонецЕсли; +// +Функция ОбщийМодуль(Имя) Экспорт + + Модуль = Вычислить(Имя); + +#Если Не ВебКлиент Тогда + + // В веб-клиенте не проверяется, + // т.к. при обращении к модулям с вызовом сервера типа такого модуля в веб-клиенте не существует. + Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда + ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Общий модуль ""%1"" не существует.'"), + Имя); + КонецЕсли; + +#КонецЕсли + + Возврат Модуль; + +КонецФункции + +#КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\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/cf/CommonModules/\320\277\320\261\320\277_\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 4f3ecc6a..6930fe18 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\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/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" @@ -105,14 +105,6 @@ КонецФункции -// См. пбп_ОбщегоНазначенияСервер.ПереадресацияОбщегоМодуля. -// -Функция ПереадресацияОбщегоМодуля(ИмяМодуляБСП, ИмяМодуляВстроенного) Экспорт - - Возврат пбп_ОбщегоНазначенияСервер.ПереадресацияОбщегоМодуля(ИмяМодуляБСП, ИмяМодуляВстроенного); - -КонецФункции - // См. пбп_ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты. // Функция ПолучитьЗначениеКонстанты(ИмяКонстанты) Экспорт diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\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/cf/CommonModules/\320\277\320\261\320\277_\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 0704e573..6e0bd24f 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\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/cf/CommonModules/\320\277\320\261\320\277_\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" @@ -776,7 +776,7 @@ Если Метаданные.ОбщиеМодули.Найти("СтандартныеПодсистемыСервер") <> Неопределено Тогда Попытка УстановитьБезопасныйРежим(Истина); - МодульБСП = пбп_Переадресация.ОбщийМодуль("СтандартныеПодсистемыСервер"); + МодульБСП = ОбщийМодуль("СтандартныеПодсистемыСервер"); ВерсияБСП = МодульБСП.ВерсияБиблиотеки(); Исключение ВерсияБСП = Неопределено; @@ -787,31 +787,6 @@ КонецФункции -// Возвращает ссылку на общий модуль или модуль менеджера по имени. Если подключена БСП, -// происходит переадресация на общий модуль из БСП, иначе используются встроенные модули ПБП. -// -// Параметры: -// ИмяМодуляБСП - Строка - Имя Общего модуля из Библиотеки стандартных подсистем -// ИмяМодуляВстроенного - Строка - Имя Общего модуля из Проектной библиотеки подсистем -// -// Возвращаемое значение: -// ОбщийМодуль -// МодульМенеджераОбъекта -// -Функция ПереадресацияОбщегоМодуля(ИмяМодуляБСП, ИмяМодуляВстроенного = "") Экспорт - - Имя = ИмяМодуляВстроенного; - Если пбп_ОбщегоНазначенияПовтИсп.СуществуетБиблиотекаСтандартныхПодсистем() - И Метаданные.ОбщиеМодули.Найти(ИмяМодуляБСП) <> Неопределено Тогда - Имя = ИмяМодуляБСП; - КонецЕсли; - - Модуль = пбп_Переадресация.ОбщийМодуль(Имя); - - Возврат Модуль; - -КонецФункции - #Область ПользовательскиеФункции // Выполняет пользовательскую функцию с переданными параметрами. @@ -911,6 +886,58 @@ КонецПроцедуры +#Область УсловныеВызовы + +// Возвращает ссылку на общий модуль или модуль менеджера по имени. +// Применяется для условного вызова процедуры или функции совместно с ОбщегоНазначения.ПодсистемаСуществует. +// См. также ОбщегоНазначенияКлиент.ОбщийМодуль для вызова клиентского кода. +// +// Параметры: +// Имя - Строка - имя общего модуля или модуля менеджера, например "ОбновлениеКонфигурации", +// "Обработка.ПолнотекстовыйПоиск". +// +// Возвращаемое значение: +// ОбщийМодуль +// МодульМенеджераОбъекта +// +// Пример: +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда +// МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации"); +// МодульОбновлениеКонфигурации.<Имя процедуры>(); +// КонецЕсли; +// +// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда +// МодульОбработкаПолнотекстовыйПоиск = ОбщегоНазначения.ОбщийМодуль("Обработка.ПолнотекстовыйПоиск"); +// МодульОбработкаПолнотекстовыйПоиск.<Имя процедуры>(); +// КонецЕсли; +// +Функция ОбщийМодуль(Имя) Экспорт + + Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда + // BSLLS:ExecuteExternalCodeInCommonModule-off + // ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно. + УстановитьБезопасныйРежим(Истина); + Модуль = Вычислить(Имя); + // BSLLS:ExecuteExternalCodeInCommonModule-on + ИначеЕсли СтрЧислоВхождений(Имя, ".") = 1 Тогда + Возврат СерверныйМодульМенеджера(Имя); + Иначе + Модуль = Неопределено; + КонецЕсли; + + Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда + ВызватьИсключение(пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверное значение параметра %1 в %2. Общий модуль ""%1"" не существует.'"), + "Имя", "пбп_ОбщегоНазначенияСервер.ОбщийМодуль", Имя), + КатегорияОшибки.ОшибкаКонфигурации); + КонецЕсли; + + Возврат Модуль; + +КонецФункции + +#КонецОбласти + #КонецОбласти // ПрограммныйИнтерфейс #Область СлужебныеПроцедурыИФункции @@ -1131,4 +1158,103 @@ #КонецОбласти +#Область УсловныеВызовы + +// Возвращает серверный модуль менеджера по имени объекта. +Функция СерверныйМодульМенеджера(Имя) + ОбъектНайден = Ложь; + + ЧастиИмени = СтрРазделить(Имя, "."); + Если ЧастиИмени.Количество() = 2 Тогда + + ИмяВида = ВРег(ЧастиИмени[0]); + ИмяОбъекта = ЧастиИмени[1]; + + Если ИмяВида = ВРег("Константы") Тогда + Если Метаданные.Константы.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыСведений") Тогда + Если Метаданные.РегистрыСведений.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыНакопления") Тогда + Если Метаданные.РегистрыНакопления.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыБухгалтерии") Тогда + Если Метаданные.РегистрыБухгалтерии.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("РегистрыРасчета") Тогда + Если Метаданные.РегистрыРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Справочники") Тогда + Если Метаданные.Справочники.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Документы") Тогда + Если Метаданные.Документы.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Отчеты") Тогда + Если Метаданные.Отчеты.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Обработки") Тогда + Если Метаданные.Обработки.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("БизнесПроцессы") Тогда + Если Метаданные.БизнесПроцессы.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ЖурналыДокументов") Тогда + Если Метаданные.ЖурналыДокументов.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("Задачи") Тогда + Если Метаданные.Задачи.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыСчетов") Тогда + Если Метаданные.ПланыСчетов.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыОбмена") Тогда + Если Метаданные.ПланыОбмена.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыВидовХарактеристик") Тогда + Если Метаданные.ПланыВидовХарактеристик.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + ИначеЕсли ИмяВида = ВРег("ПланыВидовРасчета") Тогда + Если Метаданные.ПланыВидовРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда + ОбъектНайден = Истина; + КонецЕсли; + КонецЕсли; + + КонецЕсли; + + Если Не ОбъектНайден Тогда + ВызватьИсключение(пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверное значение параметра %1 в функции %2. Объект метаданных ""%3"" не существует.'"), + "Имя", "пбп_ОбщегоНазначенияСервер.СерверныйМодульМенеджера", Имя), + КатегорияОшибки.ОшибкаКонфигурации); + КонецЕсли; + + // BSLLS:ExecuteExternalCodeInCommonModule-off + // ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно. + УстановитьБезопасныйРежим(Истина); + Модуль = Вычислить(Имя); + // BSLLS:ExecuteExternalCodeInCommonModule-on + + Возврат Модуль; + +КонецФункции + +#КонецОбласти + #КонецОбласти // СлужебныеПроцедурыИФункции diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl" index 3fd270ab..eb08b93f 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl" +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl" @@ -38,7 +38,7 @@ Если пбп_ОбщегоНазначенияПовтИсп.СуществуетБиблиотекаСтандартныхПодсистем() И Метаданные.ОбщиеМодули.Найти(ИмяМодуля) <> Неопределено Тогда - Результат.Модуль = ОбщийМодуль(ИмяМодуля); + Результат.Модуль = пбп_ОбщегоНазначенияСервер.ОбщийМодуль(ИмяМодуля); Результат.МодульСуществует = Истина; КонецЕсли; @@ -145,51 +145,6 @@ КонецФункции -// Аналог метода БСП. Возвращает ссылку на общий модуль или модуль менеджера по имени. -// -// Параметры: -// Имя - Строка - имя общего модуля. -// -// Возвращаемое значение: -// ОбщийМодуль -// МодульМенеджераОбъекта -// -// Пример: -// МодульОбновлениеКонфигурации = пбп_ОбщегоНазначенияСервер.ОбщийМодуль("ОбновлениеКонфигурации"); -// МодульОбновлениеКонфигурации.<Имя метода>(); -// -// МодульПолнотекстовыйПоискСервер = пбп_ОбщегоНазначенияСервер.ОбщийМодуль("ПолнотекстовыйПоискСервер"); -// МодульПолнотекстовыйПоискСервер.<Имя метода>(); -// -Функция ОбщийМодуль(Имя) Экспорт - - Результат = ПереадресацияМодуляОбщегоНазначения(); - Если Результат.МодульСуществует Тогда - Возврат Результат.Модуль.ОбщийМодуль(Имя); - КонецЕсли; - - Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда - // BSLLS:ExecuteExternalCodeInCommonModule-off - // ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно. - УстановитьБезопасныйРежим(Истина); - Модуль = Вычислить(Имя); - // BSLLS:ExecuteExternalCodeInCommonModule-on - ИначеЕсли СтрЧислоВхождений(Имя, ".") = 1 Тогда - Возврат СерверныйМодульМенеджера(Имя); - Иначе - Модуль = Неопределено; - КонецЕсли; - - Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда - ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Общий модуль ""%1"" не существует.'"), - Имя); - КонецЕсли; - - Возврат Модуль; - -КонецФункции - // Аналог метода БСП. Выполнить экспортную процедуру по имени с уровнем привилегий конфигурации. // При включении профилей безопасности для вызова оператора Выполнить() используется // переход в безопасный режим с профилем безопасности, используемым для информационной базы @@ -256,7 +211,7 @@ ПроверитьИмяПроцедурыКонфигурации(ИмяМетода); Если ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда - МодульРаботаВБезопасномРежиме = ОбщийМодуль("РаботаВБезопасномРежиме"); + МодульРаботаВБезопасномРежиме = пбп_ОбщегоНазначенияСервер.ОбщийМодуль("РаботаВБезопасномРежиме"); Если МодульРаботаВБезопасномРежиме.ИспользуютсяПрофилиБезопасности() И Не МодульРаботаВБезопасномРежиме.УстановленБезопасныйРежим() Тогда @@ -325,7 +280,7 @@ УстановитьБезопасныйРежим(Истина); Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); + МодульРаботаВМоделиСервиса = пбп_ОбщегоНазначенияСервер.ОбщийМодуль("РаботаВМоделиСервиса"); МассивРазделителей = МодульРаботаВМоделиСервиса.РазделителиКонфигурации(); Иначе МассивРазделителей = Новый Массив; @@ -1002,7 +957,7 @@ КонецЕсли; Если ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда - МодульМультиязычностьСервер = ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер = пбп_ОбщегоНазначенияСервер.ОбщийМодуль("МультиязычностьСервер"); Возврат МодульМультиязычностьСервер.КодОсновногоЯзыка(); КонецЕсли; @@ -1693,6 +1648,39 @@ #КонецОбласти // Прочее +// Определяет принадлежность объекта метаданных к ссылочному типу. +// +// Параметры: +// ОбъектМетаданных - ОбъектМетаданных - объект, для которого необходимо определить принадлежность к заданному типу. +// +// Возвращаемое значение: +// Булево - Истина, если объект ссылочного типа. +// +Функция ЭтоОбъектСсылочногоТипа(ОбъектМетаданных) Экспорт + + Результат = ПереадресацияМодуляОбщегоНазначения(); + Если Результат.МодульСуществует Тогда + Возврат Результат.Модуль.ЭтоОбъектСсылочногоТипа(ОбъектМетаданных); + КонецЕсли; + + ИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя(); + Позиция = СтрНайти(ИмяОбъектаМетаданных, "."); + Если Позиция > 0 Тогда + ИмяБазовогоТипа = Лев(ИмяОбъектаМетаданных, Позиция - 1); + Возврат ИмяБазовогоТипа = "Справочник" + Или ИмяБазовогоТипа = "Документ" + Или ИмяБазовогоТипа = "БизнесПроцесс" + Или ИмяБазовогоТипа = "Задача" + Или ИмяБазовогоТипа = "ПланСчетов" + Или ИмяБазовогоТипа = "ПланОбмена" + Или ИмяБазовогоТипа = "ПланВидовХарактеристик" + Или ИмяБазовогоТипа = "ПланВидовРасчета"; + Иначе + Возврат Ложь; + КонецЕсли; + +КонецФункции + #КонецОбласти #Область ФайловаяСистема @@ -2712,7 +2700,7 @@ ИначеЕсли КлассОМ = "ОБЩИЙМОДУЛЬ" Или КлассОМ = "ОБЩИЕМОДУЛИ" Тогда - Возврат ОбщийМодуль(ИмяОМ); + Возврат пбп_ОбщегоНазначенияСервер.ОбщийМодуль(ИмяОМ); ИначеЕсли КлассОМ = "ОТЧЕТ" Или КлассОМ = "ОТЧЕТЫ" Тогда @@ -2804,103 +2792,6 @@ #КонецОбласти -#Область УсловныеВызовы - -// Аналог метода БСП. Возвращает серверный модуль менеджера по имени объекта. -// -Функция СерверныйМодульМенеджера(Имя) - ОбъектНайден = Ложь; - - ЧастиИмени = СтрРазделить(Имя, "."); - Если ЧастиИмени.Количество() = 2 Тогда - - ИмяВида = ВРег(ЧастиИмени[0]); - ИмяОбъекта = ЧастиИмени[1]; - - Если ИмяВида = ВРег("Константы") Тогда - Если Метаданные.Константы.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("РегистрыСведений") Тогда - Если Метаданные.РегистрыСведений.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("РегистрыНакопления") Тогда - Если Метаданные.РегистрыНакопления.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("РегистрыБухгалтерии") Тогда - Если Метаданные.РегистрыБухгалтерии.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("РегистрыРасчета") Тогда - Если Метаданные.РегистрыРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("Справочники") Тогда - Если Метаданные.Справочники.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("Документы") Тогда - Если Метаданные.Документы.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("Отчеты") Тогда - Если Метаданные.Отчеты.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("Обработки") Тогда - Если Метаданные.Обработки.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("БизнесПроцессы") Тогда - Если Метаданные.БизнесПроцессы.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("ЖурналыДокументов") Тогда - Если Метаданные.ЖурналыДокументов.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("Задачи") Тогда - Если Метаданные.Задачи.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("ПланыСчетов") Тогда - Если Метаданные.ПланыСчетов.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("ПланыОбмена") Тогда - Если Метаданные.ПланыОбмена.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("ПланыВидовХарактеристик") Тогда - Если Метаданные.ПланыВидовХарактеристик.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - ИначеЕсли ИмяВида = ВРег("ПланыВидовРасчета") Тогда - Если Метаданные.ПланыВидовРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда - ОбъектНайден = Истина; - КонецЕсли; - КонецЕсли; - - КонецЕсли; - - Если Не ОбъектНайден Тогда - ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Объект метаданных ""%1"" не существует.'"), Имя); - КонецЕсли; - - // BSLLS:ExecuteExternalCodeInCommonModule-off - // ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно. - УстановитьБезопасныйРежим(Истина); - Модуль = Вычислить(Имя); - // BSLLS:ExecuteExternalCodeInCommonModule-on - - Возврат Модуль; -КонецФункции - -#КонецОбласти - #Область ХранилищеНастроек // Аналог метода БСП. diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" index 9bcfa8d2..6ca45229 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" @@ -40,21 +40,7 @@ Возврат Результат; КонецЕсли; - Модуль = Вычислить(ИмяМодуля); - -#Если Не ВебКлиент Тогда - - // В веб-клиенте не проверяется - // т.к. при обращении к модулям с вызовом сервера типа такого модуля в веб-клиенте не существует. - Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда - ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Общий модуль ""%1"" не существует.'"), - ИмяМодуля); - КонецЕсли; - -#КонецЕсли - - Результат.Модуль = Модуль; + Результат.Модуль = пбп_ОбщегоНазначенияКлиент.ОбщийМодуль(ИмяМодуля); Результат.МодульСуществует = Истина; Возврат Результат; diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\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/cf/CommonModules/\320\277\320\261\320\277_\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 515f7554..c90b4e0f 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\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/cf/CommonModules/\320\277\320\261\320\277_\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" @@ -30,13 +30,13 @@ // Функция ИнициализироватьПредопределенныеЗначения(МенеджерОбъекта) Экспорт - ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияПереопределяемый - .ТаблицаПредопределенныхЭлементов(МенеджерОбъекта); - - Если Не ЗначениеЗаполнено(ТЗПредопределенныхЗначений) Тогда + Если Не пбп_ПредопределенныеЗначенияСлужебный.МенеджерВходитВПодсистемуПредопределенных(МенеджерОбъекта) Тогда Возврат Новый ТаблицаЗначений; КонецЕсли; + ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияПереопределяемый + .ТаблицаПредопределенныхЭлементов(МенеджерОбъекта); + ТаблицаКонфликтныхЭлементов = ОбработатьПредопределенныеЗначения(ТЗПредопределенныхЗначений, МенеджерОбъекта); Возврат ТаблицаКонфликтныхЭлементов; @@ -79,9 +79,25 @@ // Структура - Данные Менеджера объекта // * Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта. // * ПолноеИмя - Строка - Полное имя объекта метаданных. +// * Иерархический - Булево - Свойство объекта метаданных. +// * ИерархияГруппИЭлементов - Булево - Свойство объекта метаданных. +// * КлючиХешаЭлемент - Структура - Ключевые реквизиты для формирования хеша элемента. +// * КлючиХешаГруппа - Структура - Ключевые реквизиты для формирования хеша группы. // Функция ДопПараметрыОбработкиПредопределенныхЭлементов(Таблица, МенеджерОбъекта) Экспорт + Параметры = Новый Структура; + Параметры.Вставить("Менеджер", Неопределено); + Параметры.Вставить("ПолноеИмя", ""); + Параметры.Вставить("Иерархический", Ложь); + Параметры.Вставить("ИерархияГруппИЭлементов", Ложь); + Параметры.Вставить("КлючиХешаЭлемент", Новый Структура); + Параметры.Вставить("КлючиХешаГруппа", Новый Структура); + + Если Не пбп_ПредопределенныеЗначенияСлужебный.МенеджерВходитВПодсистемуПредопределенных(МенеджерОбъекта) Тогда + Возврат Параметры; + КонецЕсли; + ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(МенеджерОбъекта)); Параметры = Новый Структура; diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\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\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/cf/CommonModules/\320\277\320\261\320\277_\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\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 576b8951..e3d93c9e 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\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\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/cf/CommonModules/\320\277\320\261\320\277_\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\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" @@ -13,17 +13,17 @@ Колонки = КолонкиПредопределенныхЭлементов(Менеджер); + Таблица = Новый ТаблицаЗначений; + + СоздатьКолонкиТаблицыПредопределенныхЭлементов(Колонки, Таблица); + Выражение = пбп_ПредопределенныеЗначенияПовтИсп.ФункцииСозданияТаблицПредопределенныхЭлементов() .Получить(ТипЗнч(Менеджер)); - - Таблица = Новый ТаблицаЗначений; Если Не ЗначениеЗаполнено(Выражение) Тогда Возврат Таблица; КонецЕсли; - СоздатьКолонкиТаблицыПредопределенныхЭлементов(Колонки, Таблица); - Параметры = Новый Массив; Параметры.Добавить(Таблица); @@ -225,21 +225,19 @@ // // Возвращаемое значение: // Структура - Где ключ имя колонки, значение описание типов колонки +// Неопределено - если обработчика заполнения колонок не существует. // Функция КолонкиПредопределенныхЭлементов(Менеджер) Экспорт + Колонки = ОбщиеКолонки(Менеджер); + Выражение = пбп_ПредопределенныеЗначенияПовтИсп.ФункцииПолученияКолонокПредопределенныхЭлементов() .Получить(ТипЗнч(Менеджер)); Если Не ЗначениеЗаполнено(Выражение) Тогда - Возврат Неопределено; + Возврат Колонки; КонецЕсли; - Колонки = ОбщиеКолонки(Менеджер); - - Параметры = Новый Массив; - Параметры.Добавить(Менеджер); - ДопКолонки = пбп_Переадресация.ВычислитьВБезопасномРежиме(Выражение); пбп_ПереадресацияКлиентСервер.ДополнитьСтруктуру(Колонки, ДопКолонки); diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\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\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\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\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..88e426f1 --- /dev/null +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\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\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" @@ -0,0 +1,27 @@ + + + + + пбп_ПредопределенныеЗначенияСлужебный + + + ru + Предопределенные значения служебный + + + en + Predefined values + + + + false + false + true + true + false + false + false + DontUse + + + \ No newline at end of file diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\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\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\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\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..9bd4725b --- /dev/null +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\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\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -0,0 +1,40 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright 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/ +// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция МенеджерВходитВПодсистемуПредопределенных(МенеджерОбъекта) Экспорт + + Если МенеджерОбъекта = Неопределено + Или Не пбп_переадресация.ЭтоОбъектСсылочногоТипа(Метаданные.НайтиПоТипу(ТипЗнч(МенеджерОбъекта))) Тогда + Возврат Ложь; + КонецЕсли; + + Типы = Метаданные.ОпределяемыеТипы.пбп_ПредопределенныеВсеСсылкиПереопределяемый.Тип.Типы(); + + Если Типы.Найти(ТипЗнч(МенеджерОбъекта.ПустаяСсылка())) = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/src/cf/Configuration.xml b/src/cf/Configuration.xml index aa6a486d..0271f7b7 100644 --- a/src/cf/Configuration.xml +++ b/src/cf/Configuration.xml @@ -57,7 +57,7 @@ Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок Первый БИТ - 1.0.4.13 + 1.0.4.14 false false @@ -293,6 +293,7 @@ пбп_МодификацияКонфигурацииПовтИсп пбп_ОбновлениеИнформационнойБазыПБП пбп_ОбщегоНазначенияВызовСервера + пбп_ОбщегоНазначенияКлиент пбп_ОбщегоНазначенияКлиентСервер пбп_ОбщегоНазначенияПовтИсп пбп_ОбщегоНазначенияСервер @@ -306,6 +307,7 @@ пбп_ПредопределенныеЗначенияКлиент пбп_ПредопределенныеЗначенияПереопределяемый пбп_ПредопределенныеЗначенияПовтИсп + пбп_ПредопределенныеЗначенияСлужебный пбп_ПредопределенныеЗначенияСлужебныйКлиент пбп_РаботаСДиалогамиКлиент пбп_РаботаСДиалогамиСервер