RDT1C/CommonForms/ирВыпускВариантаРасширение/Ext/Form/Module.bsl
Администратор 1d5e608a69 +Добавлен инструмент "Поиск данных"
Редактор объекта БД
        *При повторном открытии по ссылке объекта теперь всегда активизируется уже открытая форма редактора
    Структура хранения БД
        *Восстановлено добавление служебных таблиц БД при включении вычисления размеров без отбора
    Конструктор запроса
        Конструктор выражения запроса
            +При двойном клике по доступному полю оно теперь вставляется в текст, замещая текущее выделение, и становится выделением
            +При двойном клике по функции теперь она вставляет в текст, обрамляя текущее выделение, и становится выделением
            +При открытии имени поля оно теперь сразу выделяется в тексте и выполняется позиционирование на нем в списке доступных полей
            *Исправлены некорректные сообщения об ошибках для условия с агрегатными функциями
        +Реализовано восстановление текущих строк в списках доступных полей при их обновлении
        +Для доступных полей добавлена команда "Перейти" в контекстном меню
        +Добавлена команда "Найти в списке доступных полей" для выбранных полей, элементов отбора, группировок
        +При генерации текста пакетного запроса теперь в начало добавляется комментарий с рекомендацией использовать конструктор запроса ИР
        *Исправлена ошибка разбора текста запроса в некоторых случаях с секцией ВЫБРАТЬ построителя перед секцией ИЗ запроса
        *Теперь игнорируются строки комментариев запроса состоящие только из символа "/"
        *Исправлена ошибка при выборе поля в индекс создаваемой временной таблицы
    Управление службами серверов 1С
        *Исправлено некорректное считывание номера порта и пароля Http отладки
        *Исправлено некорректное преобразование номера порта Http отладки в строку при применении настроек
    Интерфейсная панель
        *Выбор и просмотр подсистем сделан немодальным
        +В контекстном меню объектов метаданных добавлена команда "Исследовать метаданные"
    Общее
        +Во многих инструментах добавлена команда "Открыть объект метаданных" с пиктограммой интерфейсной панели
        *Исправлена проблема с регистрацией 64-разрядной компоненты DynamicWrapperX
        +Обновлено внутреннее описание платформы от версии 8.3.10
        +При интерактивном выводе данных табличного поля в табличных документ, в т.ч. для сравнения, теперь задается вопрос "Быстрый вывод (без оформления)?"
        +В форме списка значений подключено расширенное представление значений в ячейках
        +В форме массива подключено расширенное представление значений в ячейках
        +Конвертор синтакс-помощника встроен в подсистему в виде общей формы "Обновление описания платформы" и теперь может автоматически обновлять таблицы описания платформы в текущей конфигурации
    Консоль запросов
        +Команда "Перейти к определению" дерева запроса для постоянных таблиц теперь выполняет переход к объекту метаданных
        +Реализован подбор типа периода при повторном открытии редактора периода
        +Переключателю панели результата назначено сочетание клавиш CTRL+D
        +При включении автосохранения в заголовке формы теперь отображается слово "Автосохранение"
        *Исправлена проблема отсутствия сигнализации пользователю недоступности файла при его сохранении
        +При активизации строки дерева запроса, если включен пакетный результат, то активизируется соответствующий элемент результата
        +Для текущего параметра добавлена команда "найти в тексте"
    Управление COM классами 1C
        +Для списка доступных версий платформы добавлена кнопка Обновить
    Подбор и обработка объектов
        +Реализовано отображение признака "Измерение" в доступных полях
    Консоль компоновки
        *Исправлена проблема отсутствия сигнализации пользователю недоступности файла при его сохранении
    Консоль кода
        *Исправлена проблема отсутствия сигнализации пользователю недоступности файла при его сохранении
    Редактор хранилищ настроек
        *В портативном варианте исправлена недоступность для изменения поля "Имя содержит"
    Исследователь объектов
        +При двойном щелчке по значению объекта метаданных выполняется переход к нему в интерфейсной панели
    Контекстная подсказка
        +Команда "Перейти к определению" (F12) на обращениях к метаданным и их производным типам и таблицам открывает интерфейсную панель и позиционируется на нужном объекте
    Редактор констант
        +Увеличена максимальная разрядность дробной части значений до 9 знаков
    Подбор и обработка объектов
        *Исправлена невидимость параметров-ссылок в портативном варианте при запуске алгоритма без проверки
2017-07-10 21:30:06 +03:00

229 lines
18 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.

Перем ирПлатформа;
Процедура ОсновныеДействияФормыВыполнить(Кнопка)
ИмяРасширения = "Расширение1";
ТекстЛога = "";
ВерсияРасширения = Метаданные.Версия + "e";
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("cfe");
ПолучитьОбщийМакет("ирШаблонРасширения").Записать(ИмяВременногоФайла);
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadCfg """ + ИмяВременногоФайла + """ -Extension """ + ИмяРасширения + """", , ТекстЛога);
Если Не Успех Тогда
УдалитьФайлы(ИмяВременногоФайла);
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
УдалитьФайлы(ИмяВременногоФайла);
КаталогВыгрузкиРасширения = ПолучитьИмяВременногоФайла();
СоздатьКаталог(КаталогВыгрузкиРасширения);
// Выгрузка расширения в файлы
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога,,
"Выгрузка расширения в файлы");
Если Не Успех Тогда
УдалитьФайлы(КаталогВыгрузкиРасширения);
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
КаталогВыгрузкиКонфигурации = ПолучитьИмяВременногоФайла();
СоздатьКаталог(КаталогВыгрузкиКонфигурации);
ТекстЛога = "";
// Выгружаем конфигурацию в файлы
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиКонфигурации + """ -Format Hierarchical", СтрокаСоединенияИнформационнойБазы(), ТекстЛога,,
"Выгрузка конфигурации в файлы");
Если Не Успех Тогда
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
//КаталогВыгрузкиКонфигурации = "Z:\Ир"; // Для отладки
// Скопируем все папки кроме Catalogs и Ext и файла ConfigDumpInfo.xml
Файлы = НайтиФайлы(КаталогВыгрузкиКонфигурации, "*");
Для Каждого Файл Из Файлы Цикл
Если Ложь
Или Файл.Имя = "Catalogs"
Или Файл.Имя = "Ext"
Или Не Файл.ЭтоКаталог()
Тогда
Продолжить;
КонецЕсли;
ФайлПриемник = Новый Файл(КаталогВыгрузкиРасширения + "\" + Файл.Имя);
Если Не ФайлПриемник.Существует() Тогда
СоздатьКаталог(ФайлПриемник.ПолноеИмя);
КонецЕсли;
ирОбщий.СкопироватьФайлыЛкс(КаталогВыгрузкиКонфигурации + "\" + Файл.Имя, КаталогВыгрузкиРасширения + "\" + Файл.Имя);
КонецЦикла;
// Переименуем язык Русский->ирРусский
ИмяФайла = КаталогВыгрузкиРасширения + "\Languages\Русский.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяФайла);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ТекстФайла = СтрЗаменить(ТекстФайла, "<Name>Русский</Name>", "<Name>ирРусский</Name>");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(ИмяФайла);
// Во всех CommonCommands удалить <CommandParameterType>...</CommandParameterType>
Файлы = НайтиФайлы(КаталогВыгрузкиРасширения + "\CommonCommands", "*.xml");
Для Каждого Файл Из Файлы Цикл
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(Файл.ПолноеИмя);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайла, "<CommandParameterType>", "</CommandParameterType>", Ложь, Истина);
ТекстФайла = СтрЗаменить(ТекстФайла, ЧтоЗаменить, "");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(Файл.ПолноеИмя);
КонецЦикла;
// Из SubSystems вырезаем фрагменты <xr:Item xsi:type="xr:MDObjectRef">Catalog.ирОбъектыДляОтладки</xr:Item>
Файлы = НайтиФайлы(КаталогВыгрузкиРасширения + "\SubSystems", "*.xml");
Для Каждого Файл Из Файлы Цикл
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(Файл.ПолноеИмя);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ТекстФайла = СтрЗаменить(ТекстФайла, "<xr:Item xsi:type=""xr:MDObjectRef"">Catalog.ирАлгоритмы</xr:Item>", "");
ТекстФайла = СтрЗаменить(ТекстФайла, "<xr:Item xsi:type=""xr:MDObjectRef"">Catalog.ирКомандаРедактироватьОбъект</xr:Item>", "");
ТекстФайла = СтрЗаменить(ТекстФайла, "<xr:Item xsi:type=""xr:MDObjectRef"">Catalog.ирОбъектыДляОтладки</xr:Item>", "");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(Файл.ПолноеИмя);
КонецЦикла;
// У общего модуля ирГлобальный убираем флажок Сервер
ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирГлобальный.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяФайла);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ТекстФайла = СтрЗаменить(ТекстФайла, "<Server>true</Server>", "<Server>false</Server>");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(ИмяФайла);
//// Скопируем глобальные методы в общий модуль ирОтладка
//ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирГлобальный\Ext\Module.bsl";
//ТекстовыйДокумент = Новый ТекстовыйДокумент;
//ТекстовыйДокумент.Прочитать(ИмяФайла);
//ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
//ТекстМетодов = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайла, "#Область ГлобальныеПортативныеМетоды", "#КонецОбласти", Ложь, Истина);
//ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирОтладка\Ext\Module.bsl";
//ТекстовыйДокумент = Новый ТекстовыйДокумент;
//ТекстовыйДокумент.Прочитать(ИмяФайла);
//ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
//ТекстФайла = ТекстФайла + ТекстМетодов;
//ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
//ТекстовыйДокумент.Записать(ИмяФайла);
// У общего модуля ирПривилегированный убираем флажок Привилегированный
ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирПривилегированный.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяФайла);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ТекстФайла = СтрЗаменить(ТекстФайла, "<Privileged>true</Privileged>", "<Privileged>false</Privileged>");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(ИмяФайла);
// У подсистемы ИнструментыРазработчикаTormozit обновим версию
ИмяФайла = КаталогВыгрузкиРасширения + "\SubSystems\ИнструментыРазработчикаTormozit.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяФайла);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайла, "<Comment>", "</Comment>", Ложь, Истина);
ТекстФайла = СтрЗаменить(ТекстФайла, ЧтоЗаменить, "<Comment>" + ВерсияРасширения + "</Comment>");
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайла, "<v8:content>Инструменты разработчика ", "</v8:content>", Ложь, Истина);
ТекстФайла = СтрЗаменить(ТекстФайла, ЧтоЗаменить, "<v8:content>Инструменты разработчика " + ВерсияРасширения + "</v8:content>");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(ИмяФайла);
// Заменим элемент <ChildObjects> в файле Configuration.xml
ФайлКонфигурацииИсточника = КаталогВыгрузкиКонфигурации + "\Configuration.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ФайлКонфигурацииИсточника);
ТекстФайлаИсточника = ТекстовыйДокумент.ПолучитьТекст();
ФайлКонфигурацииПриемника = КаталогВыгрузкиРасширения + "\Configuration.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ФайлКонфигурацииПриемника);
ТекстФайлаПриемника = ТекстовыйДокумент.ПолучитьТекст();
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайлаПриемника, "<ChildObjects>", "</ChildObjects>", Ложь, Истина);
НаЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайлаИсточника, "<ChildObjects>", "</ChildObjects>", Ложь, Истина);
ТекстФайлаПриемника = СтрЗаменить(ТекстФайлаПриемника, ЧтоЗаменить, НаЧтоЗаменить);
ТекстФайлаПриемника = СтрЗаменить(ТекстФайлаПриемника, "<Version>4.00</Version>", "<Version>" + ВерсияРасширения + "</Version>");
ТекстФайлаПриемника = СтрЗаменить(ТекстФайлаПриемника, "<ScriptVariant>Russian</ScriptVariant>", "<ScriptVariant>Russian</ScriptVariant><DefaultLanguage>Language.Русский</DefaultLanguage>"); // Без этого многоязычные строки все будут пустыми
ТекстовыйДокумент.УстановитьТекст(ТекстФайлаПриемника);
ТекстовыйДокумент.Записать(ФайлКонфигурацииПриемника);
// Загрузка расширения из файлов
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadConfigFromFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога,,
"Загрузка расширения из файлов");
УдалитьФайлы(КаталогВыгрузкиРасширения);
Если Не Успех Тогда
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
//// Выгружаем расширение в файлы
//Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога);
//Если Не Успех Тогда
// УдалитьФайлы(КаталогВыгрузкиРасширения);
// Сообщить(ТекстЛога);
// Возврат;
//КонецЕсли;
//ФайлКонфигурацииИсточника = КаталогВыгрузкиРасширения + "\Configuration.xml";
//ТекстовыйДокумент = Новый ТекстовыйДокумент;
//ТекстовыйДокумент.Прочитать(ФайлКонфигурацииИсточника);
//ТекстФайлаИсточника = ТекстовыйДокумент.ПолучитьТекст();
//Предупреждение(1);
//ТекстФайлаИсточника = СтрЗаменить(ТекстФайлаИсточника, "<DefaultLanguage>Language.ирРусский</DefaultLanguage>", ""); // На первом проходе в 8.3.10 невозможно сделать
//ТекстовыйДокумент.УстановитьТекст(ТекстФайлаИсточника);
//ТекстовыйДокумент.Записать(ФайлКонфигурацииИсточника);
//
//// Загружаем расширение из файлов
//Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadConfigFromFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога);
//Если Не Успех Тогда
// УдалитьФайлы(КаталогВыгрузкиРасширения);
// Сообщить(ТекстЛога);
// Возврат;
//КонецЕсли;
// Выгружаем расширение
КонечныйФайл = Каталог + "\ИР " + Метаданные.Версия + ".cfe";
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpCfg """ + КонечныйФайл + """ -Extension """ + ИмяРасширения + """", , ТекстЛога);
Если Не Успех Тогда
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
УдалитьФайлы(КаталогВыгрузкиРасширения);
Предупреждение("Не забудь вручную убрать флажок ""Проверять значения языка"" у расширения!");
КонецПроцедуры
Процедура КаталогНачалоВыбора(Элемент, СтандартнаяОбработка)
ирОбщий.ВыбратьКаталогВФормеЛкс(Каталог);
КонецПроцедуры
Процедура ПриЗакрытии()
СохранитьЗначение("ирВыпускВариантаРасширение.Каталог", Каталог);
КонецПроцедуры
Процедура ПриОткрытии()
Каталог = ВосстановитьЗначение("ирВыпускВариантаРасширение.Каталог");
КонецПроцедуры
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ВерсияПлатформы = ирПлатформа.ВерсияПлатформы;
Если ВерсияПлатформы < 803010 Тогда
Сообщить("Поддерживается только платформа 8.3.10 и выше");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
ирПлатформа = ирКэш.Получить();