RDT1C/CommonForms/ирАдминистративнаяРегистрацияCOM/Ext/Form/Module.bsl
2016-12-04 00:14:16 +03:00

138 lines
8.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Процедура КнопкаВыполнитьНажатие(Кнопка)
Для Каждого Строка Из ТаблицаCOMКомпонент Цикл
Если Не Строка.Установить Тогда
Продолжить;
КонецЕсли;
ИмяКомпоненты = Строка.Идентификатор;
ФайлКомпоненты = Новый Файл(КаталогУстановки + "\" + ИмяКомпоненты + ".dll");
ДвоичныеДанные = ирКэш.Получить().ПолучитьМакет(ИмяКомпоненты);
Если ТипЗнч(ДвоичныеДанные) = Тип("ДвоичныеДанные") Тогда
Попытка
ДвоичныеДанные.Записать(ФайлКомпоненты.ПолноеИмя);
Исключение
Сообщить("Файл """ + ФайлКомпоненты.ПолноеИмя + """ недоступен для изменения и не был перезаписан.""", СтатусСообщения.Внимание);
Продолжить;
КонецПопытки;
КонецЕсли;
Если Не ФайлКомпоненты.Существует() Тогда
Сообщить("Для компоненты " + ИмяКомпоненты + " не обнаружен файл """ + ФайлКомпоненты.ПолноеИмя + """. ", СтатусСообщения.Внимание);
Продолжить;
КонецЕсли;
Если Не Строка.ВспомогательныйФайл Тогда
Результат = ирКэш.Получить().ЗарегистрироватьПолучитьCOMОбъект(Строка.ProgID, ФайлКомпоненты.ПолноеИмя, Истина, Строка.ИмяТипаВК);
КонецЕсли;
КонецЦикла;
ОбновитьТаблицу();
КонецПроцедуры
Процедура ОбновитьТаблицу()
ТаблицаCOMКомпонент.Очистить();
СтрокаКомпоненты = ТаблицаCOMКомпонент.Добавить();
СтрокаКомпоненты.Идентификатор = "FM20ENU";
СтрокаКомпоненты.ProgID = "Forms.TextBox.1";
СтрокаКомпоненты.ЗависящаяФункцияПодсистемы = "Форма списка слов контекстной подсказки и форма индекса синтакс-помощника";
СтрокаКомпоненты.ВспомогательныйФайл = Истина;
СтрокаКомпоненты = ТаблицаCOMКомпонент.Добавить();
СтрокаКомпоненты.Идентификатор = "FM20";
СтрокаКомпоненты.ProgID = "Forms.TextBox.1";
СтрокаКомпоненты.ЗависящаяФункцияПодсистемы = "Форма списка слов контекстной подсказки и форма индекса синтакс-помощника";
СтрокаКомпоненты = ТаблицаCOMКомпонент.Добавить();
СтрокаКомпоненты.Идентификатор = "TLBINF32";
СтрокаКомпоненты.ProgID = "TLI.TLIApplication";
СтрокаКомпоненты.ЗависящаяФункцияПодсистемы = "Вычисление контекста COM объектов";
СтрокаКомпоненты = ТаблицаCOMКомпонент.Добавить();
СтрокаКомпоненты.Идентификатор = "GoldParser";
СтрокаКомпоненты.ProgID = "GOLDParserEngine.GOLDParser";
СтрокаКомпоненты.ЗависящаяФункцияПодсистемы = "Режим дерева запроса в консоли запросов и шаблоны текста";
СтрокаКомпоненты = ТаблицаCOMКомпонент.Добавить();
СтрокаКомпоненты.Идентификатор = "Zlib1";
СтрокаКомпоненты.ProgID = "GameWithFire.ADOUtils";
СтрокаКомпоненты.ЗависящаяФункцияПодсистемы = "Преобразование ADODB.RecordSet в результата запроса и быстрая выгрузка ADODB.RecordSet в таблицу значений";
СтрокаКомпоненты.ИмяТипаВК = "ADOUtils";
СтрокаКомпоненты.ВспомогательныйФайл = Истина;
СтрокаКомпоненты = ТаблицаCOMКомпонент.Добавить();
СтрокаКомпоненты.Идентификатор = "GameWithFire";
СтрокаКомпоненты.ProgID = "GameWithFire.ADOUtils";
СтрокаКомпоненты.ЗависящаяФункцияПодсистемы = "Преобразование ADODB.RecordSet в результата запроса и быстрая выгрузка ADODB.RecordSet в таблицу значений";
СтрокаКомпоненты.ИмяТипаВК = "ADOUtils";
Для Каждого Строка Из ТаблицаCOMКомпонент Цикл
Макет = ирКэш.Получить().ПолучитьМакет(Строка.Идентификатор);
МетаМакет = ирКэш.Получить().Метаданные().Макеты.Найти(Строка.Идентификатор);
Строка.Описание = МетаМакет.Комментарий;
Строка.ИмяФайла = Строка.Идентификатор + ".dll";
Если ЗначениеЗаполнено(Строка.ProgID) Тогда
Пустышка = ирКэш.Получить().ПолучитьПроверитьCOMОбъект(Строка.ProgID, Строка.ИмяТипаВК);
Строка.Установлена = (Пустышка <> Неопределено);
КонецЕсли;
Файл = Новый Файл(КаталогУстановки + "\" + Строка.ИмяФайла);
Строка.ФайлОбнаружен = Ложь
Или ТипЗнч(ирКэш.Получить().ПолучитьМакет(Строка.Идентификатор)) = Тип("ДвоичныеДанные")
Или Файл.Существует()
;
Строка.Установить = Истина
И Не Строка.Установлена
//И Строка.ФайлОбнаружен
;
Пустышка = Неопределено;
КонецЦикла;
КонецПроцедуры
Процедура ПутьУстановкиНачалоВыбора(Элемент, СтандартнаяОбработка)
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
ВыборФайла.Каталог = Элемент.Значение;
Если Не ВыборФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
Элемент.Значение = ВыборФайла.Каталог;
КаталогУстановкиПриИзменении(Элемент);
КонецПроцедуры
Процедура ПриОткрытии()
КаталогУстановки = КаталогПрограммы();
ОбновитьТаблицу();
КонецПроцедуры
Процедура ПутьУстановкиОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗапуститьПриложение(Элемент.Значение);
КонецПроцедуры
Процедура ТаблицаCOMКомпонентПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
Если Не ДанныеСтроки.Установлена Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоРозовый;
КонецЕсли;
КонецПроцедуры
Процедура КаталогУстановкиПриИзменении(Элемент)
ирНеглобальный.ПолеВводаСИсториейВыборариИзмененииЛкс(Элемент, "ирАдминистративнаяРегистрацияCOM");
ОбновитьТаблицу();
КонецПроцедуры
Процедура КаталогУстановкиНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
ирНеглобальный.ПолеВводаСИсториейВыбора_НачалоВыбораИзСпискаЛкс(Элемент, "ирАдминистративнаяРегистрацияCOM");
КонецПроцедуры