|
1 | 1 | //============================================================================================================================================== |
2 | 2 | // ПЕРЕМЕННЫЕ МОДУЛЯ ФОРМЫ |
3 | 3 | //============================================================================================================================================== |
4 | | - |
| 4 | + |
5 | 5 | Перем WshShell; //Для запуска командной строки |
6 | 6 | Перем ФайлПрограммыРаспаковки; //в качестве програмы распаковки используется программа V8Unpack 2.0 от disa_da из публикации http://infostart.ru/public/15695/ |
7 | 7 | Перем ФайлDLL; // zlib1.dll - нужен для работы программы распаковки |
|
4390 | 4390 | НоваяСтрока.Источник = ЭлементМассива.Имя; |
4391 | 4391 | НоваяСтрока.Приемник = СтрЗаменить(НовыйПуть, ПутьКСохранению, ""); |
4392 | 4392 | Иначе |
| 4393 | + |
4393 | 4394 | ФайлМакетаИсходный = Новый Файл(ПутьРаспаковки +"\"+ СтрокаМетаданного.Строки[0].ПутьТекОбъект); |
4394 | 4395 |
|
4395 | 4396 | ИмяМакета = СтрокаМетаданного.Наименование; |
|
4400 | 4401 |
|
4401 | 4402 | КаталогМакета = ФайлМакетов.ПолноеИмя+"\"+ИмяМакета; |
4402 | 4403 | ФайлМакета = Новый Файл(КаталогМакета); |
4403 | | - Если ФайлМакета.Существует() Тогда |
4404 | | - УдалитьФайлы(ФайлМакета.ПолноеИмя); |
| 4404 | + Если НЕ ФайлМакета.Существует() Тогда |
| 4405 | + СоздатьКаталог(ФайлМакета.ПолноеИмя); |
4405 | 4406 | КонецЕсли; |
| 4407 | + // |
| 4408 | + //СоздатьКаталог(ФайлМакета.ПолноеИмя); |
4406 | 4409 |
|
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 | + КонецЕсли; |
4408 | 4433 |
|
4409 | 4434 |
|
4410 | | - ТекстовыйДокумент = Новый ТекстовыйДокумент; |
4411 | | - ТекстовыйДокумент.Прочитать(ФайлМакетаИсходный.ПолноеИмя, КодировкаТекста.UTF8); |
4412 | | - XMLСтрокаМакета = ТекстовыйДокумент.ПолучитьТекст(); |
4413 | | - XMLСтрокаМакета = Прав(XMLСтрокаМакета, СтрДлина(XMLСтрокаМакета) - Найти(XMLСтрокаМакета, "<?xml version=""1.0"" encoding=""UTF-8""?>") + 1); |
4414 | | - ТекстовыйДокумент.УстановитьТекст(XMLСтрокаМакета); |
4415 | | - ПутьНовый = ФайлМакета.ПолноеИмя+"\"+ИмяМакета+".txt"; |
4416 | | - ТекстовыйДокумент.Записать(ПутьНовый); |
4417 | 4435 |
|
4418 | 4436 | НоваяСтрока = Переименования.Добавить(); |
4419 | 4437 | НоваяСтрока.Источник = ФайлМакетаИсходный.Имя; |
|
4423 | 4441 |
|
4424 | 4442 | КонецЕсли; |
4425 | 4443 |
|
| 4444 | + |
| 4445 | + НовыйПуть = ПутьКСохранению+"und\"+ЭлементМассива.Имя; |
| 4446 | + Если ЭлементМассива.ЭтоФайл() Тогда |
| 4447 | + КопироватьФайл(ЭлементМассива.ПолноеИмя, НовыйПуть); |
| 4448 | + Иначе //Это каталог |
| 4449 | + НовыйФайл = Новый Файл(НовыйПуть); |
| 4450 | + Если НовыйФайл.Существует() Тогда |
| 4451 | + УдалитьФайлы(НовыйПуть); |
| 4452 | + КонецЕсли; |
4426 | 4453 |
|
| 4454 | + СоздатьКаталог(НовыйПуть); |
| 4455 | + МассивФайловПодкаталога = НайтиФайлы(ЭлементМассива.ПолноеИмя, "*"); |
| 4456 | + Для каждого ЭлементМассиваПодкаталога Из МассивФайловПодкаталога Цикл |
| 4457 | + КопироватьФайл(ЭлементМассиваПодкаталога, НовыйПуть+"\"+ЭлементМассиваПодкаталога.Имя); |
| 4458 | + КонецЦикла; |
| 4459 | + КонецЕсли; |
| 4460 | + НоваяСтрока = Переименования.Добавить(); |
| 4461 | + НоваяСтрока.Источник = ЭлементМассива.Имя; |
| 4462 | + НоваяСтрока.Приемник = СтрЗаменить(НовыйПуть, ПутьКСохранению, ""); |
4427 | 4463 | //СтрокаТаблицы.Хеш = ПолучитьХешМодуля(СтрокаТаблицы.ПутьКОбъекту); |
4428 | 4464 | //КонецЕсли; |
4429 | 4465 |
|
|
4432 | 4468 |
|
4433 | 4469 | КонецЕсли; |
4434 | 4470 |
|
4435 | | - Если СтрокаМетаданного.Объект = "Ф" Тогда |
| 4471 | + Если СтрокаМетаданного.Объект = "Ф" И НЕ ЭлементМассива.ЭтоКаталог() И Не ПустаяСтрока(ЭлементМассива.Расширение) Тогда |
4436 | 4472 |
|
4437 | 4473 | //Если ПустаяСтрока(ТекущийФайл.Расширение) Тогда |
4438 | 4474 | // |
|
4443 | 4479 | // ТекстовыйДокумент.Прочитать(СтрокаТаблицы.ПутьКОбъекту, КодировкаТекста.UTF8); |
4444 | 4480 | // Иначе |
4445 | 4481 | // СтрокаТаблицы.ПутьКОбъекту = ТекущийФайл.ПолноеИмя + ".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 | + |
4451 | 4517 | // КонецЕсли; |
4452 | 4518 | // СтрокаТаблицы.Хеш = ПолучитьХешМодуля(СтрокаТаблицы.ПутьКОбъекту) |
4453 | 4519 | // |
|
4520 | 4586 |
|
4521 | 4587 | КонецПроцедуры |
4522 | 4588 |
|
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 | +КонецФункции |
4524 | 4606 |
|
4525 | 4607 | СоответствиеИдентификаторов=Новый Соответствие(); |
4526 | 4608 | СоответствиеСтрокПервогоДерева=Новый Соответствие(); |
|
0 commit comments