mirror of
https://github.com/tormozit/RDT1C.git
synced 2025-12-17 13:14:11 +00:00
*Исправлена ошибка при установке несуществующей таблицы БД
*Исправлена попытка прямой установки свойства "ссылка" при загрузке в таблицу БД
*Исправлена ошибка при неуспешном поиске ссылки документа при конвертации
*Исправлена свежее не сохранение списка настроек при смене таблица БД
*Исправлена ошибка при выборе справочника с общими реквизитами
*Исправлено неоправданное замедление из-за частого обновления счетчиков отображаемых на форме
*Исправлена проблема невидимости параметров событий в алгоритмах
*Исправлено не заполнение синонимов колонок табличного документа при обновлении его колонок по таблице значений
+Добавлена страница описания
Интерфейсная панель
*Исправлена ошибка нажатия на кнопку "Количество строк"
Консоль кода
+Добавлена команда "Вставка"/ "Указать тип переменной" для контекстной подсказки
+Реализовано выполнение алгоритма через внешнюю обработку на сервере
Общее
*Исправлена потеря полем ввода расширенного типа при редактировании через выбор ячейки табличного поля
*Улучшена конвертация представлений документов в ссылки
*Ускорено построение внутренней таблицы таблиц БД
*В параметрах вывода строк табличного поля работа флажка "Отображать пустые" приведена в соответствие с работой режима в табличном поле
*В параметрах вывода строк табличного поля исправлена работа выключенного флажка "Встроить значения в расшифровки"
*Отображение пустых значений теперь отображает Ложь как "Нет", 0 как "0"
+Реализовано расширенное представление значений типа ТаблицаЗначений при компоновке в табличный документ
Консоль запросов
+В команде параметров "Заменить на ЗНАЧЕНИЕ" добавлена поддержка типов ВидДвиженияНакопления, ВидДвиженияБухгалтерии
Структура формы
*Теперь поиск при изменении искомой строки выполняется с текущей позиции, а не сначала
Поиск дублей и замена ссылок
*Нестрогий поиск переделан на native компоненту FuzzySearch
*Исправлена ошибка при невыбранных полях сравнения и включенном нестрогом сравнении
Управление службами серверов 1С
+Добавлено отображение измененной строки запуска службы
Консоль компоновки
+Из меню расшифровки ячейки табличного документа теперь можно открыть значения любых типов
Анализ техножурнала
+Добавлена форма "Блокировка СУБД" открываемая двойным щелчком из непустых ячеек "Жертва..." или "Виновник..."
+В конверторе текста СУБД добавлена кнопка "Сравнить"
*В конвертор текста СУБД исправлена некорректная обработка параметров при включенном флажке "Пересобрать текст"
+Улучшено заполнение заголовков колонок таблицы журнала и представлений свойств в форме события
Конструкто запроса
*Исправлена некорректная сборка скобок некоторых сложных логических выражений
235 lines
18 KiB
Plaintext
235 lines
18 KiB
Plaintext
Перем ирПлатформа;
|
||
|
||
Процедура ОсновныеДействияФормыВыполнить(Кнопка)
|
||
|
||
КаталогВыгрузкиКонфигурации = ПолучитьИмяВременногоФайла();
|
||
СоздатьКаталог(КаталогВыгрузкиКонфигурации);
|
||
ТекстЛога = "";
|
||
// Выгружаем конфигурацию в файлы
|
||
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиКонфигурации + """ -Format Hierarchical", СтрокаСоединенияИнформационнойБазы(), ТекстЛога,,
|
||
"Выгрузка конфигурации в файлы");
|
||
Если Не Успех Тогда
|
||
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
|
||
Сообщить(ТекстЛога);
|
||
Возврат;
|
||
КонецЕсли;
|
||
//КаталогВыгрузкиКонфигурации = "Z:\Ир"; // Для отладки
|
||
|
||
СоздатьРасширение("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>");
|
||
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
|
||
ТекстовыйДокумент.Записать(ИмяФайла);
|
||
|
||
// Заменим элемент <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 и выше");
|
||
Отказ = Истина;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
ирПлатформа = ирКэш.Получить(); |