Skip to content

Commit 5c0c899

Browse files
author
Сосна Евгений
committed
Исправленн разбор макетов.
Добавленна возможность указания пути к платформе в файле настроек ini
1 parent 3690d67 commit 5c0c899

File tree

5 files changed

+117
-26
lines changed

5 files changed

+117
-26
lines changed

V8Reader.epf

461 Bytes
Binary file not shown.

pyv8unpack.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,27 @@ def get_path_to_1c():
2828
return os.getenv("PATH1C")
2929

3030
#read config
31+
curdir = os.curdir
32+
if '__file__' in globals():
33+
curdir = os.path.dirname(os.path.abspath(__file__))
34+
3135
config = None
32-
for loc in os.curdir, os.path.expanduser("~"):
36+
for loc in curdir, os.curdir, os.path.expanduser("~"):
3337
try:
34-
with open(os.path.join(loc,"precommit1c.conf")) as source:
35-
from configparser import ConfigParser
36-
config = ConfigParser(source)
38+
with open(os.path.join(loc, "precommit1c.ini")) as source:
39+
if sys.version_info<(3,0,0):
40+
from ConfigParser import ConfigParser
41+
else:
42+
from configparser import ConfigParser
43+
44+
config = ConfigParser()
45+
config.read_file(source)
3746
break
3847
except IOError:
3948
pass
4049

41-
if not config is None:
42-
cmd = config.get("DEFAULT", "onecplatfrorms")
50+
if not config is None and config.has_option("DEFAULT", "onecplatfrorm"):
51+
cmd = config.get("DEFAULT", "onecplatfrorm")
4352
return cmd
4453

4554

src/V8Reader/Form/Форма/form

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23080,7 +23080,7 @@ mVR8AFR8AFR8AA==}
2308023080
}
2308123081
}
2308223082
}
23083-
},859,462,1,0,1,4,4,1627},
23083+
},859,462,1,0,1,4,4,1635},
2308423084
{
2308523085
{0},42,
2308623086
{12,

src/V8Reader/Form/Форма/module

Lines changed: 100 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//==============================================================================================================================================
22
// ПЕРЕМЕННЫЕ МОДУЛЯ ФОРМЫ
33
//==============================================================================================================================================
4-
4+
55
Перем WshShell; //Для запуска командной строки
66
Перем ФайлПрограммыРаспаковки; //в качестве програмы распаковки используется программа V8Unpack 2.0 от disa_da из публикации http://infostart.ru/public/15695/
77
Перем ФайлDLL; // zlib1.dll - нужен для работы программы распаковки
@@ -4390,6 +4390,7 @@
43904390
НоваяСтрока.Источник = ЭлементМассива.Имя;
43914391
НоваяСтрока.Приемник = СтрЗаменить(НовыйПуть, ПутьКСохранению, "");
43924392
Иначе
4393+
43934394
ФайлМакетаИсходный = Новый Файл(ПутьРаспаковки +"\"+ СтрокаМетаданного.Строки[0].ПутьТекОбъект);
43944395

43954396
ИмяМакета = СтрокаМетаданного.Наименование;
@@ -4400,20 +4401,37 @@
44004401

44014402
КаталогМакета = ФайлМакетов.ПолноеИмя+"\"+ИмяМакета;
44024403
ФайлМакета = Новый Файл(КаталогМакета);
4403-
Если ФайлМакета.Существует() Тогда
4404-
УдалитьФайлы(ФайлМакета.ПолноеИмя);
4404+
Если НЕ ФайлМакета.Существует() Тогда
4405+
СоздатьКаталог(ФайлМакета.ПолноеИмя);
44054406
КонецЕсли;
4407+
//
4408+
//СоздатьКаталог(ФайлМакета.ПолноеИмя);
44064409

4407-
СоздатьКаталог(ФайлМакета.ПолноеИмя);
4410+
ПутьНовый = ФайлМакета.ПолноеИмя+"\"+ИмяМакета+".txt";
4411+
4412+
Если СтрокаМетаданного.Строки[0].Объект = "М6" Тогда //Компоновка
4413+
ПутьНовый = ФайлМакета.ПолноеИмя+"\"+ИмяМакета+".xml";
4414+
4415+
ТекстовыйДокумент = Новый ТекстовыйДокумент;
4416+
ТекстовыйДокумент.Прочитать(ФайлМакетаИсходный.ПолноеИмя, КодировкаТекста.UTF8);
4417+
XMLСтрокаМакета = ТекстовыйДокумент.ПолучитьТекст();
4418+
XMLСтрокаМакета = Прав(XMLСтрокаМакета, СтрДлина(XMLСтрокаМакета) - Найти(XMLСтрокаМакета, "<?xml version=""1.0"" encoding=""UTF-8""?>") + 1);
4419+
ТекстовыйДокумент.УстановитьТекст(XMLСтрокаМакета);
4420+
4421+
ТекстовыйДокумент.Записать(ПутьНовый);
4422+
ИначеЕсли СтрокаМетаданного.Строки[0].Объект = "М0" Тогда //Табличный документ
4423+
ПутьНовый = ФайлМакета.ПолноеИмя+"\"+ИмяМакета+".mxl";
4424+
КопироватьФайл(ФайлМакетаИсходный.ПолноеИмя, ПутьНовый);
4425+
ИначеЕсли СтрокаМетаданного.Строки[0].Объект = "М4" Тогда //Табличный документ
4426+
ПутьНовый = ФайлМакета.ПолноеИмя+"\"+ИмяМакета+".txt";
4427+
КопироватьФайл(ФайлМакетаИсходный.ПолноеИмя, ПутьНовый);
4428+
Иначе
4429+
ПутьНовый = ФайлМакета.ПолноеИмя+"\"+ИмяМакета+".txt";
4430+
КопироватьФайл(ФайлМакетаИсходный.ПолноеИмя, ПутьНовый);
4431+
4432+
КонецЕсли;
44084433

44094434

4410-
ТекстовыйДокумент = Новый ТекстовыйДокумент;
4411-
ТекстовыйДокумент.Прочитать(ФайлМакетаИсходный.ПолноеИмя, КодировкаТекста.UTF8);
4412-
XMLСтрокаМакета = ТекстовыйДокумент.ПолучитьТекст();
4413-
XMLСтрокаМакета = Прав(XMLСтрокаМакета, СтрДлина(XMLСтрокаМакета) - Найти(XMLСтрокаМакета, "<?xml version=""1.0"" encoding=""UTF-8""?>") + 1);
4414-
ТекстовыйДокумент.УстановитьТекст(XMLСтрокаМакета);
4415-
ПутьНовый = ФайлМакета.ПолноеИмя+"\"+ИмяМакета+".txt";
4416-
ТекстовыйДокумент.Записать(ПутьНовый);
44174435

44184436
НоваяСтрока = Переименования.Добавить();
44194437
НоваяСтрока.Источник = ФайлМакетаИсходный.Имя;
@@ -4423,7 +4441,25 @@
44234441

44244442
КонецЕсли;
44254443

4444+
4445+
НовыйПуть = ПутьКСохранению+"und\"+ЭлементМассива.Имя;
4446+
Если ЭлементМассива.ЭтоФайл() Тогда
4447+
КопироватьФайл(ЭлементМассива.ПолноеИмя, НовыйПуть);
4448+
Иначе //Это каталог
4449+
НовыйФайл = Новый Файл(НовыйПуть);
4450+
Если НовыйФайл.Существует() Тогда
4451+
УдалитьФайлы(НовыйПуть);
4452+
КонецЕсли;
44264453

4454+
СоздатьКаталог(НовыйПуть);
4455+
МассивФайловПодкаталога = НайтиФайлы(ЭлементМассива.ПолноеИмя, "*");
4456+
Для каждого ЭлементМассиваПодкаталога Из МассивФайловПодкаталога Цикл
4457+
КопироватьФайл(ЭлементМассиваПодкаталога, НовыйПуть+"\"+ЭлементМассиваПодкаталога.Имя);
4458+
КонецЦикла;
4459+
КонецЕсли;
4460+
НоваяСтрока = Переименования.Добавить();
4461+
НоваяСтрока.Источник = ЭлементМассива.Имя;
4462+
НоваяСтрока.Приемник = СтрЗаменить(НовыйПуть, ПутьКСохранению, "");
44274463
//СтрокаТаблицы.Хеш = ПолучитьХешМодуля(СтрокаТаблицы.ПутьКОбъекту);
44284464
//КонецЕсли;
44294465

@@ -4432,7 +4468,7 @@
44324468

44334469
КонецЕсли;
44344470

4435-
Если СтрокаМетаданного.Объект = "Ф" Тогда
4471+
Если СтрокаМетаданного.Объект = "Ф" И НЕ ЭлементМассива.ЭтоКаталог() И Не ПустаяСтрока(ЭлементМассива.Расширение) Тогда
44364472

44374473
//Если ПустаяСтрока(ТекущийФайл.Расширение) Тогда
44384474
//
@@ -4443,11 +4479,41 @@
44434479
// ТекстовыйДокумент.Прочитать(СтрокаТаблицы.ПутьКОбъекту, КодировкаТекста.UTF8);
44444480
// Иначе
44454481
// СтрокаТаблицы.ПутьКОбъекту = ТекущийФайл.ПолноеИмя + ".0";
4446-
// ТекстовыйДокумент = Новый ТекстовыйДокумент;
4447-
// ТекстовыйДокумент.Прочитать(СтрокаТаблицы.ПутьКОбъекту, КодировкаТекста.UTF8);
4448-
// XMLТело = СтрокаВнутрВХМЛТело(ТекстовыйДокумент.ПолучитьТекст());
4449-
// ТекстовыйДокумент.УстановитьТекст(ПолучитьТекстМодуля(XMLТело));
4450-
// ТекстовыйДокумент.Записать(СтрокаТаблицы.ПутьКОбъекту);
4482+
ТекстовыйДокумент = Новый ТекстовыйДокумент;
4483+
ТекстовыйДокумент.Прочитать(ЭлементМассива.ПолноеИмя, КодировкаТекста.UTF8);
4484+
XMLТело = СтрокаВнутрВХМЛТело(ТекстовыйДокумент.ПолучитьТекст());
4485+
ТекстовыйДокумент.УстановитьТекст(ПолучитьТекстМодуля(XMLТело));
4486+
4487+
4488+
ИмяФормы = СтрокаМетаданного.Родитель.Наименование;
4489+
ФайлForms = Новый Файл(ПутьКСохранению+"Form");
4490+
Если НЕ ФайлForms.Существует() Тогда
4491+
СоздатьКаталог(ФайлForms.ПолноеИмя);
4492+
КонецЕсли;
4493+
4494+
КаталогФормы = ФайлForms.ПолноеИмя+"\"+ИмяФормы;
4495+
ФайлФормы = Новый Файл(КаталогФормы);
4496+
Если ФайлФормы.Существует() Тогда
4497+
УдалитьФайлы(ФайлФормы.ПолноеИмя);
4498+
КонецЕсли;
4499+
4500+
СоздатьКаталог(ФайлФормы.ПолноеИмя);
4501+
НовыйПутьМодуляУправляемойФормы = ФайлФормы.ПолноеИмя+"\"+"Форма.txt";
4502+
ТекстовыйДокумент.Записать(НовыйПутьМодуляУправляемойФормы);
4503+
4504+
НоваяСтрока = Переименования.Добавить();
4505+
НоваяСтрока.Источник = ЭлементМассива.Имя;
4506+
НоваяСтрока.Приемник = СтрЗаменить(НовыйПутьМодуляУправляемойФормы, ПутьКСохранению, "");
4507+
4508+
4509+
НовыйПуть = ПутьКСохранению+"und\"+ЭлементМассива.Имя;
4510+
Если ЭлементМассива.ЭтоФайл() Тогда
4511+
КопироватьФайл(ЭлементМассива.ПолноеИмя, НовыйПуть);
4512+
КонецЕсли;
4513+
НоваяСтрока = Переименования.Добавить();
4514+
НоваяСтрока.Источник = ЭлементМассива.Имя;
4515+
НоваяСтрока.Приемник = СтрЗаменить(НовыйПуть, ПутьКСохранению, "");
4516+
44514517
// КонецЕсли;
44524518
// СтрокаТаблицы.Хеш = ПолучитьХешМодуля(СтрокаТаблицы.ПутьКОбъекту)
44534519
//
@@ -4520,7 +4586,23 @@
45204586

45214587
КонецПроцедуры
45224588

4523-
4589+
Функция ПолучитьТекстМодуля(XMLСтрокаФормы)
4590+
4591+
ЧтениеXML = Новый ЧтениеXML;
4592+
ЧтениеXML.УстановитьСтроку(XMLСтрокаФормы);
4593+
ЧтениеXML.Прочитать();
4594+
ЧтениеXML.Прочитать();
4595+
ЧтениеXML.Пропустить();
4596+
ЧтениеXML.Пропустить();
4597+
ЧтениеXML.Пропустить();
4598+
ЧтениеXML.Прочитать();
4599+
ЧтениеXML.Прочитать();
4600+
ТекстМодуля = Прав(ЧтениеXML.Значение, СтрДлина(ЧтениеXML.Значение) - 1);
4601+
ТекстМодуля = Лев(ТекстМодуля, СтрДлина(ТекстМодуля) - 1);
4602+
ТекстМодуля = СтрЗаменить(ТекстМодуля, """""", """");
4603+
Возврат ТекстМодуля;
4604+
4605+
КонецФункции
45244606

45254607
СоответствиеИдентификаторов=Новый Соответствие();
45264608
СоответствиеСтрокПервогоДерева=Новый Соответствие();

0 commit comments

Comments
 (0)