mirror of
https://github.com/tormozit/RDT1C.git
synced 2025-12-17 05:04:11 +00:00
138 lines
8.6 KiB
Plaintext
138 lines
8.6 KiB
Plaintext
|
||
Процедура КнопкаВыполнитьНажатие(Кнопка)
|
||
|
||
Для Каждого Строка Из Таблица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");
|
||
|
||
КонецПроцедуры
|