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.xml" "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.xml"
index 443dd733..07b60aa1 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.xml"
+++ "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.xml"
@@ -533,54 +533,6 @@
Use
-
-
- КаталогИсходногоКодаКонфигурации
-
-
- ru
- Каталог исходного кода конфигурации
-
-
- en
- Configuration source code directory
-
-
-
-
- xs:string
-
- 0
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
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.xml" "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.xml"
index edd89132..c23e71f2 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.xml"
+++ "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.xml"
@@ -10,6 +10,7 @@
ПередЗаписью
ПриСозданииНаСервере
ПередЗаписьюНаСервере
+ ПриЗаписиНаСервере
@@ -71,6 +72,16 @@
КонтекстПриИзменении
+
+ КаталогИсходногоКодаКонфигурации
+ true
+ true
+
+
+
+ КаталогИсходногоКодаКонфигурацииНачалоВыбора
+
+
@@ -866,6 +877,22 @@
xs:boolean
+
+
+
+ ru
+ Каталог исходного кода конфигурации
+
+
+
+ xs:string
+
+ 0
+ Variable
+
+
+ true
+
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 61d4f3e5..92106fba 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"
@@ -72,6 +72,12 @@
КонецЕсли;
КонецЕсли;
+ // Получение каталога исходного кода конфигурации
+ Каталог = ПолучитьКаталогИсходногоКодаКонфигурации();
+ Если ЗначениеЗаполнено(Каталог) Тогда
+ КаталогИсходногоКодаКонфигурации = Каталог;
+ КонецЕсли;
+
ПолучитьНазваниеПодпрограммыСПараметрамиСервер();
УправлениеЭлементамиФормы();
@@ -129,6 +135,22 @@
КонецПроцедуры
+&НаСервере
+Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
+
+ Если Отказ Тогда
+ Возврат;
+ КонецЕсли;
+
+ КаталогИсходногоКода = ПолучитьКаталогИсходногоКодаКонфигурации();
+
+ Если ЗначениеЗаполнено(КаталогИсходногоКодаКонфигурации)
+ И КаталогИсходногоКода <> КаталогИсходногоКодаКонфигурации Тогда
+ СохранитьКаталогИсходногоКодаКонфигурации(КаталогИсходногоКодаКонфигурации);
+ КонецЕсли;
+
+КонецПроцедуры
+
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
@@ -147,6 +169,22 @@
КонецПроцедуры
+&НаКлиенте
+Асинх Процедура КаталогИсходногоКодаКонфигурацииНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
+
+ Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
+ Диалог.МножественныйВыбор = Ложь;
+
+ Результат = Ждать Диалог.ВыбратьАсинх();
+ Если Результат = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Модифицированность = Истина;
+ КаталогИсходногоКодаКонфигурации = Результат[0];
+
+КонецПроцедуры
+
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыПараметрыФункции
@@ -555,6 +593,37 @@
КонецПроцедуры
+&НаСервере
+Функция ПолучитьКаталогИсходногоКодаКонфигурации()
+
+ // ++ Обход ошибки отстутствия модуля БСП, не переносить
+ ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
+ // -- Обход ошибки отстутствия модуля БСП, не переносить
+
+ Результат = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта(),
+ "__ПользовательскиеФункции_КаталогИсхКода", "");
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаСервере
+Процедура СохранитьКаталогИсходногоКодаКонфигурации(Каталог)
+
+ // ++ Обход ошибки отстутствия модуля БСП, не переносить
+ ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
+ // -- Обход ошибки отстутствия модуля БСП, не переносить
+
+ ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(КлючОбъекта(),
+ "__ПользовательскиеФункции_КаталогИсхКода", Каталог);
+
+КонецПроцедуры
+
+&НаСервере
+Функция КлючОбъекта()
+ Возврат "Справочник.__ПользовательскиеФункции.Форма.ФормаЭлемента";
+КонецФункции
+
#Область ОбработчикиСобытийПоляРедактора
&НаКлиенте
@@ -935,7 +1004,7 @@
&НаКлиенте
Функция ПолучитьКаталогИсходногоКода()
- КаталогИсходногоКода = Объект.КаталогИсходногоКодаКонфигурации;
+ КаталогИсходногоКода = КаталогИсходногоКодаКонфигурации;
Если ЗначениеЗаполнено(КаталогИсходногоКода) Тогда
КаталогИсходногоКода = НормализоватьПуть(КаталогИсходногоКода);
КонецЕсли;
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"
index 2b6fc51e..577acef0 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/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"
@@ -73,4 +73,87 @@
Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
-КонецПроцедуры
\ No newline at end of file
+КонецПроцедуры
+
+Функция ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию = Неопределено,
+ ОписаниеНастроек = Неопределено, ИмяПользователя = Неопределено) Экспорт
+
+ Возврат ХранилищеЗагрузить(ХранилищеОбщихНастроек,
+ КлючОбъекта,
+ КлючНастроек,
+ ЗначениеПоУмолчанию,
+ ОписаниеНастроек,
+ ИмяПользователя);
+
+КонецФункции
+
+Процедура ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки,
+ ОписаниеНастроек = Неопределено,
+ ИмяПользователя = Неопределено,
+ ОбновитьПовторноИспользуемыеЗначения = Ложь) Экспорт
+
+ ХранилищеСохранить(ХранилищеОбщихНастроек,
+ КлючОбъекта,
+ КлючНастроек,
+ Настройки,
+ ОписаниеНастроек,
+ ИмяПользователя,
+ ОбновитьПовторноИспользуемыеЗначения);
+
+КонецПроцедуры
+
+Функция СократитьСтрокуКонтрольнойСуммой(Строка, МаксимальнаяДлина) Экспорт
+
+ МинимальнаяДлина = 32;
+ Результат = Строка;
+ Если СтрДлина(Строка) > МаксимальнаяДлина Тогда
+ Результат = Лев(Строка, МаксимальнаяДлина - МинимальнаяДлина);
+ ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5);
+ ХешированиеДанных.Добавить(Сред(Строка, МаксимальнаяДлина - МинимальнаяДлина + 1));
+ Результат = Результат + СтрЗаменить(ХешированиеДанных.ХешСумма, " ", "");
+ КонецЕсли;
+ Возврат Результат;
+
+КонецФункции
+
+#Область ХранилищеНастроек
+
+Процедура ХранилищеСохранить(МенеджерХранилища, КлючОбъекта, КлючНастроек, Настройки,
+ ОписаниеНастроек, ИмяПользователя, ОбновитьПовторноИспользуемыеЗначения)
+
+ Если Не ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
+ Возврат;
+ КонецЕсли;
+
+ МенеджерХранилища.Сохранить(КлючОбъекта, КлючНастроек(КлючНастроек), Настройки,
+ ОписаниеНастроек, ИмяПользователя);
+
+ Если ОбновитьПовторноИспользуемыеЗначения Тогда
+ ОбновитьПовторноИспользуемыеЗначения();
+ КонецЕсли;
+
+КонецПроцедуры
+
+Функция ХранилищеЗагрузить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию,
+ ОписаниеНастроек, ИмяПользователя)
+
+ Результат = Неопределено;
+
+ Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
+ Результат = МенеджерХранилища.Загрузить(КлючОбъекта, КлючНастроек(КлючНастроек),
+ ОписаниеНастроек, ИмяПользователя);
+ КонецЕсли;
+
+ Если Результат = Неопределено Тогда
+ Результат = ЗначениеПоУмолчанию;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+Функция КлючНастроек(Знач Строка)
+ Возврат СократитьСтрокуКонтрольнойСуммой(Строка, 128);
+КонецФункции
+
+#КонецОбласти
\ No newline at end of file