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 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ВыгрузитьПоместитьКореньВОсновнойКаталог(Параметры, Знач КаталогФайловКонфигурации)
|
Процедура ВыгрузитьПоместитьКореньВОсновнойКаталог(ПараметрыОсновнойВыгрузки, Знач КаталогОсновнойВыгрузки)
|
||||||
|
|
||||||
// Попробуем выгрузить корень отдельно
|
// Попробуем выгрузить корень отдельно
|
||||||
КаталогФайловКонфигурации = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(КаталогФайловКонфигурации);
|
// Сначала выгружаем сам корень
|
||||||
ПараметрыВыгрузкиКорня = ОбщегоНазначенияКлиентСервер.СкопироватьРекурсивно(Параметры);
|
КаталогОсновнойВыгрузки = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ПараметрыОсновнойВыгрузки.КаталогФайловКонфигурации);
|
||||||
|
|
||||||
КаталогВыгрузкиКорня = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(
|
ПостфиксКаталогаВыгрузки = "configuration";
|
||||||
Параметры.КаталогВременныхФайлов) + "dump_configuration\";
|
|
||||||
ИмяФайлаОбъектов = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(
|
|
||||||
Параметры.КаталогВременныхФайлов) + "export_object_conf.txt";
|
|
||||||
|
|
||||||
Файл = Новый Файл(КаталогВыгрузкиКорня);
|
ИменаМетаданныхКВыгрузке = Новый Массив(); // Массив Из Строка
|
||||||
Если Файл.Существует() Тогда
|
ИменаМетаданныхКВыгрузке.Добавить("Configuration");
|
||||||
УдалитьФайлы(КаталогВыгрузкиКорня);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ПараметрыВыгрузкиКорня.КаталогФайловКонфигурации = КаталогВыгрузкиКорня;
|
КаталогВыгрузкиКорня = ВыгрузитьОбъектыВКаталог(ПараметрыОсновнойВыгрузки,
|
||||||
ПараметрыВыгрузкиКорня.Вставить("ВыгружатьПоСписку", Истина);
|
ИменаМетаданныхКВыгрузке,
|
||||||
ПараметрыВыгрузкиКорня.Вставить("ФайлСпискаВыгрузки", ИмяФайлаОбъектов);
|
ПостфиксКаталогаВыгрузки);
|
||||||
ПараметрыВыгрузкиКорня.ВыгружатьИзменения = Ложь;
|
|
||||||
|
|
||||||
ЗаписьФайла = Новый ЗаписьТекста(ИмяФайлаОбъектов);
|
|
||||||
ЗаписьФайла.Записать("Configuration");
|
|
||||||
ЗаписьФайла.Закрыть();
|
|
||||||
СоздатьКаталог(КаталогВыгрузкиКорня);
|
|
||||||
|
|
||||||
ВыгрузитьКонфигурациюВФайлы(ПараметрыВыгрузкиКорня);
|
|
||||||
|
|
||||||
ФайлыКорняККопированию = НайтиФайлы(КаталогВыгрузкиКорня, "*.*", Ложь);
|
ФайлыКорняККопированию = НайтиФайлы(КаталогВыгрузкиКорня, "*.*", Ложь);
|
||||||
Для Каждого ФайлКорняККопированию Из ФайлыКорняККопированию Цикл
|
Для Каждого ФайлКорняККопированию Из ФайлыКорняККопированию Цикл
|
||||||
@ -1478,33 +1465,36 @@
|
|||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ИтоговыйПуть = КаталогФайловКонфигурации + ФайлКорняККопированию.Имя;
|
ИтоговыйПуть = КаталогОсновнойВыгрузки + ФайлКорняККопированию.Имя;
|
||||||
КопироватьФайл(ФайлКорняККопированию.ПолноеИмя, ИтоговыйПуть);
|
КопироватьФайл(ФайлКорняККопированию.ПолноеИмя, ИтоговыйПуть);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
КаталогРасширенныхДанныхКорня = КаталогВыгрузкиКорня + "Ext";
|
КаталогРасширенныхДанныхКорняИсточник = КаталогВыгрузкиКорня + "Ext";
|
||||||
ФайлКаталогРасширенныхДанныхКорня = Новый Файл(КаталогРасширенныхДанныхКорня);
|
КаталогРасширенныхДанныхКорняПриемник = КаталогОсновнойВыгрузки + "Ext";
|
||||||
|
ФайлКаталогРасширенныхДанныхКорня = Новый Файл(КаталогРасширенныхДанныхКорняИсточник);
|
||||||
Если ФайлКаталогРасширенныхДанныхКорня.Существует() Тогда
|
Если ФайлКаталогРасширенныхДанныхКорня.Существует() Тогда
|
||||||
|
СкопироватьКаталогЦеликом(КаталогРасширенныхДанныхКорняПриемник, КаталогРасширенныхДанныхКорняИсточник);
|
||||||
КаталогВыгруженныхРасширенныхФайловВыгрузки = КаталогВыгрузкиКорня + "Ext\";
|
|
||||||
ПозицияВСтрокеРабочегоКаталога = СтрДлина(КаталогВыгруженныхРасширенныхФайловВыгрузки) + 1;
|
|
||||||
СоздатьКаталог(КаталогВыгруженныхРасширенныхФайловВыгрузки);
|
|
||||||
|
|
||||||
КаталогРасширенныхФайловВыгрузки = КаталогФайловКонфигурации + "Ext\";
|
|
||||||
|
|
||||||
НайденныеРасширенныеФайлыКорня = НайтиФайлы(КаталогВыгруженныхРасширенныхФайловВыгрузки, "*.*", Истина);
|
|
||||||
Для Каждого РасширенныйФайлКорняИсточник Из НайденныеРасширенныеФайлыКорня Цикл
|
|
||||||
ИтоговоеИмя = КаталогФайловКонфигурации + Сред(РасширенныйФайлКорняИсточник.ПолноеИмя,
|
|
||||||
ПозицияВСтрокеРабочегоКаталога);
|
|
||||||
|
|
||||||
Если РасширенныйФайлКорняИсточник.ЭтоКаталог() Тогда
|
|
||||||
СоздатьКаталог(ИтоговоеИмя);
|
|
||||||
Иначе
|
|
||||||
КопироватьФайл(РасширенныйФайлКорняИсточник.ПолноеИмя, ИтоговоеИмя);
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЦикла;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Теперь считываем из этого корня языки
|
||||||
|
// Если есть языки, выгружаем их и подкидываем туда в корень
|
||||||
|
ЯзыкиИзКорня = ЯзыкиИзКорняКонфигурации(КаталогВыгрузкиКорня + "Configuration.xml");
|
||||||
|
Если ЯзыкиИзКорня.Количество() > 0 Тогда
|
||||||
|
ПостфиксКаталогаВыгрузки = "language";
|
||||||
|
|
||||||
|
ИменаМетаданныхКВыгрузке = Новый Массив(); // Массив Из Строка
|
||||||
|
ИменаМетаданныхКВыгрузке.Добавить("Configuration");
|
||||||
|
|
||||||
|
КаталогВыгрузкиЯзыков = ВыгрузитьОбъектыВКаталог(ПараметрыОсновнойВыгрузки,
|
||||||
|
ЯзыкиИзКорня,
|
||||||
|
ПостфиксКаталогаВыгрузки);
|
||||||
|
|
||||||
|
КаталогИсточник = КаталогВыгрузкиЯзыков + "Languages";
|
||||||
|
КаталогПриемник = КаталогОсновнойВыгрузки + "Languages";
|
||||||
|
СкопироватьКаталогЦеликом(КаталогПриемник, КаталогИсточник);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Загружает файлы конфигурации версии в проект EDT и составляет индекс
|
// Загружает файлы конфигурации версии в проект 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