mirror of
https://github.com/tormozit/RDT1C.git
synced 2025-12-17 05:04:11 +00:00
Подбор и обработка объектов
+В обработке "Изменить/добавить строку" добавить флажок "Принудительная запись"
*Улучшена обработка недоступных полей и таблиц из-за прав и функциональных опций
*Исправлено свежее воссоздание объектов сразу после удаления в обработке в обработке "Удалить" в непортативных вариантах с включенным флажком "Объекты на сервере"
Сравнение таблиц
+Добавлен флажок "Располагать сравниваемые ячейки вертикально"
Форма выбора метаданных
+Добавлена кнопка "Функциональные опции" для включения и заполнения одноименной колонки
Общее
*Восстановлена совместимость варианта Расширение с 8.3.10 и 8.3.11
*Исправлена свежая ошибка "Не установлен отбор по регистратору" при записи регистров в клиент-серверном режиме в непортативных вариантах с включенном флажком "Объекты на сервере"
*Исправлено открытие лишней пустой формы при выполнении команды "Список инструментов и общие настройки" в управляемом приложении
Конструктор запроса
*Исправлена ошибка при разборе инструкции INSERT
*Исправлено превращение значений параметров некоторых типов в строки
Консоль заданий
+Для списка фоновых заданий добавлена колонка "Ошибки ЖР", отражающая количество ошибок в журнале регистрации, и переключатель для ее заполнения
*Исправлено обнобновление отбора по текущему методу в режиме "По методу" при смене текущего метода
Управление службами серверов 1С
+Добавлена команда запуска консоли серверов с дополнением ее списка серверов
Консоль компоновки
*Исправлена очистка доступных полей компоновщика настроек в некоторых случаях
+Добавлена индикация наличия неактуальных полей в области и отборе строки условного оформления
Редактор объекта БД
*Отключена управляемая форма как менее функциональная, менее быстрая и не привносящая новых возможностей
Консоль запросов
*Исправлены мелкие ошибки в работе с ADODB, включая режим без использования компоненты GameWithFire
*Улучшен поиск итогов по ОБЩИЕ на закладке "Выборки итогов"
Анализ журнала регистрации
*Исправлена очистка не включенных элементов отбора при открытии с передачей отбора
Отложенная отладка
*В команде "Открыть объект для отладки" исправлен поиск объекта, сохраненного под другим пользователем в вариантах кроме Подсистема
264 lines
21 KiB
Plaintext
264 lines
21 KiB
Plaintext
Перем ирПлатформа;
|
||
|
||
Процедура ОсновныеДействияФормыВыполнить(Кнопка)
|
||
|
||
// Если указать ИсполняемыйФайлПлатформы, то будет ошибка при загрузке расширения из файлов
|
||
// Неизвестная версия формата 2.6 загружаемого файла
|
||
ЭтаФорма.ИсполняемыйФайлПлатформы = "";
|
||
|
||
КаталогВыгрузкиКонфигурации = ПолучитьИмяВременногоФайла();
|
||
СоздатьКаталог(КаталогВыгрузкиКонфигурации);
|
||
ТекстЛога = "";
|
||
// Выгружаем конфигурацию в файлы
|
||
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/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>", "");
|
||
ТекстФайла = СтрЗаменить(ТекстФайла, "<xr:Item xsi:type=""xr:MDObjectRef"">CommonCommand.ирОткрытьНастройкиАлгоритмов</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 """ + ИмяРасширения + """", , ТекстЛога,,,, ИсполняемыйФайлПлатформы);
|
||
Если Не Успех Тогда
|
||
Сообщить(ТекстЛога);
|
||
Возврат;
|
||
КонецЕсли;
|
||
|
||
// https://partners.v8.1c.ru/forum/t/1713417/m/1713417
|
||
Сообщить("Выполните изменение свойства ""Режим совместимости"" расширения, оставив его выключенным");
|
||
ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("",,,,,,, Ложь);
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура КаталогНачалоВыбора(Элемент, СтандартнаяОбработка)
|
||
|
||
ирОбщий.ВыбратьКаталогВФормеЛкс(Каталог);
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ПриЗакрытии()
|
||
|
||
ирОбщий.СохранитьЗначениеЛкс("ирВыпускВариантаРасширение.Каталог", Каталог);
|
||
ирОбщий.СохранитьЗначениеЛкс("ирВыпускВариантаРасширение.ИсполняемыйФайлПлатформы", ИсполняемыйФайлПлатформы);
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ПриОткрытии()
|
||
|
||
ЭтаФорма.Каталог = ирОбщий.ВосстановитьЗначениеЛкс("ирВыпускВариантаРасширение.Каталог");
|
||
ЭтаФорма.ИсполняемыйФайлПлатформы = ирОбщий.ВосстановитьЗначениеЛкс("ирВыпускВариантаРасширение.ИсполняемыйФайлПлатформы");
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
|
||
|
||
Если ирКэш.НомерВерсииПлатформыЛкс() < 803010 Тогда
|
||
Сообщить("Поддерживается только платформа 8.3.10 и выше");
|
||
Отказ = Истина;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ИсполняемыйФайлПлатформыНачалоВыбора(Элемент, СтандартнаяОбработка)
|
||
|
||
РезультатВыбора = ирОбщий.ВыбратьФайлЛкс(, "exe",, Элемент.Значение);
|
||
Если ЗначениеЗаполнено(РезультатВыбора) Тогда
|
||
Элемент.Значение = РезультатВыбора;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
ирПлатформа = ирКэш.Получить(); |