&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //Если Не ирКэш.ЛиЭтоРасширениеКонфигурацииЛкс() Тогда // Сообщить("Операция доступна только в варианте Расширение"); // Отказ = Истина; // Возврат; //КонецЕсли; Элементы.ФормаВыполнить.Доступность = ирКэш.ЛиЭтоРасширениеКонфигурацииЛкс(); ЭтаФорма.ОткрыватьАдаптациюПриОбновлении = ХранилищеОбщихНастроек.Загрузить(, "ирАдаптацияРасширения.ОткрыватьАдаптациюПриОбновлении",, ирКэш.ИмяПродукта()); ИмяПользователяНовое = ХранилищеОбщихНастроек.Загрузить(, "ирАдаптацияРасширения.ИмяПользователя",, ирКэш.ИмяПродукта()); Если ИмяПользователяНовое = Неопределено Тогда СохранитьНастройкиАдаптации(Истина); КонецЕсли; Если ИмяПользователяНовое <> Неопределено Тогда ЭтаФорма.ИмяПользователя = ИмяПользователяНовое; Иначе ЭтаФорма.ИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; КонецЕсли; //ПометкиКоманд = ХранилищеОбщихНастроек.Загрузить(, "ирАдаптацияРасширения.ПометкиКоманд",, ирКэш.ИмяПродукта()); ПометкиКоманд = Неопределено; ПодключитьОтладкуВнешнихОбработокБСПНовое = ХранилищеОбщихНастроек.Загрузить(, "ирАдаптацияРасширения.ПодключитьОтладкуВнешнихОбработокБСП",, ирКэш.ИмяПродукта()); Если ПодключитьОтладкуВнешнихОбработокБСПНовое <> Неопределено Тогда ЭтаФорма.ПодключитьОтладкуВнешнихОбработокБСП = ПодключитьОтладкуВнешнихОбработокБСПНовое; Иначе ЭтаФорма.ПодключитьОтладкуВнешнихОбработокБСП = Истина; КонецЕсли; //ПодключитьОтладкуОтчетовНовое = ХранилищеОбщихНастроек.Загрузить(, "ирАдаптацияРасширения.ПодключитьОтладкуОтчетов",, ирКэш.ИмяПродукта()); //Если ПодключитьОтладкуОтчетовНовое <> Неопределено Тогда // ЭтаФорма.ПодключитьОтладкуОтчетов = ПодключитьОтладкуОтчетовНовое; //Иначе // ЭтаФорма.ПодключитьОтладкуОтчетов = Истина; //КонецЕсли; ЭтаФорма.ПодключитьОтладкуОтчетов = Ложь; ЭтаФорма.СгенерироватьРольВсеПрава = ХранилищеОбщихНастроек.Загрузить(, "ирАдаптацияРасширения.СгенерироватьРольВсеПрава",, ирКэш.ИмяПродукта()); СписокСочетанийКлавиш = Новый Массив; Для Каждого МетаКоманда Из Метаданные.ОбщиеКоманды Цикл Если Истина И Метаданные.Подсистемы.ИнструментыРазработчикаTormozit.Состав.Содержит(МетаКоманда) И МетаКоманда.Группа.Получить() = Метаданные.ГруппыКоманд.ирКоманднаяПанельФормы Тогда Если СписокСочетанийКлавиш.Найти(МетаКоманда.Имя) <> Неопределено Тогда СтрокаГорячейКлавиши = ГлобальныеСочетанияКлавиш.Добавить(); СтрокаГорячейКлавиши.ИмяКоманды = МетаКоманда.Имя; СтрокаГорячейКлавиши.СинонимКоманды = МетаКоманда.Представление(); СтрокаГорячейКлавиши.Подсказка = МетаКоманда.Подсказка; СтрокаГорячейКлавиши.СочетаниеКлавиш = ирОбщий.ПредставлениеСочетанияКлавишЛкс(МетаКоманда.СочетаниеКлавиш); Иначе СтрокаКоманды = СписокКоманд.Добавить(); СтрокаКоманды.ИмяКоманды = МетаКоманда.Имя; СтрокаКоманды.СинонимКоманды = МетаКоманда.Представление(); СтрокаКоманды.Подсказка = МетаКоманда.Подсказка; //Если Истина // И ПометкиКоманд <> Неопределено // И ПометкиКоманд.Свойство(СтрокаКоманды.ИмяКоманды) //Тогда // СтрокаКоманды.Подключить = ПометкиКоманд[СтрокаКоманды.ИмяКоманды]; //Иначе // СтрокаКоманды.Подключить = Ложь // Или СтрокаКоманды.ИмяКоманды = Метаданные.ОбщиеКоманды.ирРедактироватьОбъект.Имя // Или СтрокаКоманды.ИмяКоманды = Метаданные.ОбщиеКоманды.ирОбработатьОбъекты.Имя // Или СтрокаКоманды.ИмяКоманды = Метаданные.ОбщиеКоманды.ирРедактироватьИзмененияНаУзле.Имя; //КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; СписокКоманд.Сортировать("СинонимКоманды"); ирОбщий.ЗаполнитьСписокАдминистраторовБазыЛкс(Элементы.ИмяПользователя.СписокВыбора); Если Параметры.Автооткрытие Тогда ирОбщий.СообщитьЛкс("Открыть это окно можно командой ""Адаптация расширения"" в разделе ""Инструменты разработчика""/""Сервис"""); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ВыполнитьОперацию(Команда) ЭтаФорма.ОткрыватьАдаптациюПриОбновлении = Истина; СохранитьНастройкиАдаптации(); Если ирОбщий.АдаптироватьРасширениеЛкс(ИмяПользователя, ПарольПользователя) Тогда Закрыть(Истина); ЗавершитьРаботуСистемы(, Истина, ирОбщий.ПараметрыЗапускаСеансаДляПодключенияКТекущемуОтладчикуЛкс()); КонецЕсли; КонецПроцедуры &НаСервере Процедура СохранитьНастройкиАдаптации(ПустуюСтруктуру = Ложь) ПометкиКоманд = Новый Структура; Если Не ПустуюСтруктуру Тогда Для Каждого СтрокаКоманды Из СписокКоманд Цикл ПометкиКоманд.Вставить(СтрокаКоманды.ИмяКоманды, СтрокаКоманды.Подключить); КонецЦикла; КонецЕсли; ХранилищеОбщихНастроек.Сохранить(, "ирАдаптацияРасширения.ОткрыватьАдаптациюПриОбновлении", ОткрыватьАдаптациюПриОбновлении,, ирКэш.ИмяПродукта()); ХранилищеОбщихНастроек.Сохранить(, "ирАдаптацияРасширения.ИмяПользователя", ИмяПользователя,, ирКэш.ИмяПродукта()); ХранилищеОбщихНастроек.Сохранить(, "ирАдаптацияРасширения.ПометкиКоманд", ПометкиКоманд,, ирКэш.ИмяПродукта()); ХранилищеОбщихНастроек.Сохранить(, "ирАдаптацияРасширения.ПодключитьОтладкуВнешнихОбработокБСП", ПодключитьОтладкуВнешнихОбработокБСП,, ирКэш.ИмяПродукта()); ХранилищеОбщихНастроек.Сохранить(, "ирАдаптацияРасширения.ПодключитьОтладкуОтчетов", ПодключитьОтладкуОтчетов,, ирКэш.ИмяПродукта()); ХранилищеОбщихНастроек.Сохранить(, "ирАдаптацияРасширения.СгенерироватьРольВсеПрава", СгенерироватьРольВсеПрава,, ирКэш.ИмяПродукта()); КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) #Если ТонкийКлиент Или ВебКлиент Тогда Отказ = Истина; ОткрытьФорму("Обработка.ирПортативный.Форма.ПерезапускСеансаУправляемая"); #КонецЕсли КонецПроцедуры &НаКлиенте Процедура ПриЗакрытии(ЗавершениеРаботы) Попытка СохранитьНастройкиАдаптации(); Исключение Если Не ЗавершениеРаботы Тогда ВызватьИсключение; КонецЕсли; КонецПопытки; КонецПроцедуры