mirror of
https://github.com/tormozit/RDT1C.git
synced 2025-12-17 05:04:11 +00:00
*Исправлено в некоторых случаях потеря отрицательных чисел в колонках разницы числовых колонок
*Исправлена ошибка сравнения при наличии колонок с пустым синонимом
+Добавлен индикатор неуникальных строк для каждой таблицы
*Оптимизирован алгоритм сравнения таблиц
Консоль кода
*Исправлена ошибка вычисления выражений с параметрами командой "Вычислить"
*Исправлена генерация внешней обработки алгоритма при незаполненной настройке "Каталог объектов для отладки" для выполнения на клиенте в вариантах Расширение и Подсистема
Табличный документ
+Добавлена кнопка "Открыть в Excel" позволяющая быстро открыть табличный документ в EXCEL
+Теперь при сохранении файла с расширением не mxl его сразу предлагается открыть в сопоставленном приложении
+Добавлен флажок "Устанавливать "Содержит значение"" включенный по умолчанию для борьбы с проблемой обрезания лидирующих нулей при редактировании в EXCEL
Таблица значений
+Добавлена кнопка "Неуникальные" для обозначения неуникальных строк
+Добавлена команда "Передать"/"в таблицу БД"
Консоль запросов
+Для табличного поля результата добавлена кнопка "Неуникальные" для обозначения неуникальных строк
*Исправлена ошибка выполнения пакетного запроса с удалением временной таблицы в режиме дерева запроса
Динамический список
*Исправлено позиционирование на нужной строке независимого регистра сведений при открытии с параметрами
+Добавлены команды "Сравнить" и "Вывести строки"
Общее
+Добавлен общий модуль ирИнтерфейсныйДляВстраивания для слабой интеграции с конфигурацией
*Команда "Вывести в табличный документ" везде переименована в "Вывести строки"
В команде "Вывести строки"
+добавлена полная поддержка динамических списков
*Исправлен вывод идентификаторов без типов
*Исправлено долгое открытие в портативном варианте
*Добавлен флажок "В таблицу значений"
*Исправлена свежая невозможность ввода битых ссылок в полях ввода
Консоль компоновки
+В панели настроек компоновки добавлена закладка "Наборы данных" отображающая внешние наборы данных
Редактор пользователей
+В форме пользователя для списка ролей добавлена возможность множественного выделения и установки/снятия пометок
Загрузка табличных данных
+Добавлены флажки для отключения оперативного вывода ошибок
+Добавлена команда "Удалить успешные строки из таблицы значений
*Устранено требование заполненности всех полей ключа при поиске строки БД
+Реализовано кэширование поисков ссылок при конвертации значений
+Добавлен индикатор неуникальных строк таблицы значений на закладке "Сопоставление колонок"
+Добавлены поля количества не успешно и успешно загруженных строк
*Исправлена загрузка групп
*Недоступные для изменения поля таблицы БД теперь нельзя помечать
Адаптация расширения
*Исправлена некорректное выполнение адаптации
Редактор объекта БД
*Исправлено обновление заголовков некоторых страниц основной панели
Менеджер табличного поля
+Добавлено много универсальных команд
Анализ техножурнала
*Исправлено некорректное чтение свойств lka, lkp, lkpid, lksrc
263 lines
20 KiB
Plaintext
263 lines
20 KiB
Plaintext
Перем ирПлатформа;
|
||
|
||
Процедура ОсновныеДействияФормыВыполнить(Кнопка)
|
||
|
||
КаталогВыгрузкиКонфигурации = ПолучитьИмяВременногоФайла();
|
||
СоздатьКаталог(КаталогВыгрузкиКонфигурации);
|
||
ТекстЛога = "";
|
||
// Выгружаем конфигурацию в файлы
|
||
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиКонфигурации + """ -Format Hierarchical", СтрокаСоединенияИнформационнойБазы(), ТекстЛога,,
|
||
"Выгрузка конфигурации в файлы");
|
||
Если Не Успех Тогда
|
||
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
|
||
Сообщить(ТекстЛога);
|
||
Возврат;
|
||
КонецЕсли;
|
||
//КаталогВыгрузкиКонфигурации = "Z:\Ир"; // Для отладки
|
||
|
||
СоздатьРасширение("ea", КаталогВыгрузкиКонфигурации, Истина);
|
||
СоздатьРасширение("e", КаталогВыгрузкиКонфигурации);
|
||
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
|
||
Предупреждение("Не забудь вручную убрать флажок ""Проверять значения языка"" у расширения!");
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура СоздатьРасширение(Знач СуффиксВерсии, Знач КаталогВыгрузкиКонфигурации, СИнтерфейсом = Ложь)
|
||
|
||
ВерсияРасширения = Метаданные.Версия + СуффиксВерсии;
|
||
|
||
ИмяРасширения = "Расширение1";
|
||
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("cfe");
|
||
ПолучитьОбщийМакет("ирШаблонРасширения").Записать(ИмяВременногоФайла);
|
||
ТекстЛога = "";
|
||
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadCfg """ + ИмяВременногоФайла + """ -Extension """ + ИмяРасширения + """", , ТекстЛога);
|
||
Если Не Успех Тогда
|
||
УдалитьФайлы(ИмяВременногоФайла);
|
||
Сообщить(ТекстЛога);
|
||
Возврат;
|
||
КонецЕсли;
|
||
УдалитьФайлы(ИмяВременногоФайла);
|
||
|
||
ТекстЛога = "";
|
||
КаталогВыгрузкиРасширения = ПолучитьИмяВременногоФайла();
|
||
СоздатьКаталог(КаталогВыгрузкиРасширения);
|
||
// Выгрузка расширения в файлы
|
||
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога,,
|
||
"Выгрузка расширения в файлы");
|
||
Если Не Успех Тогда
|
||
УдалитьФайлы(КаталогВыгрузкиРасширения);
|
||
Сообщить(ТекстЛога);
|
||
Возврат;
|
||
КонецЕсли;
|
||
|
||
// Скопируем все папки кроме 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>");
|
||
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
|
||
ТекстовыйДокумент.Записать(ИмяФайла);
|
||
|
||
Если СИнтерфейсом Тогда
|
||
ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирИнтерфейс.xml";
|
||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||
ТекстовыйДокумент.Прочитать(ИмяФайла);
|
||
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
|
||
ТекстФайла = СтрЗаменить(ТекстФайла, "<Name>ирИнтерфейс</Name>", "<Name>ирИнтерфейс</Name><ObjectBelonging>Adopted</ObjectBelonging>");
|
||
ТекстФайла = СтрЗаменить(ТекстФайла, "<Comment>Версия</Comment>", "<Comment>" + Метаданные.Версия + "</Comment>");
|
||
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
|
||
ТекстовыйДокумент.Записать(ИмяФайла);
|
||
|
||
ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирИнтерфейс\Ext\Module.bsl";
|
||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||
ТекстовыйДокумент.Прочитать(ИмяФайла);
|
||
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
|
||
ТекстФайла = СтрЗаменить(ТекстФайла, "//&Вместо", "&Вместо");
|
||
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
|
||
ТекстовыйДокумент.Записать(ИмяФайла);
|
||
|
||
ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирИнтерфейсОбъявление\Ext\Module.bsl";
|
||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||
ТекстовыйДокумент.Прочитать(ИмяФайла);
|
||
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
|
||
ТекстФайла = СтрЗаменить(ТекстФайла, "// Версия модуля X.XX", "// Версия модуля " + Метаданные.Версия);
|
||
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
|
||
ТекстовыйДокумент.Записать(ИмяФайла);
|
||
КонецЕсли;
|
||
|
||
// Заменим элемент <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 и выше");
|
||
Отказ = Истина;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
ирПлатформа = ирКэш.Получить(); |