You've already forked edt-comparator
mirror of
https://github.com/shcherbakov-vadim/edt-comparator.git
synced 2025-11-23 21:34:40 +02:00
Добавлена возможность сравнения табличных документов
This commit is contained in:
18
.project
Normal file
18
.project
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>EDTComparator</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
|
||||
<nature>com._1c.g5.v8.dt.core.V8ConfigurationNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
2
.settings/org.eclipse.core.resources.prefs
Normal file
2
.settings/org.eclipse.core.resources.prefs
Normal file
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
||||
2
DT-INF/PROJECT.PMF
Normal file
2
DT-INF/PROJECT.PMF
Normal file
@@ -0,0 +1,2 @@
|
||||
Manifest-Version: 1.0
|
||||
Runtime-Version: 8.3.16
|
||||
@@ -0,0 +1,25 @@
|
||||
Функция ВерсияEDT() Экспорт
|
||||
Возврат "2021.1.7";
|
||||
КонецФункции
|
||||
|
||||
Функция ОсновнаяПрограммаСравнения2(Параметры) Экспорт
|
||||
Возврат СтрШаблон("""C:\Users\Chtcherbakov\AppData\Local\Apps\Araxis\Araxis Merge\Compare.exe"""
|
||||
+ " /wait /2 /readonly /a1 /title1:%3 /title2:%4 %1 %2"
|
||||
,Параметры[0], Параметры[1]
|
||||
,ПараметрВСтроку(Параметры, 2), ПараметрВСтроку(Параметры, 3));
|
||||
КонецФункции
|
||||
|
||||
Функция ОсновнаяПрограммаСравнения3(Параметры) Экспорт
|
||||
Возврат СтрШаблон("""C:\Users\Chtcherbakov\AppData\Local\Apps\Araxis\Araxis Merge\Compare.exe"""
|
||||
+ " /wait /3 /readonly /a1 /title1:%4 /title2:%5 /title3:%6 %1 %2 %3"
|
||||
,Параметры[0], Параметры[1], Параметры[2]
|
||||
,ПараметрВСтроку(Параметры, 3), ПараметрВСтроку(Параметры, 4), ПараметрВСтроку(Параметры, 5));
|
||||
КонецФункции
|
||||
|
||||
Функция ПараметрВСтроку(Параметры, ИндПараметра)
|
||||
Если ИндПараметра <= Параметры.Количество() Тогда
|
||||
Возврат """" + СтрЗаменить(Параметры[ИндПараметра], """", """""") + """";
|
||||
Иначе
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
КонецФункции
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="84493121-edfa-4292-a263-1afb8ea16929">
|
||||
<name>НастройкиКлиентСерверПереопределяемый</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Настройки клиент сервер переопределяемый</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
||||
34
src/Configuration/Configuration.mdo
Normal file
34
src/Configuration/Configuration.mdo
Normal file
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="68790786-0949-4132-8186-f9efe21986b5">
|
||||
<name>Конфигурация</name>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="7592a213-83b5-4b74-bc30-28cbd99c7ad5"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="cd6c4605-fdc9-42c9-b170-b399e18c3491"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="34660b80-6c80-472f-9ca6-383eadf6264a"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="c955357a-769e-42f7-bd98-991b642b32f2"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="98bc72d2-6633-4f98-b365-2f96dfdb0889"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="58a96081-d1b5-482a-a809-dce593faddf2"/>
|
||||
<configurationExtensionCompatibilityMode>8.3.16</configurationExtensionCompatibilityMode>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<scriptVariant>Russian</scriptVariant>
|
||||
<requiredMobileApplicationPermissions>
|
||||
<permission>AllowOSBackup</permission>
|
||||
<use>true</use>
|
||||
</requiredMobileApplicationPermissions>
|
||||
<defaultLanguage>Language.Русский</defaultLanguage>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<objectAutonumerationMode>NotAutoFree</objectAutonumerationMode>
|
||||
<modalityUseMode>UseWithWarnings</modalityUseMode>
|
||||
<synchronousPlatformExtensionAndAddInCallUseMode>UseWithWarnings</synchronousPlatformExtensionAndAddInCallUseMode>
|
||||
<compatibilityMode>8.3.10</compatibilityMode>
|
||||
<languages uuid="7c6af2b3-ad62-4732-ae6d-79a3428096c0">
|
||||
<name>Русский</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Русский</value>
|
||||
</synonym>
|
||||
<languageCode>ru</languageCode>
|
||||
</languages>
|
||||
<commonModules>CommonModule.НастройкиКлиентСерверПереопределяемый</commonModules>
|
||||
<dataProcessors>DataProcessor.СравнениеТабличныхДокументов</dataProcessors>
|
||||
</mdclass:Configuration>
|
||||
41
src/Configuration/ManagedApplicationModule.bsl
Normal file
41
src/Configuration/ManagedApplicationModule.bsl
Normal file
@@ -0,0 +1,41 @@
|
||||
#Если ТолстыйКлиентУправляемоеПриложение Тогда
|
||||
Процедура ПередНачаломРаботыСистемы(Отказ)
|
||||
Если СтрНачинаетсяС(ПараметрЗапуска, "ЗапускВнешнейОбработки") Тогда
|
||||
// обычный запуск
|
||||
Иначе
|
||||
МассивПараметры = СтрРазделить(ПараметрЗапуска, ";", Истина);
|
||||
Если МассивПараметры.Количество() = 0 Тогда
|
||||
Предупреждение(НСтр("ru = 'Неверное количество параметров'"));
|
||||
Отказ = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЧтениеТекста = Новый ЧтениеТекста(МассивПараметры[0]);
|
||||
ПерваяСтрока = ЧтениеТекста.ПрочитатьСтроку();
|
||||
ВтораяСтрока = ЧтениеТекста.ПрочитатьСтроку();
|
||||
Если ПерваяСтрока = "<?xml version=""1.0"" encoding=""UTF-8""?>"
|
||||
И СтрНачинаетсяС(ВтораяСтрока, "<document xmlns=""http://v8.1c.ru/8.2/data/spreadsheet""") Тогда
|
||||
|
||||
ОткрытьФорму("Обработка.СравнениеТабличныхДокументов.Форма.Инициализация");
|
||||
|
||||
Иначе
|
||||
Отказ = Истина;
|
||||
Если МассивПараметры.Количество() = 2
|
||||
ИЛИ МассивПараметры.Количество() = 4 Тогда
|
||||
|
||||
КомандаСравнения = НастройкиКлиентСерверПереопределяемый.ОсновнаяПрограммаСравнения2(МассивПараметры);
|
||||
|
||||
ИначеЕсли МассивПараметры.Количество() = 3
|
||||
ИЛИ МассивПараметры.Количество() = 6 Тогда
|
||||
|
||||
КомандаСравнения = НастройкиКлиентСерверПереопределяемый.ОсновнаяПрограммаСравнения3(МассивПараметры);
|
||||
Иначе
|
||||
Предупреждение(НСтр("ru = 'Неверное количество параметров'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЗапуститьПриложение(КомандаСравнения, , Истина);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
#КонецЕсли
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnOpen</event>
|
||||
<name>ПриОткрытии</name>
|
||||
</handlers>
|
||||
<autoTitle>true</autoTitle>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Vertical</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>true</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>Объект</name>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>DataProcessorObject.СравнениеТабличныхДокументов</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<main>true</main>
|
||||
</attributes>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
<extInfo xsi:type="form:ObjectFormExtInfo"/>
|
||||
</form:Form>
|
||||
@@ -0,0 +1,260 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2021, Щербаков Вадим, chtcherbakov.vadim@gmail.com
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
|
||||
#Если ТолстыйКлиентУправляемоеПриложение Тогда
|
||||
&НаКлиенте
|
||||
Перем ПутьКОбработкеПослеОткрытия;
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
|
||||
Поз = Найти(СтрокаСоединения, "File=""");
|
||||
Если Поз = 0 Тогда
|
||||
Предупреждение(НСтр("ru = 'Неверный тип ИБ'"));
|
||||
Отказ = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаСоединения = Сред(СтрокаСоединения, Поз + 6);
|
||||
Поз = Найти(СтрокаСоединения, """;");
|
||||
Если Поз = 0 Тогда
|
||||
Предупреждение(НСтр("ru = 'Неверный путь к файловой ИБ'"));
|
||||
Отказ = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
МассивПараметры = СтрРазделить(ПараметрЗапуска, ";", Истина);
|
||||
|
||||
Заголовок2 = Неопределено;
|
||||
Если МассивПараметры.Количество() = 2 Тогда
|
||||
Заголовок1 = ПолучитьЗаголовокСравнения(НСтр("ru = 'Старый'"), НСтр("ru = 'Новый'"));
|
||||
|
||||
ИначеЕсли МассивПараметры.Количество() = 3 Тогда
|
||||
Заголовок1 = ПолучитьЗаголовокСравнения(НСтр("ru = 'Старый'"), НСтр("ru = 'Текущий'"));
|
||||
Заголовок2 = ПолучитьЗаголовокСравнения(НСтр("ru = 'Старый'"), НСтр("ru = 'Новый'"));
|
||||
|
||||
ИначеЕсли МассивПараметры.Количество() = 4 Тогда
|
||||
// 2-х стороннее сравнение
|
||||
Заголовок1 = ПолучитьЗаголовокСравнения(МассивПараметры[2], МассивПараметры[3]);
|
||||
|
||||
ИначеЕсли МассивПараметры.Количество() = 6 Тогда
|
||||
// 3-х стороннее сравнение
|
||||
Заголовок1 = ПолучитьЗаголовокСравнения(МассивПараметры[3], МассивПараметры[4]);
|
||||
Заголовок2 = ПолучитьЗаголовокСравнения(МассивПараметры[3], МассивПараметры[5]);
|
||||
Иначе
|
||||
Предупреждение(НСтр("ru = 'Неверное количество параметров'"));
|
||||
Отказ = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
КаталогИБ = Лев(СтрокаСоединения, Поз - 1);
|
||||
ОбъектКаталогаEDT = Новый Файл(КаталогИБ + "\edt");
|
||||
Если НЕ ОбъектКаталогаEDT.Существует() Тогда
|
||||
//
|
||||
ПараметрыКонфигурацияВФайлы = СтрШаблон("DESIGNER /DumpConfigToFiles %1"
|
||||
,КаталогИБ + "\export");
|
||||
|
||||
КодВозврата = Неопределено;
|
||||
ЗапуститьСистему(ПараметрыКонфигурацияВФайлы, Истина, КодВозврата);
|
||||
Если КодВозврата <> 0 Тогда
|
||||
Отказ = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
//
|
||||
ПреобразоватьФайлыОбработок(КаталогИБ + "\export");
|
||||
|
||||
//
|
||||
КомандаСоздатьРабочийКаталог= СтрШаблон("cmd.exe /c ring edt%1 workspace import --configuration-files %2 --workspace-location %3 --project-name main"
|
||||
,СуффиксВерсииEDT()
|
||||
,КаталогИБ + "\export\DataProcessors"
|
||||
,КаталогИБ + "\edt");
|
||||
|
||||
КодВозврата = Неопределено;
|
||||
ЗапуститьПриложение(КомандаСоздатьРабочийКаталог, , Истина, КодВозврата);
|
||||
Если КодВозврата <> 0 Тогда
|
||||
Отказ = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ПутьКОбработкеПослеОткрытия = СоздатьОбработкуСравнения(КаталогИБ, МассивПараметры[0], МассивПараметры[1], Заголовок1, Отказ);
|
||||
|
||||
Если Заголовок2 <> Неопределено Тогда
|
||||
ПутьКОбработке = СоздатьОбработкуСравнения(КаталогИБ, МассивПараметры[0], МассивПараметры[2], Заголовок2, Отказ);
|
||||
Если ПутьКОбработке <> Неопределено Тогда
|
||||
ПараметрыОткрытьОбработку = СтрШаблон("/CЗапускВнешнейОбработки /Execute %1", ПутьКОбработке);
|
||||
ЗапуститьСистему(ПараметрыОткрытьОбработку);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ПодключитьОбработчикОжидания("ПослеОткрытия", 0.1, Истина);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПослеОткрытия()
|
||||
Если ПутьКОбработкеПослеОткрытия <> Неопределено Тогда
|
||||
ВнешняяОбработка = ВнешниеОбработки.Создать(ПутьКОбработкеПослеОткрытия);
|
||||
ОткрытьФорму("ВнешняяОбработка.СравнениеТабличныхДокументов.Форма");
|
||||
КонецЕсли;
|
||||
|
||||
Закрыть();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция СоздатьОбработкуСравнения(КаталогИБ, Файл1, Файл2, Заголовок, Отказ)
|
||||
//
|
||||
КопироватьФайл(Файл1, КаталогИБ + "\edt\main\src\ExternalDataProcessors\СравнениеТабличныхДокументов\Templates\Макет1\Template.mxlx");
|
||||
КопироватьФайл(Файл2, КаталогИБ + "\edt\main\src\ExternalDataProcessors\СравнениеТабличныхДокументов\Templates\Макет2\Template.mxlx");
|
||||
|
||||
ЗаписьТекста = Новый ЗаписьТекста(КаталогИБ + "\edt\main\src\ExternalDataProcessors\СравнениеТабличныхДокументов\Templates\Заголовок\Template.txt");
|
||||
ЗаписьТекста.Записать(Заголовок);
|
||||
ЗаписьТекста.Закрыть();
|
||||
|
||||
//
|
||||
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("epf");
|
||||
УдалитьФайлы(КаталогИБ + "\temp");
|
||||
|
||||
КомандаСоздатьФайлыОбработки = СтрШаблон("cmd.exe /c ring edt%1 workspace export --workspace-location %2 --configuration-files %3 --project-name main"
|
||||
,СуффиксВерсииEDT()
|
||||
,КаталогИБ + "\edt"
|
||||
,КаталогИБ + "\temp");
|
||||
|
||||
КодВозврата = Неопределено;
|
||||
ЗапуститьПриложение(КомандаСоздатьФайлыОбработки, , Истина, КодВозврата);
|
||||
Если КодВозврата <> 0 Тогда
|
||||
Отказ = Истина;
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
//
|
||||
КомандаСоздатьОбработку = СтрШаблон("DESIGNER /LoadExternalDataProcessorOrReportFromFiles %1 %2"
|
||||
,КаталогИБ + "\temp\ExternalDataProcessors\СравнениеТабличныхДокументов.xml", ИмяВременногоФайла);
|
||||
|
||||
КодВозврата = Неопределено;
|
||||
ЗапуститьСистему(КомандаСоздатьОбработку, Истина, КодВозврата);
|
||||
Если КодВозврата <> 0 Тогда
|
||||
Отказ = Истина;
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ИмяВременногоФайла;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПреобразоватьФайлыОбработок(ПутьККаталогуПоставки)
|
||||
МассивФайлы = НайтиФайлы(ПутьККаталогуПоставки + "\DataProcessors", "*.xml", Истина);
|
||||
Для Каждого Файл Из МассивФайлы Цикл
|
||||
ЧтениеXML = Новый ЧтениеXML;
|
||||
ЧтениеXML.ОткрытьФайл(Файл.ПолноеИмя);
|
||||
|
||||
ПостроительDOM = Новый ПостроительDOM;
|
||||
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
|
||||
ЧтениеXML.Закрыть();
|
||||
|
||||
ОбработатьУровеньDOM(ДокументDOM, ДокументDOM.ЭлементДокумента);
|
||||
|
||||
ЗаписьXML = Новый ЗаписьXML();
|
||||
ЗаписьXML.УстановитьСтроку(ЧтениеXML.КодировкаXML);
|
||||
|
||||
ЗаписьDOM = Новый ЗаписьDOM();
|
||||
ЗаписьDOM.Записать(ДокументDOM, ЗаписьXML);
|
||||
|
||||
Строка = ЗаписьXML.Закрыть();
|
||||
Строка = СтрЗаменить(Строка, "DataProcessor", "ExternalDataProcessor");
|
||||
|
||||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||||
ТекстовыйДокумент.УстановитьТекст(Строка);
|
||||
ТекстовыйДокумент.Записать(Файл.ПолноеИмя, ЧтениеXML.КодировкаXML);
|
||||
КонецЦикла;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработатьУровеньDOM(Документ, Элемент, МассивДобавляемые = Неопределено, МассивУдаляемые = Неопределено)
|
||||
Если Элемент.ТипУзла = ТипУзлаDOM.Элемент Тогда
|
||||
Если Элемент.ИмяУзла = "DataProcessor" Тогда
|
||||
Документ.ПереименоватьУзел(Элемент, Элемент.URIПространстваИмен, "http://v8.1c.ru/8.3/MDClasses/ExternalDataProcessor");
|
||||
|
||||
ИначеЕсли Элемент.ИмяУзла = "UseStandardCommands"
|
||||
ИЛИ Элемент.ИмяУзла = "IncludeHelpInContents"
|
||||
ИЛИ Элемент.ИмяУзла = "ExtendedPresentation"
|
||||
ИЛИ Элемент.ИмяУзла = "Explanation" Тогда
|
||||
|
||||
МассивУдаляемые.Добавить(Элемент);
|
||||
Возврат;
|
||||
|
||||
ИначеЕсли Элемент.URIПространстваИмен = "http://v8.1c.ru/8.3/xcf/readable"
|
||||
И Элемент.ЛокальноеИмя = "GeneratedType"
|
||||
И Элемент.Атрибуты.ПолучитьИменованныйЭлемент("category").Значение = "Manager" Тогда
|
||||
|
||||
ЭлементDOM = Документ.СоздатьЭлемент("http://v8.1c.ru/8.3/xcf/readable", "ContainedObject");
|
||||
|
||||
Для Каждого ДочернийЭлемент Из Элемент.ДочерниеУзлы Цикл
|
||||
Если ДочернийЭлемент.URIПространстваИмен = "http://v8.1c.ru/8.3/xcf/readable"
|
||||
И ДочернийЭлемент.ЛокальноеИмя = "TypeId" Тогда
|
||||
|
||||
ДочернийЭлементDOM = Документ.СоздатьЭлемент("http://v8.1c.ru/8.3/xcf/readable", "ClassId");
|
||||
ДочернийЭлементDOM.ТекстовоеСодержимое = "c3831ec8-d8d5-4f93-8a22-f9bfae07327f";
|
||||
|
||||
ЭлементDOM.ДобавитьДочерний(ДочернийЭлементDOM);
|
||||
|
||||
ИначеЕсли ДочернийЭлемент.URIПространстваИмен = "http://v8.1c.ru/8.3/xcf/readable"
|
||||
И ДочернийЭлемент.ЛокальноеИмя = "ValueId" Тогда
|
||||
|
||||
ДочернийЭлементDOM = Документ.СоздатьЭлемент("http://v8.1c.ru/8.3/xcf/readable", "ObjectId");
|
||||
ДочернийЭлементDOM.ТекстовоеСодержимое = ДочернийЭлемент.ТекстовоеСодержимое;
|
||||
|
||||
ЭлементDOM.ДобавитьДочерний(ДочернийЭлементDOM);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
МассивДобавляемые.Добавить(ЭлементDOM);
|
||||
МассивУдаляемые.Добавить(Элемент);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
МассивДляДобавления = Новый Массив;
|
||||
МассивДляУдаления = Новый Массив;
|
||||
Для Каждого ДочернийУзел Из Элемент.ДочерниеУзлы Цикл
|
||||
Если ТипЗнч(ДочернийУзел) = Тип("ЭлементDOM") Тогда
|
||||
ОбработатьУровеньDOM(Документ, ДочернийУзел, МассивДляДобавления, МассивДляУдаления);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого ДочернийУзел Из МассивДляДобавления Цикл
|
||||
Элемент.ДобавитьДочерний(ДочернийУзел);
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого ДочернийУзел Из МассивДляУдаления Цикл
|
||||
Элемент.УдалитьДочерний(ДочернийУзел);
|
||||
КонецЦикла;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Функция СуффиксВерсииEDT()
|
||||
ВерсияEDT = НастройкиКлиентСерверПереопределяемый.ВерсияEDT();
|
||||
Возврат ?(ЗначениеЗаполнено(ВерсияEDT), "@" + ВерсияEDT, "");
|
||||
КонецФункции
|
||||
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Функция ПолучитьЗаголовокСравнения(Заголовок1, Заголовок2)
|
||||
ОбщийЗаголовок = "";
|
||||
Для Инд = 1 По Мин(СтрДлина(Заголовок1), СтрДлина(Заголовок2)) Цикл
|
||||
ТекущийСимвол = Сред(Заголовок1, Инд, 1);
|
||||
Если ТекущийСимвол = Сред(Заголовок2, Инд, 1)
|
||||
И ТекущийСимвол <> "(" Тогда
|
||||
ОбщийЗаголовок = ОбщийЗаголовок + ТекущийСимвол;
|
||||
Иначе
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СтрШаблон("%1 [%2 <-> %3]"
|
||||
,ОбщийЗаголовок, Сред(Заголовок1, СтрДлина(ОбщийЗаголовок) + 1), Сред(Заголовок2, СтрДлина(ОбщийЗаголовок) + 1));
|
||||
КонецФункции
|
||||
|
||||
#КонецЕсли
|
||||
@@ -0,0 +1,307 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаДокументы</name>
|
||||
<id>9</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТабличныйДокумент1</name>
|
||||
<id>11</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ТабличныйДокумент1</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ТабличныйДокумент1РасширеннаяПодсказка</name>
|
||||
<id>13</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТабличныйДокумент1КонтекстноеМеню</name>
|
||||
<id>12</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SpreadsheetDocumentField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:SpreadSheetDocFieldExtInfo">
|
||||
<width>50</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<height>10</height>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<showGrid>true</showGrid>
|
||||
<showHeaders>true</showHeaders>
|
||||
<showCellNames>true</showCellNames>
|
||||
<showRowAndColumnNames>true</showRowAndColumnNames>
|
||||
<pointerType>Special</pointerType>
|
||||
<verticalScrollBar>ScrollAuto</verticalScrollBar>
|
||||
<horizontalScrollBar>ScrollAuto</horizontalScrollBar>
|
||||
<selectionShowMode>Always</selectionShowMode>
|
||||
<edit>true</edit>
|
||||
<showGroups>true</showGroups>
|
||||
<enableStartDrag>true</enableStartDrag>
|
||||
<enableDrag>true</enableDrag>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТабличныйДокумент2</name>
|
||||
<id>14</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ТабличныйДокумент2</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ТабличныйДокумент2РасширеннаяПодсказка</name>
|
||||
<id>16</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТабличныйДокумент2КонтекстноеМеню</name>
|
||||
<id>15</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SpreadsheetDocumentField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:SpreadSheetDocFieldExtInfo">
|
||||
<width>50</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<height>10</height>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<showGrid>true</showGrid>
|
||||
<showHeaders>true</showHeaders>
|
||||
<showCellNames>true</showCellNames>
|
||||
<showRowAndColumnNames>true</showRowAndColumnNames>
|
||||
<pointerType>Special</pointerType>
|
||||
<verticalScrollBar>ScrollAuto</verticalScrollBar>
|
||||
<horizontalScrollBar>ScrollAuto</horizontalScrollBar>
|
||||
<selectionShowMode>Always</selectionShowMode>
|
||||
<edit>true</edit>
|
||||
<showGroups>true</showGroups>
|
||||
<enableStartDrag>true</enableStartDrag>
|
||||
<enableDrag>true</enableDrag>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа документы</value>
|
||||
</title>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Группа документы</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаДокументыРасширеннаяПодсказка</name>
|
||||
<id>10</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>AlwaysHorizontal</group>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСравнить</name>
|
||||
<id>7</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСравнитьРасширеннаяПодсказка</name>
|
||||
<id>8</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.Сравнить</commandName>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<toolTipRepresentation>Auto</toolTipRepresentation>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnOpen</event>
|
||||
<name>ПриОткрытии</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>BeforeClose</event>
|
||||
<name>ПередЗакрытием</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>OnClose</event>
|
||||
<name>ПриЗакрытии</name>
|
||||
</handlers>
|
||||
<autoTitle>true</autoTitle>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Vertical</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>true</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>Объект</name>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>DataProcessorObject.СравнениеТабличныхДокументов</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<main>true</main>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ТабличныйДокумент1</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Табличный документ 1</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<valueType>
|
||||
<types>SpreadsheetDocument</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<savedData>true</savedData>
|
||||
<extInfo xsi:type="form:SpreadsheetDocumentExtInfo"/>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ТабличныйДокумент2</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Табличный документ 2</value>
|
||||
</title>
|
||||
<id>3</id>
|
||||
<valueType>
|
||||
<types>SpreadsheetDocument</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<savedData>true</savedData>
|
||||
<extInfo xsi:type="form:SpreadsheetDocumentExtInfo"/>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Сравнить</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Сравнить</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Сравнить</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>Сравнить</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</formCommands>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
<extInfo xsi:type="form:ObjectFormExtInfo"/>
|
||||
</form:Form>
|
||||
@@ -0,0 +1,85 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2021, Щербаков Вадим, chtcherbakov.vadim@gmail.com
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
ТолстыйКлиент = Ложь;
|
||||
#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
|
||||
ТолстыйКлиент = Истина;
|
||||
#КонецЕсли
|
||||
|
||||
Если НЕ ТолстыйКлиент Тогда
|
||||
ПоказатьПредупреждение( , НСтр("ru = 'Обработка должна быть запущена в режиме толстого клиента'"));
|
||||
Отказ = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
|
||||
ТабличныйДокумент1 = ПолучитьМакет("Макет1");
|
||||
ТабличныйДокумент2 = ПолучитьМакет("Макет2");
|
||||
УстановитьЗаголовокСистемы(ПолучитьМакет("Заголовок").ПолучитьТекст());
|
||||
|
||||
ПодключитьОбработчикОжидания("ПослеОткрытия", 0.1, Истина);
|
||||
#КонецЕсли
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПослеОткрытия()
|
||||
Сравнить();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Сравнить(Команда = Неопределено)
|
||||
#Если ТолстыйКлиентУправляемоеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
|
||||
ИмяВременногоФайла1 = ПолучитьИмяВременногоФайла("mxl");
|
||||
ТабличныйДокумент1.Записать(ИмяВременногоФайла1);
|
||||
|
||||
ИмяВременногоФайла2 = ПолучитьИмяВременногоФайла("mxl");
|
||||
ТабличныйДокумент2.Записать(ИмяВременногоФайла2);
|
||||
|
||||
СравнениеФайлов = Новый СравнениеФайлов;
|
||||
СравнениеФайлов.СпособСравнения = СпособСравненияФайлов.ТабличныйДокумент;
|
||||
СравнениеФайлов.ПервыйФайл = ИмяВременногоФайла1;
|
||||
СравнениеФайлов.ВторойФайл = ИмяВременногоФайла2;
|
||||
|
||||
СравнениеФайлов.ПоказатьРазличия();
|
||||
|
||||
УдалитьФайлы(ИмяВременногоФайла1);
|
||||
УдалитьФайлы(ИмяВременногоФайла2);
|
||||
#КонецЕсли
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ПолучитьМакет(ИмяМакета)
|
||||
Возврат РеквизитФормыВЗначение("Объект") .ПолучитьМакет(ИмяМакета);
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
|
||||
Если ЗавершениеРаботы <> Истина
|
||||
И Модифицированность Тогда
|
||||
|
||||
ОбработчикПродолжения = Новый ОписаниеОповещения("ПередЗакрытиемПослеВопроса", ЭтаФорма);
|
||||
ПоказатьВопрос(ОбработчикПродолжения, НСтр("ru = 'Измененные данные будут потеряны. Продолжить?'")
|
||||
,РежимДиалогаВопрос.ДаНет);
|
||||
Отказ = Истина;
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПередЗакрытиемПослеВопроса(РезультатВопроса, ДополнительныеПараметры) Экспорт
|
||||
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
|
||||
Модифицированность = Ложь;
|
||||
Закрыть();
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
||||
Если ЗавершениеРаботы <> Истина Тогда
|
||||
ЗавершитьРаботуСистемы(Ложь);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
@@ -0,0 +1 @@
|
||||
Сравнение табличных документов
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<languageSettings>
|
||||
<currentLanguage>ru</currentLanguage>
|
||||
<defaultLanguage>ru</defaultLanguage>
|
||||
<languageInfo>
|
||||
<id>ru</id>
|
||||
<code>Русский</code>
|
||||
<description>Русский</description>
|
||||
</languageInfo>
|
||||
</languageSettings>
|
||||
<columns>
|
||||
<size>1</size>
|
||||
</columns>
|
||||
<rowsItem>
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<c>
|
||||
<f>0</f>
|
||||
<tl/>
|
||||
</c>
|
||||
</c>
|
||||
</row>
|
||||
</rowsItem>
|
||||
<templateMode>true</templateMode>
|
||||
<defaultFormatIndex>1</defaultFormatIndex>
|
||||
<height>1</height>
|
||||
<vgRows>1</vgRows>
|
||||
<format>
|
||||
<width>72</width>
|
||||
</format>
|
||||
</document>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<languageSettings>
|
||||
<currentLanguage>ru</currentLanguage>
|
||||
<defaultLanguage>ru</defaultLanguage>
|
||||
<languageInfo>
|
||||
<id>ru</id>
|
||||
<code>Русский</code>
|
||||
<description>Русский</description>
|
||||
</languageInfo>
|
||||
</languageSettings>
|
||||
<columns>
|
||||
<size>1</size>
|
||||
</columns>
|
||||
<rowsItem>
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<c>
|
||||
<f>0</f>
|
||||
<tl/>
|
||||
</c>
|
||||
</c>
|
||||
</row>
|
||||
</rowsItem>
|
||||
<templateMode>true</templateMode>
|
||||
<defaultFormatIndex>1</defaultFormatIndex>
|
||||
<height>1</height>
|
||||
<vgRows>1</vgRows>
|
||||
<format>
|
||||
<width>72</width>
|
||||
</format>
|
||||
</document>
|
||||
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:DataProcessor xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b427fa32-a2ff-4767-aff6-d40ea2a29257">
|
||||
<producedTypes>
|
||||
<objectType typeId="c612d528-2bca-467d-b9b3-4889624e0246" valueTypeId="f517b230-71a5-4398-abc4-383e26b267b6"/>
|
||||
<managerType typeId="2fe1958b-162d-4f08-93e5-56c46d69e101" valueTypeId="e62e71a2-adb6-4a6e-be41-96ff7f147066"/>
|
||||
</producedTypes>
|
||||
<name>СравнениеТабличныхДокументов</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Сравнение табличных документов</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<defaultForm>DataProcessor.СравнениеТабличныхДокументов.Form.Форма</defaultForm>
|
||||
<forms uuid="16a35c95-80c2-4386-a33d-b71cacca0596">
|
||||
<name>Форма</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Форма</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<forms uuid="4784da7c-c146-4fe5-8b34-b206a018fbb1">
|
||||
<name>Инициализация</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Инициализация</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<templates uuid="f28066ba-e578-47cc-b501-f65b90583f76">
|
||||
<name>Макет1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Макет1</value>
|
||||
</synonym>
|
||||
</templates>
|
||||
<templates uuid="66526956-1d10-4fcc-a14f-b0c30f440256">
|
||||
<name>Макет2</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Макет2</value>
|
||||
</synonym>
|
||||
</templates>
|
||||
<templates uuid="d28575b0-be11-48ba-92e9-73de0e3afd69">
|
||||
<name>Заголовок</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Заголовок</value>
|
||||
</synonym>
|
||||
<templateType>TextDocument</templateType>
|
||||
</templates>
|
||||
</mdclass:DataProcessor>
|
||||
Reference in New Issue
Block a user