mirror of
https://github.com/1C-Company/GitConverter.git
synced 2025-03-19 21:08:00 +02:00
Исправление ошибок с каталогами
This commit is contained in:
parent
7a9d07149a
commit
5c2b535596
@ -1443,33 +1443,20 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыгрузитьПоместитьКореньВОсновнойКаталог(Параметры, Знач КаталогФайловКонфигурации)
|
||||
Процедура ВыгрузитьПоместитьКореньВОсновнойКаталог(ПараметрыОсновнойВыгрузки, Знач КаталогОсновнойВыгрузки)
|
||||
|
||||
// Попробуем выгрузить корень отдельно
|
||||
КаталогФайловКонфигурации = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(КаталогФайловКонфигурации);
|
||||
ПараметрыВыгрузкиКорня = ОбщегоНазначенияКлиентСервер.СкопироватьРекурсивно(Параметры);
|
||||
// Сначала выгружаем сам корень
|
||||
КаталогОсновнойВыгрузки = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ПараметрыОсновнойВыгрузки.КаталогФайловКонфигурации);
|
||||
|
||||
КаталогВыгрузкиКорня = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(
|
||||
Параметры.КаталогВременныхФайлов) + "dump_configuration\";
|
||||
ИмяФайлаОбъектов = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(
|
||||
Параметры.КаталогВременныхФайлов) + "export_object_conf.txt";
|
||||
ПостфиксКаталогаВыгрузки = "configuration";
|
||||
|
||||
Файл = Новый Файл(КаталогВыгрузкиКорня);
|
||||
Если Файл.Существует() Тогда
|
||||
УдалитьФайлы(КаталогВыгрузкиКорня);
|
||||
КонецЕсли;
|
||||
ИменаМетаданныхКВыгрузке = Новый Массив(); // Массив Из Строка
|
||||
ИменаМетаданныхКВыгрузке.Добавить("Configuration");
|
||||
|
||||
ПараметрыВыгрузкиКорня.КаталогФайловКонфигурации = КаталогВыгрузкиКорня;
|
||||
ПараметрыВыгрузкиКорня.Вставить("ВыгружатьПоСписку", Истина);
|
||||
ПараметрыВыгрузкиКорня.Вставить("ФайлСпискаВыгрузки", ИмяФайлаОбъектов);
|
||||
ПараметрыВыгрузкиКорня.ВыгружатьИзменения = Ложь;
|
||||
|
||||
ЗаписьФайла = Новый ЗаписьТекста(ИмяФайлаОбъектов);
|
||||
ЗаписьФайла.Записать("Configuration");
|
||||
ЗаписьФайла.Закрыть();
|
||||
СоздатьКаталог(КаталогВыгрузкиКорня);
|
||||
|
||||
ВыгрузитьКонфигурациюВФайлы(ПараметрыВыгрузкиКорня);
|
||||
КаталогВыгрузкиКорня = ВыгрузитьОбъектыВКаталог(ПараметрыОсновнойВыгрузки,
|
||||
ИменаМетаданныхКВыгрузке,
|
||||
ПостфиксКаталогаВыгрузки);
|
||||
|
||||
ФайлыКорняККопированию = НайтиФайлы(КаталогВыгрузкиКорня, "*.*", Ложь);
|
||||
Для Каждого ФайлКорняККопированию Из ФайлыКорняККопированию Цикл
|
||||
@ -1478,33 +1465,36 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ИтоговыйПуть = КаталогФайловКонфигурации + ФайлКорняККопированию.Имя;
|
||||
ИтоговыйПуть = КаталогОсновнойВыгрузки + ФайлКорняККопированию.Имя;
|
||||
КопироватьФайл(ФайлКорняККопированию.ПолноеИмя, ИтоговыйПуть);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КаталогРасширенныхДанныхКорня = КаталогВыгрузкиКорня + "Ext";
|
||||
ФайлКаталогРасширенныхДанныхКорня = Новый Файл(КаталогРасширенныхДанныхКорня);
|
||||
КаталогРасширенныхДанныхКорняИсточник = КаталогВыгрузкиКорня + "Ext";
|
||||
КаталогРасширенныхДанныхКорняПриемник = КаталогОсновнойВыгрузки + "Ext";
|
||||
ФайлКаталогРасширенныхДанныхКорня = Новый Файл(КаталогРасширенныхДанныхКорняИсточник);
|
||||
Если ФайлКаталогРасширенныхДанныхКорня.Существует() Тогда
|
||||
|
||||
КаталогВыгруженныхРасширенныхФайловВыгрузки = КаталогВыгрузкиКорня + "Ext\";
|
||||
ПозицияВСтрокеРабочегоКаталога = СтрДлина(КаталогВыгруженныхРасширенныхФайловВыгрузки) + 1;
|
||||
СоздатьКаталог(КаталогВыгруженныхРасширенныхФайловВыгрузки);
|
||||
|
||||
КаталогРасширенныхФайловВыгрузки = КаталогФайловКонфигурации + "Ext\";
|
||||
|
||||
НайденныеРасширенныеФайлыКорня = НайтиФайлы(КаталогВыгруженныхРасширенныхФайловВыгрузки, "*.*", Истина);
|
||||
Для Каждого РасширенныйФайлКорняИсточник Из НайденныеРасширенныеФайлыКорня Цикл
|
||||
ИтоговоеИмя = КаталогФайловКонфигурации + Сред(РасширенныйФайлКорняИсточник.ПолноеИмя,
|
||||
ПозицияВСтрокеРабочегоКаталога);
|
||||
|
||||
Если РасширенныйФайлКорняИсточник.ЭтоКаталог() Тогда
|
||||
СоздатьКаталог(ИтоговоеИмя);
|
||||
Иначе
|
||||
КопироватьФайл(РасширенныйФайлКорняИсточник.ПолноеИмя, ИтоговоеИмя);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
СкопироватьКаталогЦеликом(КаталогРасширенныхДанныхКорняПриемник, КаталогРасширенныхДанныхКорняИсточник);
|
||||
КонецЕсли;
|
||||
|
||||
// Теперь считываем из этого корня языки
|
||||
// Если есть языки, выгружаем их и подкидываем туда в корень
|
||||
ЯзыкиИзКорня = ЯзыкиИзКорняКонфигурации(КаталогВыгрузкиКорня + "Configuration.xml");
|
||||
Если ЯзыкиИзКорня.Количество() > 0 Тогда
|
||||
ПостфиксКаталогаВыгрузки = "language";
|
||||
|
||||
ИменаМетаданныхКВыгрузке = Новый Массив(); // Массив Из Строка
|
||||
ИменаМетаданныхКВыгрузке.Добавить("Configuration");
|
||||
|
||||
КаталогВыгрузкиЯзыков = ВыгрузитьОбъектыВКаталог(ПараметрыОсновнойВыгрузки,
|
||||
ЯзыкиИзКорня,
|
||||
ПостфиксКаталогаВыгрузки);
|
||||
|
||||
КаталогИсточник = КаталогВыгрузкиЯзыков + "Languages";
|
||||
КаталогПриемник = КаталогОсновнойВыгрузки + "Languages";
|
||||
СкопироватьКаталогЦеликом(КаталогПриемник, КаталогИсточник);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Загружает файлы конфигурации версии в проект EDT и составляет индекс
|
||||
@ -4503,4 +4493,128 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СкопироватьКаталогЦеликом(Знач КаталогПриемник, Знач КаталогИсточник)
|
||||
КаталогВыгруженныхРасширенныхФайловВыгрузки = КаталогИсточник;
|
||||
ПозицияВСтрокеРабочегоКаталога = СтрДлина(КаталогВыгруженныхРасширенныхФайловВыгрузки) + 1;
|
||||
|
||||
|
||||
КаталогРасширенныхФайловВыгрузки = КаталогПриемник;
|
||||
СоздатьКаталог(КаталогРасширенныхФайловВыгрузки);
|
||||
|
||||
НайденныеРасширенныеФайлыКорня = НайтиФайлы(КаталогВыгруженныхРасширенныхФайловВыгрузки, "*.*", Истина);
|
||||
Для Каждого РасширенныйФайлКорняИсточник Из НайденныеРасширенныеФайлыКорня Цикл
|
||||
ИтоговоеИмя = КаталогРасширенныхФайловВыгрузки + Сред(РасширенныйФайлКорняИсточник.ПолноеИмя,
|
||||
ПозицияВСтрокеРабочегоКаталога);
|
||||
|
||||
Если РасширенныйФайлКорняИсточник.ЭтоКаталог() Тогда
|
||||
СоздатьКаталог(ИтоговоеИмя);
|
||||
Иначе
|
||||
КопироватьФайл(РасширенныйФайлКорняИсточник.ПолноеИмя, ИтоговоеИмя);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецПроцедуры
|
||||
|
||||
// Выгрузить объекты.
|
||||
//
|
||||
// Параметры:
|
||||
// Параметры - см. ПолучитьПараметрыОбработкиВерсии
|
||||
// МассивИменОбъектовМетаданных - Массив Из Строка -
|
||||
// ПостфиксКаталога - Строка - Постфикс каталога. Не должен содержать запрещенных для файлов символов
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// * Строка - Каталог выгрузки
|
||||
Функция ВыгрузитьОбъектыВКаталог(ПараметрыОсновнойВыгрузки, МассивИменОбъектовМетаданных, ПостфиксКаталога)
|
||||
|
||||
// Попробуем выгрузить корень отдельно
|
||||
КаталогФайловКонфигурации = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(КаталогФайловКонфигурации);
|
||||
ПараметрыВыгрузкиКорня = ОбщегоНазначенияКлиентСервер.СкопироватьРекурсивно(ПараметрыОсновнойВыгрузки);
|
||||
|
||||
КаталогВыгрузки = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(
|
||||
ПараметрыОсновнойВыгрузки.КаталогВременныхФайлов) + "dump_" + ПостфиксКаталога + "\";
|
||||
ИмяФайлаОбъектов = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(
|
||||
ПараметрыОсновнойВыгрузки.КаталогВременныхФайлов) + "export_object_" + ПостфиксКаталога + ".txt";
|
||||
|
||||
Файл = Новый Файл(КаталогВыгрузки);
|
||||
Если Файл.Существует() Тогда
|
||||
УдалитьФайлы(КаталогВыгрузки);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыВыгрузкиКорня.КаталогФайловКонфигурации = КаталогВыгрузки;
|
||||
ПараметрыВыгрузкиКорня.Вставить("ВыгружатьПоСписку", Истина);
|
||||
ПараметрыВыгрузкиКорня.Вставить("ФайлСпискаВыгрузки", ИмяФайлаОбъектов);
|
||||
ПараметрыВыгрузкиКорня.ВыгружатьИзменения = Ложь;
|
||||
|
||||
ЗаписьФайла = Новый ЗаписьТекста(ИмяФайлаОбъектов);
|
||||
Для Каждого ИмяМетаданных Из МассивИменОбъектовМетаданных Цикл
|
||||
ЗаписьФайла.Записать(ИмяМетаданных);
|
||||
КонецЦикла;
|
||||
ЗаписьФайла.Закрыть();
|
||||
|
||||
СоздатьКаталог(КаталогВыгрузки);
|
||||
|
||||
ВыгрузитьКонфигурациюВФайлы(ПараметрыВыгрузкиКорня);
|
||||
|
||||
Возврат КаталогВыгрузки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Языки из корня конфигурации.
|
||||
//
|
||||
// Параметры:
|
||||
// ПутьККорню - Строка -
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив Из Строка - Языки из корня конфигурации
|
||||
Функция ЯзыкиИзКорняКонфигурации(ПутьККорню)
|
||||
ЧтениеXML = Новый ЧтениеXML;
|
||||
ЧтениеXML.ОткрытьФайл(ПутьККорню);
|
||||
|
||||
МассивЯзыков = Новый Массив;
|
||||
Если СпозиционироватьсяНаПодчиненныхОбъектах(ЧтениеXML) Тогда
|
||||
ЗаполнитьПодчиненныеЯзыкиИзПодчиненныхОбъектов(ЧтениеXML, МассивЯзыков);
|
||||
КонецЕсли;
|
||||
ЧтениеXML.Закрыть();
|
||||
|
||||
Возврат МассивЯзыков;
|
||||
КонецФункции
|
||||
|
||||
|
||||
// Спозиционироваться на подчиненных объектах.
|
||||
//
|
||||
// Параметры:
|
||||
// ЧтениеXML - ЧтениеXML - Чтение XML
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Спозиционироваться на подчиненных объектах
|
||||
Функция СпозиционироватьсяНаПодчиненныхОбъектах(ЧтениеXML)
|
||||
Пока ЧтениеXML.Прочитать() Цикл
|
||||
Если ЧтениеXML.Имя = "ChildObjects" Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Ложь;
|
||||
КонецФункции
|
||||
|
||||
// Заполнить подчиненные языки из подчиненных объектов.
|
||||
//
|
||||
// Параметры:
|
||||
// ЧтениеXML - ЧтениеXML - Чтение XML
|
||||
// МассивЯзыков - Массив из Строка - Массив языков
|
||||
Процедура ЗаполнитьПодчиненныеЯзыкиИзПодчиненныхОбъектов(ЧтениеXML, МассивЯзыков)
|
||||
Пока ЧтениеXML.Прочитать() Цикл
|
||||
Если ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента
|
||||
И ЧтениеXML.Имя = "ChildObjects" Тогда
|
||||
Возврат;
|
||||
ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента
|
||||
И ЧтениеXML.Имя = "Language" Тогда
|
||||
ЧтениеXML.Прочитать();
|
||||
МассивЯзыков.Добавить(СтрШаблон("Language.%1", ЧтениеXML.Значение));
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
#КонецОбласти
|
||||
|
Loading…
x
Reference in New Issue
Block a user