mirror of
https://github.com/tormozit/RDT1C.git
synced 2025-12-17 05:04:11 +00:00
*Переработан код для реализации принципа "события на сервере" при включенном флажке "Запись на сервере" в не портативных вариантах
+Добавлена управляемая форма для тестирования (можно открыть интерфейсной панелью или назначить в качестве доп. формы обработки)
Настройка техножурнала
*Устранена несовместимость с режимом совместимости 8.3.11
Конструктор запроса
*Исправлена свежая ошибка при вводе фильтра доступных таблиц
*Исправлено вычисление квалификаторов полей
+Реализовано отображение квалификаторов полей
Подбор и обработка объектов
*Исправлена свежая ошибка закрытия формы с непустым списком выбранных обработок
Консоль запросов
*Исправлено обновление количества в строке дереве запросов при выполнении пакетного запроса кончающегося уничтожением таблицы
*Работа таблицы свойств строки результата приведена к единообразию с редактором строки табличного поля
Вывод строк табличного поля
*Исправлен вывод пустого результат из динамического списка с флажком "Только выделенные строки"
Редактор строки табличного поля
*Исправлена ошибка открытия в портативном варианте
Поиск дублей и замена ссылок
*Исправлено низкое качество поиска нечетким сравнением новой внешней компонентой
245 lines
19 KiB
Plaintext
245 lines
19 KiB
Plaintext
Перем ирПлатформа;
|
||
|
||
Процедура ОсновныеДействияФормыВыполнить(Кнопка)
|
||
|
||
КаталогВыгрузкиКонфигурации = ПолучитьИмяВременногоФайла();
|
||
СоздатьКаталог(КаталогВыгрузкиКонфигурации);
|
||
ТекстЛога = "";
|
||
// Выгружаем конфигурацию в файлы
|
||
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиКонфигурации + """ -Format Hierarchical", СтрокаСоединенияИнформационнойБазы(), ТекстЛога,,
|
||
"Выгрузка конфигурации в файлы");
|
||
Если Не Успех Тогда
|
||
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
|
||
Сообщить(ТекстЛога);
|
||
Возврат;
|
||
КонецЕсли;
|
||
//КаталогВыгрузкиКонфигурации = "Z:\Ир"; // Для отладки
|
||
|
||
СоздатьРасширение("e", КаталогВыгрузкиКонфигурации);
|
||
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
|
||
//Предупреждение("Не забудь вручную убрать флажок ""Проверять значения языка"" у расширения!");
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура СоздатьРасширение(Знач СуффиксВерсии, Знач КаталогВыгрузкиКонфигурации)
|
||
|
||
ВерсияРасширения = Метаданные.Версия + СуффиксВерсии;
|
||
|
||
ИмяРасширения = "Расширение1";
|
||
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("cfe");
|
||
ПолучитьОбщийМакет("ирШаблонРасширения").Записать(ИмяВременногоФайла);
|
||
ТекстЛога = "";
|
||
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadCfg """ + ИмяВременногоФайла + """ -Extension """ + ИмяРасширения + """", , ТекстЛога,,, Истина);
|
||
Если Не Успех Тогда
|
||
УдалитьФайлы(ИмяВременногоФайла);
|
||
Сообщить(ТекстЛога);
|
||
Возврат;
|
||
КонецЕсли;
|
||
УдалитьФайлы(ИмяВременногоФайла);
|
||
|
||
ТекстЛога = "";
|
||
КаталогВыгрузкиРасширения = ПолучитьИмяВременногоФайла();
|
||
СоздатьКаталог(КаталогВыгрузкиРасширения);
|
||
// Выгрузка расширения в файлы
|
||
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога,,
|
||
"Выгрузка расширения в файлы");
|
||
Если Не Успех Тогда
|
||
УдалитьФайлы(КаталогВыгрузкиРасширения);
|
||
Сообщить(ТекстЛога);
|
||
Возврат;
|
||
КонецЕсли;
|
||
|
||
// Скопируем все папки кроме Catalogs и Ext и файла ConfigDumpInfo.xml
|
||
Файлы = НайтиФайлы(КаталогВыгрузкиКонфигурации, "*");
|
||
Для Каждого Файл Из Файлы Цикл
|
||
Если Ложь
|
||
Или Файл.Имя = "Catalogs"
|
||
Или Файл.Имя = "Ext"
|
||
Или Не Файл.ЭтоКаталог()
|
||
Тогда
|
||
Продолжить;
|
||
КонецЕсли;
|
||
ФайлПриемник = Новый Файл(КаталогВыгрузкиРасширения + "\" + Файл.Имя);
|
||
Если Не ФайлПриемник.Существует() Тогда
|
||
СоздатьКаталог(ФайлПриемник.ПолноеИмя);
|
||
КонецЕсли;
|
||
ирОбщий.СкопироватьФайлыЛкс(КаталогВыгрузкиКонфигурации + "\" + Файл.Имя, КаталогВыгрузкиРасширения + "\" + Файл.Имя);
|
||
КонецЦикла;
|
||
|
||
// Во всех 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>");
|
||
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
|
||
ТекстовыйДокумент.Записать(ИмяФайла);
|
||
|
||
ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирИнтерфейсДляВстраивания\Ext\Module.bsl";
|
||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||
ТекстовыйДокумент.Прочитать(ИмяФайла);
|
||
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
|
||
ТекстФайла = СтрЗаменить(ТекстФайла, "// Версия модуля X.XX", "// Версия модуля " + Метаданные.Версия);
|
||
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
|
||
ТекстовыйДокумент.Записать(ИмяФайла);
|
||
|
||
ИмяФайла = КаталогВыгрузкиРасширения + "\Languages\Русский.xml";
|
||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||
ТекстовыйДокумент.Прочитать(ИмяФайла);
|
||
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
|
||
ТекстФайла = СтрЗаменить(ТекстФайла, "<Name>Русский</Name>", "<Name>Русский</Name><ObjectBelonging>Adopted</ObjectBelonging>");
|
||
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
|
||
ТекстовыйДокумент.Записать(ИмяФайла);
|
||
|
||
// Заменим элемент <ChildObjects> в файле Configuration.xml
|
||
ФайлКонфигурацииИсточника = КаталогВыгрузкиКонфигурации + "\Configuration.xml";
|
||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||
ТекстовыйДокумент.Прочитать(ФайлКонфигурацииИсточника);
|
||
ТекстФайлаИсточника = ТекстовыйДокумент.ПолучитьТекст();
|
||
ФайлКонфигурацииПриемника = КаталогВыгрузкиРасширения + "\Configuration.xml";
|
||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||
ТекстовыйДокумент.Прочитать(ФайлКонфигурацииПриемника);
|
||
ТекстФайлаПриемника = ТекстовыйДокумент.ПолучитьТекст();
|
||
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайлаПриемника, "<ChildObjects>", "</ChildObjects>", Ложь, Истина);
|
||
НаЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайлаИсточника, "<ChildObjects>", "</ChildObjects>", Ложь, Истина);
|
||
ТекстФайлаПриемника = СтрЗаменить(ТекстФайлаПриемника, ЧтоЗаменить, НаЧтоЗаменить);
|
||
ТекстФайлаПриемника = СтрЗаменить(ТекстФайлаПриемника, "<Version>4.00</Version>", "<Version>" + ВерсияРасширения + "</Version>");
|
||
ТекстФайлаПриемника = СтрЗаменить(ТекстФайлаПриемника, "<Interface>ирРазработчик</Interface>", "");
|
||
ТекстФайлаПриемника = СтрЗаменить(ТекстФайлаПриемника, "<Style>ирОсновной</Style>", "");
|
||
ТекстовыйДокумент.УстановитьТекст(ТекстФайлаПриемника);
|
||
ТекстовыйДокумент.Записать(ФайлКонфигурацииПриемника);
|
||
|
||
//Предупреждение(1);
|
||
|
||
// Загрузка расширения из файлов
|
||
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/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 и выше");
|
||
Отказ = Истина;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
ирПлатформа = ирКэш.Получить(); |