diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" index e1c208c..0d6ac20 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" @@ -14,6 +14,7 @@ Перем РабочееПространство; Перем ИмяРасширения; Перем ИмяБазовогоПроекта; +Перем АвтосортировкаПроекта; Перем ИмяФайлаДампаКонфигурации; Перем ИмяФайлаИзменений; @@ -122,6 +123,10 @@ "[*edtExport] версия EDT") .ТСтрока() .ВОкружении("GITSYNC_EDT_VERSION"); + + КлассРеализации.Опция("SP sort-project", Ложь, "[*edtExport] автосортировка проекта") + .ТБулево() + .ВОкружении("GITSYNC_SORT_PROJECT"); КонецПроцедуры @@ -131,6 +136,7 @@ ВерсияEDT = ПараметрыКоманды.Параметр("edt-version"); РабочееПространство = ПараметрыКоманды.Параметр("workspace-location"); ИмяБазовогоПроекта = ПараметрыКоманды.Параметр("base-project-name"); + АвтосортировкаПроекта = ПараметрыКоманды.Параметр("sort-project", Ложь); Если Не ПустаяСтрока(ИмяРасширения) И Не ПустаяСтрока(ИмяБазовогоПроекта) @@ -182,12 +188,23 @@ Лог.Отладка("Каталог проекта EDT: %1", КаталогПроекта); ФС.ОбеспечитьПустойКаталог(КаталогПроекта); + + КаталогSettingsОткуда = ОбъединитьПути(КаталогРабочейКопии, ".settings"); + КаталогSettingsКуда = ОбъединитьПути(КаталогПроекта, ".settings"); + ФС.КопироватьСодержимоеКаталога(КаталогSettingsОткуда, КаталогSettingsКуда); Команда = КомандаКонвертации(КаталогВыгрузки, ВременноеРабочееПространство, КаталогПроекта); КодВозврата = Команда.Исполнить(); Лог.Отладка("Код возврата команды конвертации: %1", КодВозврата); + + Если Использовать1cedtcli И АвтосортировкаПроекта Тогда + Лог.Отладка("Запускаем сортировку объектов"); + Команда = КомандаСортировкиОбъектов(КаталогПроекта, ВременноеРабочееПространство); + КодВозврата = Команда.Исполнить(); + Лог.Отладка("Код возврата команды сортировки: %1", КодВозврата); + КонецЕсли; ТекущийФайлВерсийМетаданных = Новый Файл(ОбъединитьПути(КаталогВыгрузки, ИмяФайлаДампаКонфигурации)); Если ТекущийФайлВерсийМетаданных.Существует() Тогда @@ -206,6 +223,14 @@ КонецПроцедуры +Процедура ПриОчисткеКаталогаРабочейКопии(КаталогРабочейКопии, // BSLLS:UnusedParameters-off + СоответствиеИменФайловДляПропуска, // BSLLS:UnusedParameters-off + СтандартнаяОбработка) Экспорт + + СоответствиеИменФайловДляПропуска.Вставить(".settings", Истина); + +КонецПроцедуры + #КонецОбласти #Область Вспомогательные_процедуры_и_функции @@ -300,6 +325,35 @@ КонецПроцедуры +// Функция - получает команду сортировки объектов проекта утилиты 1cedtcli +// +// Параметры: +// КаталогПроекта - Строка - Путь к каталогу проекта, объекты которого нужно сортировать. +// ВременноеРабочееПространство - Строка - Временная рабочая область проекта. +// +// Возвращаемое значение: +// Команда - команда сортировки sort-project утилиты 1cedtcli +// +Функция КомандаСортировкиОбъектов(КаталогПроекта, ВременноеРабочееПространство) + + Команда = Новый Команда; + Команда.УстановитьКоманду(ОпределитьИсполняемыйФайл()); + + Команда.ДобавитьПараметр("-data"); + Команда.ДобавитьПараметр(ОбернутьВКавычки(ВременноеРабочееПространство)); + Команда.ДобавитьПараметр("-command sort-project"); + + Команда.ДобавитьПараметр(СтрШаблон("--project-list ""%1""", КаталогПроекта)); + + Команда.ДобавитьЛогВыводаКоманды(ИмяЛога()); + Команда.УстановитьИсполнениеЧерезКомандыСистемы(Истина); + Команда.ПоказыватьВыводНемедленно(Ложь); + Команда.УстановитьПравильныйКодВозврата(0); + + Возврат Команда; + +КонецФункции + // Функция - выполняет поиск утилиты ring и возвращает полный путь к утилите // // Возвращаемое значение: