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 - ForItem - 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 + + + + КаталогИсходногоКодаКонфигурацииНачалоВыбора + + <v8:item> @@ -866,6 +877,22 @@ <v8:Type>xs:boolean</v8:Type> </Type> </Attribute> + <Attribute name="КаталогИсходногоКодаКонфигурации" id="20"> + <Title> + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Каталог исходного кода конфигурации</v8:content> + </v8:item> + + + 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