diff --git a/F.A.Q.MD b/F.A.Q.MD
index 8b0144ceb..f888c9cc7 100644
--- a/F.A.Q.MD
+++ b/F.A.Q.MD
@@ -3,18 +3,18 @@
1. Появляется ошибка, в которой есть текст: "Неизвестный идентификатор формы". Это означает, что есть два или более epf файла, у которых совпадает поле **Имя** (это которое находится около Синонима и Комментария).
1. При открытии внешних обработок могут появляться окна с предупреждениями безопасности.
- * Если вы используете версию платформы 8.3.9.2033 или новее, тогда может появиться окно **Предупреждение безопасности**.
+ * Если вы используете версию платформы 8.3.9.2033 или новее, тогда может появиться окно **Предупреждение безопасности**.
* Подробно этот механизм описан [здесь](http://its.1c.ru/db/v838doc#bookmark:dev:TI000001871).
* Решение описано по [ссылке](https://github.com/xDrivenDevelopment/precommit1c#%D0%94%D0%BB%D1%8F-%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%BD%D0%BE%D0%B9-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%BD%D0%B0-1%D0%A1-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8-8392016-%D0%B8-%D1%81%D1%82%D0%B0%D1%80%D1%88%D0%B5)
* Кратко - Если хотите выключить этот механизм для всех баз - пропишите в файле conf.cfg строку: **DisableUnsafeActionProtection=.***
1. При пакетном запуске не загружаются и не выполняются фичи, открывается только форма `bddRunner`
-
+
* У Вас неверный/устаревший/ json-файл настроек, несовместимый формат со штатным json, например, что читает 1С :frowning:
* например:
* одинарный слеш `\` не разрешен - используйте или `\\` или `/`
* или одинарные кавычки \` или ’ не разрешены - используйте `\"`
- * Пример правильной настройки
+ * Пример правильной настройки
```json
"КомандаСделатьСкриншот": "\"C:\\Program Files (x86)\\IrfanView\\i_view32.exe\" /capture=1 /convert=",
@@ -23,8 +23,8 @@
* Разбор проблемы в https://xdd.silverbulleters.org/t/pri-paketnom-zapuske-ne-zagruzhayutsya-i-ne-vypolnyayutsya-fichi-otkryvaetsya-tolko-bddrunner/2132
4. Как поставить точку останова (брейкпоинт) во внешней обработке для отладки?
- * Используйте штатный механизм отладки 1С, если у вас
- * файловая база
+ * Используйте штатный механизм отладки 1С, если у вас
+ * файловая база
* или клиент 1С и сервер 1С находятся на одной машине.
* Если это не так, тогда более сложный путь:
* Надо закрыть сеанс TestManager.
@@ -56,10 +56,10 @@
- Используйте организацию файлов через рабочий каталог проекта (**рекомендуемый путь**)
- В BDD – `Ванесса.Объект.КаталогПроекта`
- В TDD - `КонтекстЯдра.Объект.КаталогПроекта`
- - эта настройка задается
+ - эта настройка задается
- либо через командную строку (например, через `vanessa-runner`)
- либо интерактивно, через форму настроек (`Сервис`)
--
+-
- В TDD можно использовать получить полный путь к текущему файлу теста
– в тесте нужно определить свойство «ПутьКФайлуПолный»
- это или Глобальная публичная переменная модуля
@@ -72,11 +72,11 @@
7. Как пропустить сценарий, чтобы он не падал?
* Можно его закоментировать в тексте фичи (символ #)
* Можно поставить сценарию тег - и использовать теги фильтры
- * Да пусть падает - тем более если он не реализован - то он будет желтым, а если реализован - тогда почему он падает?
+ * Да пусть падает - тем более если он не реализован - то он будет желтым, а если реализован - тогда почему он падает?
2. Как запустить фичу из поставки VB у себя в базе?
* Большинство фич, которые идут в поставке VB, требуют, чтобы их запускали в специальной служебной базе.
- * Надо собрать служебную базу. Для этого надо загрузить CF из (**.\vanessa-behavoir\lib\CF\83**)
+ * Надо собрать служебную базу. Для этого надо загрузить CF из (**.\vanessa-behavoir\lib\CF\83**)
* Надо руками в базе установить константу **Путь к Vanessa Behavior** - это полный путь к обработке **vanessa-behavior.epf** включая имя файла
* Надо открыть в базе VB
* Надо указать тег исключение **IgnoreOnCIMainBuild** (список исключаемых тегов)
@@ -107,7 +107,7 @@
+ поле `Консольная команда создания скриншотов`
+ после строки команды вставляется имя файла и в таком виде команда запускается!
- Можно устанавливать
+ Можно устанавливать
+ как `NirCMD`
+ http://www.nirsoft.net/utils/nircmd.zip
+ команда `nircmd savescreenshot `
@@ -154,7 +154,7 @@
1. Я вызвал метод Ванесса.ЗапретитьВыполнениеШагов(), затем я подключаю свой таймер, и мне надо сделать, чтобы шаг упал.
* в этом случае вместо вызова исключения надо сделать Ванесса.ПродолжитьВыполнениеШагов(Истина)
-1. Как использовать Sikuli-скрипты.
+1. Как использовать Sikuli-скрипты.
* Установите SikuliX согласно инструкции http://sikulix.com/quickstart/;
* Ознакомьтесь с http://sikulix-2014.readthedocs.io/en/latest/faq/010-command-line.html;
* Укажите через path путь к каталогу с runsikulix(.cmd);
@@ -162,7 +162,7 @@
* Выполнение скрипта в реализации шага вызывайте через Ванесса.ВыполнитьSikuliСкрипт().
1. Как получить отчет Allure у себя на компьютере под Windows
- * Надо скачать дистрибутив Allure [отсюда](https://github.com/allure-framework/allure1/releases)
+ * Надо скачать дистрибутив Allure [отсюда](https://github.com/allure-framework/allure1/releases)
* Надо прописать в Path каталог где лежит allure.bat
* Для использования через командную строку можно использовать строки ниже
* Вызвать команду **call allure generate {каталог где лежат ваши xml в формате Allure}**
@@ -181,7 +181,19 @@
1. Как для УФ (управляемой формы) и ОФ (обычной формы) шаги сделать общими?
* Разместить код шага в модуле объекта обработки,
-* В коде управляемой формы в клиентском методе шага нужно вызвать серверный метод,
- * в котором выполнить `ОбъектНаСервере = ЗначениеФормыВОбъект("Объект")`
+* В коде управляемой формы в клиентском методе шага нужно вызвать серверный метод,
+ * в котором выполнить `ОбъектНаСервере = ЗначениеФормыВОбъект("Объект")`
* и вызвать код из модуля обработки `ОбъектНаСервере.НужныйМетод(...)`
* Сигнатуры методов в УФ и ОФ должны совпадать соответственно
+
+1. Что нужно сделать, чтобы увидеть собственные шаги в форме `Известные шаги` ?
+
+* В строке описания шага нужно заполнить последние параметры (4 и 5 параметры) в процедуре ДобавитьШагВМассивТестов. Там как раз задается развернутое описание шага и место в дереве.
+* Место в группе можно задавать с учетом иерархии.
+ * Указание группы как `UI.Формы.Кнопки.Мой шаг` расположит шаг в иерархии дерева `UI` - `Формы` - `Кнопки`
+* Например,
+
+```bsl
+ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты, "Пауза(Парам01)","Пауза", "И Пауза 1",
+ "Позволяет сделать паузу нужной длительности.", "Прочее.Сделать паузу");
+```
diff --git a/epf/xddTestRunner/xddTestRunner.xml b/epf/xddTestRunner/xddTestRunner.xml
index 3dafcfb8d..e1f6db906 100644
--- a/epf/xddTestRunner/xddTestRunner.xml
+++ b/epf/xddTestRunner/xddTestRunner.xml
@@ -676,6 +676,40 @@
Auto
+
+
+ ПлагиныЗагружены
+
+
+ ru
+ Плагины загружены
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
diff --git "a/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
index 231e9eb3a..c289d4bf8 100644
--- "a/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
+++ "b/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
@@ -483,6 +483,28 @@
xs:boolean
+
+
+
+ ru
+ Есть поддержка асинхронных вызовов
+
+
+
+ xs:boolean
+
+
+
+
+
+ ru
+ Есть защита от опасных действий
+
+
+
+ xs:boolean
+
+
diff --git "a/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
index 6d13b4cd1..79d0918ae 100644
--- "a/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
+++ "b/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
@@ -3,10 +3,16 @@
&НаКлиенте
Перем ПодключенныеВнешниеОбработки;
+&НаКлиенте
+Перем Версия836ИлиВыше Экспорт;
+
// { События формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
+
+ ЕстьПоддержкаАсинхронныхВызовов = УзнатьЕстьПоддержкаАсинхронныхВызовов();
+ ЕстьЗащитаОтОпасныхДействий = УзнатьЕстьЗащитаОтОпасныхДействий();
ЭтаФорма.Заголовок = ОбъектНаСервере.ЗаголовокФормы();
@@ -21,12 +27,31 @@
&НаКлиенте
Процедура ПриОткрытии()
Объект.ИспользоватьПрямыеПутиФайлов = КлиентИСерверРасположеныНаОднойМашине();
+
+ СистемнаяИнформация = Новый СистемнаяИнформация;
+ Версия836ИлиВыше = ВерсияПриложенияБольшеИлиРавнаЧемЗаданная(СистемнаяИнформация.ВерсияПриложения, "8.3.6.0");
ЗагрузитьПлагины();
+
+ //КэшироватьПеречисленияПлагинов();
+ //СброситьПодключенныеВнешниеОбработки();
+ //
+ //КаталогПроекта = КаталогВременныхФайлов();
+
+ //ЭтоПакетныйЗапуск = ЗначениеЗаполнено(ПараметрЗапуска);
+ //Если ЭтоПакетныйЗапуск Тогда
+ // ВыполнитьПакетныйЗапуск(ПараметрЗапуска);
+ //Иначе
+ // ПерезагрузитьПоследниеТестыПоИстории();
+ //КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПриОткрытииЗавершение()
КэшироватьПеречисленияПлагинов();
СброситьПодключенныеВнешниеОбработки();
- КаталогПроекта = КаталогВременныхФайлов();
+ КаталогПроекта = ПолучитьКаталогВременныхФайлов();
ЭтоПакетныйЗапуск = ЗначениеЗаполнено(ПараметрЗапуска);
Если ЭтоПакетныйЗапуск Тогда
@@ -36,7 +61,6 @@
КонецЕсли;
КонецПроцедуры
-&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы = Неопределено)
Если ЭтоПакетныйЗапуск Тогда
@@ -47,8 +71,12 @@
Возврат;
КонецЕсли;
+
+
ПриЗакрытииНаСервере();
+
+
КонецПроцедуры
&НаСервере
@@ -147,8 +175,8 @@
Попытка
ЗагрузитьТесты(ЭлементИстории.ИдентификаторЗагрузчика, ЭлементИстории.Путь);
Исключение
- // TODO
- Сообщить("Не удалось загрузить тесты из истории <" + ЭлементИстории.ИдентификаторЗагрузчика + ": " + ЭлементИстории.Путь + ">" + Символы.ПС + ОписаниеОшибки());
+ Сообщить("Не удалось загрузить тесты из истории <" + ЭлементИстории.ИдентификаторЗагрузчика + ": " +
+ ЭлементИстории.Путь + ">" + Символы.ПС + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
@@ -199,6 +227,10 @@
// { Плагины
&НаКлиенте
Процедура ЗагрузитьПлагины()
+ Если Объект.ПлагиныЗагружены Тогда
+ Возврат;
+ КонецЕсли;
+
Объект.Плагины = Новый Структура;
КэшФормПлагинов = Новый Структура;
@@ -209,55 +241,198 @@
Для Каждого Плагин Из Объект.Плагины Цикл
КэшФормПлагинов.Вставить(Плагин.Ключ, Истина);
КонецЦикла;
+
+ ДобавитьКомандыЗагрузчиковНаФорме();
+
+
Иначе
КаталогПлагинов = ПолучитьПутьКПлагинам();
- НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь);
+
+ Если ЕстьПоддержкаАсинхронныхВызовов Тогда
+ ОбработчикПоискаКлиентскихПлагинов = Вычислить("Новый ОписаниеОповещения(""ОбработчикПоискаКлиентскихПлагинов"", ЭтаФорма)");
+ Выполнить("НачатьПоискФайлов(ОбработчикПоискаКлиентскихПлагинов, КаталогПлагинов, ""*.epf"", Ложь)");
+ Иначе
+ НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь);
+ ОбработчикПоискаКлиентскихПлагинов(НайденныеФайлы, Неопределено);
+ КонецЕсли;
+ КонецЕсли;
+
+ // НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь);
- ЗагруженныеФайлы = Новый Массив;
- ИдентификаторыПлагинов = Новый Соответствие;
- Если Объект.ИспользоватьПрямыеПутиФайлов Тогда
- Для каждого ФайлОбработки Из НайденныеФайлы Цикл
+ // ЗагруженныеФайлы = Новый Массив;
+ // ИдентификаторыПлагинов = Новый Соответствие;
+ // Если Объект.ИспользоватьПрямыеПутиФайлов Тогда
+ // Для каждого ФайлОбработки Из НайденныеФайлы Цикл
- ОписаниеПередаваемогоФайла = Новый Структура("Имя", ФайлОбработки.ПолноеИмя);
- ЗагруженныеФайлы.Добавить(ОписаниеПередаваемогоФайла);
+ // ОписаниеПередаваемогоФайла = Новый Структура("Имя", ФайлОбработки.ПолноеИмя);
+ // ЗагруженныеФайлы.Добавить(ОписаниеПередаваемогоФайла);
- ИмяПлагина = ФайлОбработки.ИмяБезРасширения;
- ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина);
+ // ИмяПлагина = ФайлОбработки.ИмяБезРасширения;
+ // ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина);
- КонецЦикла;
- Иначе
- ПомещаемыеФайлы = Новый Массив;
- Для каждого ФайлОбработки Из НайденныеФайлы Цикл
+ // КонецЦикла;
+ // Иначе
+ // ПомещаемыеФайлы = Новый Массив;
- ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя);
- ПомещаемыеФайлы.Добавить(ПомещаемыйФайл);
+ // Для каждого ФайлОбработки Из НайденныеФайлы Цикл
- ИмяПлагина = ФайлОбработки.ИмяБезРасширения;
- ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина);
+ // ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя);
+ // ПомещаемыеФайлы.Добавить(ПомещаемыйФайл);
- КонецЦикла;
+ // ИмяПлагина = ФайлОбработки.ИмяБезРасширения;
+ // ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина);
- Если ПомещаемыеФайлы.Количество() Тогда
- ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор);
- КонецЕсли;
- КонецЕсли;
+ // КонецЦикла;
+
+ // Если ПомещаемыеФайлы.Количество() Тогда
+ // ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор);
+ // КонецЕсли;
+ // КонецЕсли;
+
+
+ // ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы);
+
+ // Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл
+ // ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя];
- ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы);
+ // ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя];
+ // Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина);
+ // КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина);
- Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл
- ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя];
+ // КонецЦикла;
+ //КонецЕсли;
- ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя];
- Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина);
- КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина);
+ //ДобавитьКомандыЗагрузчиковНаФорме();
+
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОбработчикПоискаКлиентскихПлагинов(Знач НайденныеФайлы, Знач ДополнительныеПараметры) Экспорт
+
+ ПомещаемыеФайлы = Новый Массив;
+ ИдентификаторыПлагинов = Новый Соответствие;
+ ИдентификаторыИменПлагинов = Новый Соответствие;
+
+ Если Объект.ИспользоватьПрямыеПутиФайлов Тогда
+ ПомещенныеФайлы = Новый Массив;
+ Для каждого ФайлОбработки Из НайденныеФайлы Цикл
+
+ ОписаниеПередаваемогоФайла = Новый Структура("Имя", ФайлОбработки.ПолноеИмя);
+ ПомещенныеФайлы.Добавить(ОписаниеПередаваемогоФайла);
+
+ ИмяПлагина = ФайлОбработки.ИмяБезРасширения;
+ ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина);
+ ИдентификаторыИменПлагинов.Вставить(ИмяПлагина, ФайлОбработки.ПолноеИмя);
+
+ КонецЦикла;
+
+ ПодключитьНайденныеКлиентскиеПлагины(ПомещенныеФайлы, ИдентификаторыПлагинов);
+ Иначе
+
+ Для каждого ФайлОбработки Из НайденныеФайлы Цикл
+
+ ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя);
+ ПомещаемыеФайлы.Добавить(ПомещаемыйФайл);
+
+ ИмяПлагина = ФайлОбработки.ИмяБезРасширения;
+ ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина);
+ ИдентификаторыИменПлагинов.Вставить(ИмяПлагина, ФайлОбработки.ПолноеИмя);
КонецЦикла;
+
+ Если ПомещаемыеФайлы.Количество() Тогда
+ ПараметрыЗавершения = Новый Структура("ИдентификаторыПлагинов", ИдентификаторыПлагинов);
+ Если Версия836ИлиВыше Тогда
+ Выполнить("НачатьПомещениеФайлов(Новый ОписаниеОповещения(""ОбработчикПоискаКлиентскихПлагиновЗавершение"", ЭтаФорма, ПараметрыЗавершения),
+ |ПомещаемыеФайлы, , Ложь, ЭтаФорма.УникальныйИдентификатор)");
+ Иначе
+ ПомещенныеФайлы = Новый Массив;
+ ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, , Ложь, ЭтаФорма.УникальныйИдентификатор);
+ ПодключитьНайденныеКлиентскиеПлагины(ПомещенныеФайлы, ИдентификаторыПлагинов);
+ КонецЕсли;
+ Иначе
+ ПодключитьНайденныеКлиентскиеПлагины(Новый Массив, ИдентификаторыПлагинов);
+ КонецЕсли;
КонецЕсли;
- ДобавитьКомандыЗагрузчиковНаФорме();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОбработчикПоискаКлиентскихПлагиновЗавершение(Знач ПомещенныеФайлы, Знач ДополнительныеПараметры) Экспорт
+
+ ПодключитьНайденныеКлиентскиеПлагины(ПомещенныеФайлы, ДополнительныеПараметры.ИдентификаторыПлагинов);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПодключитьНайденныеКлиентскиеПлагины(Знач ЗагруженныеФайлы, Знач ИдентификаторыПлагинов)
+ Перем ЗагруженныйФайл, ИмяПлагина, ОписаниеПлагина, ОписанияПлагинов;
+ Перем ОбъектПлагина, ОписанияПлагиновКлиент, ПодключенныеРанее, МассивФормПлагинов;
+
+ //ОписанияПлагиновКлиент = Новый Соответствие;
+ //ПодключенныеРанее = Новый Соответствие;
+
+ //МассивПодключенныхПлагинов = Новый Массив();
+ //Если Не Объект.ИспользоватьПрямыеПутиФайлов Тогда
+ // ПодключитьВнешниеОбработкиДляОтладки(Истина, МассивПодключенныхПлагинов);
+ //КонецЕсли;
+
+ ////Подключим на клиенте для отладки
+ //Для каждого ОбъектПлагина Из МассивПодключенныхПлагинов Цикл
+ // Попытка
+ // ОбъектПлагина.Инициализация(ЭтаФорма);
+ // ОписаниеПлагина = ОбъектПлагина.ОписаниеПлагина(Объект.ТипыПлагинов);
+ // ИмяПлагина = ОписаниеПлагина.Идентификатор;
+
+ // ПодключенныеРанее.Вставить(ОписаниеПлагина.Идентификатор, Истина);
+ // Объект.ПлагиныЗагружены = Истина;
+ // Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина);
+ // КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина);
+ // СделатьСообщение("Подключен плагин " + ИмяПлагина + " в режиме отладки");
+ // Исключение
+ // ИнфоОшибки = ИнформацияОбОшибке();
+ // Если ОбъектПлагина <> Неопределено Тогда
+ // СделатьСообщение("Ошибка подключения плагина "+ОбъектПлагина.Заголовок + ":
+ // |" + ИнфоОшибки.Описание);
+ // Иначе
+ // СделатьСообщение("Ошибка подключения неопределенного плагина:
+ // |" + ИнфоОшибки.Описание);
+ // КонецЕсли;
+ // КонецПопытки;
+
+ //КонецЦикла;
+
+ //ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы, ПодключенныеРанее);
+ ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы);
+
+ Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл
+ Объект.ПлагиныЗагружены = Истина;
+
+ ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя];
+
+ ОписаниеПлагина = ОписанияПлагинов.Получить(ЗагруженныйФайл.Имя);
+ Если ОписаниеПлагина = Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+ Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина);
+ КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина);
+
+ КонецЦикла;
+
+
+ ЗагрузкаПлагиновЗавершение();
КонецПроцедуры
+&НаКлиенте
+Процедура ЗагрузкаПлагиновЗавершение() Экспорт
+ ДобавитьКомандыЗагрузчиковНаФорме();
+ ПриОткрытииЗавершение();
+ //КэшироватьПеречисленияПлагинов();
+ //СброситьПодключенныеВнешниеОбработки();
+КонецПроцедуры
+
&НаСервере
Функция ПодключитьПлагиныНаСервере(Знач ЗагружаемыеФайлы)
@@ -775,7 +950,7 @@
РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка;
ВывестиОписаниеОшибкиВЛогФайл(РезультатТестирования);
-КонецПопытки;
+ КонецПопытки;
Возврат РезультатТестирования;
КонецФункции
@@ -1004,29 +1179,22 @@
ТестКлиенты.ПодключитьТестКлиент_ПакетныйРежим(Параметры_xddTestClient);
КонецЕсли;
- Параметры_xddRun = Неопределено;
- Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddRun, Параметры_xddRun) Тогда
- РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Параметры_xddRun);
- Если РезультатыТестирования = Неопределено Тогда
- ВывестиСообщение("Не найдено результатов тестирования");
- КонецЕсли;
- КонецЕсли;
-
- Параметры_xddReport = Неопределено;
- Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddReport, Параметры_xddReport) Тогда
- СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Параметры_xddReport, РезультатыТестирования);
- КонецЕсли;
-
- Параметры_xddExitCodePath = Неопределено;
- Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddExitCodePath, Параметры_xddExitCodePath) Тогда
- СформироватьФайлКодаВозврата(Параметры_xddExitCodePath, РезультатыТестирования);
- КонецЕсли;
-
- Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddShutdown) Тогда
- Если ТестКлиенты <> Неопределено Тогда
- ТестКлиенты.ЗавершитьВсеТестКлиенты();
- КонецЕсли;
- ЗавершитьРаботуСистемы(Ложь);
+ НастройкиШагов = Новый Структура;
+ НастройкиШагов.Вставить("Параметры_xddRun");
+ НастройкиШагов.Вставить("Параметры_xddReport");
+ НастройкиШагов.Вставить("Параметры_xddExitCodePath");
+ НастройкиШагов.Вставить("xddShutdown");
+ НастройкиШагов.Вставить("ТестКлиенты", ТестКлиенты);
+
+ ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun, НастройкиШагов.Параметры_xddRun);
+ ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddReport, НастройкиШагов.Параметры_xddReport);
+ ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddExitCodePath, НастройкиШагов.Параметры_xddExitCodePath);
+ НастройкиШагов.xddShutdown = ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddShutdown);
+
+ Если Не ЕстьПоддержкаАсинхронныхВызовов Тогда
+ ВыполнитьПакетныйЗапускСинхронно(НастройкиШагов);
+ Иначе
+ ВыполнитьПакетныйЗапускАсинхронно(НастройкиШагов)
КонецЕсли;
Исключение
@@ -1043,11 +1211,268 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ВыполнитьПакетныйЗапускСинхронно(Знач ПараметрыЗапуска)
+
+ Перем РезультатыТестирования;
+
+ Если ПараметрыЗапуска.Параметры_xddRun <> Неопределено Тогда
+ РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(ПараметрыЗапуска.Параметры_xddRun);
+ Если РезультатыТестирования = Неопределено Тогда
+ ВывестиСообщение("Не найдено результатов тестирования");
+ КонецЕсли;
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрыЗапуска.Параметры_xddReport <> Неопределено Тогда
+ СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(ПараметрыЗапуска.Параметры_xddReport, РезультатыТестирования);
+ КонецЕсли;
+
+ Если ПараметрыЗапуска.Параметры_xddExitCodePath <> Неопределено Тогда
+ СформироватьФайлКодаВозврата(ПараметрыЗапуска.Параметры_xddExitCodePath, РезультатыТестирования);
+ КонецЕсли;
+
+ Если ПараметрыЗапуска.xddShutdown = Истина Тогда
+ Если ПараметрыЗапуска.ТестКлиенты <> Неопределено Тогда
+ ПараметрыЗапуска.ТестКлиенты.ЗавершитьВсеТестКлиенты();
+ КонецЕсли;
+
+ ЗавершитьРаботуСистемы(Ложь);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ВыполнитьПакетныйЗапускАсинхронно(Знач ПараметрыЗапуска)
+ ПервичнаяНастройка();
+
+ Состояние = Новый Структура;
+ Состояние.Вставить("НастройкиШагов", ПараметрыЗапуска);
+ Состояние.Вставить("СледующийШаг");
+ Состояние.Вставить("ТекущийШаг");
+ Состояние.Вставить("РезультатыТестирования");
+
+ Если ПараметрыЗапуска.Параметры_xddRun <> Неопределено Тогда
+ Состояние.СледующийШаг = "ЗагрузитьТесты";
+ ИначеЕсли ПараметрыЗапуска.xddShutdown = Истина Тогда
+ Состояние.СледующийШаг = "ЗавершитьРаботу";
+ Иначе
+ ВызватьИсключение НСтр("ru = 'Vanessa-ADD: Я не знаю что мне делать. Нет приказа на выполнение тестов или закрытие.'");
+ КонецЕсли;
+
+ ВыполнитьШагПакетногоЗапуска(, Состояние);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ВыполнитьШагПакетногоЗапуска(Знач РезультатПредыдущегоШага, Знач Состояние) Экспорт
+
+ ОбработкаОповещения = Новый ОписаниеОповещения("ВыполнитьШагПакетногоЗапуска", ЭтаФорма, Состояние, "ВыполнитьШагПакетногоЗапускаИсключение", ЭтаФорма);
+
+ Состояние.ТекущийШаг = Состояние.СледующийШаг;
+ Если Состояние.СледующийШаг = "ЗагрузитьТесты" Тогда
+ НачатьЗагрузкуТестовПакетныйРежим(ОбработкаОповещения);
+ ИначеЕсли Состояние.СледующийШаг = "ЗапуститьТесты" Тогда
+ НачатьВыполнениеТестов(РезультатПредыдущегоШага, ОбработкаОповещения);
+ ИначеЕсли Состояние.СледующийШаг = "СоставитьОтчет" Тогда
+ СоставитьОтчетОТестировании(РезультатПредыдущегоШага, ОбработкаОповещения);
+ ИначеЕсли Состояние.СледующийШаг = "ЗавершитьРаботу" Тогда
+
+ Если Состояние.НастройкиШагов.Параметры_xddExitCodePath <> Неопределено Тогда
+ СформироватьФайлКодаВозврата(Состояние.НастройкиШагов.Параметры_xddExitCodePath, Состояние.РезультатыТестирования);
+ КонецЕсли;
+
+ ТестКлиенты = Состояние.НастройкиШагов.ТестКлиенты;
+ Если ТестКлиенты <> Неопределено Тогда
+ ТестКлиенты.ЗавершитьВсеТестКлиенты();
+ КонецЕсли;
+
+ ЗавершитьРаботуСистемы(Ложь);
+ КонецЕсли;
+
+КонецПроцедуры // ВыполнитьШагПакетногоЗапуска()
+
+&НаКлиенте
+Процедура ВыполнитьШагПакетногоЗапускаИсключение(Знач ИнформацияОбОшибке, СтандартнаяОбработка, Знач Состояние) Экспорт
+
+ СтандартнаяОбработка = Ложь;
+
+ ТекстОшибки = СтрШаблон("Ошибка при асинхронном режиме пакетного запуска:
+ |Состояние:
+ | Текущий шаг: %1
+ | Следующий шаг:%2
+ | Исключение: %3",
+ Состояние.ТекущийШаг, Состояние.СледующийШаг, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
+
+ ЗафиксироватьОшибкуВЖурналеРегистрации("xUnitFor1C.АсинхронныйПакетныйЗапуск", ТекстОшибки);
+ Сообщить(ТекстОшибки, СтатусСообщения.ОченьВажное);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура НачатьЗагрузкуТестовПакетныйРежим(Знач ОбработкаОповещения);
+ Параметры_xddRun = ОбработкаОповещения.ДополнительныеПараметры.НастройкиШагов.Параметры_xddRun;
+ ИдентификаторЗагрузчика = Параметры_xddRun[0];
+ Загрузчик = ЭтаФорма.Плагин(ИдентификаторЗагрузчика);
+
+ ПутьКТестам = Параметры_xddRun[1];
+
+ ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "ЗапуститьТесты";
+ ОбработкаОповещения.ДополнительныеПараметры.Вставить("Загрузчик", Загрузчик);
+ Загрузчик.НачатьЗагрузку(ОбработкаОповещения, ЭтаФорма, ПутьКТестам);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура НачатьВыполнениеТестов(ДеревоТестовОтЗагрузчика, ОбработкаОповещения)
+
+ Загрузчик = ОбработкаОповещения.ДополнительныеПараметры.Загрузчик;
+ РезультатыТестирования = ЭтаФорма.ВыполнитьТесты(Загрузчик, ДеревоТестовОтЗагрузчика);
+ Если РезультатыТестирования = Неопределено Тогда
+ ВывестиСообщение("Не найдено результатов тестирования");
+ КонецЕсли;
+
+ ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "СоставитьОтчет";
+ ОбработкаОповещения.ДополнительныеПараметры.РезультатыТестирования = РезультатыТестирования;
+ ВыполнитьОбработкуОповещения(ОбработкаОповещения, РезультатыТестирования);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура СоставитьОтчетОТестировании(РезультатыТестирования, ОбработкаОповещения)
+
+ Параметры_xddReport = ОбработкаОповещения.ДополнительныеПараметры.НастройкиШагов.Параметры_xddReport;
+ Если Не ЗначениеЗаполнено(РезультатыТестирования) или Параметры_xddReport = Неопределено Тогда
+ // Отчет не нужен
+ ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "ЗавершитьРаботу";
+ ВыполнитьОбработкуОповещения(ОбработкаОповещения, Неопределено);
+ Возврат;
+ КонецЕсли;
+
+ Если Параметры_xddReport.Количество() > 0 И ТипЗнч(Параметры_xddReport[0]) <> Тип("ФиксированныйМассив") Тогда
+ НовыйМассивПараметров = Новый Массив;
+ НовыйМассивПараметров.Добавить(Параметры_xddReport);
+ Параметры_xddReport = НовыйМассивПараметров;
+ КонецЕсли;
+
+ ЭкспортируемыеОтчеты = Новый Массив;
+
+ Для Каждого ОчередныеПараметры Из Параметры_xddReport Цикл
+
+ ИдентификаторГенератораОтчета = ОчередныеПараметры[0];
+ ГенераторОтчета = ЭтаФорма.Плагин(ИдентификаторГенератораОтчета);
+ Отчет = ГенераторОтчета.СоздатьОтчет(ЭтаФорма, РезультатыТестирования);
+ ПутьКОтчету = ОчередныеПараметры[1];
+
+ НаборОтчетов = Отчет;
+ Если ТипЗнч(НаборОтчетов) <> Тип("Массив") Тогда
+ НовыйНаборОтчетов = Новый Массив;
+ НовыйНаборОтчетов.Добавить(НаборОтчетов);
+ НаборОтчетов = НовыйНаборОтчетов;
+ КонецЕсли;
+
+ СтрокаЭкспорта = СтрокаЭкспортируемыхОтчетов();
+ СтрокаЭкспорта.Отчет = НовыйНаборОтчетов;
+ СтрокаЭкспорта.Путь = ПутьКОтчету;
+ СтрокаЭкспорта.ГенераторОтчета = ГенераторОтчета;
+ СтрокаЭкспорта.ИдентификаторГенератораОтчета = ИдентификаторГенератораОтчета;
+
+ ЭкспортируемыеОтчеты.Добавить(СтрокаЭкспорта);
+
+ КонецЦикла;
+
+ ПараметрыДиспетчера = Новый Структура;
+ ПараметрыДиспетчера.Вставить("ИндексВидаОтчета", 0);
+ ПараметрыДиспетчера.Вставить("ИндексОтчета", 0);
+ ПараметрыДиспетчера.Вставить("СписокОтчетов", ЭкспортируемыеОтчеты);
+ ПараметрыДиспетчера.Вставить("Финализация", ОбработкаОповещения);
+
+ ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим(, ПараметрыДиспетчера);
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция СтрокаЭкспортируемыхОтчетов()
+ Возврат Новый Структура("Отчет,Путь,ГенераторОтчета,ИдентификаторГенератораОтчета");
+КонецФункции
+
+
+&НаКлиенте
+Процедура ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим(Знач РезультатЭкспорта, Знач ПараметрыДиспетчера) Экспорт
+
+ СписокОтчетов = ПараметрыДиспетчера.СписокОтчетов;
+ Если СписокОтчетов.Количество() > ПараметрыДиспетчера.ИндексВидаОтчета Тогда
+ СтрокаЭкспорта = СписокОтчетов[ПараметрыДиспетчера.ИндексВидаОтчета];
+ ГенераторОтчета = СтрокаЭкспорта.генераторОтчета;
+
+ ПутьКОтчету = СтрокаЭкспорта.Путь;
+
+ ОписаниеОшибки = СтрШаблон_("УФ: Формируем отчет тестирования - путь %1", ПутьКОтчету);
+ ЗафиксироватьОшибкуВЖурналеРегистрации(СтрокаЭкспорта.ИдентификаторГенератораОтчета, ОписаниеОшибки, Истина);
+
+ НаборОтчетов = СтрокаЭкспорта.Отчет;
+
+ Если ПараметрыДиспетчера.ИндексОтчета < НаборОтчетов.Количество() Тогда
+
+ Отчет = НаборОтчетов[ПараметрыДиспетчера.ИндексОтчета];
+
+ ПараметрыДиспетчера.ИндексОтчета = ПараметрыДиспетчера.ИндексОтчета + 1;
+ КонецЕсли;
+
+ Если ПараметрыДиспетчера.ИндексОтчета >= НаборОтчетов.Количество() Тогда
+ ПараметрыДиспетчера.ИндексВидаОтчета = ПараметрыДиспетчера.ИндексВидаОтчета + 1;
+ ПараметрыДиспетчера.ИндексОтчета = 0;
+ КонецЕсли;
+
+ ОбработчикЭкспорта = Новый ОписаниеОповещения("ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим", ЭтаФорма, ПараметрыДиспетчера,
+ "ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежимИсключение", ЭтаФорма);
+ ГенераторОтчета.НачатьЭкспорт(ОбработчикЭкспорта, Отчет, СтрокаЭкспорта.Путь);
+
+ Иначе
+ ОбработкаОповещения = ПараметрыДиспетчера.Финализация;
+ ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "ЗавершитьРаботу";
+ ВыполнитьОбработкуОповещения(ОбработкаОповещения);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежимИсключение(Знач ИнформацияОбОшибке, СтандартнаяОбработка, Знач ПараметрыДиспетчера) Экспорт
+
+ СтандартнаяОбработка = Ложь;
+
+ СписокОтчетов = ПараметрыДиспетчера.СписокОтчетов;
+ Если СписокОтчетов.Количество() > ПараметрыДиспетчера.ИндексВидаОтчета Тогда
+ СтрокаЭкспорта = СписокОтчетов[ПараметрыДиспетчера.ИндексВидаОтчета];
+ ГенераторОтчета = СтрокаЭкспорта.генераторОтчета;
+
+ ТекстОшибки = СтрШаблон("Ошибка при асинхронном режиме генерации отчетов пакетного запуска:
+ |Состояние:
+ | Генератор отчета: %1
+ | Отчет: %2
+ | Путь файла: %3
+ | Исключение: %4",
+ ГенераторОтчета, СтрокаЭкспорта.Отчет, СтрокаЭкспорта.Путь, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
+
+ Иначе
+ ТекстОшибки = СтрШаблон("Ошибка при асинхронном режиме генерации отчетов пакетного запуска:
+ |Состояние:
+ | Исключение: %1",
+ ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
+
+ КонецЕсли;
+
+ ЗафиксироватьОшибкуВЖурналеРегистрации("xUnitFor1C.АсинхронныйПакетныйЗапуск", ТекстОшибки);
+ Сообщить(ТекстОшибки, СтатусСообщения.ОченьВажное);
+
+ ОбработкаОповещения = ПараметрыДиспетчера.Финализация;
+ ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "ЗавершитьРаботу";
+ ВыполнитьОбработкуОповещения(ОбработкаОповещения);
+КонецПроцедуры
+
&НаКлиенте
Функция ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Знач Параметры_xddRun)
ПервичнаяНастройка();
+
ИдентификаторЗагрузчика = Параметры_xddRun[0];
Загрузчик = Плагин(ИдентификаторЗагрузчика);
@@ -1060,11 +1485,15 @@
РезультатыТестирования = ВыполнитьТесты(Загрузчик, ДеревоТестовОтЗагрузчика);
Иначе
+
+
+
ВывестиСообщение("Не найдено загруженных тестов. Выполнение тестов завершается");
КонецЕсли;
+
Возврат РезультатыТестирования;
КонецФункции
@@ -1286,6 +1715,65 @@
КонецЕсли;
КонецПроцедуры
+#Область АсинхронныйAPI
+
+&НаКлиенте
+Процедура НачатьПодключениеВнешнейбработки(Знач ОбработкаОповещения, Знач ФайлОбработки) Экспорт
+
+ Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда
+ ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = ".erf");
+
+ ПараметрыОповещения = Новый Структура;
+ ПараметрыОповещения.Вставить("ФайлОбработки", ФайлОбработки);
+ ПараметрыОповещения.Вставить("ЭтоОтчет", ЭтоОтчет);
+ ПараметрыОповещения.Вставить("ОбработкаЗавершения", ОбработкаОповещения);
+
+ АдресХранилища = "";
+ Оп = Новый ОписаниеОповещения("ПодключитьВнешнююОбработкуЗавершение", ЭтаФорма, ПараметрыОповещения);
+ НачатьПомещениеФайла(Оп, АдресХранилища, ФайлОбработки.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор);
+ Иначе
+ ВыполнитьОбработкуОповещения(ОбработкаОповещения);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура НачатьЗагрузкуТестов(Знач ОбработкаОповещения, Знач ИдентификаторВыбранногоЗагрузчика, Знач Путь) Экспорт
+
+ ИнициализироватьИндикаторВыполнения();
+
+ ЭтаФорма.ИдентификаторЗагрузчика = ИдентификаторВыбранногоЗагрузчика;
+ ФормаЗагрузчика = Плагин(ИдентификаторВыбранногоЗагрузчика);
+
+ ДополнительныеПараметры = Новый Структура;
+ ДополнительныеПараметры.Вставить("ОбработкаОповещения", ОбработкаОповещения);
+ ДополнительныеПараметры.Вставить("ИдентификаторВыбранногоЗагрузчика", ИдентификаторВыбранногоЗагрузчика);
+ ДополнительныеПараметры.Вставить("Путь", Путь);
+ Обработчик = Новый ОписаниеОповещения("ЗагрузкаТестовЗавершение", ЭтаФорма, ДополнительныеПараметры);
+ ФормаЗагрузчика.НачатьЗагрузку(Обработчик, ЭтаФорма, Путь);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗагрузкаТестовЗавершение(Знач ДеревоОтЗагрузчика, Знач ДополнительныеПараметры) Экспорт
+
+ ЭтаФорма.ДеревоОтЗагрузчика = ДеревоОтЗагрузчика;
+ ЭлементыДереваТестов = ЭтаФорма.ДеревоТестов.ПолучитьЭлементы();
+ ЭлементыДереваТестов.Очистить();
+ ЗаполнитьДеревоТестов(ЭтаФорма.ДеревоТестов, ДеревоОтЗагрузчика);
+
+ КоличествоТестовыхСлучаев = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(ЭтаФорма.ДеревоТестов);
+ РазвернутьСтрокиДерева(КоличествоТестовыхСлучаев < 30);
+
+ СохранитьВИсториюЗагрузкиТестовНаСервере(ДополнительныеПараметры.ИдентификаторВыбранногоЗагрузчика, ДополнительныеПараметры.Путь);
+ ОбновитьКомандыИсторииЗагрузкиТестов();
+
+ ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаОповещения);
+
+КонецПроцедуры
+
+#КонецОбласти
+
&НаСервереБезКонтекста
Процедура ПодключитьФайлОбработкиНаСервере(Знач АдресХранилища, Знач ИдентификаторОбработки, ЭтоОтчет = Ложь)
Если ЭтоОтчет = Истина Тогда
@@ -1520,6 +2008,10 @@
ПодключенныеВнешниеОбработки.Вставить(ФайлОбработки.ИмяБезРасширения, Истина);
+ Если ДополнительныеПараметры.Свойство("ОбработкаЗавершения") Тогда
+ ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаЗавершения, Результат);
+ КонецЕсли;
+
КонецПроцедуры
&НаКлиенте
@@ -1652,6 +2144,42 @@
Возврат СтрШаблон_(СтрокаШаблон, Парам1, Парам2, Парам3, Парам4, Парам5);
КонецФункции
+// Аналог СтрРазделить() для старых версий платформы
+// Описание параметров аналогично описанию параметров для СтрРазделить()
+&НаКлиентеНаСервереБезКонтекста
+Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) Экспорт
+
+ Результат = Новый Массив;
+
+ // для обеспечения обратной совместимости
+ Если ПропускатьПустыеСтроки = Неопределено Тогда
+ ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь);
+ Если ПустаяСтрока(Строка) Тогда
+ Если Разделитель = " " Тогда
+ Результат.Добавить("");
+ КонецЕсли;
+ Возврат Результат;
+ КонецЕсли;
+ КонецЕсли;
+
+ Позиция = Найти(Строка, Разделитель);
+ Пока Позиция > 0 Цикл
+ Подстрока = Лев(Строка, Позиция - 1);
+ Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда
+ Результат.Добавить(Подстрока);
+ КонецЕсли;
+ Строка = Сред(Строка, Позиция + СтрДлина(Разделитель));
+ Позиция = Найти(Строка, Разделитель);
+ КонецЦикла;
+
+ Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда
+ Результат.Добавить(Строка);
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
&НаКлиенте
Функция КлиентИСерверРасположеныНаОднойМашине()
@@ -1688,5 +2216,77 @@
КонецЕсли;
Возврат Найти(Врег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1;
КонецФункции
+
+&НаКлиентеНаСервереБезКонтекста
+Функция ВерсияПриложенияБольшеИлиРавнаЧемЗаданная(Версия1, Версия2) Экспорт
+ Массив1 = РазложитьСтрокуВМассивПодстрок(Версия1, ".");
+ Массив2 = РазложитьСтрокуВМассивПодстрок(Версия2, ".");
+
+ Версия1БольшеИлиРавно = Истина;
+ Для Ккк = 0 По Массив1.Количество() - 1 Цикл
+ Элем1 = Массив1.Получить(Ккк);
+ Элем2 = Массив2.Получить(Ккк);
+
+ Если Число(Элем2) > Число(Элем1) Тогда
+ Версия1БольшеИлиРавно = Ложь;
+ ИначеЕсли Число(Элем2) < Число(Элем1) Тогда
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Версия1БольшеИлиРавно;
+КонецФункции
+
+&НаКлиенте
+Функция ВерсияПриложенияБольшеИлиРавнаЧемЗаданнаяКлиент(Версия1, Версия2) Экспорт
+
+ Возврат ВерсияПриложенияБольшеИлиРавнаЧемЗаданная(Версия1, Версия2);
+
+КонецФункции
+
+&НаСервереБезКонтекста
+Функция УзнатьЕстьПоддержкаАсинхронныхВызовов()
+ СистемнаяИнформация = Новый СистемнаяИнформация;
+
+ Версия1БольшеИлиРавно = ВерсияПриложенияБольшеИлиРавнаЧемЗаданная(СистемнаяИнформация.ВерсияПриложения,"8.3.5.1383");
+
+ Рез = Версия1БольшеИлиРавно И Не ОпределитьВозможностьСинхронныхВызовов();
+
+ Возврат Рез;
+КонецФункции
+
+&НаСервереБезКонтекста
+Функция УзнатьЕстьЗащитаОтОпасныхДействий()
+ СистемнаяИнформация = Новый СистемнаяИнформация;
+ Массив1 = РазложитьСтрокуВМассивПодстрок(СистемнаяИнформация.ВерсияПриложения, ".");
+ Массив2 = РазложитьСтрокуВМассивПодстрок("8.3.9.2033", ".");
+
+ Версия1БольшеИлиРавно = Истина;
+ Для Ккк = 0 По Массив1.Количество() - 1 Цикл
+ Элем1 = Массив1.Получить(Ккк);
+ Элем2 = Массив2.Получить(Ккк);
+
+ Если Число(Элем2) > Число(Элем1) Тогда
+ Версия1БольшеИлиРавно = Ложь;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Версия1БольшеИлиРавно;
+КонецФункции
+
+&НаСервереБезКонтекста
+Функция ОпределитьВозможностьСинхронныхВызовов()
+
+ Запрет = Метаданные.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент = Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент.НеИспользовать;
+ Возврат Не Запрет;
+
+КонецФункции
+
+&НаКлиентеНаСервереБезКонтекста
+Функция ПолучитьКаталогВременныхФайлов()
+ ИмяВременногоФайла = ПолучитьИмяВременногоФайла("123");
+ ВременныйФайл = Новый Файл(ИмяВременногоФайла);
+ Возврат ВременныйФайл.Путь;
+КонецФункции
-// } Вспомогательные методы
\ No newline at end of file
+// } Вспомогательные методы
diff --git "a/lib/CF/83xddNoSync/AccountingRegisters/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\2701.xml" "b/lib/CF/83xddNoSync/AccountingRegisters/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\2701.xml"
new file mode 100644
index 000000000..8a9eff736
--- /dev/null
+++ "b/lib/CF/83xddNoSync/AccountingRegisters/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\2701.xml"
@@ -0,0 +1,541 @@
+
+
+
+
+
+ 5ce670b8-d244-4425-814f-1c5912afd49b
+ d60c9db8-7bca-41a5-aae3-4968460f01f7
+
+
+ cb4d74ef-f043-4464-9123-63f4abb2dffe
+ 514d0fad-21ef-455f-80fc-9f0b17a1fc51
+
+
+ 15c9463f-4e1e-4a5b-91ce-bf4c1319a115
+ 5674bd07-6b2b-4503-931b-05cf1ecc4c44
+
+
+ 54d41948-5663-4167-aa07-023a3ded8334
+ f596d36b-ce1f-46aa-b616-1bc4a2aa825c
+
+
+ 06de0b5b-f188-4985-bac6-2d1696e1a566
+ 529b7c14-44bb-422f-b0a8-286339ade06f
+
+
+ 4250e577-4924-4010-ae2e-03e0510a2e34
+ 58149843-7c17-47de-b319-97376c8d2f95
+
+
+ a5c70ca1-e64d-46cd-a609-177fba3327e5
+ a85d38cb-c6e6-4717-9f1e-5122f833befd
+
+
+
+ РегистрБухгалтерии1
+
+
+ false
+ false
+ ChartOfAccounts.ПланСчетов1
+ true
+ 0
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ AccountingRegister.РегистрБухгалтерии1.StandardAttribute.Account
+ 1
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ AccountingRegister.РегистрБухгалтерии1.StandardAttribute.Account
+ 2
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ AccountingRegister.РегистрБухгалтерии1.StandardAttribute.Account
+ 3
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+ Managed
+ true
+ DontUse
+
+
+
+
+
+
+
+ ПростойСправочник
+
+
+ ru
+ Простой справочник
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ true
+
+ false
+ DontIndex
+ Use
+
+
+
+
+ ПростойСправочник2
+
+
+ ru
+ Простой справочник2
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник2
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ false
+
+ false
+ DontIndex
+ Use
+
+
+
+
+ РесурсЧисло
+
+
+ ru
+ Ресурс число
+
+
+
+
+ xs:decimal
+
+ 10
+ 2
+ Any
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ true
+
+
+ Use
+
+
+
+
+ РесурсЧисло1
+
+
+ ru
+ Ресурс число1
+
+
+
+
+ xs:decimal
+
+ 10
+ 2
+ Any
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ false
+
+
+ Use
+
+
+
+
+ РеквизитБулево
+
+
+ ru
+ Реквизит булево
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/AccumulationRegisters/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\2172.xml" "b/lib/CF/83xddNoSync/AccumulationRegisters/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\2172.xml"
new file mode 100644
index 000000000..6d6ba109c
--- /dev/null
+++ "b/lib/CF/83xddNoSync/AccumulationRegisters/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\2172.xml"
@@ -0,0 +1,206 @@
+
+
+
+
+
+ abd86a0f-f2fb-4204-8758-65984e8cc0b8
+ 92391fc1-e16b-4aa6-9a2a-122cd2663775
+
+
+ 8cadf6df-f384-476e-9299-8bc955d13e5b
+ a07d696d-ee84-4cdc-af40-a6b25858cc8a
+
+
+ 33b811ba-ca92-44c2-85dd-ea43417e9e90
+ 1711862c-8e11-4f54-9fa6-b2260090860a
+
+
+ d858be9f-d426-4dd8-8c3a-c6b29fe07631
+ 0394a940-af95-4bde-9ed0-73c263eb381f
+
+
+ f4567532-5fad-4809-b453-d06f0bc18151
+ 2ad2d6db-0633-425a-929a-e9650396bddc
+
+
+ 10e02ee6-e438-4719-90b4-a9cfb271a137
+ 598ec45d-f535-497c-80ac-9571c9be3377
+
+
+
+ РегистрНакопления2
+
+
+ ru
+ Регистр накопления2
+
+
+
+ false
+
+
+ Balance
+ false
+ Managed
+ DontUse
+ true
+
+
+
+
+
+
+
+ РесурсЧисло
+
+
+ ru
+ Ресурс число
+
+
+
+
+ xs:decimal
+
+ 10
+ 2
+ Any
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ Use
+
+
+
+
+ РеквизитБулево
+
+
+ ru
+ Реквизит булево
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
+
+
+ ПростойСправочник
+
+
+ ru
+ Простой справочник
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ false
+ DontIndex
+ Use
+ true
+
+
+
+
+ ПростойСправочник2
+
+
+ ru
+ Простой справочник2
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник2
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ false
+ DontIndex
+ Use
+ true
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2011.xml" "b/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2011.xml"
new file mode 100644
index 000000000..3ba6de248
--- /dev/null
+++ "b/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2011.xml"
@@ -0,0 +1,371 @@
+
+
+
+
+
+ 6cf1be9d-3493-4193-98bc-858efdd3c36e
+ 53330a8d-d3c9-464e-86f0-c485cbc6d274
+
+
+ ae28ffb1-1b22-482d-8f4e-4279348087d5
+ 0d8e7048-e2ab-4a11-b5d2-ccfd9cbe7527
+
+
+ e8a90dcc-f918-4f79-b322-d71742c71a56
+ e08a752f-8437-4878-a793-a82aedd1f41c
+
+
+ 09a3cf98-b157-43c9-b17d-9137301c9a94
+ bd8308be-b100-4182-9460-2928808b4827
+
+
+ d3b469f0-cc90-456c-a6a5-da01be735f55
+ 2c614c2a-6bbc-42ce-b97e-d902295e2a2e
+
+
+ 30b3403f-2f19-432a-bc77-eeb45ac6db42
+ 1de975ac-a221-49f6-8376-ea0755fe7ade
+
+
+
+ БизнесПроцесс1
+
+
+ false
+ InDialog
+
+ BusinessProcess.БизнесПроцесс1.StandardAttribute.Number
+
+ DontUse
+ Begin
+ Directly
+ DontUse
+
+
+
+
+
+
+ Auto
+ String
+ 9
+ Variable
+ true
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+ Task.Задача1.EmptyRef
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ true
+
+ Nonperiodical
+ Task.Задача1
+ false
+
+ Managed
+ false
+ Use
+
+
+
+
+
+
+
+
+
+ ПростойСправочник
+
+
+ ru
+ Простой справочник
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
+
+
+
+ 5cecf190-0c29-41e9-a548-02e0ddeb9d85
+ 5cb0bb84-72cf-49fc-b049-6fe06c7a2522
+
+
+ 3cd4bc8d-7de1-4a85-9bf9-246916b02636
+ 3ae54271-d952-4ab2-8dab-bdd40a6a954b
+
+
+
+ ТабличнаяЧасть1
+
+
+
+ DontCheck
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+
+
+
+ Реквизит1
+
+
+
+ xs:string
+
+ 10
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2011/Ext/Flowchart.xml" "b/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2011/Ext/Flowchart.xml"
new file mode 100644
index 000000000..b4c3674c1
--- /dev/null
+++ "b/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2011/Ext/Flowchart.xml"
@@ -0,0 +1,211 @@
+
+
+ style:FieldBackColor
+ true
+ Lines
+ 20
+ 20
+
+ 10
+ 10
+ 10
+ 10
+ false
+ Auto
+
+
+
+
+ Старт
+
+
+ ru
+ Старт
+
+
+
+ 1
+ auto
+ style:FormTextColor
+ style:BorderColor
+ 0
+ 0
+ false
+ false
+
+ Center
+ Center
+ Left
+
+
+ Solid
+
+
+ AutoSize
+
+
+
+
+
+
+
+ Линия1
+
+
+ 2
+ auto
+ style:FormTextColor
+ style:BorderColor
+ 0
+ 1
+ false
+ false
+
+ Center
+ Center
+ Left
+
+
+
+
+
+
+
+
+ Старт
+ 4
+
+
+ Действие1
+ 2
+
+
+
+ Solid
+
+ false
+ FirstSegment
+ None
+ Filled
+
+
+
+
+ Действие1
+
+
+ ru
+ Действие1
+
+
+
+ 3
+ auto
+ style:FormTextColor
+ style:BorderColor
+ 0
+ 2
+ false
+ false
+
+ Center
+ Center
+ Left
+
+
+ Solid
+
+
+ AutoSize
+ Действие1
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Линия2
+
+
+ 4
+ auto
+ style:FormTextColor
+ style:BorderColor
+ 0
+ 3
+ false
+ false
+
+ Center
+ Center
+ Left
+
+
+
+
+
+
+
+
+ Действие1
+ 4
+
+
+ Завершение
+ 2
+
+
+
+ Solid
+
+ false
+ FirstSegment
+ None
+ Filled
+
+
+
+
+ Завершение
+
+
+ ru
+ Завершение
+
+
+
+ 5
+ auto
+ style:FormTextColor
+ style:BorderColor
+ 0
+ 4
+ false
+ false
+
+ Center
+ Center
+ Left
+
+
+ Solid
+
+
+ AutoSize
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2012.xml" "b/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2012.xml"
new file mode 100644
index 000000000..f0f6c7910
--- /dev/null
+++ "b/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2012.xml"
@@ -0,0 +1,371 @@
+
+
+
+
+
+ 8ec345e9-2b18-4628-9b8c-6976d867f522
+ bbbeef7b-d3ba-4dae-87a1-48807bbec0b2
+
+
+ e92212e0-1fab-4450-9181-3877721a117b
+ 7fa724ed-90cd-4253-8f66-b784ece368cd
+
+
+ 19aefbd8-6a39-4dc6-8420-9bd7eda85d36
+ 8315a499-f431-4879-a9df-04e4ca2405c7
+
+
+ 3432880d-f79d-4547-be1e-4c0ea12daa5a
+ 514617f4-afc1-4194-ad5c-219f1afe1e34
+
+
+ 0cc2d187-4a61-4563-b8ef-5e032eb15d85
+ 098f7c03-098d-437c-b516-0bca3991c529
+
+
+ c3d43def-eefe-4bef-8b70-8647aa775c7a
+ 322cb10e-4d4c-4e0a-9a39-a67cd65ad36f
+
+
+
+ БизнесПроцесс2
+
+
+ false
+ InDialog
+
+ BusinessProcess.БизнесПроцесс2.StandardAttribute.Number
+
+ DontUse
+ Begin
+ Directly
+ DontUse
+
+
+
+
+
+
+ Auto
+ String
+ 9
+ Variable
+ true
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+ Task.Задача1.EmptyRef
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ true
+
+ Nonperiodical
+ Task.Задача1
+ false
+
+ Managed
+ false
+ Use
+
+
+
+
+
+
+
+
+
+ ПростойСправочник
+
+
+ ru
+ Простой справочник
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
+
+
+
+ 68b60d16-b1b4-4e0f-bdfd-bfe079fb319f
+ 1c4963b8-0331-4d88-bccb-54fc0bd59184
+
+
+ 5273d7e1-d3ad-4e11-90ec-af34b652fbfb
+ 33286eea-1875-4920-b268-533a9b34280c
+
+
+
+ ТабличнаяЧасть1
+
+
+
+ DontCheck
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+
+
+
+ Реквизит1
+
+
+
+ xs:string
+
+ 10
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2012/Ext/Flowchart.xml" "b/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2012/Ext/Flowchart.xml"
new file mode 100644
index 000000000..b4c3674c1
--- /dev/null
+++ "b/lib/CF/83xddNoSync/BusinessProcesses/\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\2012/Ext/Flowchart.xml"
@@ -0,0 +1,211 @@
+
+
+ style:FieldBackColor
+ true
+ Lines
+ 20
+ 20
+
+ 10
+ 10
+ 10
+ 10
+ false
+ Auto
+
+
+
+
+ Старт
+
+
+ ru
+ Старт
+
+
+
+ 1
+ auto
+ style:FormTextColor
+ style:BorderColor
+ 0
+ 0
+ false
+ false
+
+ Center
+ Center
+ Left
+
+
+ Solid
+
+
+ AutoSize
+
+
+
+
+
+
+
+ Линия1
+
+
+ 2
+ auto
+ style:FormTextColor
+ style:BorderColor
+ 0
+ 1
+ false
+ false
+
+ Center
+ Center
+ Left
+
+
+
+
+
+
+
+
+ Старт
+ 4
+
+
+ Действие1
+ 2
+
+
+
+ Solid
+
+ false
+ FirstSegment
+ None
+ Filled
+
+
+
+
+ Действие1
+
+
+ ru
+ Действие1
+
+
+
+ 3
+ auto
+ style:FormTextColor
+ style:BorderColor
+ 0
+ 2
+ false
+ false
+
+ Center
+ Center
+ Left
+
+
+ Solid
+
+
+ AutoSize
+ Действие1
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Линия2
+
+
+ 4
+ auto
+ style:FormTextColor
+ style:BorderColor
+ 0
+ 3
+ false
+ false
+
+ Center
+ Center
+ Left
+
+
+
+
+
+
+
+
+ Действие1
+ 4
+
+
+ Завершение
+ 2
+
+
+
+ Solid
+
+ false
+ FirstSegment
+ None
+ Filled
+
+
+
+
+ Завершение
+
+
+ ru
+ Завершение
+
+
+
+ 5
+ auto
+ style:FormTextColor
+ style:BorderColor
+ 0
+ 4
+ false
+ false
+
+ Center
+ Center
+ Left
+
+
+ Solid
+
+
+ AutoSize
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\230\320\265\321\200\320\260\321\200\321\205\320\270\321\207\320\265\321\201\320\272\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\230\320\265\321\200\320\260\321\200\321\205\320\270\321\207\320\265\321\201\320\272\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml"
new file mode 100644
index 000000000..90f37b853
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\230\320\265\321\200\320\260\321\200\321\205\320\270\321\207\320\265\321\201\320\272\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml"
@@ -0,0 +1,547 @@
+
+
+
+
+
+ 46fd7f7b-eae7-439d-a572-013534c4eb09
+ 2f7abc4d-103d-4dbe-a4b7-5d69d9b4bfc2
+
+
+ f2e9634f-2a37-4570-93f0-2a26e5f40052
+ b39da958-262e-4ee8-b5eb-1b0e0aeaf1df
+
+
+ 7d2992e9-7c22-4229-b427-2be8ac6fc415
+ 0bd3c6b3-ae0c-4954-904c-e1c2d2b7c193
+
+
+ e776b877-f98c-43d2-87bf-612d6c33ca72
+ 6b605b67-bb92-4332-942f-236c667d3052
+
+
+ ea590713-bfe4-43f3-983e-eaf7ada7cb40
+ 8c84b52c-b276-4f34-af8b-5bd626e5a1c4
+
+
+
+ ИерархическийСправочник
+
+
+ ru
+ Иерархический справочник
+
+
+
+ true
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ true
+
+ ToItems
+ 9
+ 25
+ Number
+ Variable
+ WholeCatalog
+ false
+ true
+ AsDescription
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ true
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ true
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.ИерархическийСправочник.StandardAttribute.Description
+ Catalog.ИерархическийСправочник.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+ Managed
+ Use
+
+
+
+
+
+ Use
+ Auto
+
+
+
+
+ ПростойСправочник
+
+
+ ru
+ Простой справочник
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+
+
+
+
+ ПростойСправочник2ДляГруппы
+
+
+ ru
+ Простой справочник2 для группы
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник2
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+
+
+
+
+
+ acd0bfee-0eac-424d-bca1-587b82898b40
+ 31ccba4b-0960-40d8-9382-ac5ad869f0a2
+
+
+ 80d08bdb-6a6c-4215-8d94-8c07575afed0
+ 96f091d7-a30c-40a7-b573-e4a13cefa650
+
+
+
+ ТабличнаяЧастьДляЭлемента
+
+
+ ru
+ Табличная часть для элемента
+
+
+
+
+ DontCheck
+
+
+
+
+
+ ПростойСправочник
+
+
+ ru
+ Простой справочник
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
+
+
+
+
+
+ b04d4cd2-074c-40e9-be00-3915298401b9
+ 4ced6ea6-2877-409c-812e-8058fca39fa8
+
+
+ 0503deca-c540-4fca-a916-ac8216effbe4
+ a7ee086a-4d7d-4c1c-9112-5c9edaaba8de
+
+
+
+ ТабличнаяЧастьДляГруппы
+
+
+ ru
+ Табличная часть для группы
+
+
+
+
+ DontCheck
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+
+
+
+
+ ПростойСправочник
+
+
+ ru
+ Простой справочник
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\230\320\265\321\200\320\260\321\200\321\205\320\270\321\207\320\265\321\201\320\272\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/Catalogs/\320\230\320\265\321\200\320\260\321\200\321\205\320\270\321\207\320\265\321\201\320\272\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/ObjectModule.bsl"
new file mode 100644
index 000000000..2eb0005a0
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\230\320\265\321\200\320\260\321\200\321\205\320\270\321\207\320\265\321\201\320\272\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/ObjectModule.bsl"
@@ -0,0 +1,7 @@
+
+Процедура ПередЗаписью(Отказ)
+ Перем СвойствоПростойСправочник;
+ Если ДополнительныеСвойства.Свойство("СвойствоПростойСправочник", СвойствоПростойСправочник) и ЗначениеЗаполнено(СвойствоПростойСправочник) Тогда
+ ПростойСправочник = СвойствоПростойСправочник;
+ КонецЕсли;
+КонецПроцедуры
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\230\320\265\321\200\320\260\321\200\321\205\320\270\321\207\320\265\321\201\320\272\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/Predefined.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\230\320\265\321\200\320\260\321\200\321\205\320\270\321\207\320\265\321\201\320\272\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/Predefined.xml"
new file mode 100644
index 000000000..81aafb1bf
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\230\320\265\321\200\320\260\321\200\321\205\320\270\321\207\320\265\321\201\320\272\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/Predefined.xml"
@@ -0,0 +1,9 @@
+
+
+
+ Группа1
+ 1
+ Группа1
+ true
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\224\320\262\321\203\320\274\321\217\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\274\320\270.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\224\320\262\321\203\320\274\321\217\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\274\320\270.xml"
new file mode 100644
index 000000000..e1739c49f
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\224\320\262\321\203\320\274\321\217\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\274\320\270.xml"
@@ -0,0 +1,93 @@
+
+
+
+
+
+ 573581bf-8e7c-486e-be60-8f7c5fd510fa
+ f2aa0009-b840-4dcc-b91d-8905264c7e36
+
+
+ 998979cc-985c-4883-93a1-2f4b7bc4aa62
+ f28e1324-2117-4111-a180-107cdfcb7dff
+
+
+ f5781bb3-07f7-4289-b3eb-e77a02dc2a8b
+ 7ec76855-0e19-4cf8-ad6f-e117d4ab8b0f
+
+
+ 19292f30-2a94-41ed-9297-95e3c7327f39
+ ac832f79-dc1d-42dd-ba74-02d3b47405b2
+
+
+ 68d3f36f-d9e9-453c-bc71-6e036c9b935c
+ 5c3fa79a-6930-440a-9005-dc88acf01ece
+
+
+
+ ПодчиненныйСДвумяВладельцами
+
+
+ ru
+ Подчиненный с двумя владельцами
+
+
+
+ false
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ true
+
+ Catalog.ПростойСправочник
+ Catalog.ПростойСправочник2
+
+ ToItems
+ 9
+ 25
+ String
+ Variable
+ WholeCatalog
+ true
+ true
+ AsDescription
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.ПодчиненныйСДвумяВладельцами.StandardAttribute.Description
+ Catalog.ПодчиненныйСДвумяВладельцами.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+ Catalog.ПодчиненныйСДвумяВладельцами.Form.ФормаЭлемента
+
+
+
+
+
+
+
+
+
+ false
+
+
+ Managed
+ Use
+
+
+
+
+
+ Use
+ Auto
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\224\320\262\321\203\320\274\321\217\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\224\320\262\321\203\320\274\321\217\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
new file mode 100644
index 000000000..5a8551951
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\224\320\262\321\203\320\274\321\217\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\224\320\262\321\203\320\274\321\217\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin" "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\224\320\262\321\203\320\274\321\217\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin"
new file mode 100644
index 000000000..fa8ce54ec
Binary files /dev/null and "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\224\320\262\321\203\320\274\321\217\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin" differ
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml"
new file mode 100644
index 000000000..fc6e1a834
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml"
@@ -0,0 +1,321 @@
+
+
+
+
+
+ 5675f4a8-94f1-4141-bc84-69e4fe7339bf
+ 53645ad6-7370-460a-8547-64156f19a0dd
+
+
+ 4a6f0c09-962e-4b68-9ad5-69a38952e08a
+ bb48a4bd-117e-4da0-93f2-21573568d66c
+
+
+ 2f2f3bad-be42-4713-b3ea-c62dbc8914d3
+ aa891238-aa02-48df-8598-bbb131f2fb78
+
+
+ 9c638494-4cb9-42d6-ad25-ee97f0d369c6
+ d3b6b3fb-8490-44ab-80f1-b5684951d5df
+
+
+ 0dfd353e-4353-4f2c-a015-20dae6c54e19
+ 48fa0337-c1c2-492b-86ea-5947ee1f874f
+
+
+
+ ПодчиненныйСправочник
+
+
+ ru
+ Подчиненный справочник
+
+
+
+ false
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ false
+
+ Catalog.ПростойСправочник
+
+ ToItems
+ 9
+ 25
+ String
+ Variable
+ WholeCatalog
+ false
+ true
+ AsDescription
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ true
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+ Catalog.ПростойСправочник.EmptyRef
+
+
+
+
+
+ DontCheck
+ false
+ true
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.ПодчиненныйСправочник.StandardAttribute.Description
+ Catalog.ПодчиненныйСправочник.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+ Catalog.ПодчиненныйСправочник.Form.ФормаЭлемента
+
+ Catalog.ПодчиненныйСправочник.Form.ФормаСписка
+
+
+
+
+
+
+
+ false
+
+
+ Managed
+ Use
+
+
+
+
+
+ Use
+ Auto
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
new file mode 100644
index 000000000..0b541c8eb
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
new file mode 100644
index 000000000..4b4fb5c54
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
@@ -0,0 +1,35 @@
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
new file mode 100644
index 000000000..457de8693
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.bin" "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.bin"
new file mode 100644
index 000000000..ecf4741f8
Binary files /dev/null and "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.bin" differ
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
new file mode 100644
index 000000000..1c3fed48d
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin" "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin"
new file mode 100644
index 000000000..f10c0129e
Binary files /dev/null and "b/lib/CF/83xddNoSync/Catalogs/\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\321\213\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin" differ
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml"
new file mode 100644
index 000000000..e1da65a10
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml"
@@ -0,0 +1,398 @@
+
+
+
+
+
+ 8da0b1d4-112c-4b22-989c-8608b2200c8e
+ 3021c5e5-f736-4aa8-8349-42b5d228cce5
+
+
+ 27a93a7c-7ca1-4ebf-9b3d-5689a8b6475f
+ 6a22273b-e955-4fdf-a664-0cac126952e8
+
+
+ 864cb7c3-67eb-43fe-8af0-9b65429b5d41
+ 4920125f-c573-4c24-addd-27da8c73b8eb
+
+
+ cf43d9cc-a712-49df-92ca-bc49964f4436
+ 839c3b1d-26c1-43c8-afbb-a062fea07f0b
+
+
+ 93e738e2-fdba-4d49-b012-9ac29682849d
+ dfaf5852-872c-4266-bbc2-6794b0d5679c
+
+
+
+ ПростойСправочник
+
+
+ ru
+ Простой справочник
+
+
+
+ false
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ true
+
+ ToItems
+ 9
+ 25
+ Number
+ Variable
+ WholeCatalog
+ false
+ true
+ AsDescription
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ true
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ true
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.ПростойСправочник.StandardAttribute.Description
+ Catalog.ПростойСправочник.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+ Catalog.ПростойСправочник.Form.ФормаЭлемента
+
+ Catalog.ПростойСправочник.Form.ФормаСписка
+ Catalog.ПростойСправочник.Form.ФормаВыбора
+
+ Catalog.ПростойСправочник.Form.УпрФормаЭлемента
+
+
+
+
+ false
+
+
+ Managed
+ Use
+
+
+
+
+
+ Use
+ Auto
+
+
+
+
+ РеквизитБулево
+
+
+ ru
+ Реквизит булево
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+
+
+
+
+ РеквизитПеречисление
+
+
+ ru
+ Реквизит перечисление
+
+
+
+
+ cfg:EnumRef.Перечисление1
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/ManagerModule.bsl" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/ManagerModule.bsl"
new file mode 100644
index 000000000..1bc7fed26
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/ManagerModule.bsl"
@@ -0,0 +1,6 @@
+Функция ПолучитьЗапрещенноеНаименование(Ид) Экспорт
+ Если Ид = 0 Тогда
+ Возврат "Запрещенное наименование";
+ КонецЕсли;
+ ВызватьИсключение "Необрабатываемый ИД <"+Ид+">";
+КонецФункции
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/ObjectModule.bsl"
new file mode 100644
index 000000000..50d42ba51
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/ObjectModule.bsl"
@@ -0,0 +1,10 @@
+
+Процедура ПередЗаписью(Отказ)
+ Если ОбменДанными.Загрузка Тогда
+ Возврат;
+ КонецЕсли;
+ Если Наименование = Справочники.ПростойСправочник.ПолучитьЗапрещенноеНаименование(0) Тогда
+ Сообщить("Запрещена запись элемента с наименованием <"+СокрЛП(Наименование)+">");
+ Отказ = Истина;
+ КонецЕсли;
+КонецПроцедуры
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/Predefined.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/Predefined.xml"
new file mode 100644
index 000000000..10e4c0dba
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Ext/Predefined.xml"
@@ -0,0 +1,9 @@
+
+
+
+ ПредопределенноеЗначение1
+ 1
+ Предопределенное значение
+ false
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
new file mode 100644
index 000000000..0fe7cfc87
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
new file mode 100644
index 000000000..d1b0ec923
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\243\320\277\321\200\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
@@ -0,0 +1,43 @@
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260.xml"
new file mode 100644
index 000000000..d8d8c7bec
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form.xml"
new file mode 100644
index 000000000..eaaa9bbc1
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form.xml"
@@ -0,0 +1,117 @@
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
new file mode 100644
index 000000000..2e8225cb5
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
new file mode 100644
index 000000000..560fedafd
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
@@ -0,0 +1,118 @@
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl"
new file mode 100644
index 000000000..200fb14f7
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl"
@@ -0,0 +1,6 @@
+
+&НаКлиенте
+Процедура ПриОткрытии(Отказ)
+ пустой = Неопределено; // строка нужна для отключения ошибки на пустой обработчик "ПриОткрытии"
+ //ВызватьИсключение "не должно открываться";
+КонецПроцедуры
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
new file mode 100644
index 000000000..c1a18e6ce
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin"
new file mode 100644
index 000000000..6c4663e88
Binary files /dev/null and "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin" differ
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.xml"
new file mode 100644
index 000000000..65b2a9fc0
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.xml"
@@ -0,0 +1,396 @@
+
+
+
+
+
+ 2c77ae91-d10d-486c-89e7-b6cdbc296b7f
+ 748c3958-0418-4313-9023-f7efc4d878f1
+
+
+ 22274af5-9c8e-408e-873d-07a7b3867b6e
+ a1f64187-2c04-46a8-8b32-aaa01b1a544c
+
+
+ 8f21b641-752e-49c5-9164-a1b49daebcdb
+ 8732b03a-9e6e-4f2f-9e9b-c0663e3a43a0
+
+
+ 28aefe1e-b6cb-4f1a-9149-c1496d058ca9
+ c14bc6ad-8faf-4d2b-aa00-f286ba89982d
+
+
+ 47ff36c8-0d8f-45cb-b2f3-46dd65c0c30f
+ 19bb7ace-39c5-4954-b5f3-70dc779d4887
+
+
+
+ ПростойСправочник2
+
+
+ ru
+ Простой справочник2
+
+
+
+ false
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ true
+
+ ToItems
+ 9
+ 25
+ Number
+ Variable
+ WholeCatalog
+ false
+ true
+ AsDescription
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ true
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ true
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.ПростойСправочник2.StandardAttribute.Description
+ Catalog.ПростойСправочник2.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+ Catalog.ПростойСправочник2.Form.ФормаЭлемента
+
+ Catalog.ПростойСправочник2.Form.ФормаСписка
+
+
+
+
+
+
+
+ false
+
+
+ Managed
+ Use
+
+
+
+
+
+ Use
+ Auto
+
+
+
+
+ РеквизитБулево
+
+
+ ru
+ Реквизит булево
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+
+
+
+
+ Счет
+
+
+ ru
+ Счет
+
+
+
+
+ cfg:ChartOfAccountsRef.ПланСчетов1
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
new file mode 100644
index 000000000..c73166bb3
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.bin" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.bin"
new file mode 100644
index 000000000..5cf89d90d
Binary files /dev/null and "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.bin" differ
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
new file mode 100644
index 000000000..b98c46232
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin" "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin"
new file mode 100644
index 000000000..0aa092f6f
Binary files /dev/null and "b/lib/CF/83xddNoSync/Catalogs/\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin" differ
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274.xml"
new file mode 100644
index 000000000..15f509ea4
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274.xml"
@@ -0,0 +1,133 @@
+
+
+
+
+
+ 1378ecf8-bebf-4274-8600-77b110d011e4
+ f84a5649-e633-4b69-bb44-307b54662cd7
+
+
+ c058063f-bfaf-4c21-afe2-7a502fb58877
+ 623eb0eb-ecb4-4568-8437-2e3cf4388d2f
+
+
+ 9a89c3a1-8e8f-419d-ba22-cf755a3f6d79
+ 9a9bfbfa-7774-4e17-a3e0-1298fefe716b
+
+
+ ecd51426-23ac-42bb-852c-3e6e499b7c6e
+ c83a670b-170c-4e02-a330-b54176f6d129
+
+
+ 776de0e9-f45a-426f-932d-d22b03578ae6
+ 379a1292-ee04-4dc1-a0a6-2b1f18f55f13
+
+
+
+ СправочникСОбязательнымРеквизитом
+
+
+ ru
+ Справочник с обязательным реквизитом
+
+
+
+ false
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ true
+
+ ToItems
+ 9
+ 25
+ String
+ Variable
+ WholeCatalog
+ true
+ true
+ AsDescription
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.СправочникСОбязательнымРеквизитом.StandardAttribute.Description
+ Catalog.СправочникСОбязательнымРеквизитом.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+ Catalog.СправочникСОбязательнымРеквизитом.Form.ФормаЭлемента
+
+
+
+
+
+
+
+
+
+ false
+
+
+ Managed
+ Use
+
+
+
+
+
+ Use
+ Auto
+
+
+
+
+ ОбязательныйРеквизит
+
+
+ ru
+ Обязательный реквизит
+
+
+
+
+ xs:string
+
+ 10
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ ShowError
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274/Ext/ObjectModule.bsl"
new file mode 100644
index 000000000..98f5ba1db
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274/Ext/ObjectModule.bsl"
@@ -0,0 +1,6 @@
+
+Процедура ПередЗаписью(Отказ)
+ Если НЕ ЗначениеЗаполнено(ОбязательныйРеквизит) Тогда
+ Отказ = Истина;
+ КонецЕсли
+КонецПроцедуры
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
new file mode 100644
index 000000000..6a2e85080
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin" "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin"
new file mode 100644
index 000000000..951b12c5f
Binary files /dev/null and "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\320\261\321\217\320\267\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.bin" differ
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\242\320\260\320\261\320\247\320\260\321\201\321\202\321\214\321\216.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\242\320\260\320\261\320\247\320\260\321\201\321\202\321\214\321\216.xml"
new file mode 100644
index 000000000..07ac0c47a
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\242\320\260\320\261\320\247\320\260\321\201\321\202\321\214\321\216.xml"
@@ -0,0 +1,322 @@
+
+
+
+
+
+ c4d96687-43c4-4e57-84ba-1e62aaab4be2
+ 554947df-0a5c-4f15-b767-4c73bd094f1c
+
+
+ 96c8ac63-705e-4447-af37-d3a165ca871f
+ dda378c1-867f-4597-b547-dac85b264cbb
+
+
+ a75554f6-6fa0-43ac-b229-e6072ba5321a
+ 6a18fc55-a670-4e1d-9a15-626a88176498
+
+
+ 157ecc2e-618b-442a-9862-42b0cbe10e16
+ c9007ec2-bdeb-44a6-beaa-2f74b6d44051
+
+
+ 932fa2d0-1c47-4f9e-ab0b-5203841c2195
+ 2dd51481-3b95-49ba-b8ea-6c5fa41edfa4
+
+
+
+ СправочникСТабЧастью
+
+
+ ru
+ Справочник с таб частью
+
+
+
+ false
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ true
+
+ ToItems
+ 9
+ 25
+ String
+ Variable
+ WholeCatalog
+ false
+ true
+ AsDescription
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.СправочникСТабЧастью.StandardAttribute.Description
+ Catalog.СправочникСТабЧастью.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+ Managed
+ Use
+
+
+
+
+
+ Use
+ Auto
+
+
+
+
+ РеквизитСоставногоТипа
+
+
+ ru
+ Реквизит составного типа
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник2
+ cfg:CatalogRef.ПростойСправочник
+ cfg:EnumRef.Перечисление1
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+
+
+
+
+ РеквизитСоставногоТипа2
+
+
+ ru
+ Реквизит составного типа2
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник2
+ cfg:CatalogRef.ПростойСправочник
+ cfg:EnumRef.Перечисление1
+ xs:boolean
+ xs:string
+ xs:dateTime
+ xs:decimal
+
+ 10
+ 0
+ Any
+
+
+ 10
+ Variable
+
+
+ Date
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+
+
+
+
+
+ dcde4ba8-5146-45f6-8cda-e9d57f26d5e2
+ 99ec8127-e299-48d9-a6f8-c5cd0750a9d9
+
+
+ f0395bc1-df50-4329-943a-a64713aa7de1
+ 10ffacc0-11f3-407f-8aaf-93d937fed63b
+
+
+
+ Состав
+
+
+ ru
+ Состав
+
+
+
+
+ DontCheck
+
+
+
+
+
+ ПростойСправочник
+
+
+ ru
+ Простой справочник
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
+
+
+ ПростойСправочник2
+
+
+ ru
+ Простой справочник2
+
+
+
+
+ cfg:CatalogRef.ПростойСправочник2
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
+
+
+ РеквизитБулево
+
+
+ ru
+ Реквизит булево
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217.xml"
new file mode 100644
index 000000000..4e2de1775
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217.xml"
@@ -0,0 +1,129 @@
+
+
+
+
+
+ 230ba184-c982-4a1b-a6e2-1395b2455e51
+ 5c8c8888-a333-4c02-84df-895c99fe93ff
+
+
+ cdcaa363-ce70-41df-9595-c0bb5c69041f
+ 9060d0a4-3c01-4aee-bcd5-a9f478ddaebd
+
+
+ ec51ff28-0bc6-40bf-802a-58d203dec278
+ 0fd12f3c-c978-4814-acfd-d1c26f175066
+
+
+ abedb790-7901-441c-be25-36057488f01c
+ 1b4570c0-ff36-4c66-a497-975e79f78c1a
+
+
+ d83bc9e3-9ce9-4b88-8dd5-43877401734a
+ f31e9173-8f74-4b89-ac68-dd0305127393
+
+
+
+ СправочникСоСсылкойНаСамогоСебя
+
+
+ ru
+ Справочник со ссылкой на самого себя
+
+
+
+ false
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ true
+
+ ToItems
+ 9
+ 25
+ String
+ Variable
+ WholeCatalog
+ false
+ true
+ AsDescription
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.СправочникСоСсылкойНаСамогоСебя.StandardAttribute.Description
+ Catalog.СправочникСоСсылкойНаСамогоСебя.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+ Catalog.СправочникСоСсылкойНаСамогоСебя.Form.ФормаЭлемента
+
+
+
+
+
+
+
+
+
+ false
+
+
+ Managed
+ Use
+
+
+
+
+
+ Use
+ Auto
+
+
+
+
+ СправочникСоСсылкойНаСамогоСебя
+
+
+ ru
+ Справочник со ссылкой на самого себя
+
+
+
+
+ cfg:CatalogRef.СправочникСоСсылкойНаСамогоСебя
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
new file mode 100644
index 000000000..9095eda10
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
new file mode 100644
index 000000000..21732bd5d
--- /dev/null
+++ "b/lib/CF/83xddNoSync/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
@@ -0,0 +1,35 @@
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/ChartsOfAccounts/\320\237\320\273\320\260\320\275\320\241\321\207\320\265\321\202\320\276\320\2621.xml" "b/lib/CF/83xddNoSync/ChartsOfAccounts/\320\237\320\273\320\260\320\275\320\241\321\207\320\265\321\202\320\276\320\2621.xml"
new file mode 100644
index 000000000..7b7b97234
--- /dev/null
+++ "b/lib/CF/83xddNoSync/ChartsOfAccounts/\320\237\320\273\320\260\320\275\320\241\321\207\320\265\321\202\320\276\320\2621.xml"
@@ -0,0 +1,155 @@
+
+
+
+
+
+ 70488e5a-68be-4940-96e0-e32e6fe2b36c
+ f80ac720-dfde-4d2f-9296-e467cc0ef856
+
+
+ 162d15fd-c60f-448e-8dee-9d32aed94bf9
+ 306cef2a-821a-4298-859b-05f405900ccd
+
+
+ d92f5d08-90ea-42f5-b0b1-7db8605c6ea7
+ 2c379684-61ab-4192-91cc-6932ef0b0909
+
+
+ 40fc91d9-bd59-4757-92d8-0b800b1b025a
+ 7e7ae3f1-387e-4547-9a15-7452c83885e3
+
+
+ 554a901a-2653-4ec6-a4e7-8f980fc43358
+ 5bc16dda-ed60-452d-be74-4af8d2d54510
+
+
+ 5b6393e5-5167-49db-b8f4-6caad25aaadb
+ 1d830e8c-9aa4-423d-84db-03a2cd1e5b24
+
+
+ 15423cf5-3719-4846-9bd1-75f58af646e3
+ e97de5ce-6078-4d46-a5e6-1196423d8833
+
+
+
+ ПланСчетов1
+
+
+ true
+ false
+
+ ChartOfCharacteristicTypes.ВидыСубконто1
+ 3
+
+ 9
+ 25
+ WholeChartOfAccounts
+ true
+ AsCode
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ ChartOfAccounts.ПланСчетов1.StandardAttribute.Description
+ ChartOfAccounts.ПланСчетов1.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+ DontUse
+ Auto
+
+
+
+
+
+
+ false
+ 0
+
+ Managed
+ Use
+
+
+
+
+
+
+
+
+
+ Валютный
+
+
+ ru
+ Валютный
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ Суммовой
+
+
+ ru
+ Суммовой
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/ChartsOfAccounts/\320\237\320\273\320\260\320\275\320\241\321\207\320\265\321\202\320\276\320\2621/Ext/Predefined.xml" "b/lib/CF/83xddNoSync/ChartsOfAccounts/\320\237\320\273\320\260\320\275\320\241\321\207\320\265\321\202\320\276\320\2621/Ext/Predefined.xml"
new file mode 100644
index 000000000..454ecaa6c
--- /dev/null
+++ "b/lib/CF/83xddNoSync/ChartsOfAccounts/\320\237\320\273\320\260\320\275\320\241\321\207\320\265\321\202\320\276\320\2621/Ext/Predefined.xml"
@@ -0,0 +1,59 @@
+
+
+
+ СчетБезСубконто
+ 003
+ Счет без субконто
+ ActivePassive
+ true
+
+
+ true
+
+
+
+
+ Счет01
+ 01
+ Счет01
+ ActivePassive
+ false
+
+
+ false
+
+
+
+ false
+
+ true
+
+
+
+
+
+ Счет02
+ 02
+ Счет02
+ ActivePassive
+ false
+
+
+ false
+
+
+
+ false
+
+ true
+
+
+
+ true
+
+ true
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/ChartsOfCalculationTypes/\320\237\320\273\320\260\320\275\320\222\320\270\320\264\320\276\320\262\320\240\320\260\321\201\321\207\320\265\321\202\320\2601.xml" "b/lib/CF/83xddNoSync/ChartsOfCalculationTypes/\320\237\320\273\320\260\320\275\320\222\320\270\320\264\320\276\320\262\320\240\320\260\321\201\321\207\320\265\321\202\320\2601.xml"
new file mode 100644
index 000000000..797eea96b
--- /dev/null
+++ "b/lib/CF/83xddNoSync/ChartsOfCalculationTypes/\320\237\320\273\320\260\320\275\320\222\320\270\320\264\320\276\320\262\320\240\320\260\321\201\321\207\320\265\321\202\320\2601.xml"
@@ -0,0 +1,96 @@
+
+
+
+
+
+ 55631911-2efa-4d2a-b239-4a60ec3ac4cb
+ 17c4d5c9-83b3-4ac7-83a1-93ea2bb3a2c0
+
+
+ 0a2a3a28-656d-453e-b06f-5482fc460bcd
+ 033631d3-0bb6-4e2d-8b4f-cfffc13ca630
+
+
+ 2ceabc3d-581a-499e-984f-ed5d96766c0e
+ 4390a9f4-f0fe-4293-a61a-0b449129c0cd
+
+
+ 8d5ddea0-70d3-4127-9d0e-45cfe176bfe9
+ 314cb595-6801-4d88-937c-a0bf7b4aeb59
+
+
+ 771706cf-260a-4278-84df-3ec5553b857b
+ f68e0ef3-3be5-4003-9078-314e4b5f1485
+
+
+ 337ccfff-b40b-475a-9c05-8590d7443e0b
+ 962248f8-5565-48c8-a901-02981bb88345
+
+
+ a1b374b3-1ba3-464d-96e1-b985d6269c5d
+ 6a36471e-27f4-43f1-8b58-116e78c7f6ef
+
+
+ 46402985-303a-4a6e-ae6a-9bd464b343f4
+ 5766e18c-c64a-4b1b-93c5-c215697b13d2
+
+
+ 8c10e8f5-4779-4ef5-ba6d-611d39a7e125
+ 3cb44902-5d48-4b0b-96b9-928bc83744c2
+
+
+ b8f798a7-26fa-44c2-85df-57a9389e9c8c
+ 255ce292-2ccf-4b50-81dc-895ceba5e915
+
+
+ 416841ac-8156-4944-968e-f17772d16d4c
+ 93c341f1-28fc-4915-a6af-7889de8148dd
+
+
+
+ ПланВидовРасчета1
+
+
+ false
+ 9
+ 40
+ String
+ Variable
+ AsDescription
+ InDialog
+ false
+ BothWays
+
+ ChartOfCalculationTypes.ПланВидовРасчета1.StandardAttribute.Description
+ ChartOfCalculationTypes.ПланВидовРасчета1.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+ DontUse
+ Auto
+
+
+
+
+
+
+
+ DontUse
+
+ false
+
+ Auto
+ false
+
+ Managed
+ Use
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\2761.xml" "b/lib/CF/83xddNoSync/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\2761.xml"
new file mode 100644
index 000000000..338d1a4ef
--- /dev/null
+++ "b/lib/CF/83xddNoSync/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\2761.xml"
@@ -0,0 +1,361 @@
+
+
+
+
+
+ c730e9f6-f138-4fb6-9a9b-e2bb02afc0a8
+ cbaaad03-c2b0-4ec8-a753-862da48de3e9
+
+
+ 652b967c-c8db-4d5e-a16f-73376958e966
+ 410a747a-9a95-4e4d-8d0e-7ea0b8548058
+
+
+ 17dbf5fe-8b2a-415b-a0f6-9caece50b4f9
+ 5d6c38a3-8ee0-470a-8e9a-172ab0c78edd
+
+
+ 154ae0aa-6411-4854-b6e2-f23dfa581758
+ 1aaecb1e-e83d-4cea-a7f7-042904a99fc2
+
+
+ 32cb3819-efef-4e2d-8626-37019dd51736
+ bbea4645-1c9f-4add-832a-824f64a320d1
+
+
+ bff37c0d-9a3b-4cd4-8184-6bac2a265c49
+ 3e30fac7-7fb5-43ee-beac-13d19fb6a8a4
+
+
+
+ ВидыСубконто1
+
+
+ ru
+ Виды субконто1
+
+
+
+ false
+ false
+
+
+ cfg:CatalogRef.ПростойСправочник2
+ cfg:CatalogRef.ПростойСправочник
+ cfg:CatalogRef.СправочникСТабЧастью
+ cfg:CatalogRef.СправочникСоСсылкойНаСамогоСебя
+ cfg:CatalogRef.ИерархическийСправочник
+
+ true
+ true
+ 9
+ Variable
+ 25
+ WholeCharacteristicKind
+ true
+ true
+ AsDescription
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ true
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ ChartOfCharacteristicTypes.ВидыСубконто1.StandardAttribute.Description
+ ChartOfCharacteristicTypes.ВидыСубконто1.StandardAttribute.Code
+
+ DontUse
+ Begin
+ Directly
+ DontUse
+ Auto
+
+
+
+
+
+
+
+
+
+
+
+
+ Managed
+ Use
+
+
+
+
+
+
+
+
+
+ РеквизитБулево
+
+
+ ru
+ Реквизит булево
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+
+ Use
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\2761/Ext/Predefined.xml" "b/lib/CF/83xddNoSync/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\2761/Ext/Predefined.xml"
new file mode 100644
index 000000000..7e967b850
--- /dev/null
+++ "b/lib/CF/83xddNoSync/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\2761/Ext/Predefined.xml"
@@ -0,0 +1,36 @@
+
+
+
+ Группа1
+ 000000003
+ Группа1
+
+ true
+
+
+ Субконто1
+ 000000001
+ Субконто1
+
+ d4p1:CatalogRef.ПростойСправочник2
+ d4p1:CatalogRef.ПростойСправочник
+ d4p1:CatalogRef.СправочникСТабЧастью
+ d4p1:CatalogRef.СправочникСоСсылкойНаСамогоСебя
+ d4p1:CatalogRef.ИерархическийСправочник
+
+ false
+
+
+ Субконто2
+ 000000002
+ Субконто2
+
+ d4p1:CatalogRef.ПростойСправочник2
+ d4p1:CatalogRef.ПростойСправочник
+ d4p1:CatalogRef.СправочникСТабЧастью
+ d4p1:CatalogRef.СправочникСоСсылкойНаСамогоСебя
+ d4p1:CatalogRef.ИерархическийСправочник
+
+ false
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260.xml" "b/lib/CF/83xddNoSync/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260.xml"
new file mode 100644
index 000000000..3867db78d
--- /dev/null
+++ "b/lib/CF/83xddNoSync/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260.xml"
@@ -0,0 +1,24 @@
+
+
+
+
+ ФормаОтчета
+
+
+ ru
+ Форма отчета
+
+
+
+ Managed
+ false
+
+ PersonalComputer
+ MobileDevice
+
+ false
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Ext/Form.xml"
new file mode 100644
index 000000000..28edd61fd
--- /dev/null
+++ "b/lib/CF/83xddNoSync/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Ext/Form.xml"
@@ -0,0 +1,77 @@
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Ext/Form/Module.bsl"
new file mode 100644
index 000000000..d11a4e4c5
--- /dev/null
+++ "b/lib/CF/83xddNoSync/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Ext/Form/Module.bsl"
@@ -0,0 +1,16 @@
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+ Сообщить(Отчет);
+КонецПроцедуры
+
+&НаСервереБезКонтекста
+Процедура ПриОткрытииНаСервере()
+ // Вставить содержимое обработчика.
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПриОткрытии(Отказ)
+ Сообщить(Отчет);
+ ПриОткрытииНаСервере();
+КонецПроцедуры
diff --git "a/lib/CF/83xddNoSync/CommonModules/xdd\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/lib/CF/83xddNoSync/CommonModules/xdd\320\232\320\273\320\270\320\265\320\275\321\202.xml"
new file mode 100644
index 000000000..7338bbec9
--- /dev/null
+++ "b/lib/CF/83xddNoSync/CommonModules/xdd\320\232\320\273\320\270\320\265\320\275\321\202.xml"
@@ -0,0 +1,23 @@
+
+
+
+
+ xddКлиент
+
+
+ ru
+ Xdd клиент
+
+
+
+ false
+ true
+ false
+ false
+ true
+ false
+ false
+ DontUse
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/CommonModules/xdd\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/lib/CF/83xddNoSync/CommonModules/xdd\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
new file mode 100644
index 000000000..672c255b3
--- /dev/null
+++ "b/lib/CF/83xddNoSync/CommonModules/xdd\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
@@ -0,0 +1,10 @@
+&НаКлиенте
+Функция ПодключитьНаСервереВнешнююОбработкуОтКлиента(ПолныйПутьФайлаОбработки, ИдентификаторОбработки) Экспорт
+ АдресХранилища = "";
+ #Если ТонкийКлиент Тогда
+ ПоместитьФайл(АдресХранилища, ПолныйПутьФайлаОбработки,, Ложь);
+ #КонецЕсли
+ ИД_Обработки = xddСервер.ПодключитьВнешнююОбработку(АдресХранилища, ИдентификаторОбработки, ПолныйПутьФайлаОбработки);
+ Возврат ИД_Обработки;
+КонецФункции
+
diff --git "a/lib/CF/83xddNoSync/CommonModules/xdd\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/lib/CF/83xddNoSync/CommonModules/xdd\320\241\320\265\321\200\320\262\320\265\321\200.xml"
new file mode 100644
index 000000000..cf6bd3997
--- /dev/null
+++ "b/lib/CF/83xddNoSync/CommonModules/xdd\320\241\320\265\321\200\320\262\320\265\321\200.xml"
@@ -0,0 +1,23 @@
+
+
+
+
+ xddСервер
+
+
+ ru
+ Xdd сервер
+
+
+
+ false
+ false
+ true
+ true
+ false
+ true
+ false
+ DontUse
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/CommonModules/xdd\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/lib/CF/83xddNoSync/CommonModules/xdd\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
new file mode 100644
index 000000000..ecda75977
--- /dev/null
+++ "b/lib/CF/83xddNoSync/CommonModules/xdd\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
@@ -0,0 +1,9 @@
+Функция ПодключитьВнешнююОбработку(АдресХранилища, ИдентификаторОбработки, ПолныйПутьФайлаОбработки) Экспорт
+ //#Если Клиент Тогда
+ //Возврат ПолныйПутьФайлаОбработки;
+ //#Иначе
+ ИД = ВнешниеОбработки.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь); // подключаю не в безопасном режиме
+ ВнешниеОбработки.Создать(ИдентификаторОбработки);
+ Возврат ИдентификаторОбработки;
+ //#КонецЕсли
+КонецФункции
diff --git "a/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml"
new file mode 100644
index 000000000..aa8ab31c3
--- /dev/null
+++ "b/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml"
@@ -0,0 +1,23 @@
+
+
+
+
+ ЗапускПриложенияКлиент
+
+
+ ru
+ Запуск приложения клиент
+
+
+
+ false
+ true
+ false
+ false
+ true
+ false
+ false
+ DontUse
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
new file mode 100644
index 000000000..9147ebbd7
--- /dev/null
+++ "b/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
@@ -0,0 +1,17 @@
+
+Функция ИмяАдминистратораПоУмолчанию() Экспорт
+ Возврат "Admin";
+КонецФункции
+
+// Запускает предприятие с параметрами текущего сенса
+//
+// Параметры
+// Пользователь - Строка - Имя пользователя под которым будет запущен новый сеанс
+// СтрокаЗапука - Строка - Параметр запуска обработки xUnitFor1C, первым параметром ожидается путь к обработке
+//
+Процедура ЗапуститьСистемуПовторно(Пользователь, СтрокаЗапуска = "") Экспорт
+
+ ДополнительныеПараметрыЗапуска = "/N" + Пользователь;
+ ЗапуститьСистему(ДополнительныеПараметрыЗапуска);
+
+КонецПроцедуры
diff --git "a/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml"
new file mode 100644
index 000000000..af455644f
--- /dev/null
+++ "b/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml"
@@ -0,0 +1,23 @@
+
+
+
+
+ ЗапускПриложенияСервер
+
+
+ ru
+ Запуск приложения сервер
+
+
+
+ false
+ false
+ true
+ false
+ false
+ true
+ false
+ DontUse
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
new file mode 100644
index 000000000..29f064ae8
--- /dev/null
+++ "b/lib/CF/83xddNoSync/CommonModules/\320\227\320\260\320\277\321\203\321\201\320\272\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
@@ -0,0 +1,23 @@
+
+Функция СоздатьПервогоАдминистратораПриНеобходимости(Имя, ПараметрЗапуска) Экспорт
+
+ Если ПользователиИнформационнойБазы.ПолучитьПользователей().Количество() > 0 Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Если Не (ПустаяСтрока(ПараметрЗапуска) Или ПараметрЗапуска = "AdminCreate" Или ПараметрЗапуска = "СоздатьАдминистратора") Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Администратор = ПользователиИнформационнойБазы.СоздатьПользователя();
+ Администратор.Имя = Имя;
+ Администратор.АутентификацияСтандартная = Истина;
+ Администратор.ПоказыватьВСпискеВыбора = Истина;
+ Администратор.ПолноеИмя = Имя;
+ Администратор.Роли.Добавить(Метаданные.Роли.ПолныеПрава);
+ Администратор.Язык = Метаданные.Языки.Русский;
+ Администратор.Записать();
+
+ Возврат Истина;
+
+КонецФункции
diff --git a/lib/CF/83xddNoSync/Configuration.xml b/lib/CF/83xddNoSync/Configuration.xml
new file mode 100644
index 000000000..a4bdba9b5
--- /dev/null
+++ b/lib/CF/83xddNoSync/Configuration.xml
@@ -0,0 +1,189 @@
+
+
+
+
+
+ 9cd510cd-abfc-11d4-9434-004095e12fc7
+ 5fafd470-b0a2-485b-b255-a3b8faa26fb7
+
+
+ 9fcd25a0-4822-11d4-9414-008048da11f9
+ 6eaeb2c4-c358-4c9b-82bf-b779f300f3e5
+
+
+ e3687481-0a87-462c-a166-9f34594f9bba
+ 579c1543-cef7-4925-bf5c-8d647b10ae9c
+
+
+ 9de14907-ec23-4a07-96f0-85521cb6b53b
+ 5b74eae4-4a1c-4e7f-8ffc-15b9dd85359b
+
+
+ 51f2d5d8-ea4d-4064-8892-82951750031e
+ 811a0158-e000-4e8b-b55d-3c8ee2db8b5f
+
+
+ e68182ea-4237-4383-967f-90c1e3370bc7
+ e4f92e27-7e0f-4b89-81c9-1f942dc7e704
+
+
+
+ ADD_TDD
+
+
+ ru
+ ADD/TDD, ver. 5.4.0
+
+
+
+
+ Version8_3_10
+ ManagedApplication
+
+ PersonalComputer
+
+ Russian
+
+
+ 5.4.0
+
+ false
+ true
+ true
+
+
+
+
+
+
+
+ CommonForm.ФормаОтчета
+
+
+
+
+
+
+ Multimedia
+ false
+
+
+ Location
+ false
+
+
+ Contacts
+ false
+
+
+ Calendars
+ false
+
+
+ Telephony
+ false
+
+
+ PushNotification
+ false
+
+
+ LocalNotification
+ false
+
+
+ Print
+ false
+
+
+ InAppPurchases
+ false
+
+
+ Ads
+ false
+
+
+ Normal
+
+
+ Language.Русский
+
+
+
+
+
+ Managed
+ NotAutoFree
+ DontUse
+ DontUse
+ TaxiEnableVersion8_2
+ Version8_3_8
+
+
+
+ Русский
+ Тестовая
+ ПадающаяТестовая
+ xUnitFor1C
+ ПолныеПрава
+ Роль1
+ ПраваНеобходимыеДляТестирования
+ xddКлиент
+ xddСервер
+ ЗапускПриложенияКлиент
+ ЗапускПриложенияСервер
+ ПланОбмена1
+ ФункциональнаяОпция1
+ ФормаОтчета
+ ПростойСправочник
+ ПростойСправочник2
+ ИерархическийСправочник
+ СправочникСТабЧастью
+ ПодчиненныйСправочник
+ СправочникСоСсылкойНаСамогоСебя
+ ПодчиненныйСДвумяВладельцами
+ СправочникСОбязательнымРеквизитом
+ Документ1
+ Документ2
+ Перечисление1
+ Отчет1
+ ТестовыйОтчетСКДДляСравнениеСЭталоном
+ Тест_Отчет
+ Отчет2
+ xddGuidShow
+ Тест_Обработка
+ ТестОбработка_Форма_ИсключениеПриОткрытии
+ ТестПадающий_Обработка
+ Тест_ЗагрузчикИзПодсистем_НовыйAPIОбъявленияТестов
+ xddTestRunner
+ БазовыеУтверждения
+ ВременныеФайлы
+ ГенераторОтчетаJUnitXML
+ ГенераторОтчетаMXL
+ ЗагрузчикИзПодсистемКонфигурации
+ ЗагрузчикКаталога
+ ЗагрузчикФайла
+ ЗапросыИзБД
+ КомандныйФайл
+ ПарсерКоманднойСтроки
+ ПостроительДереваТестов
+ СериализаторMXL
+ СтроковыеУтилиты
+ УтвержденияBDD
+ УтвержденияПроверкаТаблиц
+ ПреобразованиеЖурналаДействийПользователя
+ xddTestsConvertIntoRebornFormat
+ РегистрСведений1
+ РСПодчиненныйРегистратору
+ РегистрНакопления2
+ ВидыСубконто1
+ ПланСчетов1
+ РегистрБухгалтерии1
+ ПланВидовРасчета1
+ БизнесПроцесс1
+ БизнесПроцесс2
+ Задача1
+
+
+
\ No newline at end of file
diff --git a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow.xml b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow.xml
new file mode 100644
index 000000000..a5a5198ae
--- /dev/null
+++ b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow.xml
@@ -0,0 +1,107 @@
+
+
+
+
+
+ a09d333c-5239-4c55-a885-6d7e88afd91d
+ 8610bc5a-6220-4fc1-9b17-d6a5c154a1a3
+
+
+ 715d665d-50e0-4d43-8f27-2687862a1b44
+ 84cf4074-fba8-490e-9e47-02bfb1c1bb63
+
+
+
+ xddGuidShow
+
+
+ ru
+ Показать ГУИД
+
+
+
+ true
+ DataProcessor.xddGuidShow.Form.Форма
+ DataProcessor.xddGuidShow.Form.УправляемаяФорма
+ false
+
+
+
+
+
+
+ Ссылка
+
+
+ ru
+ Ссылка
+
+
+
+
+ cfg:AnyRef
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ ShowError
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ГУИД
+
+
+ ru
+ ГУИД
+
+
+
+
+ xs:string
+
+ 36
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Ext/ObjectModule.bsl b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Ext/ObjectModule.bsl
new file mode 100644
index 000000000..5f282702b
--- /dev/null
+++ b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Ext/ObjectModule.bsl
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml"
new file mode 100644
index 000000000..be0cbae8a
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml"
@@ -0,0 +1,22 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
new file mode 100644
index 000000000..92ed83a9b
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
@@ -0,0 +1,65 @@
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
new file mode 100644
index 000000000..6b9d048b8
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
@@ -0,0 +1,20 @@
+
+&НаКлиенте
+Процедура ПоказатьГУИД(Команда)
+
+ Если ПроверитьЗаполнение() Тогда
+ Объект.ГУИД = Объект.Ссылка.УникальныйИдентификатор();
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура СсылкаПриИзменении(Элемент)
+
+ Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
+ Объект.ГУИД = Объект.Ссылка.УникальныйИдентификатор();
+ Иначе
+ ГУИД = "";
+ КонецЕсли;
+
+КонецПроцедуры
diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
new file mode 100644
index 000000000..d7681f5ca
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
@@ -0,0 +1,22 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" "b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin"
new file mode 100644
index 000000000..46db8ebaf
Binary files /dev/null and "b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" differ
diff --git a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner.xml b/lib/CF/83xddNoSync/DataProcessors/xddTestRunner.xml
new file mode 100644
index 000000000..ba8d6b914
--- /dev/null
+++ b/lib/CF/83xddNoSync/DataProcessors/xddTestRunner.xml
@@ -0,0 +1,471 @@
+
+
+
+
+
+ 4d445884-0651-43bd-ac78-465a61471676
+ c6fa6016-56ad-4ec9-acc1-831ce088909f
+
+
+ 804437a3-2547-4232-9bbf-b9e0e65be3a1
+ 1f2a88bd-f0b0-4643-a189-279298a41d81
+
+
+
+ xddTestRunner
+
+
+ ru
+ Тестирование для 1С:Предприятия 8, xUnitFor1C
+
+
+ https://github.com/xDrivenDevelopment/xUnitFor1C
+ true
+ DataProcessor.xddTestRunner.Form.Форма
+ DataProcessor.xddTestRunner.Form.УправляемаяФорма
+ false
+
+
+
+
+
+
+ ВозможныеИсключения
+
+
+ ru
+ Возможные исключения
+
+
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ВозможныеСобытия
+
+
+ ru
+ Возможные события
+
+
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ Настройки
+
+
+ ru
+ Настройки
+
+
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ Плагины
+
+
+ ru
+ Плагины
+
+
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ СостоянияТестов
+
+
+ ru
+ Состояния тестов
+
+
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ТекущийКонтейнер
+
+
+ ru
+ Текущий контейнер
+
+
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ТипыПлагинов
+
+
+ ru
+ Типы плагинов
+
+
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ТипыУзловДереваТестов
+
+
+ ru
+ Типы узлов дерева тестов
+
+
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ СтатусыРезультатаТестирования
+
+
+ ru
+ Статусы результата тестирования
+
+
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ЭтоВстроеннаяОбработка
+
+
+ ru
+ Это встроенная обработка
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ИспользуемыйПрефиксПодсистемы
+
+
+ ru
+ Используемый префикс подсистемы
+
+
+ Префикс для объектов, встроенных в состав конфигурации. Если браузер тестов, плагины и утилиты встроены в конфигурцаию, то они должны иметь один префикс.
+
+ xs:string
+
+ 10
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ПолноеИмяБраузераТестов
+
+
+ ru
+ Полное имя браузера тестов
+
+
+
+
+ xs:string
+
+ 512
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ПолныйПутьКФайлуБраузераТестов
+
+
+ ru
+ Полный путь к файлу браузера тестов
+
+
+
+
+ xs:string
+
+ 0
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Ext/Help.xml b/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Ext/Help.xml
new file mode 100644
index 000000000..aaa8b4844
--- /dev/null
+++ b/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Ext/Help.xml
@@ -0,0 +1,4 @@
+
+
+ ru
+
\ No newline at end of file
diff --git a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Ext/Help/ru.html b/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Ext/Help/ru.html
new file mode 100644
index 000000000..d174560d9
--- /dev/null
+++ b/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Ext/Help/ru.html
@@ -0,0 +1,99 @@
+
+
xUnitFor1C - набор инструментов для выполнения тестирования (модульного/юнит, приемочного, сценарного для 1С 8.3, интеграционного) в 1С:Предприятии 8.
+
xUnitFor1C работает с любыми конфигурациями, полностью независима, но может быть встроена в конфигурацию.
+
Позволяет открывать/тестировать в разных режимах - обычное приложение, тонкий и толстый клиент управляемого приложения.
+
Тесты могут быть как во внешних обработках, так и во встроенных обработках.
+
Любые наборы тестов могут прогоняться в полностью автоматическом режиме через специальную командную строку запуска. Автозапуск используется в различных build-серверах и в системах Continuous Integration.
xddTestRunner.epf- браузер и исполнитель тестов для обычного приложения и управляемого приложения 1С:Предприятия 8 (толстый и тонкий клиенты)
+
xddDataFixtureGen.epf- генерация макета данных для использования в тестах. Макет можно генерить из боевой базы на основе реальных данных.
+
xddTestRunner.js- скрипт для Снегопата, позволяющий выполнять тесты прямо из конфигуратора
+
Tests/- каталог с примерами тестов и с тестами для самотестирования xddTestRunner.epf (подпапка selftests)
+
Tests\CommonApp\тесты_ОткрытиеФормКонфигурации.epf- тесты открытия всех форм справочников, документов, отчетов и обработок. Для справочников и документов в транзакции создаются новые или копируются или перезаписываются существующие элементы.
+
Tests\CommonApp\Тест_ЗапускТестовВСеансеДругихПользователей.epf- примеры запуска тестов для пользователей с ограниченными правами. Пользователи создаются на лету из простых макетов.
+
Tests\CommonApp\Тест_ПроверитьОтчетНаСоответствиеЭталону.epf- пример теста отчета путем сравнения с эталонным ожиданием из макета.
Как помочь проекту
+
Мы рады любой помощи:
+
+
Если вы занимаетесь разработкой на 1С:Преприятии 8 пробуйте писать и выполнять тесты при помощи xUnitFor1C, сообщайте нам об обнаруженных ошибках, пишите пожелания. Для управления сообщениями об ошибках и пожеланиями мы используем баг-трекер GitHub'а.
+
+
Если у вас есть время разобраться в исходном коде, вы можете взять на себя реализацию одной из открытых задач.
+
+
Если вы уже используете xUnitFor1C на практике, напишите об этом статью, например, на Инфостарте.
Создание файлов-тестов
+
Создаем новую внешнюю обработку, т.н. тестовый набор
+
В модуле этой обработки размещаются тестовые случаи (экспортные методы без параметров, чье имя начинается на Тест)
+
Тестовый случай считается успешно выполненным, если в процессе его выполнения не было исключения.
+
Соответственно, для того, чтобы тест упал, нужно выбросить исключение 1С. Для этого используются вызовы специальных методов-утверждений из фреймворка xUnitFor1C. См. Методы проверки/утверждений
+
Предопределенные методы теста
+
+
+
Переменная ЮТест
+
содержит в себе ссылку на экземпляр фреймворка xUnitFor1C - объект обработки UnitTestRunner
+
с помощью этой переменной можно использовать предопределенные методы xUnitFor1C. Например, см. Методы проверки/утверждений
+
имя ЮТест необязательно, можно использовать любое другое имя переменной
+
значение этой переменной должно быть заполнено в методе ПолучитьСписокТестов
+
Метод ПолучитьСписокТестов
+
должен вернуть массив описаний тестовых случаев
+
именно этот массив и является списком выполняемых тестов
+
Метод ПередЗапускомТеста
+
вызывается перед запуском каждого теста
+
ПослеЗапускаТеста
+
вызывается после запуска каждого теста
+
метод вызывается независимо от того, успешно прошел тест или упал.
+
Базовые приемы написания тестов
+
Для гарантирования независимости тестов (это одно из основных требований к тестам) рекомендуется использовать механизм транзакций.
+
Перед запуском теста начинаем транзакцию, после выполнения теста транзакция отменяется. В итоге в базе не остается никаких следов тестирования и тесты работают независимо.
+
Можно использовать следующий шаблон методов теста
+
Процедура ПередЗапускомТеста() Экспорт
+ НачатьТранзакцию();
+КонецПроцедуры
+
+Процедура ПослеЗапускаТеста() Экспорт
+ Если ТранзакцияАктивна() Тогда
+ ОтменитьТранзакцию();
+ КонецЕсли;
+КонецПроцедуры
+
+
Базовый шаблон файла-теста
+
Перем ЮТест; // ссылка на экземпляр фреймворка xUnitFor1C - объект обработки UnitTestRunner
+
+//{ основная процедура для юнит-тестирования xUnitFor1C
+Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
+
+ ЮТест = ЮнитТестирование;
+
+ ВсеТесты = Новый Массив;
+
+ ВсеТесты.Добавить("ТестДолжен_СложитьДваИДва");
+
+
+ Возврат ВсеТесты;
+
+КонецФункции
+//}
+
+//{ ОСНОВНОЙ БЛОК
+
+//} КОНЕЦ ОСНОВНОГО БЛОКА
+
+//{ БЛОК ЮНИТ-ТЕСТОВ - сами тесты
+
+Процедура ПередЗапускомТеста() Экспорт
+ НачатьТранзакцию();
+КонецПроцедуры
+
+Процедура ПослеЗапускаТеста() Экспорт
+ Если ТранзакцияАктивна() Тогда
+ ОтменитьТранзакцию();
+ КонецЕсли;
+КонецПроцедуры
+
+Процедура ТестДолжен_СложитьДваИДва() Экспорт
+ ЮТест.ПроверитьРавенство(2 + 2, 4, "2 + 2, 4");
+КонецПроцедуры
+
+//} КОНЕЦ БЛОКА ЮНИТ-ТЕСТОВ
+
Преобразование журнала действий пользователя во встроенный язык
+
Обработка предназначена для преобразования журнала действий пользователя в программу на встроенном языке.
+
Обработка позволяет преобразовывать указанные файлы или непосредственно введённый текст. Выберите нужный вам вариант в переключателе "Преобразовывать".
+
Формирование программы возможно на английском или русском варианте встроенного языка. По умолчанию используется вариант языка используемый в конфигурации. При необходимости сгенерировать программу в другом варианте укажите необходимый в поле "Генерировать сценарий в варианте встроенного языка".
+
В поле "Имя основной процедуры" указывается имя процедуры, которая будет являться точкой входа в сценарий.
+
Если планируется использовать сгенерированную процедуру самостоятельно (например, во внешней обработке), имеется возможность сгенерировать код подключения к тестируемому клиенту, отметив флажок "Генерировать код подключения к клиенту". В противном случае для процедуры будет сформирован параметр ТестируемоеПриложение, в который при вызове будет необходимо передать существующий объект типа ТестируемоеПриложение, который уже установил соединение с тестируемым клиентом.
+
Для упрощения чтения получаемого кода сгенерированная программа разбивается по "границам" окон приложения на подпрограммы. Если отметить флажок "Разбивать результат на процедуры по "границам" окон" будет сформирована одна большая процедура.
+
Отметка флажка "Генерировать получение родительских объектов в иерархии" позволяет при вызове метода какого-либо объекта сгенерировать получение всех родительских тестируемых объектов, которые находятся между текущим тестируемым объектом и формой. Если флажок сброшен - генерируется поиск объектов непосредственно через объект тестируемой формы.
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Ext/ObjectModule.bsl"
new file mode 100644
index 000000000..937002c4a
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Ext/ObjectModule.bsl"
@@ -0,0 +1,1282 @@
+Var CreatedInWindowAndFormVariables;
+Var Indent;
+
+Function Convert(TextToConvert) Export
+
+ Reader = New XMLReader();
+ Reader.SetString(TextToConvert);
+
+ CreatedProcedures = New Array();
+ CreatedInWindowAndFormVariables = New Map();
+
+ Writer = New TextDocument;
+
+ Reader.MoveToContent();
+ Indent = 0;
+
+ // Converting the file
+ If Reader.NodeType = XMLNodeType.StartElement And
+ Reader.Name = "uilog" Then
+
+ ConvertIntoScenario(Reader, Writer);
+
+ EndIf;
+
+ Return Writer.GetText();
+
+EndFunction
+
+////////////////////////////////////////////////////////////////////////////////
+// AUXILIARY PROCEDURES AND FUNCTIONS
+Procedure AddLine(Writer, OutputString, AddGoTo = False)
+
+ // Adding required number of spaces to the string from the left
+ Result = "";
+ For Index = 1 To Indent Do
+ Result = Result + " ";
+ EndDo;
+ Result = Result + OutputString;
+
+ // Adding the string to the end of the result
+ Writer.AddLine(Result);
+ If AddGoTo Then
+ Writer.AddLine("");
+ EndIf;
+
+EndProcedure
+
+Procedure InsertLine(Writer, LineNumber, OutputString)
+
+ // Adding required number of spaces to the string from the left
+ Result = "";
+ For Index = 1 To Indent Do
+ Result = Result + " ";
+ EndDo;
+ Result = Result + OutputString;
+
+ // Adding the string to the result
+ Writer.InsertLine(LineNumber, Result);
+
+EndProcedure
+
+Function DoubleQuotationMarks(OutputString)
+
+ // Doubling quotation marks for correctness during export to a file.
+ Return StrReplace(OutputString, """", """""");
+
+EndFunction
+
+Function SearchValuesForTitle(Title, Name, Val SearchType)
+
+ // Search 'by title' or 'by name and title'
+ If SearchType = 0 Or SearchType = 2 Then
+ If Not Title = Undefined Then
+ Return """" + DoubleQuotationMarks(Title) + """";
+ EndIf;
+ If SearchType = 2 And Name = Undefined Then
+ Raise NStr("en = 'Specify the title or name of the object'; ru = 'У объекта должны быть заполнены заголовок или имя'");
+ EndIf;
+ Return "";
+ // Search 'by name'
+ ElsIf SearchType = 1 Then
+ If Name = Undefined Then
+ Return """" + DoubleQuotationMarks(Title) + """";
+ EndIf;
+ Return "";
+ // Search 'by name and title'
+ Else
+ Raise NStr("en = 'Unexpected object search type: '; ru = 'Неожиданный тип поиска объектов: '") + ObjectSearch;
+ EndIf;
+
+EndFunction
+
+Function SearchValuesForName(Title, Name, Val SearchType, TitleEmpty)
+
+ If (SearchType = 0 And TitleEmpty) Then
+ SearchType = 1;
+ EndIf;
+
+ // Search 'by title'
+ If SearchType = 0 Then
+ Return "";
+ // Search 'by name' or 'by name and title'
+ ElsIf SearchType = 1 Or SearchType = 2 Then
+ If Not Name = Undefined Then
+ Return """" + Name + """";
+ EndIf;
+ If SearchType = 2 And Title = Undefined Then
+ Raise NStr("en = 'Specify the title or name of the object'; ru = 'У объекта должны быть заполнены заголовок или имя'");
+ EndIf;
+ Return "";
+ Else
+ Raise NStr("en = 'Unexpected object search type: '; ru = 'Неожиданный тип поиска объектов: '") + ObjectSearch;
+ EndIf;
+
+EndFunction
+
+Function ConvertTitleIntoVariableName(ObjectType, ObjectTitle)
+
+ // Variable name starts with a type name
+ If ObjectType = "ClientApplicationWindow" Then
+
+ VariableName = ? (ScriptVariant = "en", "ClientWindow", "ОкноПриложения");
+ ElsIf ObjectType = "Form" Then
+ VariableName = ? (ScriptVariant = "en", "Form", "Форма");
+ ElsIf ObjectType = "FormField" Then
+ VariableName = ? (ScriptVariant = "en", "Field", "Поле");
+ ElsIf ObjectType = "FormButton" Then
+ VariableName = ? (ScriptVariant = "en", "Button", "Кнопка");
+ ElsIf ObjectType = "FormGroup" Then
+ VariableName = ? (ScriptVariant = "en", "Group", "Группа");
+ ElsIf ObjectType = "FormTable" Then
+ VariableName = ? (ScriptVariant = "en", "Table", "Таблица");
+ ElsIf ObjectType = "FormDecoration" Then
+ VariableName = ? (ScriptVariant = "en", "Decoration", "Декорация");
+ ElsIf ObjectType = "CommandInterface" Then
+ VariableName = ? (ScriptVariant = "en", "CommandInterface", "КомандныйИнтерфейс");
+ ElsIf ObjectType = "CommandInterfaceGroup" Then
+ VariableName = ? (ScriptVariant = "en", "CommandInterfaceGroup", "ГруппаКомандногоИнтерфейса");
+ ElsIf ObjectType = "CommandInterfaceButton" Then
+ VariableName = ? (ScriptVariant = "en", "CommandInterfaceButton", "КнопкаКомандногоИнтерфейса");
+ Else
+ Raise NStr("en = 'Unknown node: '; ru = 'Неопознанный узел '") + ObjectType;
+ EndIf;
+
+ // Cutting characters except letters and digits
+ PreviousCharIsSpace = True;
+ StringLength = StrLen(ObjectTitle);
+ For Index = 1 To StringLength Do
+ NextChar = Mid(ObjectTitle,Index, 1);
+ If IsLetter(NextChar) Or IsDigit(NextChar) Then
+ VariableName = VariableName + ? (PreviousCharIsSpace, Upper(NextChar), NextChar);
+ PreviousCharIsSpace = False;
+ Else
+ PreviousCharIsSpace = True;
+ EndIf;
+ EndDo;
+
+ Return VariableName;
+
+EndFunction
+
+Function IsDigit(Char)
+
+ Code = CharCode(Char);
+ Return Code >= 48 And Code <= 57;
+
+EndFunction
+
+Function IsLetter(Char)
+
+ // All non-literal character codes are considered equal
+ Return CharCode(Lower(Char)) <> CharCode(Upper(Char));
+
+EndFunction
+
+////////////////////////////////////////////////////////////////////////////////
+// Convert procedures
+Procedure ConvertIntoScenario(Reader, Writer)
+
+ If GenerateClientConnectionScript Then
+
+ AddLine(Writer, ? (ScriptVariant = "en", "&AtClient", "&НаКлиенте"));
+ AddLine(Writer, ? (ScriptVariant = "en", "Procedure ", "Процедура ") + MainProcedureName + "()", True);
+
+ Indent = Indent + 1;
+
+ AddLine(Writer, ? (ScriptVariant = "en", "TestApplication = New TestedApplication();", "ТестовоеПриложение = Новый ТестируемоеПриложение();"));
+ AddLine(Writer, ? (ScriptVariant = "en", "TimeOut = CurrentDate() + 60;", "ВремяОкончанияОжидания = ТекущаяДата() + 60;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "Connected = False;", "Подключен = Ложь;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "ConnectionErrorDescription = """";", "ОписаниеОшибкиСоединения = """";"));
+ AddLine(Writer, ? (ScriptVariant = "en", "While Not CurrentDate() >= TimeOut Do", "Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Try", " Попытка"));
+ AddLine(Writer, ? (ScriptVariant = "en", " TestApplication.Connect();", " ТестовоеПриложение.УстановитьСоединение();"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Connected = True;", " Подключен = Истина;"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Break;", " Прервать;"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Except", " Исключение"));
+ AddLine(Writer, ? (ScriptVariant = "en", " ConnectionErrorDescription = ErrorDescription();", " ОписаниеОшибкиСоединения = ОписаниеОшибки();"));
+ AddLine(Writer, ? (ScriptVariant = "en", " EndTry;", " КонецПопытки;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "EndDo;", "КонецЦикла;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "If Not Connected Then", "Если Не Подключен Тогда"));
+ AddLine(Writer, ? (ScriptVariant = "en", " TestApplication = Undefined;", " ТестовоеПриложение = Неопределено;"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Message(""Connection cannot be established. "" + Chars.LF + ConnectionErrorDescription);", " Сообщить(""Не смогли установить соединение! "" + Символы.ПС + ОписаниеОшибкиСоединения);"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Return;", " Возврат;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "EndIf;", "КонецЕсли;"), True);
+
+ Indent = Indent - 1;
+
+ Else
+
+ AddLine(Writer, ? (ScriptVariant = "en", "&AtClient", "&НаКлиенте"));
+ AddLine(Writer, ? (ScriptVariant = "en", "Procedure ", "Процедура ") + MainProcedureName + ? (ScriptVariant = "en", "(TestApplication)", "(ТестовоеПриложение)"), True);
+
+ EndIf;
+
+ Reader.Read();
+
+ LocalWriter = Writer;
+ If SplitScriptIntoProcedures Then
+ LocalWriter = New TextDocument();
+ EndIf;
+
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "ClientApplicationWindow" Then
+
+ LocalProcedureName = "";
+ ConvertWindow(Reader, LocalWriter, LocalProcedureName);
+
+ If SplitScriptIntoProcedures Then
+
+ Indent = Indent + 1;
+ AddLine(Writer, LocalProcedureName + ? (ScriptVariant = "en", "(TestApplication);", "(ТестовоеПриложение);"));
+ Indent = Indent - 1 ;
+
+ EndIf;
+
+ ElsIf Reader.Name = "Form" Then
+
+ AddLine(Writer, "");
+
+ Indent = Indent + 1;
+
+ WindowBeingProcessed = "";
+ CreatedInWindowAndFormVariables.Insert(WindowBeingProcessed, New Map());
+ ConvertForm(Reader, Writer, ? (ScriptVariant = "en", "TestApplication", "ТестовоеПриложение"));
+
+ Indent = Indent - 1;
+
+ Else
+
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+
+ EndIf;
+
+ EndDo;
+
+ If SplitScriptIntoProcedures Then
+ AddLine(Writer, "");
+ EndIf;
+ AddLine(Writer, ? (ScriptVariant = "en", "EndProcedure", "КонецПроцедуры"));
+
+ If SplitScriptIntoProcedures Then
+ AddLine(Writer, LocalWriter.GetText());
+ EndIf;
+
+EndProcedure
+
+Procedure ConvertWindow(Reader, Writer, LocalProcedureName)
+
+ ObjectType = Reader.Name;
+ ObjectTitle = "";
+ IsMainWindow = False;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "caption" Then
+ ObjectTitle = Reader.Value;
+ ElsIf Reader.Name = "isMain" Then
+ IsMainWindow = Boolean(Reader.Value);
+ EndIf;
+ EndDo;
+
+ VariableName = ConvertTitleIntoVariableName(ObjectType, ? (IsMainWindow, ? (ScriptVariant = "en", "Main", "Основное"), ObjectTitle));
+
+ WindowBeingProcessed = VariableName;
+
+ If SplitScriptIntoProcedures Then
+ LineCountBeforeProcess = Writer.LineCount();
+ EndIf;
+
+ Indent = Indent + 1;
+
+ If CreatedInWindowAndFormVariables.Get(WindowBeingProcessed) = Undefined Then
+
+ CreatedInWindowAndFormVariables.Insert(WindowBeingProcessed, New Map());
+
+ If IsMainWindow Then
+ AddLine(Writer, "");
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", " = Undefined;", " = Неопределено;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "ClientWindowsOfApplicationBeingTested = TestApplication.GetChildObjects();", "КлиентсткиеОкнаТестируемогоПриложения = ТестовоеПриложение.ПолучитьПодчиненныеОбъекты();"));
+ AddLine(Writer, ? (ScriptVariant = "en", "For Each WindowBeingTested In ClientWindowsOfApplicationBeingTested Do", "Для Каждого ТестируемоеОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл"));
+ AddLine(Writer, ? (ScriptVariant = "en", " If WindowBeingTested.IsMain Then", " Если ТестируемоеОкно.Основное Тогда"));
+ AddLine(Writer, " " + VariableName + ? (ScriptVariant = "en", " = WindowBeingTested;", " = ТестируемоеОкно;"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Break;", " Прервать;"));
+ AddLine(Writer, ? (ScriptVariant = "en", " EndIf;", " КонецЕсли;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "EndDo;", "КонецЦикла;"));
+ Else
+
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", " = TestApplication.FindObject(Type(""TestedClientApplicationWindow""), """, " = ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), """) + DoubleQuotationMarks(ObjectTitle) + """, , 30);");
+
+ EndIf;
+
+ EndIf;
+ WindowClosed = False;
+
+ Reader.Read();
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "Form" Then
+ ConvertForm(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "CommandInterface" Then
+ ConvertWindowCommandInterface(Reader, Writer, VariableName);
+ ElsIf Not ConvertCommand(Reader, Writer, VariableName) Then
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ Indent = Indent - 1;
+ Reader.Read();
+
+ If WindowClosed Or SplitScriptIntoProcedures Then
+ CreatedInWindowAndFormVariables.Delete(WindowBeingProcessed);
+ EndIf;
+
+ If SplitScriptIntoProcedures Then
+
+ ProcedureCount = 0;
+ While True Do
+ LocalProcedureName = VariableName + LastProcessedControl + LastProcessedCommand + ? (ProcedureCount = 0, "", ProcedureCount);
+ Prologue = ? (ScriptVariant = "en", "Procedure ", "Процедура ") + LocalProcedureName + ? (ScriptVariant = "en", "(TestApplication)", "(ТестовоеПриложение)");
+ If CreatedProcedures.Find(Prologue) = Undefined Then
+ CreatedProcedures.Add(Prologue);
+ Break;
+ EndIf;
+ ProcedureCount = ProcedureCount + 1;
+ EndDo;
+
+ InsertLine(Writer, LineCountBeforeProcess, Prologue);
+ InsertLine(Writer, LineCountBeforeProcess, ? (ScriptVariant = "en", "&AtClient", "&НаКлиенте"));
+ InsertLine(Writer, LineCountBeforeProcess, "");
+
+ AddLine(Writer, ? (ScriptVariant = "en", "EndProcedure", "КонецПроцедуры"), True);
+
+ EndIf;
+
+EndProcedure
+
+Procedure ConvertWindowCommandInterface(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectTitle = "";
+
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ObjectTitle);
+ VariableName = ParentVariable + "CommandInterface";
+
+
+ WindowForms = CreatedInWindowAndFormVariables.Get(WindowBeingProcessed);
+ If WindowForms.Get(FormBeingProcessed) = Undefined Then
+
+ WindowForms.Insert(FormBeingProcessed, New Array());
+
+ AddLine(Writer, VariableName + " = " + ParentVariable + ? (ScriptVariant = "en", ".GetCommandInterface();", ".ПолучитьКомандныйИнтерфейс();"));
+
+ EndIf;
+
+ Reader.Read();
+
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+ If Reader.Name = "CommandInterfaceButton" Then
+ ConvertCommandInterfaceButton(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "CommandInterfaceGroup" Then
+ ConvertCommandInterfaceGroup(Reader, Writer, VariableName);
+ ElsIf Not ConvertCommand(Reader, Writer, VariableName) Then
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertCommandInterfaceButton(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectTitle = "";
+
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ObjectTitle);
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If ConvertCommand(Reader, Writer, VariableName) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ InsertLine(Writer, LineCountBeforeProcess + 1, VariableName + " = " + ParentVariable + ? (ScriptVariant = "en", ".FindObject(Type(""TestedCommandInterfaceButton""), """, ".НайтиОбъект(Тип(""ТестируемаяКнопкаКомандногоИнтерфейса""), """) + DoubleQuotationMarks(ObjectTitle) + """);");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertCommandInterfaceGroup(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectTitle = "";
+
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ObjectTitle);
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "CommandInterfaceButton" Then
+ ConvertCommandInterfaceButton(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf Reader.Name = "CommandInterfaceGroup" Then
+ ConvertCommandInterfaceGroup(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If GetFullHierarchy Then
+ InsertLine(Writer, LineCountBeforeProcess + 1, VariableName + " = " + ParentVariable + ? (ScriptVariant = "en", ".FindObject(Type(""TestedCommandInterfaceGroup""), """, ".НайтиОбъект(Тип(""ТестируемаяГруппаКомандногоИнтерфейса""), """) + DoubleQuotationMarks(ObjectTitle) + """);");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertForm(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectTitle = "";
+
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ObjectTitle);
+ VariableName = ParentVariable + LastProcessedControl;
+ FormBeingProcessed = VariableName;
+
+ WindowForms = CreatedInWindowAndFormVariables.Get(WindowBeingProcessed);
+ If WindowForms.Get(FormBeingProcessed) = Undefined Then
+
+ WindowForms.Insert(FormBeingProcessed, New Array());
+
+ AddLine(Writer, VariableName + " = " + ParentVariable + ? (ScriptVariant = "en", ".FindObject(Type(""TestedForm""), """, ".НайтиОбъект(Тип(""ТестируемаяФорма""), """) + DoubleQuotationMarks(ObjectTitle) + """);");
+
+ EndIf;
+
+ Reader.Read();
+
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+ If Reader.Name = "FormField" Then
+ ConvertField(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "FormTable" Then
+ ConvertTable(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "FormDecoration" Then
+ ConvertDecoration(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "FormButton" Then
+ ConvertButton(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "FormGroup" Then
+ ConvertGroup(Reader, Writer, VariableName);
+ ElsIf Not ConvertCommand(Reader, Writer, VariableName) Then
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertTable(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectName = Undefined;
+ ObjectTitle = Undefined;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "name" Then
+ ObjectName = Reader.Value;
+ ElsIf Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ? (ObjectTitle = Undefined, ObjectName, ObjectTitle));
+
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "FormField" Then
+ ConvertField(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+
+ ElsIf Reader.Name = "FormGroup" Then
+ ConvertGroup(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf ConvertCommand(Reader, Writer, VariableName, ObjectType) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, "TestedFormTable", "ТестируемаяТаблицаФормы");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertField(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectName = Undefined;
+ ObjectTitle = Undefined;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "name" Then
+ ObjectName = Reader.Value;
+ ElsIf Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ? (ObjectTitle = Undefined, ObjectName, ObjectTitle));
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "FormField" Then
+ ConvertField(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf ConvertCommand(Reader, Writer, VariableName) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node'; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, "TestedFormField", "ТестируемоеПолеФормы");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, TypeNameEn, TypeNameRu)
+
+ TitleValue = SearchValuesForTitle(ObjectTitle, ObjectName, ObjectSearch);
+ NameValue = SearchValuesForName(ObjectTitle, ObjectName, ObjectSearch, TitleValue = "");
+ InsertLine(Writer, LineCountBeforeProcess + 1,
+ VariableName +
+ " = " +
+ ParentVariable +
+ ? (ScriptVariant = "en", ".FindObject(Type(""" + TypeNameEn + """), ", ".НайтиОбъект(Тип(""" + TypeNameRu + """), ") +
+ ? (TitleValue <> "" Or NameValue <> "", TitleValue, "") +
+ ? (NameValue <> "", ", " + NameValue, "") +
+ ");");
+
+EndProcedure
+
+Procedure ConvertButton(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectName = Undefined;
+ ObjectTitle = Undefined;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "name" Then
+ ObjectName = Reader.Value;
+ ElsIf Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ? (ObjectTitle = Undefined, ObjectName, ObjectTitle));
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If ConvertCommand(Reader, Writer, VariableName) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, "TestedFormButton", "ТестируемаяКнопкаФормы");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertDecoration(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectName = Undefined;
+ ObjectTitle = Undefined;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "name" Then
+ ObjectName = Reader.Value;
+ ElsIf Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ? (ObjectTitle = Undefined, ObjectName, ObjectTitle));
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If ConvertCommand(Reader, Writer, VariableName) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, "TestedFormDecoration", "ТестируемаяДекорацияФормы");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertGroup(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectName = Undefined;
+ ObjectTitle = Undefined;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "name" Then
+ ObjectName = Reader.Value;
+ ElsIf Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ? (ObjectTitle = Undefined, ObjectName, ObjectTitle));
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "FormField" Then
+ ConvertField(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf Reader.Name = "FormTable" Then
+ ConvertTable(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf Reader.Name = "FormDecoration" Then
+ ConvertDecoration(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf Reader.Name = "FormButton" Then
+ ConvertButton(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf Reader.Name = "FormGroup" Then
+ ConvertGroup(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf ConvertCommand(Reader, Writer, VariableName, ObjectType) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, "TestedFormGroup", "ТестируемаяГруппаФормы");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Function ConvertCommand(Reader, Writer, VariableName, ObjectType = "")
+
+ If Reader.Name = "activate" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Activate();", ".Активизировать();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Activate", "Активизировать");
+ Reader.Read();
+
+ ElsIf Reader.Name = "inputText" Then
+ OutputText = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "text" Then
+ OutputText = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".InputText(""", ".ВвестиТекст(""") + DoubleQuotationMarks(OutputText) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "InputText", "ВвестиТекст");
+ Reader.Read();
+
+ ElsIf Reader.Name = "click" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Click();", ".Нажать();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Click", "Нажать");
+ Reader.Read();
+
+ ElsIf Reader.Name = "clear" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Clear();", ".Очистить();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Clear", "Очистить");
+ Reader.Read();
+
+ ElsIf Reader.Name = "create" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Create();", ".Создать();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Create", "Создать");
+ Reader.Read();
+
+ ElsIf Reader.Name = "cancel" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".CancelEdit();", ".ОтменитьРедактирование();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "CancelEdit", "ОтменитьРедактирование");
+ Reader.Read();
+
+ ElsIf Reader.Name = "open" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Open();", ".Открыть();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Open", "Открыть");
+ Reader.Read();
+
+ ElsIf Reader.Name = "startChoosing" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".StartChoosing();", ".Выбрать();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "StartChoosing", "Выбрать");
+ Reader.Read();
+
+ ElsIf Reader.Name = "startChoosingFromChoiceList" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".StartChoosingFromChoiceList();", ".ВыбратьИзСпискаВыбора();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "StartChoosingFromChoiceList", "ВыбратьИзСпискаВыбора");
+ Reader.Read();
+
+ ElsIf Reader.Name = "executeChoiceFromChoiceList" Then
+ Presentation = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "presentation" Then
+ Presentation = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".WaitForDropDownListGeneration();", ".ОжидатьФормированияВыпадающегоСписка();"), True);
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".ExecuteChoiceFromChoiceList(""", ".ВыполнитьВыборИзСпискаВыбора(""") + DoubleQuotationMarks(Presentation) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "ExecuteChoiceFromChoiceList", "ВыполнитьВыборИзСпискаВыбора");
+ Reader.Read();
+
+ ElsIf Reader.Name = "openDropList" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".OpenDropList();", ".ОткрытьВыпадающийСписок();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "OpenDropList", "ОткрытьВыпадающийСписок");
+ Reader.Read();
+
+ ElsIf Reader.Name = "closeDropList" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".CloseDropList();", ".ЗакрытьВыпадающийСписок();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "CloseDropList", "ЗакрытьВыпадающийСписок");
+ Reader.Read();
+
+ ElsIf Reader.Name = "executeChoiceFromDropList" Then
+ Presentation = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "presentation" Then
+ Presentation = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".WaitForDropDownListGeneration();", ".ОжидатьФормированияВыпадающегоСписка();"), True);
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".ExecuteChoiceFromDropList(""", ".ВыполнитьВыборИзВыпадающегоСписка(""") + DoubleQuotationMarks(Presentation) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "ExecuteChoiceFromDropList", "ВыполнитьВыборИзВыпадающегоСписка");
+ Reader.Read();
+
+ ElsIf Reader.Name = "increaseValue" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".IncreaseValue();", ".УвеличитьЗначение();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "IncreaseValue", "УвеличитьЗначение");
+ Reader.Read();
+
+ ElsIf Reader.Name = "decreaseValue" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".DecreaseValue();", ".УменьшитьЗначение();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "DecreaseValue", "УменьшитьЗначение");
+ Reader.Read();
+
+ ElsIf Reader.Name = "setCheck" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SetCheck();", ".УстановитьОтметку();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SetCheck", "УстановитьОтметку");
+ Reader.Read();
+
+ ElsIf Reader.Name = "selectOption" Then
+ Presentation = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "presentation" Then
+ Presentation = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SelectOption(""", ".ВыбратьВариант(""") + DoubleQuotationMarks(Presentation) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SelectOption", "ВыбратьВариант");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoValue" Then
+ Presentation = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "value" Then
+ Presentation = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoValue(""", ".ПерейтиКЗначению(""") + DoubleQuotationMarks(Presentation) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoValue", "ПерейтиКЗначению");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoNextMonth" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoNextMonth();", ".ПерейтиНаМесяцВперед();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoNextMonth", "ПерейтиНаМесяцВперед");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoPreviousMonth" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoPreviousMonth();", ".ПерейтиНаМесяцНазад();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoPreviousMonth", "ПерейтиНаМесяцНазад");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoNextYear" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoNextYear();", ".ПерейтиНаГодВперед();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoNextYear", "ПерейтиНаГодВперед");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoPreviousYear" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoPreviousYear();", ".ПерейтиНаГодНазад();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoPreviousYear", "ПерейтиНаГодНазад");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoDate" Then
+ Presentation = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "date" Then
+ Presentation = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; 'ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoDate(XMLValue(Type(""Date""), """, ".ПерейтиКДате(XMLЗначение(Тип(""Дата""), """) + Presentation + """));", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GoToDate", "ПерейтиКДате");
+ Reader.Read();
+
+ ElsIf Reader.Name = "setCurrentArea" Then
+ Area = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "area" Then
+ Area = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SetCurrentArea(""", ".УстановитьТекущуюОбласть(""") + Area + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SetCurrentArea", "УстановитьТекущуюОбласть");
+ Reader.Read();
+
+ ElsIf Reader.Name = "beginEditingCurrentArea" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".BeginEditingCurrentArea();", ".НачатьРедактированиеТекущейОбласти();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "BeginEditingCurrentArea", "НачатьРедактированиеТекущейОбласти");
+ Reader.Read();
+
+ ElsIf Reader.Name = "finishEditingCurrentArea" Then
+ CancelFlag = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "cancel" Then
+ CancelFlag = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".EndEditingCurrentArea(", ".ЗавершитьРедактированиеТекущейОбласти(") + CancelFlag + ");", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "EndEditingCurrentArea", "ЗавершитьРедактированиеТекущейОбласти");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoNextItem" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoNextItem();", ".ПерейтиКСледующемуЭлементу();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoNextItem", "ПерейтиКСледующемуЭлементу");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoPreviousItem" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoPreviousItem();", ".ПерейтиКПредыдущемуЭлементу();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoPreviousItem", "ПерейтиКПредыдущемуЭлементу");
+ Reader.Read();
+
+ ElsIf Reader.Name = "goOneLevelUp" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GoOneLevelUp();", ".ПерейтиНаУровеньВверх();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GoOneLevelUp", "ПерейтиНаУровеньВверх");
+ Reader.Read();
+
+ ElsIf Reader.Name = "goOneLevelDown" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GoOneLevelDown();", ".ПерейтиНаУровеньВниз();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GoOneLevelDown", "ПерейтиНаУровеньВниз");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoNextRow" Then
+ ConvertCommandPartGotoSpecificRow(Reader, VariableName, Writer, "GotoNextRow", "ПерейтиКСледующейСтроке");
+
+ ElsIf Reader.Name = "gotoPreviousRow" Then
+ ConvertCommandPartGotoSpecificRow(Reader, VariableName, Writer, "GotoPreviousRow", "ПерейтиКПредыдущейСтроке");
+
+ ElsIf Reader.Name = "gotoFirstRow" Then
+ ConvertCommandPartGotoSpecificRow(Reader, VariableName, Writer, "GotoFirstRow", "ПерейтиКПервойСтроке");
+
+ ElsIf Reader.Name = "gotoLastRow" Then
+ ConvertCommandPartGotoSpecificRow(Reader, VariableName, Writer, "GotoLastRow", "ПерейтиКПоследнейСтроке");
+
+ ElsIf Reader.Name = "gotoRow" Then
+ Direction = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "direction" Then
+ Direction = ? (ScriptVariant = "en", ? (Reader.Value = "up", "RowGotoDirection.Up", "RowGotoDirection.Down"), ? (Reader.Value = "up", "НаправлениеПереходаКСтроке.Вверх", "НаправлениеПереходаКСтроке.Вниз"));
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ Reader.Read();
+ ConvertCommandPartRowDescriptionPartInt(Reader, Writer);
+ AddLine(Writer,
+ VariableName + ? (ScriptVariant = "en", ".GotoRow(RowDescription", ".ПерейтиКСтроке(ОписаниеСтроки") + ? (Direction = "", "", ", " + Direction) + ");",
+ True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoRow", "ПерейтиКСтроке");
+
+ ElsIf Reader.Name = "setOrder" Then
+ ColumnTitle = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "columnTitle" Then
+ ColumnTitle = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SetOrder(""", ".УстановитьПорядок(""") + DoubleQuotationMarks(ColumnTitle) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SetOrder", "УстановитьПорядок");
+ Reader.Read();
+
+ ElsIf Reader.Name = "choose" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Choose();", ".Выбрать();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Choose", "Выбрать");
+ Reader.Read();
+
+ ElsIf Reader.Name = "selectAllRows" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SelectAllRows();", ".ВыделитьВсеСтроки();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SelectAllRows", "ВыделитьВсеСтроки");
+ Reader.Read();
+
+ ElsIf Reader.Name = "changeRow" Then
+ AddLine(Writer, VariableName +? (ScriptVariant = "en", ".ChangeRow();", ".ИзменитьСтроку();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "ChangeRow", "ИзменитьСтроку");
+ Reader.Read();
+
+ ElsIf Reader.Name = "endEditRow" Then
+ CancelFlag = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "cancel" Then
+ CancelFlag = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".EndEditRow(", ".ЗакончитьРедактированиеСтроки(") + CancelFlag + ");", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "EndEditRow", "ЗакончитьРедактированиеСтроки");
+ Reader.Read();
+
+ ElsIf Reader.Name = "addRow" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".AddRow();", ".ДобавитьСтроку();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "AddRow", "ДобавитьСтроку");
+ Reader.Read();
+
+ ElsIf Reader.Name = "deleteRow" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".DeleteRow();", ".УдалитьСтроку();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "DeleteRow", "УдалитьСтроку");
+ Reader.Read();
+
+ ElsIf Reader.Name = "switchRowDeleteMark" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SwitchRowDeleteMark();", ".ПереключитьПометкуУдаленияСтроки();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SwitchRowDeleteMark", "ПереключитьПометкуУдаленияСтроки");
+ Reader.Read();
+
+ ElsIf Reader.Name = "expand" Then
+ If ObjectType = "FormGroup" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Expand();", ".Развернуть();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Expand", "Развернуть");
+ Reader.Read();
+ Else
+ ConvertCommandPartRowDescription(Reader, VariableName, Writer, "Expand", "Развернуть");
+ Endif;
+ LastProcessedCommand = ? (ScriptVariant = "en", "Expand", "Развернуть");
+
+ ElsIf Reader.Name = "collapse" Then
+ If ObjectType = "FormGroup" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Collapse();", ".Свернуть();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Collapse", "Свернуть");
+ Reader.Read();
+ Else
+ ConvertCommandPartRowDescription(Reader, VariableName, Writer, "Collapse", "Свернуть");
+ EndIf;
+ LastProcessedCommand = ? (ScriptVariant = "en", "Collapse", "Свернуть");
+
+ ElsIf Reader.Name = "close" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Close();", ".Закрыть();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Close", "Закрыть");
+ WindowClosed = True;
+ Reader.Read();
+
+ ElsIf Reader.Name = "chooseUserMessage" Then
+ MessageText = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "messageText" Then
+ MessageText = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".ChooseUserMessage(""", ".ВыбратьСообщениеПользователю(""") + MessageText + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "ChooseUserMessage", "ВыбратьСообщениеПользователю");
+ Reader.Read();
+
+ ElsIf Reader.Name = "closeUserMessagesPanel" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".CloseUserMessagesPanel();", ".ЗакрытьПанельСообщенийПользователю();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "CloseUserMessagesPanel", "ЗакрытьПанельСообщенийПользователю");
+ WindowClosed = True;
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoStartPage" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoStartPage();", ".ПерейтиКНачальнойСтранице();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoStartPage", "ПерейтиКНачальнойСтранице");
+ WindowClosed = True;
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoNextWindow" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoNextWindow();", ".ПерейтиКСледующемуОкну();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoNextWindow", "ПерейтиКСледующемуОкну");
+ WindowClosed = True;
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoPreviousWindow" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoPreviousWindow();", ".ПерейтиКПредыдущемуОкну();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoPreviousWindow", "ПерейтиКПредыдущемуОкну");
+ WindowClosed = True;
+ Reader.Read();
+
+ ElsIf Reader.Name = "executeCommand" Then
+ CommandRef = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "url" Then
+ CommandRef = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".ExecuteCommand(""", ".ВыполнитьКоманду(""") + CommandRef + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "ExecureCommand", "ВыполнитьКоманду");
+ Reader.Read();
+
+ Else
+ Return False;
+ EndIf;
+
+ Reader.Read();
+
+ Return True;
+
+EndFunction
+
+Procedure ConvertCommandPartGotoSpecificRow(Val Reader, Val VariableName, Val Writer, Val TermInt, Val TermRus)
+
+ SwitchSelection = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "switchSelection" Then
+ SwitchSelection = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", "." + TermInt + "(", "." + TermRus + "(") + SwitchSelection + ");", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", TermInt, TermRus);
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertCommandPartRowDescription(Val Reader, Val VariableName, Val Writer, Val TermInt, Val TermRus)
+
+ Reader.Read();
+ If Reader.NodeType = XMLNodeType.StartElement And Reader.Name = "Field" Then
+ ConvertCommandPartRowDescriptionPartInt(Reader, Writer);
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", "." + TermInt + "(RowDescription);", "." + TermRus + "(ОписаниеСтроки);"), True);
+ Else
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", "." + TermInt +"();", "." + TermRus + "();"), True);
+ EndIf;
+
+EndProcedure
+
+Procedure ConvertCommandPartRowDescriptionPartInt(Val Reader, Val Writer)
+
+ AddLine(Writer, ? (ScriptVariant = "en", "RowDescription = New Map();", "ОписаниеСтроки = Новый Соответствие();"));
+
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+ If Reader.Name = "Field" Then
+ ColumnTitle = "";
+ CellText = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "title" Then
+ ColumnTitle = Reader.Value;
+ ElsIf Reader.Name = "cellText" Then
+ CellText = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, ? (ScriptVariant = "en", "RowDescription.Insert(""", "ОписаниеСтроки.Вставить(""") +
+ ColumnTitle + """, """ + DoubleQuotationMarks(CellText) + """);");
+ Reader.Read();
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ Reader.Read();
+ EndDo;
+
+EndProcedure
+
+// { xUnitFor1C
+
+Функция Initialization()
+
+ TempFilesDir = TempFilesDir();
+
+ BinaryDataUnpacker = GetTemplate("UnpackV8");
+ BinaryDataDLL=ThisObject.GetTemplate("zlib1");
+ BinaryDataUnpacker.Write(TempFilesDir+"UnpackV8.exe");
+ BinaryDataDLL.Write(TempFilesDir+"zlib1.dll");
+ FileUnpackApplication = Новый File(TempFilesDir+"UnpackV8.exe");
+ FileDLL=Новый File(TempFilesDir+"zlib1.dll");
+
+ Возврат FileUnpackApplication;
+
+КонецФункции
+
+Функция CreateDataProcessor(TextToConvert) Экспорт
+
+ TextProcedure = Convert(TextToConvert);
+ TextProcedure = StrReplace(TextProcedure, """", """""");
+
+ FileUnpackApplication = Initialization();
+
+ GlobalKey = "" + Новый UUID;
+
+ localPathToExternalDataProcessor = TempFilesDir() + GlobalKey;
+ File = Новый File(GetTempFileName());
+
+ GetTemplate("ШаблонТеста_ВнешняяОбработка").Write(File.FullName);
+
+ TempFile = GetTempFileName("epf");
+
+ StringCommand = """"+FileUnpackApplication.FullName+""" -parse """+File.FullName+""" """+localPathToExternalDataProcessor+"""";
+ RunApp(StringCommand, , Истина);
+
+ ParsedFiles = НайтиФайлы(localPathToExternalDataProcessor, "*.*");
+ Если ParsedFiles.Количество() = 0 Тогда
+ NewMessage = New UserMessage();
+ NewMessage.Text = NStr("ru = 'Не удалось разобрать макет внешней обработки теста командой <"+StringCommand+">'");
+ NewMessage.Message();
+ Возврат "";
+ КонецЕсли;
+
+ // Replace text
+ FileTextModule = Новый File(localPathToExternalDataProcessor + "\8401ee62-68b8-43ea-8738-0c08cbc8c901.0");
+ TextDocumentModule = Новый TextDocument;
+ TextDocumentModule.Прочитать(FileTextModule.FullName);
+ TextModule = TextDocumentModule.GetText();
+
+ TextModule = СтрЗаменить(TextModule, "Процедура НазваниеПроцедуры_ТестовыйСценарий(тестовоеПриложение) КонецПроцедуры", Chars.LF);
+ TextModule = СтрЗаменить(TextModule, "НазваниеПроцедуры_Тест_ГУИ_83", "Тест_"+MainProcedureName);
+ TextModule = СтрЗаменить(TextModule, "НазваниеПроцедуры_ТестовыйСценарий", MainProcedureName);
+ TextModule = СтрЗаменить(TextModule, "//ЗАМЕНИТЬТЕСТОВОЙПРОЦЕДУРОЙ", TextProcedure);
+
+ TextDocumentModule.SetText(TextModule);
+ TextDocumentModule.Write(FileTextModule.FullName);
+
+ // Сохраним в макет наш файл.
+
+ TextWriter = Новый TextWriter;
+ TextWriter.Open(localPathToExternalDataProcessor + "\1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0");
+ TextWriter.Write(TextToConvert);
+ TextWriter.Close();
+
+ // Replace names
+ FileTextHeaders = Новый File(localPathToExternalDataProcessor + "\4e93fd08-5eda-44dd-92ef-b84867283b1e");
+ TextDocumentHeaders = Новый TextDocument;
+ TextDocumentHeaders.Read(FileTextHeaders.FullName);
+ Text = TextDocumentHeaders.GetText();
+ Text = StrReplace(Text, "ИмяВнешнейОбработки", "Тест"+MainProcedureName);
+ TextDocumentHeaders.SetText(Text);
+ TextDocumentHeaders.Write(FileTextHeaders.FullName);
+
+ // Pack
+ TempFile = GetTempFileName("epf");
+
+ StringCommand = """"+FileUnpackApplication.FullName+""" -build """+localPathToExternalDataProcessor+""" """+TempFile+"""";
+ RunApp(StringCommand, , Истина);
+
+ ResultString = "";
+ File = Новый File(TempFile);
+ Если File.Exist() Тогда
+ BinaryData = Новый BinaryData(File.FullName);
+ ResultString = Base64String(BinaryData);
+ КонецЕсли;
+
+ Возврат ResultString;
+
+КонецФункции
+
+// } xUnitFor1C
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/DefaultForm.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/DefaultForm.xml"
new file mode 100644
index 000000000..bb431bb1a
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/DefaultForm.xml"
@@ -0,0 +1,26 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/DefaultForm/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/DefaultForm/Ext/Form.xml"
new file mode 100644
index 000000000..8cd7f7e0d
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/DefaultForm/Ext/Form.xml"
@@ -0,0 +1,413 @@
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/DefaultForm/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/DefaultForm/Ext/Form/Module.bsl"
new file mode 100644
index 000000000..0c40b79b1
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/DefaultForm/Ext/Form/Module.bsl"
@@ -0,0 +1,300 @@
+
+////////////////////////////////////////////////////////////////////////////////
+// FORM EVENT HANDLERS
+&AtServer
+Procedure OnCreateAtServer(Cancel, StandardProcessing)
+
+ // Setting up initial values
+ Object.SplitScriptIntoProcedures = True;
+
+ Object.ScriptVariant = ? (String(Metadata.ScriptVariant) = "English", "en", "ru");
+
+
+ Items.ScriptVariant.ChoiceList.Add("en", NStr("en = 'English'; ru = 'Английский'"));
+ Items.ScriptVariant.ChoiceList.Add("ru", NStr("en = 'Russian'; ru = 'Русский'"));
+
+ Items.ObjectSearch.ChoiceList.Add(0, NStr("en = 'By presentation'; ru = 'По представлению'"));
+ Items.ObjectSearch.ChoiceList.Add(1, NStr("en = 'By name'; ru = 'По имени'"));
+ Items.ObjectSearch.ChoiceList.Add(2, NStr("en = 'By name and presentation'; ru = 'По имени и представлению'"));
+
+ Items.ConversionVariant.ChoiceList.Add(0, NStr("en = 'Log'; ru = 'Журнал'"));
+ Items.ConversionVariant.ChoiceList.Add(1, NStr("en = 'Text'; ru = 'Текст'"));
+
+ // { xUnitFor1C - Дополнительные команды
+ Items.ConversionVariant.ChoiceList.Add(2, NStr("ru = 'Из журнала в обработку-тест для xUnitFor1C'"));
+ Items.ConversionVariant.ChoiceList.Add(3, NStr("ru = 'Из текста в обработку-тест для xUnitFor1C'"));
+ // } xUnitFor1C - Дополнительные команды
+
+EndProcedure
+
+&AtClient
+Procedure OnOpen(Cancel)
+
+ Object.MainProcedureName = ?(Object.ScriptVariant = "en", "TestScenario_", "ТестовыйСценарий_") + ClearDate(Format(CurrentDate(), "DLF=D"));
+
+ Items.SourceData.CurrentPage = ?(Object.ConversionVariant = 0,Items.SourceFiles, Items.SourceTexts);
+
+ // { xUnitFor1C
+ SetVisibleOptionsForConvertionType();
+ // } xUnitFor1C
+
+EndProcedure
+
+&AtServer
+Procedure FillCheckProcessingAtServer(Cancel, AttributesToCheck)
+
+ // Adding check fields according to the transform variant
+ If Object.ConversionVariant = 0 Then
+
+ AttributesToCheck.Add("SourceFile");
+ AttributesToCheck.Add("ResultFile");
+
+ Else
+
+ If Not ValueIsFilled(SourceText.GetText()) Then
+
+ Cancel = True;
+
+ NewMessage = New UserMessage();
+ NewMessage.Text = NStr("en = 'User action log is not specified.'; ru = 'Поле ""Журнал действий пользователя"" не заполнено.'");
+ NewMessage.DataPath = "SourceText";
+ NewMessage.Message();
+
+ EndIf;
+
+ EndIf;
+
+EndProcedure
+
+////////////////////////////////////////////////////////////////////////////////
+// CONTROL EVENT HANDLERS
+&AtClient
+Procedure ConversionVariantOnChange(Item)
+
+ Items.SourceData.CurrentPage = ? (Object.ConversionVariant = 0, Items.SourceFiles, Items.SourceTexts);
+
+ // { xUnitFor1C
+ SetVisibleOptionsForConvertionType();
+ // } xUnitFor1C
+
+EndProcedure
+
+&AtClient
+Procedure ScriptVariantClearing(Item, StandardProcessing)
+
+ StandardProcessing = False;
+
+EndProcedure
+
+&AtClient
+Procedure ScriptVariantOnChange(Item)
+
+ Object.MainProcedureName = ? (Object.ScriptVariant = "en", "TestScenario_", "ТестовыйСценарий_") + ClearDate(Format(CurrentDate(), "DLF=D"));
+
+EndProcedure
+
+&AtClient
+Procedure SourceFileOnStartChoice(Item, ChoiceData, StandardProcessing)
+
+ StandardProcessing = False;
+
+ Dialog = New FileDialog(FileDialogMode.Open);
+
+ Dialog.FullFileName = SourceFile;
+ Dialog.Title = NStr("en = 'Specify the user action log file.'; ru = 'Укажите файл журнала действий пользователя'");
+ Dialog.Filter = NStr("en = 'User action log file (*.uil,*.txt,*.xml)|*.uil;*.txt;*.xml|All files (*.*)|*.*'; ru = 'Файлы журнала действий пользователя (*.uil,*.txt,*.xml)|*.uil;*.txt;*.xml|Все файлы (*.*)|*.*'");
+ Dialog.DefaultExt= "uil";
+
+ If Dialog.Choose() Then
+
+ SourceFile = Dialog.FullFileName;
+
+ If Not ValueIsFilled(ResultFile) Then
+
+ ResultFile = Left(Dialog.FullFileName, StrLen(Dialog.FullFileName) - StrLen(Dialog.DefaultExt)) + NStr("en = 'ModuleText'; ru = 'ТекстМодуля'") + ".txt"
+
+ EndIf;
+
+ EndIf;
+
+EndProcedure
+
+&AtClient
+Procedure SourceFileOnOpen(Item, StandardProcessing)
+
+ StandardProcessing = False;
+
+ DocumentToView = New TextDocument();
+ DocumentToView.Read(SourceFile);
+ DocumentToView.Show(SourceFile);
+
+EndProcedure
+
+&AtClient
+Procedure ResultFileOnStartChoice(Item, ChoiceData, StandardProcessing)
+
+ StandardProcessing = False;
+
+ Dialog = New FileDialog(FileDialogMode.Save);
+
+ Dialog.FullFileName = ResultFile;
+ Dialog.Title = NStr("en = 'Specify the file where the conversion result will be saved.'; ru = 'Укажите файл для сохранения результата преобразования'");
+ Dialog.Filter= NStr("en = 'Text files (*.txt)|*.txt|All files (*.*)|*.*'; ru = 'Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*'");
+
+ // { xUnitFor1C
+ If Object.ConversionVariant >= 2 Then
+ Dialog.Filter= NStr("ru = 'Внешние обработки (*.epf)|*.epf|Все файлы (*.*)|*.*'");
+ EndIf;
+ // { xUnitFor1C
+
+ If Dialog.Choose() Then
+
+ ResultFile = Dialog.FullFileName;
+
+ EndIf;
+
+EndProcedure
+
+&AtClient
+Procedure ResultFileOnOpen(Item, StandardProcessing)
+
+ StandardProcessing = False;
+
+ DocumentToView = New TextDocument();
+ DocumentToView.Read(ResultFile);
+ DocumentToView.Show(ResultFile);
+
+EndProcedure
+
+////////////////////////////////////////////////////////////////////////////////
+// AUXILIARY PROCEDURES AND FUNCTIONS
+&AtClient
+Function IsDigit(Char)
+
+ Code = CharCode (Char);
+ Return Code >= 48 And Code <= 57;
+
+EndFunction
+
+&AtClient
+Function IsLetter(Char)
+
+ // All non-literal character codes are considered equal
+ Return CharCode(Lower(Char)) <> CharCode(Upper(Char));
+
+EndFunction
+
+&AtClient
+Function ClearDate(DateToClear)
+
+ Result = "";
+
+ StringLength = StrLen(DateToClear);
+ For Index = 1 To StringLength Do
+ NextChar = Mid(DateToClear,Index, 1);
+ If IsDigit(NextChar) Then
+ Result = Result + NextChar;
+ Else
+ Result = Result + "_";
+ EndIf;
+ EndDo;
+
+ Return Result;
+
+EndFunction
+
+////////////////////////////////////////////////////////////////////////////////
+// Conversion procedures
+&AtServer
+Function ConvertAtServer(TextToConvert)
+
+ ThisDataProcessor = FormAttributeToValue("Object");
+
+ // { xUnitFor1C
+ If Object.ConversionVariant >= 2 Then
+ StringBase64 = ThisDataProcessor.CreateDataProcessor(TextToConvert);
+ Return StringBase64;
+ EndIf;
+ // } xUnitFor1C
+
+ Return ThisDataProcessor.Convert(TextToConvert);
+
+EndFunction
+
+&AtClient
+Procedure Convert(Command)
+
+ // Preparing data to be converted
+ ClearMessages();
+ If Not CheckFilling() Then
+ Return;
+ EndIf;
+
+ TextToConvert = "";
+ If Object.ConversionVariant = 0 Then
+
+ Reader = New TextDocument();
+ Reader.Read(SourceFile);
+ TextToConvert = Reader.GetText();
+ Reader = Undefined;
+
+ Else
+
+ TextToConvert = SourceText.GetText();
+
+ EndIf;
+
+ ConversionResult = ConvertAtServer(TextToConvert);
+
+ If Not ValueIsFilled(ConversionResult) Then
+ Message(NStr("en = 'Cannot convert data'; ru = 'Не удалось выполнить преобразование'"));
+ Return;
+ EndIf;
+
+ If Object.ConversionVariant = 0 Then
+
+ Writer = New TextDocument();
+ Writer.AddLine(ConversionResult);
+ Writer.Write(ResultFile);
+ Writer.Show(ResultFile);
+
+ // { xUnitFor1C
+ ElsIf Object.ConversionVariant >= 2 Then
+ Try
+ BinaryData = Base64Value(ConversionResult);
+ BinaryData.Write(ResultFile);
+ Except
+ NewMessage = New UserMessage();
+ NewMessage.Text = NStr("ru = 'Не удалось сохранить base64 внешнией обработки в файл'; en = 'Can''t save base64 of data processor to file'");
+ NewMessage.Message();
+ EndTry;
+ // } xUnitFor1C
+
+ Else
+
+ ResultText.Clear();
+ ResultText.AddLine(ConversionResult);
+
+ EndIf;
+
+EndProcedure
+
+// { xUnitFor1C
+
+&AtClient
+Procedure SetVisibleOptionsForConvertionType()
+
+ // { xUnitFor1C - Настройка текущей страницы для доп. вариантов преобразования действий пользователя
+ If Object.ConversionVariant = 2 Then
+ Items.SourceData.CurrentPage = Items.SourceFiles;
+ ElsIf Object.ConversionVariant = 3 Then
+ Items.SourceData.CurrentPage = Items.GenerateFileByText;
+ EndIf;
+ StandartChoice = (Object.ConversionVariant < 2);
+ Object.GenerateClientConnectionScript = StandartChoice;
+ Items.GenerateClientConnectionScript.Enabled = StandartChoice;
+ // } xUnitFor1C - Настройка текущей страницы для доп. вариантов преобразования действий пользователя
+
+EndProcedure
+
+// } xUnitFor1C
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/UnpackV8.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/UnpackV8.xml"
new file mode 100644
index 000000000..2a307ed68
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/UnpackV8.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ UnpackV8
+
+
+ ru
+ Unpack v8
+
+
+
+ BinaryData
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/UnpackV8/Ext/Template.bin" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/UnpackV8/Ext/Template.bin"
new file mode 100644
index 000000000..af7ade9a3
Binary files /dev/null and "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/UnpackV8/Ext/Template.bin" differ
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/zlib1.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/zlib1.xml"
new file mode 100644
index 000000000..e4face994
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/zlib1.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ zlib1
+
+
+ ru
+ Zlib1
+
+
+
+ BinaryData
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/zlib1/Ext/Template.bin" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/zlib1/Ext/Template.bin"
new file mode 100644
index 000000000..1cf8a476e
Binary files /dev/null and "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/zlib1/Ext/Template.bin" differ
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260_\320\222\320\275\320\265\321\210\320\275\321\217\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260_\320\222\320\275\320\265\321\210\320\275\321\217\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.xml"
new file mode 100644
index 000000000..f7045222e
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260_\320\222\320\275\320\265\321\210\320\275\321\217\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ ШаблонТеста_ВнешняяОбработка
+
+
+ ru
+ Шаблон теста внешняя обработка
+
+
+
+ BinaryData
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260_\320\222\320\275\320\265\321\210\320\275\321\217\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Ext/Template.bin" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260_\320\222\320\275\320\265\321\210\320\275\321\217\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Ext/Template.bin"
new file mode 100644
index 000000000..1aee250ab
Binary files /dev/null and "b/lib/CF/83xddNoSync/DataProcessors/\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260_\320\222\320\275\320\265\321\210\320\275\321\217\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Ext/Template.bin" differ
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL.xml"
new file mode 100644
index 000000000..68da6ee80
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL.xml"
@@ -0,0 +1,1322 @@
+
+
+
+
+
+ 8628a45d-32b1-493e-b3af-968215ed801c
+ 72c2682f-e766-4235-9b11-14779c7fb494
+
+
+ 4228cab3-bbbc-4c6c-a71e-a020d5f991ad
+ 240e5a24-0cb2-4fd1-92f5-849f2d7c1a97
+
+
+
+ СериализаторMXL
+
+
+ ru
+ Генерация макета на базе реальных данных для xUnitFor1C
+
+
+ Автор - Артур Аюханов aka artbear
+ false
+ DataProcessor.СериализаторMXL.Form.УправляемаяФорма
+ DataProcessor.СериализаторMXL.Form.Форма
+ false
+
+
+
+
+
+
+ ЭтоВстроеннаяОбработка
+
+
+ ru
+ Это встроенная обработка
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ДеревоМетаданных
+
+
+ ru
+ Дерево метаданных
+
+
+
+
+ v8:ValueTree
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ДатаНачала
+
+
+ ru
+ Дата начала
+
+
+
+
+ xs:dateTime
+
+ DateTime
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ДатаОкончания
+
+
+ ru
+ Дата окончания
+
+
+
+
+ xs:dateTime
+
+ DateTime
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ИспользоватьОтборПоДатеДляВсехОбъектов
+
+
+ ru
+ Использовать отбор по дате для всех объектов
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ВыгружатьСДокументомЕгоДвижения
+
+
+ ru
+ Выгружать с документом его движения
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ТипВыгрузкиПериодическихРегистров
+
+
+ ru
+ Тип выгрузки периодических регистров
+
+
+
+
+ xs:decimal
+
+ 10
+ 0
+ Nonnegative
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ КомпоновщикНастроекКомпоновкиДанных
+
+
+ ru
+ Компоновщик настроек компоновки данных
+
+
+
+
+ dcsset:SettingsComposer
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ВыгружатьКод
+
+
+ ru
+ Выгружать код / номер в макет
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ВыгружатьСсылку
+
+
+ ru
+ Выгружать ссылку
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ СвязьПоГуид
+
+
+ ru
+ Связь по гуид
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ТолькоСоздание
+
+
+ ru
+ Только создание
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ОбменДанными
+
+
+ ru
+ Обмен данными
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ НаборРолей
+
+
+ ru
+ Набор ролей
+
+
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ НаборПользователей
+
+
+ ru
+ Набор пользователей
+
+
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ВариантВстроенногоЯзыкаАнглийский
+
+
+ en
+ Script Variant English
+
+
+ ru
+ Вариант встроенного языка английский
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+
+ 29b6a235-8506-4b28-9b61-48d9cb0967ae
+ 919246ed-32b9-445e-9c45-3e047f2daf19
+
+
+ 7c5bdc43-0bd6-4bef-8492-201e042d0482
+ f7083211-0feb-4a89-a306-1a6e85f921a9
+
+
+
+ ТаблицаДанных
+
+
+ ru
+ Таблица данных
+
+
+
+
+ ShowError
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+
+
+
+ Ссылка
+
+
+ ru
+ Ссылка
+
+
+
+
+ cfg:BusinessProcessRef
+ cfg:DocumentRef
+ cfg:CatalogRef
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ ShowError
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ Метаданное
+
+
+ ru
+ Метаданное
+
+
+
+
+ xs:string
+
+ 0
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ ShowError
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ИмяПеременной
+
+
+ ru
+ Имя переменной
+
+
+
+
+ xs:string
+
+ 0
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ВыгружатьКод
+
+
+ ru
+ Выгружать код/номер
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ РежимПоиска
+
+
+ ru
+ Режим поиска
+
+
+
+
+ xs:string
+
+ 0
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ РежимСоздания
+
+
+ ru
+ Режим создания
+
+
+
+
+ xs:string
+
+ 0
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+
+
+
+ 8c4a53bd-2ffc-4f04-a9c8-f69b557900f6
+ 1e722b87-fd7d-4176-845f-a53848ae4624
+
+
+ 3a2d98be-6474-4724-bc33-50c18c5a075f
+ 56f770bb-0ed6-4c97-bfc1-2ca517545e9c
+
+
+
+ ПользователиИБ
+
+
+ ru
+ Пользователи ИБ
+
+
+
+
+ DontCheck
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+
+
+
+ Имя
+
+
+ ru
+ Имя
+
+
+
+
+ xs:string
+
+ 100
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ПолноеИмя
+
+
+ ru
+ Полное имя
+
+
+
+
+ xs:string
+
+ 255
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ Роли
+
+
+ ru
+ Роли
+
+
+
+
+ xs:string
+
+ 0
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ АутентификацияСтандартная
+
+
+ ru
+ Аутентификация стандартная
+
+
+
+
+ xs:string
+
+ 10
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ АутентификацияОС
+
+
+ ru
+ Аутентификация ОС
+
+
+
+
+ xs:string
+
+ 10
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ ПользовательОС
+
+
+ ru
+ Пользователь ОС
+
+
+
+
+ xs:string
+
+ 10
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+
+
+
+ 98b04553-a240-4611-9cc9-f584c76122c4
+ 8998c2d2-88e2-4c8c-ac76-4121360670bd
+
+
+ 61764040-7ea2-4942-8c1a-f857c1b12938
+ 30ed2094-6a49-44bd-a322-9de060fe6fab
+
+
+
+ ДополнительныеСвойства
+
+
+ ru
+ Дополнительные свойства
+
+
+
+
+ DontCheck
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+
+
+
+ Имя
+
+
+ ru
+ Имя
+
+
+
+
+ xs:string
+
+ 50
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ ShowError
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+ Значение
+
+
+ ru
+ Значение
+
+
+
+
+ xs:string
+
+ 100
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
+
+
+
+
+ СозданиеПростогоСправочника
+ СозданиеПростогоСправочника_ПредставлениеНеИдентификатор
+ СозданиеДвухПростыхСправочников
+ СозданиеСвязанныхСправочников
+ СозданиеСправочникаСРеквизитомСсылка_РежимПоискаКод
+ СозданиеОбъектаСЗаполненнымРеквизитомТипаПеречисление
+ СозданиеСправочникаСДвумяСтрокамиВТабличнойЧасти
+ СозданиеДокументаСДвумяСтрокамиВТабличнойЧасти
+ СозданиеДвухЗаписейВРегистреСведений
+ СозданиеПодчиненногоСправочника
+ СозданиеСправочникаВГруппе
+ ЭталонМакетаДвухЗаписейВРегистреСведений
+ ЭталонМакетаПростогоСправочника
+ СозданиеДвухЗаписейРегистраНакопления
+ СозданиеСправочникаСПустойСсылкойРеквизитаСоставногоТипа
+ СозданиеДвухЗаписейРегистраБухгалтерии
+ СозданиеДокументаСДвумяТабличнымиЧастями
+ СозданиеЗаполнениеУзловПланаОбмена
+ СозданиеНесколькихПользователейИБ
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Ext/ObjectModule.bsl"
new file mode 100644
index 000000000..82890d07a
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Ext/ObjectModule.bsl"
@@ -0,0 +1,5446 @@
+Перем ТестовыеДанныхДляУдаления;
+
+Перем МассивИмен;
+
+Перем МетаданныеОписание Экспорт;
+Перем СсылочныеТипы Экспорт;
+Перем СоответствиеОбъектовМетаданныхИСсылочныхТипов;
+
+// массив строк дерева метаданных, имеющих признак Выгружать
+Перем СоставПолнойВыгрузки Экспорт;
+
+Перем мВыгруженныеОбъекты;
+
+Перем мНаличиеВыгрузкиПодчиненныхОбъектов;
+Перем мТипРезультатЗапроса;
+Перем мСоответствиеКолонокДвижений;
+Перем ОбработанныхКонстант Экспорт;
+Перем ОбработанныхНаборовЗаписей Экспорт;
+Перем СоставВспомогательнойВыгрузки;
+
+Перем АнглийскоеСоответствие;
+
+
+Функция Версия() Экспорт
+ Возврат "3.0.0.5";
+КонецФункции
+
+Функция ЗаголовокФормы() Экспорт
+ Возврат СокрЛП(Метаданные().Синоним) + ", версия " + Версия();;
+КонецФункции
+
+// { Plugin interface
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Результат = Новый Структура;
+ Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита);
+ Результат.Вставить("Идентификатор", Метаданные().Имя);
+ Результат.Вставить("Представление", "Сериализация и десериализация данных в MXL формате");
+
+ Возврат Новый ФиксированнаяСтруктура(Результат);
+КонецФункции
+
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+КонецПроцедуры
+// } Plugin interface
+
+//{ Десериализация тестовых данных
+Функция СоздатьДанныеПоМакетам(ТестОбъект, ИменаМакетов) Экспорт
+ МассивИменМакетов = РазложитьСтрокуВМассивПодстрок(ИменаМакетов);
+ МассивМакетов = Новый Массив;
+ Для каждого ИмяМакета Из МассивИменМакетов Цикл
+ МассивМакетов.Добавить(ТестОбъект.ПолучитьМакет(ИмяМакета));
+ КонецЦикла;
+ Возврат СоздатьДанныеПоТабличномуДокументу(МассивМакетов);
+КонецФункции
+
+Функция СоздатьДанныеПоТабличномуДокументу(ТабличныйДокументИлиМассивТабличныхДокументов, РежимыЗагрузкиИлиИмяКолонкиЗамещения = Неопределено, ИмяКолонкиЗамещения = Неопределено) Экспорт
+ Перем РежимыЗагрузки;
+
+ Если ТипЗнч(РежимыЗагрузкиИлиИмяКолонкиЗамещения) = Тип("Строка") Тогда
+ ИмяКолонкиЗамещения = РежимыЗагрузкиИлиИмяКолонкиЗамещения;
+ Иначе
+ РежимыЗагрузки = РежимыЗагрузкиИлиИмяКолонкиЗамещения;
+ Если РежимыЗагрузки <> Неопределено Тогда
+ ТипПараметра = ТипЗнч(РежимыЗагрузки);
+ Если ТипПараметра <> Тип("Структура") Тогда
+ ВызватьИсключение ("Ожидали, что вторым параметром будет передана структура параметров для метода <СоздатьДанныеПоТабличномуДокументу>, а получили другой объект с типом <"+ТипПараметра+">");
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+
+ МассивТабличныхДокументов = Новый Массив();
+ Если ТипЗнч(ТабличныйДокументИлиМассивТабличныхДокументов) = Тип("ТабличныйДокумент") Тогда
+ МассивТабличныхДокументов.Добавить(ТабличныйДокументИлиМассивТабличныхДокументов);
+ ИначеЕсли ТипЗнч(ТабличныйДокументИлиМассивТабличныхДокументов) = Тип("Массив") Тогда
+ МассивТабличныхДокументов = ТабличныйДокументИлиМассивТабличныхДокументов;
+ КонецЕсли;
+ Возврат СоздатьДанныеИзМакетов(МассивТабличныхДокументов, РежимыЗагрузки, ИмяКолонкиЗамещения);
+КонецФункции
+
+// удаляет созданные элементы (Справочники, Документы, Пользователи ИБ), регистры сведений не чистит - есть тесты
+Функция УдалитьСозданныеДанные(Данные) Экспорт
+ // обратный порядок нужен для получения правильного количества удаленных элементов, т.к Владелец.Удалить удаляет и подчиненные элементы из подчиненных справочников
+ массивВОбратномПорядке = Новый Массив;
+ Для каждого ключЗначение Из Данные Цикл
+ массивВОбратномПорядке.Вставить(0, КлючЗначение.Значение);
+ КонецЦикла;
+
+ количествоУдаленных = 0;
+ Для каждого элем Из массивВОбратномПорядке Цикл
+ типЭлемента = ТипЗнч(элем);
+ Если Справочники.ТипВсеСсылки().СодержитТип(типЭлемента) Тогда
+ объект = элем.ПолучитьОбъект();
+ Если объект <> Неопределено Тогда
+ Попытка
+ объект.Удалить();
+ количествоУдаленных = количествоУдаленных + 1;
+ Исключение
+ Сообщить(ОписаниеОшибки());
+ КонецПопытки;
+ КонецЕсли;
+ ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(типЭлемента) Тогда
+ объект = элем.ПолучитьОбъект();
+ Если объект <> Неопределено Тогда
+ Попытка
+ объект.Удалить();
+ количествоУдаленных = количествоУдаленных + 1;
+ Исключение
+ Сообщить(ОписаниеОшибки());
+ КонецПопытки;
+ КонецЕсли;
+ ИначеЕсли типЭлемента = Тип("ПользовательИнформационнойБазы") Тогда
+ Попытка
+ элем.Удалить();
+ количествоУдаленных = количествоУдаленных + 1;
+ Исключение
+ Сообщить(ОписаниеОшибки());
+ КонецПопытки;
+ КонецЕсли;
+ КонецЦикла;
+ Возврат количествоУдаленных;
+КонецФункции
+
+Функция СоздатьДанныеИзМакетов(МассивТабличныхДокументов, РежимыЗагрузки, ИмяКолонкиЗамещения)
+ ПротоДанные = Новый Структура;
+ Для каждого ТабличныйДокумент Из МассивТабличныхДокументов Цикл
+ ПрочитатьДанныеИзМакета(ПротоДанные,ТабличныйДокумент,ИмяКолонкиЗамещения);
+ КонецЦикла;
+ ЗаменитьРежимыЗагрузки(ПротоДанные, РежимыЗагрузки);
+ Данные = СоздатьТестовыеДанныеПоПротоДанным(ПротоДанные);
+ Возврат Данные;
+КонецФункции
+
+Функция ПрочитатьДанныеИзМакета(ПротоДанные,ТабличныйДокумент,ИмяКолонкиЗамещения)
+
+ СтрокаМакета = 1;
+ НомерКолонкиМакета = 0;
+ КолонкиМакета = КолонкиМакетаДанных();
+ Пока НомерКолонкиМакета<ТабличныйДокумент.ШиринаТаблицы Цикл
+ НомерКолонкиМакета = НомерКолонкиМакета + 1;
+ ИмяКолонки = ТабличныйДокумент.Область("R" + 1 + "C" + НомерКолонкиМакета).Текст;
+ Если Не ПустаяСтрока(ИмяКолонки) Тогда
+ КолонкиМакета.Вставить(ИмяКолонки,НомерКолонкиМакета);
+ КонецЕсли;
+ КонецЦикла;
+
+ ПроверитьКолонки(КолонкиМакета,ИмяКолонкиЗамещения);
+
+ ДействиеТекущейСтроки = Неопределено;
+ Пока СтрокаМакета<ТабличныйДокумент.ВысотаТаблицы Цикл
+ СтрокаМакета = СтрокаМакета + 1;
+ НомерСтроки = Формат(СтрокаМакета, "ЧГ=");
+
+ //Если новый объект
+ ИмяПеременной = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.ИмяПеременной);
+ Если Не ПустаяСтрока(ИмяПеременной) Тогда
+ Если ПротоДанные.Свойство(ИмяПеременной) Тогда
+ ВызватьИсключение "Ошибка при создании данных из макета! Неуникальное имя переменной: ["+ИмяПеременной+"]";
+ КонецЕсли;
+
+ Тип = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.Тип);
+ Вид = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.Вид);
+ Режим = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.Режим);
+ Значение = ПрочитатьЗначениеДанныхСтроки(ТабличныйДокумент,НомерСтроки,КолонкиМакета,ИмяКолонкиЗамещения);
+
+ ПротоОбъект = СоздатьСтруктуруОписанияОбъекта();
+ ПротоОбъект.ИмяПеременной = ИмяПеременной;
+ ПротоОбъект.Тип = Тип;
+ ПротоОбъект.Вид = Вид;
+ ПротоОбъект.ИмяПредопределенного = Значение;
+ ПротоОбъект.ПоляОбъекта = СоздатьТаблицуОписанияПолей();
+ Если Не ПустаяСтрока(Режим) Тогда
+ Если ПротоОбъект.Режимы.Свойство(Режим) Тогда
+ ПротоОбъект.Режимы[Режим] = Истина;
+ КонецЕсли;
+ КонецЕсли;
+
+ ПротоДанные.Вставить(ИмяПеременной,ПротоОбъект);
+ ДействиеТекущейСтроки = "ЧитаемПоляОбъекта";
+ Продолжить;
+ КонецЕсли;
+
+ //Табличные части
+ ИмяТабЧасти = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.ТЧ);
+ Если Не ПустаяСтрока(ИмяТабЧасти) Тогда
+ Если ВРег(ИмяТабЧасти)="XDDMODS" или ВРег(ИмяТабЧасти)="XDDDATAGEN" Тогда
+ ДействиеТекущейСтроки = "ЧитаемРежимы";
+ Продолжить;
+ КонецЕсли;
+ Если ВРег(ИмяТабЧасти)="ДОПОЛНИТЕЛЬНЫЕСВОЙСТВА" Тогда
+ ДействиеТекущейСтроки = "ЧитаемДопСвойства";
+ Продолжить;
+ КонецЕсли;
+ Если ВРег(ИмяТабЧасти)="ОБМЕНДАННЫМИ" Тогда
+ ДействиеТекущейСтроки = "ЧитаемОбменДанными";
+ Продолжить;
+ КонецЕсли;
+
+ ТабЧасть = Неопределено;
+ Если Не ПротоОбъект.ТабличныеЧасти.Свойство(ИмяТабЧасти,ТабЧасть) Тогда
+ //Новая ТабЧасть
+ ОписаниеПолейТЧ = СоздатьТаблицуОписанияПолей();
+ ТабЧасть = Новый Массив;
+ ТабЧасть.Добавить(ОписаниеПолейТЧ);
+ ПротоОбъект.ТабличныеЧасти.Вставить(ИмяТабЧасти,ТабЧасть);
+ ДействиеТекущейСтроки = "ЧитаемТабЧасть";
+ Продолжить;
+ Иначе
+ //Новая строка ТабЧасти
+ ОписаниеПолейТЧ = СоздатьТаблицуОписанияПолей();
+ ТабЧасть.Добавить(ОписаниеПолейТЧ);
+ ДействиеТекущейСтроки = "ЧитаемТабЧасть";
+ Продолжить;
+ КонецЕсли;
+ КонецЕсли;
+
+ //Поля объекта
+ Если ДействиеТекущейСтроки = "ЧитаемПоляОбъекта" Тогда
+ ИмяРеквизита = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент, НомерСтроки, КолонкиМакета.Реквизит);
+ Если Не ПустаяСтрока(ИмяРеквизита) Тогда
+ НовоеПолеОбъекта = ПротоОбъект.ПоляОбъекта.Добавить();
+ НовоеПолеОбъекта.Имя = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.Реквизит);
+ НовоеПолеОбъекта.Значение = ПрочитатьЗначениеДанныхСтроки(ТабличныйДокумент,НомерСтроки,КолонкиМакета,ИмяКолонкиЗамещения);
+ НовоеПолеОбъекта.Режим = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.Режим);
+ НовоеПолеОбъекта.ДополнительныйТип = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.ДополнительныйТипЗначения);
+
+ Ключ = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.Ключ);
+ Если ВРег(Ключ) = "КЛЮЧ" Тогда
+ ПротоОбъект.Ключи.Вставить(НовоеПолеОбъекта.Имя, НовоеПолеОбъекта.Значение);
+ КонецЕсли;
+ Продолжить;
+ КонецЕсли;
+ КонецЕсли;
+
+ //Поля табличной части
+ Если ДействиеТекущейСтроки = "ЧитаемТабЧасть" Тогда
+ ИмяРеквизитаТЧ = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент, НомерСтроки, КолонкиМакета.Реквизит);
+ Если Не ПустаяСтрока(ИмяРеквизитаТЧ) Тогда
+ НовоеПолеТЧ = ОписаниеПолейТЧ.Добавить();
+ НовоеПолеТЧ.Имя = ИмяРеквизитаТЧ;
+ НовоеПолеТЧ.Значение = ПрочитатьЗначениеДанныхСтроки(ТабличныйДокумент,НомерСтроки,КолонкиМакета,ИмяКолонкиЗамещения);
+ НовоеПолеТЧ.Режим = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.Режим);
+ НовоеПолеТЧ.ДополнительныйТип = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.ДополнительныйТипЗначения);
+ Продолжить;
+ КонецЕсли;
+ КонецЕсли;
+
+ //Режимы объекта
+ Если ДействиеТекущейСтроки = "ЧитаемРежимы" Тогда
+ КодРежима = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.Реквизит);
+ Режим = ПрочитатьЗначениеДанныхСтроки(ТабличныйДокумент,НомерСтроки,КолонкиМакета,ИмяКолонкиЗамещения);
+ Если ВРег(КодРежима)="РЕЖИМ" Тогда
+ Если ПротоОбъект.Режимы.Свойство(Режим) Тогда
+ ПротоОбъект.Режимы[Режим] = Истина;
+ КонецЕсли;
+ КонецЕсли;
+ Продолжить;
+ КонецЕсли;
+
+ //Дополнительные свойства
+ Если ДействиеТекущейСтроки = "ЧитаемДопСвойства" Тогда
+ ИмяДопСвойства = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент, НомерСтроки, КолонкиМакета.Реквизит);
+ Если Не ПустаяСтрока(ИмяДопСвойства) Тогда
+ НовоеПолеДопСвойств = ПротоОбъект.ДопСвойства.Добавить();
+ НовоеПолеДопСвойств.Имя = ИмяДопСвойства;
+ НовоеПолеДопСвойств.Значение = ПрочитатьЗначениеДанныхСтроки(ТабличныйДокумент,НомерСтроки,КолонкиМакета,ИмяКолонкиЗамещения);
+ НовоеПолеДопСвойств.Режим = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.Режим);
+ НовоеПолеДопСвойств.ДополнительныйТип = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.ДополнительныйТипЗначения);
+ Продолжить;
+ КонецЕсли;
+ КонецЕсли;
+
+ Если ДействиеТекущейСтроки = "ЧитаемОбменДанными" Тогда
+ ИмяОбменДанными = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент, НомерСтроки, КолонкиМакета.Реквизит);
+ Если Не ПустаяСтрока(ИмяОбменДанными) Тогда
+ НовоеПолеОбменаДанными = ПротоОбъект.ОбменДанными.Добавить();
+ НовоеПолеОбменаДанными.Имя = ИмяОбменДанными;
+ НовоеПолеОбменаДанными.Значение = ПрочитатьЗначениеДанныхСтроки(ТабличныйДокумент,НомерСтроки,КолонкиМакета,ИмяКолонкиЗамещения);
+ НовоеПолеОбменаДанными.Режим = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.Режим);
+ НовоеПолеОбменаДанными.ДополнительныйТип = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.ДополнительныйТипЗначения);
+ Продолжить;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+
+КонецФункции
+
+Функция ПроверитьКолонки(КолонкиМакета,ИмяКолонкиЗамещения)
+ Для каждого Колонка Из КолонкиМакета Цикл
+ Если Колонка.Значение = "0" Тогда
+ Если Колонка.Ключ = "ДополнительныйТипЗначения" или Колонка.Ключ = "Ключ" Тогда
+ //Это не обязательная колонка - может быть и не заполнена
+ Иначе
+ ВызватьИсключение "Неверно задан макет. Неверная колонка в первой строке. Не указана обязательная колонка с именем ["+Колонка.Ключ+"]";
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+ Если ЗначениеЗаполнено(ИмяКолонкиЗамещения) Тогда
+ Если не КолонкиМакета.Свойство(ИмяКолонкиЗамещения) Тогда
+ ВызватьИсключение "Указанное Имя колонки замещения ["+ИмяКолонкиЗамещения+"] не существует в макете.";
+ КонецЕсли;
+ КонецЕсли;
+КонецФункции
+
+Функция ПрочитатьЗначениеДанныхСтроки(ТабличныйДокумент,НомерСтроки,КолонкиМакета,ИмяКолонкиЗамещения)
+ Значение = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета.Значение);
+ Если ЗначениеЗаполнено(ИмяКолонкиЗамещения) Тогда
+ ПриоритетноеЗначение = ПрочитатьЗначениеЯчейкиМакета(ТабличныйДокумент,НомерСтроки,КолонкиМакета[ИмяКолонкиЗамещения]);
+ Если ЗначениеЗаполнено(ПриоритетноеЗначение) Тогда
+ Значение = ПриоритетноеЗначение;
+ КонецЕсли;
+ КонецЕсли;
+ Возврат Значение;
+КонецФункции
+
+Функция ПрочитатьЗначениеЯчейкиМакета(Макет,НомерСтроки,НомерКолонки);
+ ТекстЯчейки = Неопределено;
+ Если НомерСтроки<> "0" И НомерКолонки <> "0" Тогда
+ ТекстЯчейки = Макет.Область("R" + НомерСтроки + "C" + НомерКолонки).Текст;
+ КонецЕсли;
+ Возврат ТекстЯчейки;
+КонецФункции
+
+Функция СоздатьСтруктуруОписанияОбъекта()
+ СтруктураОписанияОбъекта = Новый Структура();
+ СтруктураОписанияОбъекта.Вставить("Объект",Неопределено);
+ СтруктураОписанияОбъекта.Вставить("Тип",Неопределено);
+ СтруктураОписанияОбъекта.Вставить("Вид",Неопределено);
+ СтруктураОписанияОбъекта.Вставить("ИмяПредопределенного",Неопределено);
+ СтруктураОписанияОбъекта.Вставить("ИмяПеременной",Неопределено);
+ СтруктураОписанияОбъекта.Вставить("Режимы",СоздатьСтруктуруРежимовОбъекта());
+ СтруктураОписанияОбъекта.Вставить("Ключи", новый Структура);
+ СтруктураОписанияОбъекта.Вставить("ПоляОбъекта",СоздатьТаблицуОписанияПолей());
+ СтруктураОписанияОбъекта.Вставить("ТабличныеЧасти",Новый Структура);
+ СтруктураОписанияОбъекта.Вставить("ДопСвойства",СоздатьТаблицуОписанияПолей());
+ СтруктураОписанияОбъекта.Вставить("ОбменДанными",СоздатьТаблицуОписанияПолей());
+ Возврат СтруктураОписанияОбъекта;
+КонецФункции
+
+Функция СоздатьСтруктуруРежимовОбъекта()
+ Режимы = Новый Структура;
+ Режимы.Вставить("Предопределенный",Ложь);
+ Режимы.Вставить("СоздатьПоГуид",Ложь);
+ Режимы.Вставить("ТолькоСоздание",Ложь);
+ Режимы.Вставить("Проведение",Ложь);
+ Режимы.Вставить("ОбменДанными",Ложь);
+ Режимы.Вставить("Объект",Ложь);
+ Режимы.Вставить("Группа",Ложь);
+ Режимы.Вставить("ЭтотУзел",Ложь);
+ Возврат Режимы;
+КонецФункции
+
+Функция СоздатьТаблицуОписанияПолей()
+ тзОписаниеПолей = Новый ТаблицаЗначений;
+ тзОписаниеПолей.Колонки.Добавить("Имя");
+ тзОписаниеПолей.Колонки.Добавить("Значение");
+ тзОписаниеПолей.Колонки.Добавить("Режим");
+ тзОписаниеПолей.Колонки.Добавить("ДополнительныйТип");
+ Возврат тзОписаниеПолей;
+КонецФункции
+
+Функция МенеджерыМетаданных()
+ Менеджеры = Новый Структура;
+ Менеджеры.Вставить("ПланОбмена",ПланыОбмена);
+ Менеджеры.Вставить("Справочник",Справочники);
+ Менеджеры.Вставить("Документ",Документы);
+ Менеджеры.Вставить("БизнесПроцесс",БизнесПроцессы);
+ Менеджеры.Вставить("Задача",Задачи);
+ Менеджеры.Вставить("РегистрСведений",РегистрыСведений);
+ Менеджеры.Вставить("РегистрНакопления",РегистрыНакопления);
+ Менеджеры.Вставить("РегистрыБухгалтерии",РегистрыБухгалтерии);
+ Менеджеры.Вставить("ПланВидовХарактеристик",ПланыВидовХарактеристик);
+ Менеджеры.Вставить("ПользовательИБ",ПользователиИнформационнойБазы);
+ Возврат Новый ФиксированнаяСтруктура(Менеджеры);
+КонецФункции
+
+Процедура ЗаменитьРежимыЗагрузки(ПротоДанные, РежимыЗагрузки)
+ Если ЗначениеЗаполнено(РежимыЗагрузки) Тогда
+ Для каждого КлючЗначение Из ПротоДанные Цикл
+ ПротоОбъект = КлючЗначение.Значение;
+ ЗаполнитьЗначенияСвойств(ПротоОбъект.Режимы, РежимыЗагрузки);
+ КонецЦикла;
+ КонецЕсли;
+КонецПроцедуры
+
+Функция СоздатьТестовыеДанныеПоПротоДанным(ПротоДанные)
+ Данные = Новый Структура;
+ МенеджерыМетаданных = МенеджерыМетаданных();
+ Для каждого ПротоОбъект из ПротоДанные Цикл
+ ОбъектСсылка = ПолучитьОбъект(ПротоДанные,ПротоОбъект.Значение);
+ Данные.Вставить(ПротоОбъект.Значение.ИмяПеременной,ОбъектСсылка);
+ КонецЦикла;
+ Возврат Данные;
+КонецФункции
+
+Функция ПолучитьОбъект(ПротоДанные,ПротоОбъект)
+ ОбъектСсылка = Неопределено;
+ Если ПротоОбъект.Объект<>Неопределено Тогда
+ Возврат ПротоОбъект.Объект;
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("Справочник") Тогда
+ ОбъектСсылка = СоздатьОбъект_Справочник(ПротоДанные,ПротоОбъект);
+
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("Документ") Тогда
+ ОбъектСсылка = СоздатьОбъект_Документ_или_БизнесПроцесс_или_Задача(Документы, ПротоДанные,ПротоОбъект);
+
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("РегистрСведений") Тогда
+ ОбъектСсылка = СоздатьОбъект_Регистр(РегистрыСведений, ПротоДанные,ПротоОбъект);
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("РегистрНакопления") Тогда
+ ОбъектСсылка = СоздатьОбъект_Регистр(РегистрыНакопления, ПротоДанные,ПротоОбъект);
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("РегистрБухгалтерии") Тогда
+ ОбъектСсылка = СоздатьОбъект_Регистр(РегистрыБухгалтерии, ПротоДанные,ПротоОбъект);
+
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("ПользовательИБ") Тогда
+ ОбъектСсылка = СоздатьОбъект_ПользовательИБ(ПротоДанные,ПротоОбъект);
+
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("БизнесПроцесс") Тогда
+ ОбъектСсылка = СоздатьОбъект_Документ_или_БизнесПроцесс_или_Задача(БизнесПроцессы, ПротоДанные,ПротоОбъект);
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("Задача") Тогда
+ ОбъектСсылка = СоздатьОбъект_Документ_или_БизнесПроцесс_или_Задача(Задачи, ПротоДанные,ПротоОбъект);
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("ПланОбмена") Тогда
+ ОбъектСсылка = СоздатьОбъект_УзелПланаОбмена(ПротоДанные,ПротоОбъект);
+ КонецЕсли;
+ ПротоОбъект.Объект = ОбъектСсылка;
+ Возврат ОбъектСсылка;
+КонецФункции
+
+Функция СоздатьОбъект_УзелПланаОбмена(ПротоДанные, ПротоОбъект)
+ ПланОбменаМенеджер = ПланыОбмена[ПротоОбъект.Вид];
+
+ //Подготовим ПротоОбъект
+ Объект = ПолучитьОбъектЕслиВПротоДанныеПереданаСсылка(ПланОбменаМенеджер, ПротоОбъект);
+ Если Объект = Неопределено И ЗначениеЗаполнено(ПротоОбъект.Ключи) Тогда
+ Объект = НайтиОбъектПоКлючам(ПротоОбъект, ПланОбменаМенеджер, ПротоОбъект.Ключи);
+ КонецЕсли;
+
+ Если ПротоОбъект.Режимы.ТолькоСоздание И Объект <> Неопределено Тогда
+ Возврат ПротоОбъект.Объект;
+ КонецЕсли;
+
+ //Создание узла плана обмена
+ Если Объект = Неопределено Тогда
+ Если ПротоОбъект.Режимы.ЭтотУзел Тогда
+ Попытка
+ Объект = ПланОбменаМенеджер.ЭтотУзел().ПолучитьОбъект();
+ Исключение
+ Ошибка = ОписаниеОшибки();
+ ВызватьИсключение "ПланОбмена." + ПротоОбъект.Вид + " не удалось получить узел этой ИБ." + Символы.ПС + Ошибка;
+ КонецПопытки;
+ ИначеЕсли ПротоОбъект.Режимы.СоздатьПоГуид Тогда
+ ВызватьИсключение "Устарело и больше не поддерживается: https://github.com/xDrivenDevelopment/xUnitFor1C/issues/332";
+ Иначе
+ Попытка
+ Объект = ПланОбменаМенеджер.СоздатьУзел();
+ Исключение
+ Ошибка = ОписаниеОшибки();
+ ВызватьИсключение "ПланОбмена." + ПротоОбъект.Вид + " не удалось создать новый узел." + Символы.ПС + Ошибка;
+ КонецПопытки;
+ КонецЕсли;
+
+ Если Объект.ЭтоНовый() Тогда
+ Если Не ЗначениеЗаполнено(ПротоОбъект.Объект) Тогда
+ ПротоОбъект.Объект = ПланОбменаМенеджер.ПолучитьСсылку(Новый УникальныйИдентификатор);
+ КонецЕсли;
+ Объект.УстановитьСсылкуНового(ПротоОбъект.Объект);
+ Иначе
+ ПротоОбъект.Объект = Объект.Ссылка;
+ КонецЕсли;
+ КонецЕсли;
+
+ //Заполняем реквизиты узла плана обмена
+ НаборМдРеквизитов = НаборРеквизитовМетаданных(ПротоОбъект.Тип, Объект.Метаданные());
+ Для каждого стрПоле Из ПротоОбъект.ПоляОбъекта Цикл
+ Объект[стрПоле.Имя] = ПолучитьЗначениеПоля(ПротоДанные, стрПоле, НаборМдРеквизитов);
+ КонецЦикла;
+
+ Для каждого ТабЧасть из ПротоОбъект.ТабличныеЧасти Цикл
+ Для каждого СтрокаТабЧасти Из ТабЧасть.Значение Цикл
+ СтрокаТабЧастиОбъекта = Объект[ТабЧасть.Ключ].Добавить();
+ объектМетаданныеТабличнаяЧасть = Объект.Метаданные().ТабличныеЧасти[ТабЧасть.Ключ];
+ НаборМдРеквизитовТЧ = объектМетаданныеТабличнаяЧасть.Реквизиты;
+ Для каждого стрПоле Из СтрокаТабЧасти Цикл
+ СтрокаТабЧастиОбъекта[стрПоле.Имя] = ПолучитьЗначениеПоля(ПротоДанные, стрПоле, НаборМдРеквизитовТЧ);
+ КонецЦикла;
+ КонецЦикла;
+ КонецЦикла;
+
+ //Служебные поля и значения
+ Если Не ЗначениеЗаполнено(Объект.Код) тогда
+ Объект.УстановитьНовыйКод();
+ КонецЕсли;
+
+ ЗаполнитьДополнительныеСвойства(Объект, ПротоДанные, ПротоОбъект);
+
+ ПредставлениеМетаданного = "узел плана обмена";
+ Результат = ЗаписатьОбъектПриНеобходимости(Объект, ПротоОбъект, ПредставлениеМетаданного, Истина);
+
+ Возврат Результат;
+КонецФункции
+
+Функция СоздатьОбъект_Справочник(ПротоДанные,ПротоОбъект)
+ СпрМенеджер = Справочники[ПротоОбъект.Вид];
+
+ //Подготовим ПротоОбъект
+ стрПолеЭтоГруппа = ПротоОбъект.ПоляОбъекта.Найти("ЭтоГруппа","Имя");
+ Если стрПолеЭтоГруппа<>Неопределено Тогда
+ ПротоОбъект.Режимы.Группа = Булево(стрПолеЭтоГруппа.Значение);
+ ПротоОбъект.ПоляОбъекта.Удалить(стрПолеЭтоГруппа);
+ КонецЕсли;
+
+ Объект = ПолучитьОбъектЕслиВПротоДанныеПереданаСсылка(СпрМенеджер, ПротоОбъект);
+ Если Объект=Неопределено И ЗначениеЗаполнено(ПротоОбъект.Ключи) Тогда
+ Объект = НайтиОбъектПоКлючам(ПротоОбъект, СпрМенеджер, ПротоОбъект.Ключи);
+ КонецЕсли;
+
+ Если ПротоОбъект.Режимы.ТолькоСоздание И Объект<>Неопределено Тогда
+ Возврат ПротоОбъект.Объект;
+ КонецЕсли;
+
+ //Создание объекта справочника
+ Если Объект=Неопределено Тогда
+ Если ПротоОбъект.Режимы.Предопределенный Тогда
+ Попытка
+ Объект = СпрМенеджер[ПротоОбъект.ИмяПредопределенного].ПолучитьОбъект();
+ Исключение
+ Ошибка = ОписаниеОшибки();
+ ВызватьИсключение "Справочник."+ПротоОбъект.Вид+" не удалось найти предопределенный элемент/группу ["+ПротоОбъект.ИмяПредопределенного+"]."+Символы.ПС+Ошибка;
+ КонецПопытки;
+ ИначеЕсли ПротоОбъект.Режимы.СоздатьПоГуид Тогда
+ ВызватьИсключение "Устарело и больше не поддерживается: https://github.com/xDrivenDevelopment/xUnitFor1C/issues/332";
+ ИначеЕсли ПротоОбъект.Режимы.Группа Тогда
+ Попытка
+ Объект = СпрМенеджер.СоздатьГруппу();
+ Исключение
+ Ошибка = ОписаниеОшибки();
+ ВызватьИсключение "Справочник."+ПротоОбъект.Вид+" не удалось создать новую группу."+Символы.ПС+Ошибка;
+ КонецПопытки;
+ Иначе
+ Попытка
+ Объект = СпрМенеджер.СоздатьЭлемент();
+ Исключение
+ Ошибка = ОписаниеОшибки();
+ ВызватьИсключение "Справочник."+ПротоОбъект.Вид+" не удалось создать новый элемент."+Символы.ПС+Ошибка;
+ КонецПопытки;
+ КонецЕсли;
+
+ Если Объект.ЭтоНовый() Тогда
+ Если Не ЗначениеЗаполнено(ПротоОбъект.Объект) Тогда
+ ПротоОбъект.Объект = СпрМенеджер.ПолучитьСсылку(Новый УникальныйИдентификатор);
+ КонецЕсли;
+ Объект.УстановитьСсылкуНового(ПротоОбъект.Объект);
+ Иначе
+ ПротоОбъект.Объект = Объект.Ссылка;
+ КонецЕсли;
+ КонецЕсли;
+
+ //Заполняем реквизиты справочника
+ НаборМдРеквизитов = НаборРеквизитовМетаданных(ПротоОбъект.Тип, Объект.Метаданные());
+ Для каждого стрПоле Из ПротоОбъект.ПоляОбъекта Цикл
+ Объект[стрПоле.Имя] = ПолучитьЗначениеПоля(ПротоДанные,стрПоле,НаборМдРеквизитов);
+ КонецЦикла;
+
+ Для каждого мдТабЧасть из Объект.Метаданные().ТабличныеЧасти Цикл
+ ЭтоРежимГруппа = ПротоОбъект.Режимы.Группа;
+ Если (ЭтоРежимГруппа И мдТабЧасть.Использование<>Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляЭлемента)
+ Или (Не ЭтоРежимГруппа И мдТабЧасть.Использование<>Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляГруппы) Тогда
+
+ Объект[мдТабЧасть.Имя].Очистить();
+ КонецЕсли;
+
+ КонецЦикла;
+ Для каждого ТабЧасть из ПротоОбъект.ТабличныеЧасти Цикл
+ Для каждого СтрокаТабЧасти Из ТабЧасть.Значение Цикл
+ СтрокаТабЧастиОбъекта = Объект[ТабЧасть.Ключ].Добавить();
+ объектМетаданныеТабличнаяЧасть = Объект.Метаданные().ТабличныеЧасти[ТабЧасть.Ключ];
+ НаборМдРеквизитовТЧ = объектМетаданныеТабличнаяЧасть.Реквизиты;
+ Для каждого стрПоле Из СтрокаТабЧасти Цикл
+ СтрокаТабЧастиОбъекта[стрПоле.Имя] = ПолучитьЗначениеПоля(ПротоДанные,стрПоле,НаборМдРеквизитовТЧ);
+ КонецЦикла;
+ КонецЦикла;
+ КонецЦикла;
+
+ //Служебные поля и значения
+ Если Не ЗначениеЗаполнено(Объект.Код) тогда
+ Объект.УстановитьНовыйКод();
+ КонецЕсли;
+
+ ЗаполнитьОбменДанными(Объект, ПротоДанные, ПротоОбъект);
+ ЗаполнитьДополнительныеСвойства(Объект, ПротоДанные, ПротоОбъект);
+
+ ПредставлениеМетаданного = "справочника";
+ Результат = ЗаписатьОбъектПриНеобходимости(Объект, ПротоОбъект, ПредставлениеМетаданного, Истина);
+
+ Возврат Результат;
+КонецФункции
+
+Функция НайтиОбъектПоКлючам(ПротоОбъект, МенеджерОбъекта, СтруктураРеквизитовКлючей)
+ Рез = Неопределено;
+ МдОбъект = МенеджерОбъекта.ПустаяСсылка().Метаданные();
+ МдПолноеИмя = МдОбъект.ПолноеИмя();
+ МдРеквизиты = МдОбъект.Реквизиты;
+ МдСтандартныеРеквизиты = МдОбъект.СтандартныеРеквизиты;
+
+ ТекстЗапроса = "Выбрать Первые 1 Т.Ссылка Из "+МдПолноеИмя+" КАК Т Где Истина ";
+ Запрос = Новый Запрос;
+ Для каждого КлючЗначение Из СтруктураРеквизитовКлючей Цикл
+ ИмяРеквизита = КлючЗначение.Ключ;
+ ЗначениеРеквизита = КлючЗначение.Значение;
+ Если МдРеквизиты.Найти(ИмяРеквизита) = Неопределено и Не ЕстьСтандартныйРеквизит(МдСтандартныеРеквизиты, ИмяРеквизита) Тогда
+ ВызватьИсключение "В метаданных "+МдПолноеИмя+" не найден реквизит-ключ <"+ИмяРеквизита+">. Ошибка в макете данных";
+ КонецЕсли;
+ ТекстЗапроса = ТекстЗапроса + " И "+ИмяРеквизита+" = &"+ИмяРеквизита;
+ Запрос.УстановитьПараметр(ИмяРеквизита, ЗначениеРеквизита);
+ КонецЦикла;
+ Запрос.Текст = ТекстЗапроса;
+ Выборка = Запрос.Выполнить().Выбрать();
+ Если Выборка.Следующий() Тогда
+ ПротоОбъект.Объект = Выборка.Ссылка;
+ Рез = ПротоОбъект.Объект.ПолучитьОбъект();
+ КонецЕсли;
+
+ Возврат Рез;
+КонецФункции
+
+Функция ЕстьСтандартныйРеквизит(МдСтандартныеРеквизиты, ИмяРеквизита)
+ Для каждого РеквизитМд Из МдСтандартныеРеквизиты Цикл
+ Если РеквизитМд.Имя = ИмяРеквизита Тогда
+ Возврат Истина;
+ КонецЕсли;
+ КонецЦикла;
+ Возврат Ложь;
+КонецФункции
+
+Функция СоздатьОбъект_Документ_или_БизнесПроцесс_или_Задача(МенеджерВсехВидов, ПротоДанные, ПротоОбъект)
+ ЭтоДокумент = МенеджерВсехВидов = Документы;
+ ЭтоБизнесПроцесс = МенеджерВсехВидов = БизнесПроцессы;
+ ЭтоЗадача = МенеджерВсехВидов = Задачи;
+
+ Если ЭтоДокумент Тогда
+ ПредставлениеМенеджера = "Документы";
+ ИначеЕсли ЭтоБизнесПроцесс Тогда
+ ПредставлениеМенеджера = "БизнесПроцессы";
+ ИначеЕсли ЭтоЗадача Тогда
+ ПредставлениеМенеджера = "Задачи";
+ Иначе
+ ВызватьИсключение "Требуется документ, бизнес-процесс или задача. Неизвестный менеджер "+ПротоОбъект.Тип+"."+ПротоОбъект.Вид+" . Переменная "+ПротоОбъект.ИмяПеременной;
+ КонецЕсли;
+
+ МенеджерОбъекта = МенеджерВсехВидов[ПротоОбъект.Вид];
+ Объект = ПолучитьОбъектЕслиВПротоДанныеПереданаСсылка(МенеджерОбъекта, ПротоОбъект);
+ Если Объект=Неопределено И ЗначениеЗаполнено(ПротоОбъект.Ключи) Тогда
+ Объект = НайтиОбъектПоКлючам(ПротоОбъект, МенеджерОбъекта, ПротоОбъект.Ключи);
+ КонецЕсли;
+
+ Если ПротоОбъект.Режимы.ТолькоСоздание И Объект<>Неопределено Тогда
+ Возврат ПротоОбъект.Объект;
+ КонецЕсли;
+
+ //Создание объекта
+ Если Объект = Неопределено Тогда
+ Попытка
+ Если ЭтоДокумент Тогда
+ Объект = МенеджерОбъекта.СоздатьДокумент();
+ ИначеЕсли ЭтоБизнесПроцесс Тогда
+ Объект = МенеджерОбъекта.СоздатьБизнесПроцесс();
+ ИначеЕсли ЭтоЗадача Тогда
+ Объект = МенеджерОбъекта.СоздатьЗадачу();
+ КонецЕсли;
+ Исключение
+ Ошибка = ОписаниеОшибки();
+ ВызватьИсключение ПредставлениеМенеджера+"."+ПротоОбъект.Вид+" не удалось создать новый элемент."+Символы.ПС+Ошибка;
+ КонецПопытки;
+
+ //Установка ссылки
+ Если Объект.ЭтоНовый() Тогда
+ Если Не ЗначениеЗаполнено(ПротоОбъект.Объект) Тогда
+ ПротоОбъект.Объект = МенеджерОбъекта.ПолучитьСсылку(Новый УникальныйИдентификатор);
+ КонецЕсли;
+ Объект.УстановитьСсылкуНового(ПротоОбъект.Объект);
+ КонецЕсли;
+ КонецЕсли;
+
+ //Заполняем реквизиты
+ НаборМдРеквизитов = НаборРеквизитовМетаданных(ПротоОбъект.Тип, Объект.Метаданные());
+ Для каждого стрПоле Из ПротоОбъект.ПоляОбъекта Цикл
+ Объект[стрПоле.Имя] = ПолучитьЗначениеПоля(ПротоДанные,стрПоле,НаборМдРеквизитов);
+ КонецЦикла;
+
+ Для каждого мдТабЧасть из Объект.Метаданные().ТабличныеЧасти Цикл
+ Объект[мдТабЧасть.Имя].Очистить();
+ КонецЦикла;
+ Для каждого ТабЧасть из ПротоОбъект.ТабличныеЧасти Цикл
+ Для каждого СтрокаТабЧасти Из ТабЧасть.Значение Цикл
+ СтрокаТабЧастиОбъекта = Объект[ТабЧасть.Ключ].Добавить();
+ объектМетаданныеТабличнаяЧасть = Объект.Метаданные().ТабличныеЧасти[ТабЧасть.Ключ];
+ НаборМдРеквизитовТЧ = объектМетаданныеТабличнаяЧасть.Реквизиты;
+ Для каждого стрПоле Из СтрокаТабЧасти Цикл
+ СтрокаТабЧастиОбъекта[стрПоле.Имя] = ПолучитьЗначениеПоля(ПротоДанные,стрПоле,НаборМдРеквизитовТЧ);
+ КонецЦикла;
+ КонецЦикла;
+ КонецЦикла;
+
+ //Служебные поля и значения
+ Если Не ЗначениеЗаполнено(Объект.Дата) Тогда
+ Объект.Дата = ТекущаяДата();
+ КонецЕсли;
+ Если Не ЗначениеЗаполнено(Объект.Номер) тогда
+ Объект.УстановитьНовыйНомер();
+ КонецЕсли;
+
+ ЗаполнитьОбменДанными(Объект, ПротоДанные, ПротоОбъект);
+ ЗаполнитьДополнительныеСвойства(Объект, ПротоДанные, ПротоОбъект);
+
+ РежимЗаписи = Неопределено;
+ Если ЭтоДокумент И Не ПротоОбъект.Режимы.Объект Тогда
+ РежимЗаписи = РежимЗаписиДокумента.Запись;
+ Если ПротоОбъект.Режимы.Проведение Тогда
+ РежимЗаписи = РежимЗаписиДокумента.Проведение;
+ КонецЕсли;
+ КонецЕсли;
+ Результат = ЗаписатьОбъектПриНеобходимости(Объект, ПротоОбъект, ПредставлениеМенеджера, Истина, РежимЗаписи);
+
+ Возврат Результат;
+КонецФункции
+
+Функция СоздатьОбъект_Регистр(МенеджерРегистра, ПротоДанные, ПротоОбъект)
+ ЭтоРегистрСведения = МенеджерРегистра = РегистрыСведений;
+ ЭтоРегистрБухгалтерии = МенеджерРегистра = РегистрыБухгалтерии;
+ ЭтоРегистрНакопления = МенеджерРегистра = РегистрыНакопления;
+
+ Если ЭтоРегистрСведения Тогда
+ ПредставлениеМдМенеджераРегистра = "РегистрыСведения";
+ ИначеЕсли ЭтоРегистрБухгалтерии Тогда
+ ПредставлениеМдМенеджераРегистра = "РегистрыБухгалтерии";
+ ИначеЕсли ЭтоРегистрНакопления Тогда
+ ПредставлениеМдМенеджераРегистра = "РегистрыНакопления";
+ Иначе
+ ВызватьИсключение "Неизвестный менеджер регистра "+ПротоОбъект.Тип+"."+ПротоОбъект.Вид+" . Переменная "+ПротоОбъект.ИмяПеременной;
+ КонецЕсли;
+ Если ЗначениеЗаполнено(ПротоОбъект.Ключи) Тогда
+ ВызватьИсключение "Работа с ключами для "+ПредставлениеМдМенеджераРегистра+" пока не поддерживается";
+ КонецЕсли;
+
+ //Создание объекта
+ ПротоНаборЗаписей = Неопределено;
+ Если ПротоОбъект.ТабличныеЧасти.Свойство("Запись",ПротоНаборЗаписей) Тогда
+ Попытка
+ Объект = МенеджерРегистра[ПротоОбъект.Вид].СоздатьНаборЗаписей();
+ Исключение
+ Ошибка = ОписаниеОшибки();
+ ВызватьИсключение ПредставлениеМдМенеджераРегистра+"."+ПротоОбъект.Вид+" не удалось создать новый НаборЗаписей."+Символы.ПС+Ошибка;
+ КонецПопытки;
+
+ МетаданныеНабора = Объект.Метаданные();
+ НаборМдРеквизитов = НаборРеквизитовМетаданных(ПротоОбъект.Тип, МетаданныеНабора);
+
+ РегистрСведенийПодчиненРегистратору = Истина;
+ Если ЭтоРегистрСведения Тогда
+ РегистрСведенийПодчиненРегистратору = МетаданныеНабора.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору;
+
+ ИначеЕсли ЭтоРегистрБухгалтерии Тогда
+ НаборВидовСубконто = Новый Структура;
+
+ ПостфиксыСчетов = Новый Массив;
+ Если МетаданныеНабора.Корреспонденция Тогда
+ ПостфиксыСчетов.Добавить("Дт");
+ ПостфиксыСчетов.Добавить("Кт");
+ Иначе
+ ПостфиксыСчетов.Добавить("");
+ КонецЕсли;
+ Для каждого ПостфиксСчета Из ПостфиксыСчетов Цикл
+ НаборМдРеквизитов.Вставить("Счет"+ПостфиксСчета, МетаданныеНабора.ПланСчетов);
+ Для НомерВидаСубконто = 1 По МетаданныеНабора.ПланСчетов.МаксКоличествоСубконто Цикл
+ ОписаниеСубконто = Новый Структура("ИмяРеквизитаСчет,ИмяРеквизитаСубконто,НомерВидаСубконто", "Счет"+ПостфиксСчета, "Субконто"+ПостфиксСчета, НомерВидаСубконто-1);
+ НаборВидовСубконто.Вставить("Субконто"+ПостфиксСчета+НомерВидаСубконто, ОписаниеСубконто);
+ КонецЦикла;
+ КонецЦикла;
+ КонецЕсли;
+
+ Для каждого СтрокаЗаписи Из ПротоНаборЗаписей Цикл
+ ЗаписьНабора = Объект.Добавить();
+ Для каждого стрПоле Из СтрокаЗаписи Цикл
+ ЗначениеПоля = ПолучитьЗначениеПоля(ПротоДанные,стрПоле,НаборМдРеквизитов);
+
+ ОписаниеСубконто = Неопределено;
+ Если ЭтоРегистрБухгалтерии И НаборВидовСубконто.Свойство(стрПоле.Имя, ОписаниеСубконто) Тогда
+ ВидСубконто = ЗаписьНабора[ОписаниеСубконто.ИмяРеквизитаСчет].ВидыСубконто[ОписаниеСубконто.НомерВидаСубконто].ВидСубконто;
+ ЗаписьНабора[ОписаниеСубконто.ИмяРеквизитаСубконто].Вставить(ВидСубконто, ЗначениеПоля);
+ Иначе
+ ЗаписьНабора[стрПоле.Имя] = ЗначениеПоля;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если РегистрСведенийПодчиненРегистратору Тогда
+ Если Не ЗначениеЗаполнено(ЗаписьНабора.Регистратор) Тогда
+ ВызватьИсключение "Не задан регистратор для записей регистра "+ПредставлениеМдМенеджераРегистра+". Переменная "+ПротоОбъект.ИмяПеременной;
+ КонецЕсли;
+ Если НЕ ЗначениеЗаполнено(ЗаписьНабора.Период) Тогда
+ ЗаписьНабора.Период = ЗаписьНабора.Регистратор.Дата;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+
+ ЗаписьНабора = Объект[0];
+ Если РегистрСведенийПодчиненРегистратору Тогда
+ Объект.Отбор.Регистратор.Установить(ЗаписьНабора.Регистратор);
+ Иначе
+ Для каждого МетаИзмерение Из МетаданныеНабора.Измерения Цикл
+ ИмяИзмерения = МетаИзмерение.Имя;
+ Если Объект.Отбор.Найти(ИмяИзмерения) <> Неопределено Тогда
+ Объект.Отбор[ИмяИзмерения].Установить(ЗаписьНабора[ИмяИзмерения]);
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+
+ ЗаполнитьОбменДанными(Объект, ПротоДанные, ПротоОбъект);
+ ЗаполнитьДополнительныеСвойства(Объект, ПротоДанные, ПротоОбъект);
+
+ ИначеЕсли ЭтоРегистрСведения Тогда
+ Попытка
+ Объект = РегистрыСведений[ПротоОбъект.Вид].СоздатьМенеджерЗаписи();
+ Исключение
+ Ошибка = ОписаниеОшибки();
+ ВызватьИсключение ПредставлениеМдМенеджераРегистра+"."+ПротоОбъект.Вид+" не удалось создать новый набор записей"+Символы.ПС+Ошибка;
+ КонецПопытки;
+
+ НаборМдРеквизитов = НаборРеквизитовМетаданных(ПротоОбъект.Тип, РегистрыСведений[ПротоОбъект.Вид].СоздатьНаборЗаписей().Метаданные());
+ Для каждого стрПоле Из ПротоОбъект.ПоляОбъекта Цикл
+ Объект[стрПоле.Имя] = ПолучитьЗначениеПоля(ПротоДанные,стрПоле,НаборМдРеквизитов);
+ КонецЦикла;
+ Иначе
+ ВызватьИсключение ПредставлениеМдМенеджераРегистра+"."+ПротоОбъект.Вид+" в макете нет записей для регистра "+ПредставлениеМдМенеджераРегистра;
+ КонецЕсли;
+
+ ПредставлениеМетаданного = "набора записей "+ПредставлениеМдМенеджераРегистра;
+ ЗаписатьОбъектПриНеобходимости(Объект, ПротоОбъект, ПредставлениеМетаданного, Ложь);
+
+ Возврат Объект;
+КонецФункции
+
+Функция СоздатьОбъект_ПользовательИБ(ПротоДанные,ПротоОбъект)
+ Если ЗначениеЗаполнено(ПротоОбъект.Ключи) Тогда
+ ВызватьИсключение "Работа с ключами при создании пользователя ИБ пока не поддерживается";
+ КонецЕсли;
+ Объект = ПользователиИнформационнойБазы.СоздатьПользователя();
+
+ параметрыПользователя = Новый Структура;
+ параметрыПользователя.Вставить("Имя", "");
+ параметрыПользователя.Вставить("ПолноеИмя", "");
+ параметрыПользователя.Вставить("АутентификацияСтандартная", Истина);
+ параметрыПользователя.Вставить("АутентификацияОС", Ложь);
+ параметрыПользователя.Вставить("ПользовательОС", "");
+ параметрыПользователя.Вставить("ОсновнойИнтерфейс", ""); //Метаданные.Интерфейсы.Администратор);
+ параметрыПользователя.Вставить("Пароль", "пароль");
+ параметрыПользователя.Вставить("ПоказыватьВСпискеВыбора", Истина);
+ параметрыПользователя.Вставить("РежимЗапуска", РежимЗапускаКлиентскогоПриложения.Авто);
+ параметрыПользователя.Вставить("Язык", Метаданные.Языки.Русский);
+ массивРолей = Новый Массив;
+ параметрыПользователя.Вставить("Роли", массивРолей);
+
+ //Заполняем реквизиты справочника
+ Для каждого стрПоле Из ПротоОбъект.ПоляОбъекта Цикл
+ параметрыПользователя[стрПоле.Имя] = ПолучитьЗначениеПоля(ПротоДанные,стрПоле,Неопределено);
+ КонецЦикла;
+ ЗаполнитьЗначенияСвойств(Объект, параметрыПользователя,, "ОсновнойИнтерфейс,РежимЗапуска");
+
+ ПротоНаборРолей = Неопределено;
+ Если ПротоОбъект.ТабличныеЧасти.Свойство("Роли",ПротоНаборРолей) Тогда
+ Для каждого СтрокаРоли Из ПротоНаборРолей Цикл
+ Для каждого стрПоле Из СтрокаРоли Цикл
+ Роль = Метаданные.Роли.Найти(ПолучитьЗначениеПоля(ПротоДанные,стрПоле,Неопределено));
+ параметрыПользователя.Роли.Добавить(Роль);
+ КонецЦикла;
+ КонецЦикла;
+ КонецЕсли;
+
+ НашлиРежимЗапуска = Ложь;
+ Для каждого ЗначениеРежимаЗапуска Из РежимЗапускаКлиентскогоПриложения Цикл
+ Если НРег(""+ЗначениеРежимаЗапуска) = НРег(параметрыПользователя.РежимЗапуска) Тогда
+ НашлиРежимЗапуска = Истина;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ Если НашлиРежимЗапуска Тогда
+ Объект.РежимЗапуска = ЗначениеРежимаЗапуска;
+ Иначе
+ ВызватьИсключение "Не нашли режим запуска <"+параметрыПользователя.РежимЗапуска+">. Возможно, нужно указать с пробелом, например, ""Управляемое приложение""";
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(параметрыПользователя.ОсновнойИнтерфейс) Тогда
+ Объект.ОсновнойИнтерфейс = Метаданные.Интерфейсы.Найти(параметрыПользователя.ОсновнойИнтерфейс);
+ КонецЕсли;
+ Для каждого роль Из параметрыПользователя.Роли Цикл
+ Объект.Роли.Добавить(роль);
+ КонецЦикла;
+
+ ПредставлениеМетаданного = "пользователя ИБ ";
+ ЗаписатьОбъектПриНеобходимости(Объект, ПротоОбъект, ПредставлениеМетаданного, Ложь);
+
+ Возврат Объект;
+КонецФункции
+
+Функция ПолучитьОбъектЕслиВПротоДанныеПереданаСсылка(МенеджерОбъекта, ПротоОбъект)
+ Перем Объект;
+ стрПолеСсылка = ПротоОбъект.ПоляОбъекта.Найти(ВернутьЗначениеСоответствия("Ссылка"),"Имя");
+ Если стрПолеСсылка<>Неопределено Тогда
+ ПротоОбъект.Объект = МенеджерОбъекта.ПолучитьСсылку(Новый УникальныйИдентификатор(стрПолеСсылка.Значение));
+ ПротоОбъект.ПоляОбъекта.Удалить(стрПолеСсылка);
+ Объект = ПротоОбъект.Объект.ПолучитьОбъект();
+ КонецЕсли;
+ Возврат Объект;
+КонецФункции
+
+Процедура ЗаполнитьОбменДанными(Объект, ПротоДанные, ПротоОбъект)
+ Объект.ОбменДанными.Загрузка = ПротоОбъект.Режимы.ОбменДанными;
+
+ //Дополнительные Свойства
+ Для каждого стрДопСвойство Из ПротоОбъект.ДопСвойства Цикл
+ Значение = ПолучитьЗначениеПоля(ПротоДанные,стрДопСвойство,Неопределено);
+ Объект.ДополнительныеСвойства.Вставить(стрДопСвойство.Имя,Значение);
+ КонецЦикла;
+ Для каждого стрДопСвойство Из ПротоОбъект.ОбменДанными Цикл
+ Значение = ПолучитьЗначениеПоля(ПротоДанные,стрДопСвойство,Неопределено);
+ Объект.ОбменДанными[стрДопСвойство.Имя] = Значение;
+ КонецЦикла;
+КонецПроцедуры
+
+Функция ЗаписатьОбъектПриНеобходимости(Объект, ПротоОбъект, ПредставлениеМетаданного, ЭтоСсылочныйОбъект, РежимЗаписи = Неопределено)
+ Перем Результат;
+ Если Не ПротоОбъект.Режимы.Объект Тогда
+ Попытка
+ Если РежимЗаписи = Неопределено Тогда
+ Объект.Записать();
+ Иначе
+ Объект.Записать(РежимЗаписи);
+ КонецЕсли;
+ Если ЭтоСсылочныйОбъект Тогда
+ Результат = Объект.Ссылка;
+ КонецЕсли;
+ Исключение
+ Ошибка = ОписаниеОшибки();
+ Ошибка = "Ошибка записи "+ПредставлениеМетаданного+" "+ПротоОбъект.Вид+", переменная "+ПротоОбъект.ИмяПеременной + Символы.ПС + Ошибка;
+ ВызватьИсключение Ошибка;
+ КонецПопытки;
+ ИначеЕсли ЭтоСсылочныйОбъект Тогда
+ Результат = Объект;
+ КонецЕсли;
+
+ Возврат Результат;
+КонецФункции
+
+Процедура ЗаполнитьДополнительныеСвойства(Объект, ПротоДанные, ПротоОбъект)
+ Для каждого стрДопСвойство Из ПротоОбъект.ДопСвойства Цикл
+ Значение = ПолучитьЗначениеПоля(ПротоДанные,стрДопСвойство,Неопределено);
+ Объект.ДополнительныеСвойства.Вставить(стрДопСвойство.Имя,Значение);
+ КонецЦикла;
+КонецПроцедуры
+
+Функция ПолучитьЗначениеПоля(ПротоДанные,стрПоле,НаборМдРеквизитов)
+ Значение = Неопределено;
+ Если ПустаяСтрока(стрПоле.Режим) Тогда
+ Если ЗначениеЗаполнено(стрПоле.ДополнительныйТип) Тогда
+ ТипЗначения = Новый ОписаниеТипов(стрПоле.ДополнительныйТип);
+ Значение = ТипЗначения.ПривестиЗначение(стрПоле.Значение);
+ Иначе
+ Значение = стрПоле.Значение;
+ КонецЕсли;
+ ИначеЕсли ВРег(стрПоле.Режим) = "ПЕРЕМ" Тогда
+ Значение = ПротоДанные[стрПоле.Значение].Объект;
+ Если Не ЗначениеЗаполнено(Значение) Тогда
+ Значение = ПолучитьОбъект(ПротоДанные, ПротоДанные[стрПоле.Значение]);
+ КонецЕсли;
+
+ Если Не ЗначениеЗаполнено(Значение) Тогда
+ ВызватьИсключение "ЗначениеНеНайдено: Реквизит <"+стрПоле.Имя+">: Искали значение <"+стрПоле.Значение+">, но не нашли!";
+ КонецЕсли;
+ ИначеЕсли ВРег(стрПоле.Режим) = "ТЕКУЩАЯДАТА" Тогда
+ Значение = ТекущаяДата();
+ ИначеЕсли ВРег(стрПоле.Режим) = "ВЫРАЖЕНИЕ" Тогда
+ Значение = Вычислить(стрПоле.Значение);
+ Иначе
+ Значение = ВычислитьЗначениеПоТипуПоля(НаборМдРеквизитов,стрПоле);
+ КонецЕсли;
+ Возврат Значение;
+КонецФункции
+
+Функция ВычислитьЗначениеПоТипуПоля(НаборМдРеквизитов,стрПоле)
+ Значение = Неопределено;
+ Режим = ВРег(стрПоле.Режим);
+
+ Попытка
+ Если НаборМдРеквизитов = Неопределено Тогда
+ Если НЕ ЗначениеЗаполнено(стрПоле.ДополнительныйТип) Тогда
+ ВызватьИсключение "Не указан дополнительный тип значения";
+ КонецЕсли;
+ МетаданныеРеквизита = Неопределено;
+ Иначе
+ МетаданныеРеквизита = НаборМдРеквизитов[стрПоле.Имя];
+ КонецЕсли;
+ УжеВычислилиЗначение = Ложь;
+ ЕстьМетаданныеРеквизита = Ложь;
+ Если Режим = "ГУИД" И МетаданныеРеквизита <> Неопределено И МетаданныеРеквизита.Тип.СодержитТип(Тип("УникальныйИдентификатор")) Тогда
+ Значение = Новый УникальныйИдентификатор(стрПоле.Значение);
+ УжеВычислилиЗначение = Истина;
+ Иначе
+
+ Если ЗначениеЗаполнено(стрПоле.ДополнительныйТип) Тогда
+ ТипЗначения = Новый ОписаниеТипов(стрПоле.ДополнительныйТип);
+ Иначе
+ Если Метаданные.ПланыСчетов.Найти(МетаданныеРеквизита) <> Неопределено Тогда
+ ТипЗначения = Новый ОписаниеТипов("ПланСчетовСсылка."+МетаданныеРеквизита.Имя);
+ Иначе
+ ТипЗначения = МетаданныеРеквизита.Тип;
+ КонецЕсли;
+ КонецЕсли;
+ ЗначениеПоУмолчанию = ТипЗначения.ПривестиЗначение();
+ Попытка
+ МетаданныеТипаРеквизита = ЗначениеПоУмолчанию.Метаданные();
+ ЕстьМетаданныеРеквизита = Истина;
+ Исключение
+ КонецПопытки;
+
+ Если Не ЕстьМетаданныеРеквизита И Режим = "ПРЕДОПРЕДЕЛЕННЫЙ" Тогда
+ Если БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().СодержитТип( ТипЗначения.Типы()[0] ) Тогда
+ Значение = ПолучитьЗначениеТочкиБизнесПроцесса(стрПоле.Значение);
+ УжеВычислилиЗначение = Истина;
+ Иначе
+ Значение = Неопределено;
+ СтрокаДляВыполнения = "Значение = "+ТипЗначения+"["""+стрПоле.Значение+"""];";
+ Выполнить(СтрокаДляВыполнения);
+ УжеВычислилиЗначение = Истина;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+
+ Если Не УжеВычислилиЗначение и ЕстьМетаданныеРеквизита Тогда
+ ПолноеИмяТипаРеквизита = МетаданныеТипаРеквизита.ПолноеИмя();
+ Если Найти(ПолноеИмяТипаРеквизита, ВернутьЗначениеСоответствия("Справочник")) = 1 Тогда
+ менеджерОбъекта = Справочники[МетаданныеТипаРеквизита.Имя];
+ ИначеЕсли Найти(ПолноеИмяТипаРеквизита, ВернутьЗначениеСоответствия("Документ")) = 1 Тогда
+ менеджерОбъекта = Документы[МетаданныеТипаРеквизита.Имя];
+ ИначеЕсли Найти(ПолноеИмяТипаРеквизита, ВернутьЗначениеСоответствия("Перечисление")) = 1 Тогда
+ менеджерОбъекта = Перечисления[МетаданныеТипаРеквизита.Имя];
+ ИначеЕсли Найти(ПолноеИмяТипаРеквизита, ВернутьЗначениеСоответствия("ПланСчетов")) = 1 Тогда
+ менеджерОбъекта = ПланыСчетов[МетаданныеТипаРеквизита.Имя];
+ ИначеЕсли Найти(ПолноеИмяТипаРеквизита, ВернутьЗначениеСоответствия("ПланВидовХарактеристик")) = 1 Тогда
+ менеджерОбъекта = ПланыВидовХарактеристик[МетаданныеТипаРеквизита.Имя];
+ КонецЕсли;
+ Если менеджерОбъекта = Неопределено Тогда
+ ВызватьИсключение "Не найден менеджерОбъекта";
+ КонецЕсли;
+ Если Режим = "ПРЕДОПРЕДЕЛЕННЫЙ" Тогда
+ //Значение = менеджерОбъекта[стрПоле.Значение];
+ Если ЗначениеЗаполнено(стрПоле.Значение) Тогда
+ Значение = менеджерОбъекта[стрПоле.Значение];
+ Иначе
+ Значение = менеджерОбъекта.ПустаяСсылка();
+ КонецЕсли;
+ ИначеЕсли Режим = "КОД" Тогда
+ Значение = менеджерОбъекта.НайтиПоКоду(стрПоле.Значение);
+ ИначеЕсли Режим = "НОМЕР" Тогда
+ Значение = НайтиБлижайшийДокументПоНомеру(МетаданныеТипаРеквизита, стрПоле.Значение);
+ ИначеЕсли Режим = "НАИМЕНОВАНИЕ" Тогда
+ Значение = менеджерОбъекта.НайтиПоНаименованию(стрПоле.Значение, Истина);
+ ИначеЕсли Режим = "ГУИД" Тогда
+ Значение = менеджерОбъекта.ПолучитьСсылку(Новый УникальныйИдентификатор(стрПоле.Значение));
+ Иначе
+ ВызватьИсключение "НеверныйРежимПоиска: Не поддерживаемый режим поиска. Реквизит <"+стрПоле.Имя+">: Искали значение <"+стрПоле.Значение+">";
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(стрПоле.Значение) И Не ЗначениеЗаполнено(Значение) Тогда //Если Не ЗначениеЗаполнено(Значение) Тогда
+ ВызватьИсключение "ЗначениеНеНайдено: Реквизит <"+стрПоле.Имя+">: Искали значение <"+стрПоле.Значение+">, но не нашли!";
+ КонецЕсли;
+ КонецЕсли;
+ Исключение
+ ошибка = ОписаниеОшибки();
+ Если Найти(ошибка, "НеверныйРежимПоиска") = 0 Тогда
+ ошибка = "ОшибкаПоиска: Реквизит <"+стрПоле.Имя+">: Искали значение <"+стрПоле.Значение+"> " + ошибка;
+ КонецЕсли;
+ ВызватьИсключение ошибка;
+ КонецПопытки;
+
+ Возврат Значение;
+КонецФункции
+
+Функция СоздатьПользователяИБ(параметры) Экспорт
+ НовыйПользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
+
+ ЗаполнитьЗначенияСвойств(НовыйПользователь, параметры,, "ОсновнойИнтерфейс");
+ Если ЗначениеЗаполнено(параметры.ОсновнойИнтерфейс) Тогда
+ НовыйПользователь.ОсновнойИнтерфейс = Метаданные.Интерфейсы.Найти(параметры.ОсновнойИнтерфейс);
+ КонецЕсли;
+ Для каждого роль Из параметры.Роли Цикл
+ НовыйПользователь.Роли.Добавить(роль);
+ КонецЦикла;
+
+ НовыйПользователь.Записать();
+ Возврат НовыйПользователь;
+КонецФункции
+
+Функция КолонкиМакетаДанных()
+ КолонкиМакета = Новый Структура();
+ СтрокаЗеро = "0";
+ КолонкиМакета.Вставить("Тип", СтрокаЗеро);
+ КолонкиМакета.Вставить("Вид", СтрокаЗеро);
+ КолонкиМакета.Вставить("ИмяПеременной", СтрокаЗеро);
+ КолонкиМакета.Вставить("ТЧ", СтрокаЗеро);
+ КолонкиМакета.Вставить("Реквизит", СтрокаЗеро);
+ КолонкиМакета.Вставить("Значение", СтрокаЗеро);
+ КолонкиМакета.Вставить("Режим", СтрокаЗеро);
+ КолонкиМакета.Вставить("ДополнительныйТипЗначения", СтрокаЗеро);
+ КолонкиМакета.Вставить("Ключ", СтрокаЗеро);
+ Возврат КолонкиМакета;
+КонецФункции
+
+Функция ПолучитьЗначениеТочкиБизнесПроцесса(Значение_Строкой)
+ Значение = Неопределено;
+ Для каждого БизнесПроцессМенеджер из БизнесПроцессы Цикл
+ ТочкиМаршрута = БизнесПроцессМенеджер.ТочкиМаршрута;
+ Для каждого ТочкаМаршрута Из ТочкиМаршрута Цикл
+ Если ВРег(ТочкаМаршрута.Имя) = ВРег(Значение_Строкой) Тогда
+ Значение = ТочкаМаршрута;
+ Возврат Значение;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЦикла;
+ Возврат Значение;
+КонецФункции
+
+Функция НайтиБлижайшийДокументПоНомеру(МетаданныеДокумента, Значение_Строкой)
+
+ ТекстЗапроса =
+ "ВЫБРАТЬ ПЕРВЫЕ 1
+ | Доки.Ссылка,
+ | Доки.Дата
+ |ИЗ
+ | Документ."+МетаданныеДокумента.Имя+" КАК Доки
+ |ГДЕ
+ | Доки.Номер = &Номер
+ |
+ |УПОРЯДОЧИТЬ ПО
+ | Доки.Дата УБЫВ";
+ Запрос = Новый Запрос(ТекстЗапроса);
+ Если МетаданныеДокумента.ТипНомера = Метаданные.СвойстваОбъектов.ТипНомераДокумента.Число Тогда
+ Номер = Число(Значение_Строкой);
+ Иначе
+ Номер = Значение_Строкой;
+ КонецЕсли;
+ Запрос.УстановитьПараметр("Номер", Номер);
+
+ Результат = Запрос.Выполнить();
+
+ Значение = Неопределено;
+
+ ВыборкаДетальныеЗаписи = Результат.Выбрать();
+ Если ВыборкаДетальныеЗаписи.Следующий() Тогда
+ Значение = ВыборкаДетальныеЗаписи.Ссылка;
+ Иначе
+ ВызватьИсключение "Не удалось найти документ по номеру <"+Значение_Строкой+">. Тип Документ."+МетаданныеДокумента.Имя;
+ КонецЕсли;
+
+ Возврат Значение;
+КонецФункции
+
+Функция НаборРеквизитовМетаданных(КорневойТип, МетаданныеОбъекта)
+ НаборМдРеквизитов = Новый Структура;
+ Если КорневойТип = ВернутьЗначениеСоответствия("Справочник")
+ или КорневойТип = ВернутьЗначениеСоответствия("Документ")
+ или КорневойТип = ВернутьЗначениеСоответствия("ПланВидовХарактеристик")
+ или КорневойТип = ВернутьЗначениеСоответствия("БизнесПроцесс")
+ или КорневойТип = ВернутьЗначениеСоответствия("ПланОбмена") Тогда
+
+ ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.СтандартныеРеквизиты, НаборМдРеквизитов);
+ ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.Реквизиты, НаборМдРеквизитов);
+ ИначеЕсли КорневойТип = ВернутьЗначениеСоответствия("Задача") Тогда
+ ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.СтандартныеРеквизиты, НаборМдРеквизитов);
+ ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.Реквизиты, НаборМдРеквизитов);
+ ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.РеквизитыАдресации, НаборМдРеквизитов);
+
+ ИначеЕсли КорневойТип = ВернутьЗначениеСоответствия("РегистрСведений")
+ или КорневойТип = ВернутьЗначениеСоответствия("РегистрНакопления")
+ или КорневойТип = ВернутьЗначениеСоответствия("РегистрБухгалтерии") Тогда
+
+ ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.СтандартныеРеквизиты, НаборМдРеквизитов);
+ ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.Измерения, НаборМдРеквизитов, КорневойТип);
+ ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.Ресурсы, НаборМдРеквизитов);
+ ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.Реквизиты, НаборМдРеквизитов);
+
+ Иначе
+ ВызватьИсключение "Необрабатываемый корневой тип <"+КорневойТип+">";
+ КонецЕсли;
+ Возврат НаборМдРеквизитов;
+КонецФункции
+
+Процедура ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МдРеквизиты, НаборМдРеквизитов, КорневойТип = "")
+ Для каждого МдРеквизит Из МдРеквизиты Цикл
+ Если КорневойТип = "РегистрБухгалтерии" И Не МдРеквизит.Балансовый Тогда
+ НаборМдРеквизитов.Вставить(МдРеквизит.Имя + "Дт", МдРеквизит);
+ НаборМдРеквизитов.Вставить(МдРеквизит.Имя + "Кт", МдРеквизит);
+ Иначе
+ НаборМдРеквизитов.Вставить(МдРеквизит.Имя, МдРеквизит);
+ КонецЕсли;
+ КонецЦикла;
+КонецПроцедуры
+// } Десериализация тестовых данных
+
+// { Методы проверки таблиц метаданных
+Функция ПолучитьКоличествоДокументовПоОтбору(видДокумента, Дата1, дата2, структураОтбора = Неопределено) Экспорт
+ Если Не ЗначениеЗаполнено(видДокумента) Тогда
+ ВызватьИсключение "Вид документа должен быть заполнен";
+ КонецЕсли;
+ Если Не ЗначениеЗаполнено(Дата1) Тогда
+ ВызватьИсключение "Дата1 должнна быть заполнена";
+ КонецЕсли;
+ Если Не ЗначениеЗаполнено(Дата2) Тогда
+ ВызватьИсключение "Дата2 должнна быть заполнена";
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст = "ВЫБРАТЬ
+ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Доки.Ссылка) КАК КоличествоДокументов
+ |ИЗ
+ | Документ."+видДокумента+" КАК Доки
+ |ГДЕ
+ | Доки.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
+ |";
+ Запрос.УстановитьПараметр("Дата1", Дата1);
+ Запрос.УстановитьПараметр("Дата2", КонецДня(Дата2));
+
+ Если ЗначениеЗаполнено(структураОтбора) Тогда
+ Для каждого ключЗначение Из структураОтбора Цикл
+ имяРеквизита = ключЗначение.Ключ;
+ Запрос.Текст = Запрос.Текст + " И Доки."+имяРеквизита+" = &"+имяРеквизита+" ";
+ Запрос.УстановитьПараметр(имяРеквизита, ключЗначение.Значение);
+ КонецЦикла;
+ КонецЕсли;
+
+ РезультатЗапроса = Запрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ Возврат 0;
+ КонецЕсли;
+ Выборка = РезультатЗапроса.Выбрать();
+ Выборка.Следующий();
+ Возврат выборка.КоличествоДокументов;
+КонецФункции
+
+Функция ПолучитьКоличествоЭлементовСправочникаПоОтбору(видСправочника, структураОтбора = Неопределено) Экспорт
+ Если Не ЗначениеЗаполнено(видСправочника) Тогда
+ ВызватьИсключение "Вид справочника должен быть заполнен";
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст = "ВЫБРАТЬ
+ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Спр.Ссылка) КАК КоличествоЭлементов
+ |ИЗ
+ | Справочник."+видСправочника+" КАК Спр
+ |ГДЕ
+ | Истина
+ |";
+
+ Если ЗначениеЗаполнено(структураОтбора) Тогда
+ Для каждого ключЗначение Из структураОтбора Цикл
+ имяРеквизита = ключЗначение.Ключ;
+ Запрос.Текст = Запрос.Текст + " И Спр."+имяРеквизита+" = &"+имяРеквизита+" ";
+ Запрос.УстановитьПараметр(имяРеквизита, ключЗначение.Значение);
+ КонецЦикла;
+ КонецЕсли;
+
+ РезультатЗапроса = Запрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ Возврат 0;
+ КонецЕсли;
+ Выборка = РезультатЗапроса.Выбрать();
+ Выборка.Следующий();
+ Возврат выборка.КоличествоЭлементов;
+КонецФункции
+
+Функция ПолучитьКоличествоСтрокВДокументахПоОтбору(видДокумента, имяТабличнойЧасти, Дата1, дата2, структураОтбораШапки = Неопределено, структураОтбораТабличнойЧасти = Неопределено) Экспорт
+ Если Не ЗначениеЗаполнено(видДокумента) Тогда
+ ВызватьИсключение "Вид документа должен быть заполнен";
+ КонецЕсли;
+ Если Не ЗначениеЗаполнено(Дата1) Тогда
+ ВызватьИсключение "Дата1 должнна быть заполнена";
+ КонецЕсли;
+ Если Не ЗначениеЗаполнено(Дата2) Тогда
+ ВызватьИсключение "Дата2 должнна быть заполнена";
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст = "ВЫБРАТЬ
+ | КОЛИЧЕСТВО(Доки.Ссылка) КАК КоличествоДокументов
+ |ИЗ
+ | Документ."+видДокумента+"."+имяТабличнойЧасти+" КАК Доки
+ |ГДЕ
+ | Доки.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
+ |";
+ Запрос.УстановитьПараметр("Дата1", Дата1);
+ Запрос.УстановитьПараметр("Дата2", КонецДня(Дата2));
+
+ Если ЗначениеЗаполнено(структураОтбораШапки) Тогда
+ Для каждого ключЗначение Из структураОтбораШапки Цикл
+ имяРеквизита = ключЗначение.Ключ;
+ Запрос.Текст = Запрос.Текст + " И Доки.Ссылка."+имяРеквизита+" = &"+имяРеквизита+" ";
+ Запрос.УстановитьПараметр(имяРеквизита, ключЗначение.Значение);
+ КонецЦикла;
+ КонецЕсли;
+ Если ЗначениеЗаполнено(структураОтбораТабличнойЧасти) Тогда
+ Для каждого ключЗначение Из структураОтбораТабличнойЧасти Цикл
+ имяРеквизита = ключЗначение.Ключ;
+ Запрос.Текст = Запрос.Текст + " И Доки."+имяРеквизита+" = &"+имяРеквизита+" ";
+ Запрос.УстановитьПараметр(имяРеквизита, ключЗначение.Значение);
+ КонецЦикла;
+ КонецЕсли;
+
+ РезультатЗапроса = Запрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ Возврат 0;
+ КонецЕсли;
+ Выборка = РезультатЗапроса.Выбрать();
+ Выборка.Следующий();
+ Возврат выборка.КоличествоДокументов;
+КонецФункции
+
+Функция ПолучитьИтоговуюСуммуТабличнойЧастиДокументовПоОтбору(видДокумента, имяТабличнойЧасти, имяРеквизита, Дата1, дата2, структураОтбораШапки = Неопределено, структураОтбораТабличнойЧасти = Неопределено) Экспорт
+ Если Не ЗначениеЗаполнено(видДокумента) Тогда
+ ВызватьИсключение "Вид документа должен быть заполнен";
+ КонецЕсли;
+ Если Не ЗначениеЗаполнено(Дата1) Тогда
+ ВызватьИсключение "Дата1 должнна быть заполнена";
+ КонецЕсли;
+ Если Не ЗначениеЗаполнено(Дата2) Тогда
+ ВызватьИсключение "Дата2 должнна быть заполнена";
+ КонецЕсли;
+ Если имяТабличнойЧасти = "" И ЗначениеЗаполнено(структураОтбораТабличнойЧасти) Тогда
+ ВызватьИсключение "Если не указана табличная часть, то структура отбора табличной части не должна быть указана";
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ текстТабличнаяЧасть = ?(НЕ ЗначениеЗаполнено(имяТабличнойЧасти), "", "."+имяТабличнойЧасти);
+ Запрос.Текст = "ВЫБРАТЬ
+ | ЕСТЬNULL(СУММА(Доки."+имяРеквизита+"), 0) КАК Сумма
+ |ИЗ
+ | Документ."+видДокумента+текстТабличнаяЧасть+" КАК Доки
+ |ГДЕ
+ | Доки.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
+ |";
+ Запрос.УстановитьПараметр("Дата1", Дата1);
+ Запрос.УстановитьПараметр("Дата2", КонецДня(Дата2));
+
+ Если ЗначениеЗаполнено(структураОтбораШапки) Тогда
+ Для каждого ключЗначение Из структураОтбораШапки Цикл
+ имяРеквизита = ключЗначение.Ключ;
+ Запрос.Текст = Запрос.Текст + " И Доки.Ссылка."+имяРеквизита+" = &"+имяРеквизита+" ";
+ Запрос.УстановитьПараметр(имяРеквизита, ключЗначение.Значение);
+ КонецЦикла;
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(структураОтбораТабличнойЧасти) Тогда
+ Для каждого ключЗначение Из структураОтбораТабличнойЧасти Цикл
+ имяРеквизита = ключЗначение.Ключ;
+ Запрос.Текст = Запрос.Текст + " И Доки."+имяРеквизита+" = &"+имяРеквизита+" ";
+ Запрос.УстановитьПараметр(имяРеквизита, ключЗначение.Значение);
+ КонецЦикла;
+ КонецЕсли;
+
+ РезультатЗапроса = Запрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ Возврат 0;
+ КонецЕсли;
+ Выборка = РезультатЗапроса.Выбрать();
+ Выборка.Следующий();
+ Возврат выборка.Сумма;
+КонецФункции
+
+Функция ПолучитьИтоговуюСуммуДокументовПоОтбору(видДокумента, имяРеквизита, Дата1, дата2, структураОтбораШапки = Неопределено, структураОтбораТабличнойЧасти = Неопределено) Экспорт
+ Возврат ПолучитьИтоговуюСуммуТабличнойЧастиДокументовПоОтбору(видДокумента, "", имяРеквизита, Дата1, дата2, структураОтбораШапки, структураОтбораТабличнойЧасти);
+КонецФункции
+
+Функция ПолучитьКоличествоЭлементовМетаданногоПоОтбору(типМетаданного, видМетаданного, структураОтбора = Неопределено) Экспорт
+ Если Не ЗначениеЗаполнено(типМетаданного) Тогда
+ ВызватьИсключение "Тип метаданного должен быть заполнен";
+ КонецЕсли;
+ Если Не ЗначениеЗаполнено(видМетаданного) Тогда
+ ВызватьИсключение "Вид метаданного должен быть заполнен";
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст = "ВЫБРАТЬ
+ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Таб.Ссылка) КАК КоличествоЭлементов
+ |ИЗ
+ | "+типМетаданного+"."+видМетаданного+" КАК Таб
+ |ГДЕ
+ | Истина
+ |";
+
+ Если ЗначениеЗаполнено(структураОтбора) Тогда
+ Для каждого ключЗначение Из структураОтбора Цикл
+ имяРеквизита = ключЗначение.Ключ;
+ Запрос.Текст = Запрос.Текст + " И Таб."+имяРеквизита+" = &"+имяРеквизита+" ";
+ Запрос.УстановитьПараметр(имяРеквизита, ключЗначение.Значение);
+ КонецЦикла;
+ КонецЕсли;
+
+ РезультатЗапроса = Запрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ Возврат 0;
+ КонецЕсли;
+ Выборка = РезультатЗапроса.Выбрать();
+ Выборка.Следующий();
+ Возврат выборка.КоличествоЭлементов;
+КонецФункции
+
+Функция ПолучитьКоличествоБизнесПроцессовПоОтбору(видМетаданного, структураОтбора = Неопределено) Экспорт
+ Возврат ПолучитьКоличествоЭлементовМетаданногоПоОтбору("БизнесПроцесс", видМетаданного, структураОтбора);
+КонецФункции
+
+Функция ПолучитьКоличествоЗадачПоОтбору(видМетаданного, структураОтбора = Неопределено) Экспорт
+ Возврат ПолучитьКоличествоЭлементовМетаданногоПоОтбору("Задача", видМетаданного, структураОтбора);
+КонецФункции
+
+Функция ПолучитьКоличествоЭлементовРегистраПоОтбору(типМетаданного, видМетаданного, структураОтбора = Неопределено) Экспорт
+ Если Не ЗначениеЗаполнено(типМетаданного) Тогда
+ ВызватьИсключение "Тип метаданного должен быть заполнен";
+ КонецЕсли;
+ Если Не ЗначениеЗаполнено(видМетаданного) Тогда
+ ВызватьИсключение "Вид метаданного должен быть заполнен";
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст = "ВЫБРАТЬ
+ | КОЛИЧЕСТВО(*) КАК КоличествоЭлементов
+ |ИЗ
+ | "+типМетаданного+"."+видМетаданного+" КАК Таб
+ |ГДЕ
+ | Истина
+ |";
+
+ Если ЗначениеЗаполнено(структураОтбора) Тогда
+ Для каждого ключЗначение Из структураОтбора Цикл
+ имяРеквизита = ключЗначение.Ключ;
+ Запрос.Текст = Запрос.Текст + " И Таб."+имяРеквизита+" = &"+имяРеквизита+" ";
+ Запрос.УстановитьПараметр(имяРеквизита, ключЗначение.Значение);
+ КонецЦикла;
+ КонецЕсли;
+
+ РезультатЗапроса = Запрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ Возврат 0;
+ КонецЕсли;
+ Выборка = РезультатЗапроса.Выбрать();
+ Выборка.Следующий();
+ Возврат выборка.КоличествоЭлементов;
+КонецФункции
+
+Функция ПолучитьЭлементыМетаданногоПоОтбору(типМетаданного, видМетаданного, Количество=1, структураОтбора = Неопределено) Экспорт
+ Если Не ЗначениеЗаполнено(типМетаданного) Тогда
+ ВызватьИсключение "Тип метаданного должен быть заполнен";
+ КонецЕсли;
+ Если Не ЗначениеЗаполнено(видМетаданного) Тогда
+ ВызватьИсключение "Вид метаданного должен быть заполнен";
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ "+Количество+"
+ | *
+ |ИЗ
+ | "+типМетаданного+"."+видМетаданного+" КАК Таб
+ |ГДЕ
+ | Истина
+ |";
+
+ Если ЗначениеЗаполнено(структураОтбора) Тогда
+ Для каждого ключЗначение Из структураОтбора Цикл
+ имяРеквизита = ключЗначение.Ключ;
+ Запрос.Текст = Запрос.Текст + " И Таб."+имяРеквизита+" = &"+имяРеквизита+" ";
+ Запрос.УстановитьПараметр(имяРеквизита, ключЗначение.Значение);
+ КонецЦикла;
+ КонецЕсли;
+
+ РезультатЗапроса = Запрос.Выполнить();
+ ТЗ = РезультатЗапроса.Выгрузить();
+
+ Возврат ТЗ;
+КонецФункции
+// } Методы проверки таблиц метаданных
+
+// { Helpers
+Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено, СокращатьНепечатаемыеСимволы = Ложь) Экспорт
+
+ Результат = Новый Массив;
+
+ // для обеспечения обратной совместимости
+ Если ПропускатьПустыеСтроки = Неопределено Тогда
+ ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь);
+ Если ПустаяСтрока(Строка) Тогда
+ Если Разделитель = " " Тогда
+ Результат.Добавить("");
+ КонецЕсли;
+ Возврат Результат;
+ КонецЕсли;
+ КонецЕсли;
+ //
+
+ Позиция = Найти(Строка, Разделитель);
+ Пока Позиция > 0 Цикл
+ Подстрока = Лев(Строка, Позиция - 1);
+ Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда
+ Если СокращатьНепечатаемыеСимволы Тогда
+ Результат.Добавить(СокрЛП(Подстрока));
+ Иначе
+ Результат.Добавить(Подстрока);
+ КонецЕсли;
+ КонецЕсли;
+ Строка = Сред(Строка, Позиция + СтрДлина(Разделитель));
+ Позиция = Найти(Строка, Разделитель);
+ КонецЦикла;
+
+ Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда
+ Если СокращатьНепечатаемыеСимволы Тогда
+ Результат.Добавить(СокрЛП(Строка));
+ Иначе
+ Результат.Добавить(Строка);
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+// } Helpers
+
+//{ ОСНОВНОЙ БЛОК
+Функция СоздатьМакетДляГенерацииДанных(МассивДанных) Экспорт
+ ШапкаДанных = ШапкаДанныхВМакете();
+ Макет = Новый ТабличныйДокумент;
+ номерКолонки = 0;
+ Для каждого ключЗначение Из ШапкаДанных Цикл
+ номерКолонки = номерКолонки + 1;
+ имяПоля = ключЗначение.Ключ;
+ Макет.Область(1, номерКолонки, 1, номерКолонки).Текст = имяПоля ;
+ КонецЦикла;
+
+ Для каждого ОписательОбъекта Из МассивДанных Цикл
+ ПользовательИБ = Неопределено;
+ Если ЭтоОписательПользователяИБ(ОписательОбъекта, ПользовательИБ) Тогда
+
+ ДобавитьПользователяИБ_ВМакет(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных);
+
+ Иначе
+
+ ДобавитьОбъектВМакет(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных);
+
+ КонецЕсли;
+ КонецЦикла;
+ Возврат Макет;
+КонецФункции
+
+//{ Пример вызова из внешнего кода:
+// Путь_xUnitFor1C = "C:\Projects\GitHub\xUnitFor1C\";
+// ПутьГенератораМакета = Путь_xUnitFor1C + "ГенерацияМакетаДанных_На_БазеРеальныхДанных.epf";
+// Запрос = Новый Запрос;
+// запрос.Текст = "
+// |ВЫБРАТЬ
+// | ""РегистрыСведений.РегистрСведений1.СоздатьНаборЗаписей().Метаданные()"" КАК __Метаданные,
+// | ""ЗаписьРегистра"" КАК __Префикс,
+// | РегистрСведений1.ПростойСправочник,
+// | РегистрСведений1.ПростойСправочник2,
+// | РегистрСведений1.РесурсЧисло,
+// | РегистрСведений1.РесурсБулево
+// |ИЗ
+// | РегистрСведений.РегистрСведений1 КАК РегистрСведений1
+// |УПОРЯДОЧИТЬ ПО
+// | ПростойСправочник2";
+//
+ //или Запрос.Текст =
+ // "ВЫБРАТЬ
+ // | """" КАК __Метаданные,
+ // | ""ПростойСправочник"" КАК __Префикс,
+ // | ПростойСправочник.Ссылка,
+ // | ПростойСправочник.Код,
+ // | ПростойСправочник.Наименование,
+ // | ПростойСправочник.РеквизитБулево,
+ // | ПростойСправочник.РеквизитПеречисление
+ // |ИЗ
+ // | Справочник.ПростойСправочник КАК ПростойСправочник
+ // |Где РеквизитБулево И ПростойСправочник.Наименование = ""Тестовое наименование"" ";
+//
+// РезультатЗапроса = Запрос.Выполнить();
+//
+// ГенераторМакетаДанных = ВнешниеОбработки.Создать(ПутьГенератораМакета);
+// Макет = ГенераторМакетаДанных.СоздатьМакетДанныхНаОснованииЗапроса(РезультатЗапроса);
+// Макет.Показать();
+//}
+Функция СоздатьМакетДанныхНаОснованииЗапроса(РезультатЗапроса) Экспорт
+ Таблица = РезультатЗапроса.Выгрузить();
+
+ МассивПропускаемыхКолонок = Новый Массив;
+ МассивПропускаемыхКолонок.Добавить("__Метаданные");
+ МассивПропускаемыхКолонок.Добавить("__Префикс");
+ СтрокаПропускаемыхКолонок = "";
+ Для каждого Колонка Из МассивПропускаемыхКолонок Цикл
+ СтрокаПропускаемыхКолонок = СтрокаПропускаемыхКолонок + Колонка+", ";
+ КонецЦикла;
+
+ КоличествоСлужебныхКолонок = МассивПропускаемыхКолонок.Количество();
+
+ СтруктураДанных = Новый Структура();
+ для каждого КолонкаЗапроса из Таблица.Колонки цикл
+ Если МассивПропускаемыхКолонок.Найти(КолонкаЗапроса.Имя) <> Неопределено Тогда
+ КоличествоСлужебныхКолонок = КоличествоСлужебныхКолонок - 1;
+ Продолжить;
+ КонецЕсли;
+
+ имяКолонки = КолонкаЗапроса.имя;
+ СтруктураДанных.Вставить(имяКолонки);
+ КонецЦикла;
+
+ Если КоличествоСлужебныхКолонок <> 0 Тогда
+ ВызватьИсключение "Не все служебные колонки заданы! В запросе обязательно должны быть колонки "+СтрокаПропускаемыхКолонок;
+ КонецЕсли;
+
+ МассивДанных = Новый Массив;
+
+ номер = 1;
+ индекс = 1;
+ Для каждого Строка из Таблица Цикл
+ номер = номер + 1;
+
+ ИмяПеременной = Строка.__Префикс + XMLСтрока(индекс);
+ РеквизитыЗаписи = Новый Структура();
+ Для каждого ключЗначение Из СтруктураДанных Цикл
+ РеквизитыЗаписи.Вставить(ключЗначение.Ключ)
+ КонецЦикла;
+ ЗаполнитьЗначенияСвойств(РеквизитыЗаписи, Строка);
+
+ описаниеЗаписиРегистраСведений1 = СоздатьОписательЭлемента();
+ описаниеЗаписиРегистраСведений1.Вставить("ИмяПеременной", ИмяПеременной);
+ описаниеЗаписиРегистраСведений1.Вставить("Реквизиты", РеквизитыЗаписи);
+
+ Если ПустаяСтрока(Строка.__Метаданные) Тогда
+ описаниеЗаписиРегистраСведений1.Вставить(ВернутьЗначениеСоответствия("Ссылка"), Строка.Ссылка);
+ Иначе
+ Мета = Неопределено;
+ Выполнить("Мета = "+Строка.__Метаданные);
+
+ описаниеЗаписиРегистраСведений1.Вставить("Метаданное", Мета);
+ КонецЕсли;
+
+ МассивДанных.Добавить(описаниеЗаписиРегистраСведений1);
+
+ индекс = индекс + 1;
+ КонецЦикла;
+
+ Макет = ЭтотОбъект.СоздатьМакетДляГенерацииДанных(массивДанных);
+
+ Возврат Макет;
+КонецФункции
+
+Функция СоздатьОписательЭлементаПоСсылке(Ссылка, МассивИмен, ДанныеОбъекта = Неопределено) Экспорт
+ ОписательЭлемента = СоздатьОписательЭлемента();
+ ОписательЭлемента[ВернутьЗначениеСоответствия("Ссылка")] = Ссылка;
+ ОписательЭлемента.ИмяПеременной = УникальноеИмяПеременнойПоСсылке(Ссылка, МассивИмен);
+ МетаСсылка = Ссылка.Метаданные();
+ ОписательЭлемента.Метаданное = МетаСсылка;
+ ОписательЭлемента.РежимПоиска = "Перем";
+ ОписательЭлемента.ВыгружатьКод = ВыгружатьКод;
+ МенеджерОбъекта = ПолучитьМенеджерОбъекта_ирЛкс(МетаСсылка);
+ Если Метаданные.Справочники.Содержит(МетаСсылка) И Ссылка.ЭтоГруппа Тогда
+ ОписательЭлемента.РежимСоздания = "Группа";
+ ИначеЕсли Метаданные.ПланыОбмена.Содержит(МетаСсылка) И Ссылка = МенеджерОбъекта.ЭтотУзел() Тогда
+ ОписательЭлемента.РежимСоздания = "ЭтотУзел";
+ Иначе
+ ОписательЭлемента.РежимСоздания = "";
+ КонецЕсли;
+ Если ДанныеОбъекта <> Неопределено Тогда
+ Если ДанныеОбъекта.Свойство("Предопределенный") Тогда
+ ЭтоПредопределенноеЗначение = ДанныеОбъекта.Предопределенный;
+ Иначе
+ ЭтоПредопределенноеЗначение = Ложь;
+ КонецЕсли;
+ Если ЭтоПредопределенноеЗначение Тогда
+ Если ЭтоПлатформа8_3_3БезРежимаСовместимости() Тогда
+ ОписательЭлемента.РежимСоздания = "Предопределенный";
+ ОписательЭлемента.Значение = ДанныеОбъекта.ИмяПредопределенныхДанных;
+ Иначе // т.к. в 8.2 нет свойства ИмяПредопределенныхДанных, приходится использовать ГУИД
+ ОписательЭлемента.РежимСоздания = "СоздатьПоГуид";
+ ОписательЭлемента.ГуидСсылки = Ссылка.УникальныйИдентификатор();
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+ Возврат ОписательЭлемента;
+КонецФункции
+
+Функция ЭтоПлатформа8_3_3БезРежимаСовместимости()
+
+ СистемнаяИнформация = Новый СистемнаяИнформация;
+
+ ВерсияПриложения = СистемнаяИнформация.ВерсияПриложения;
+ Если СравнитьВерсии(ВерсияПриложения, "8.3.3") >= 0 Тогда
+ ВерсияРежимаСовместимости = СтрЗаменить(СтрЗаменить(Метаданные.РежимСовместимости, "Версия", ""), "_", ".");
+ Если ВРег(ВерсияРежимаСовместимости) = ВРег("НеИспользовать") Или СравнитьВерсии(ВерсияРежимаСовместимости, "8.3.3") >= 0 Тогда
+ Возврат Истина;
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат Ложь;
+
+КонецФункции
+
+// Сравнить две строки версий.
+//
+// Параметры
+// СтрокаВерсии1 - Строка - номер версии в формате РР.{П|ПП}.ЗЗ.СС
+// СтрокаВерсии2 - Строка - второй сравниваемый номер версии
+//
+// Возвращаемое значение:
+// Число - больше 0, если СтрокаВерсии1 > СтрокаВерсии2; 0, если версии равны.
+//
+Функция СравнитьВерсии(Знач СтрокаВерсии1, Знач СтрокаВерсии2) Экспорт
+
+ Строка1 = ?(ПустаяСтрока(СтрокаВерсии1), "0.0.0.0", СтрокаВерсии1);
+ Строка2 = ?(ПустаяСтрока(СтрокаВерсии2), "0.0.0.0", СтрокаВерсии2);
+ Версия1 = РазложитьСтрокуВМассивПодстрок(Строка1, ".");
+ Если Версия1.Количество() > 4 Тогда
+ ВызватьИсключение СтрЗаменить(НСтр("ru = 'Неправильный формат параметра СтрокаВерсии1: %1'"), "%1", СтрокаВерсии1);
+ Иначе
+ Для Инекс = Версия1.Количество() По 4 Цикл
+ Версия1.Добавить("0");
+ КонецЦикла;
+ КонецЕсли;
+ Версия2 = РазложитьСтрокуВМассивПодстрок(Строка2, ".");
+ Если Версия2.Количество() > 4 Тогда
+ ВызватьИсключение СтрЗаменить(НСтр("ru = 'Неправильный формат параметра СтрокаВерсии2: %1'"), "%1", СтрокаВерсии2);
+ Иначе
+ Для Инекс = Версия2.Количество() По 4 Цикл
+ Версия2.Добавить("0");
+ КонецЦикла;
+ КонецЕсли;
+
+ Результат = 0;
+ Для Разряд = 0 По 3 Цикл
+ Результат = Число(Версия1[Разряд]) - Число(Версия2[Разряд]);
+ Если Результат <> 0 Тогда
+ Возврат Результат;
+ КонецЕсли;
+ КонецЦикла;
+ Возврат Результат;
+
+КонецФункции
+
+Функция СоздатьОписательЭлементаПоНаборуЗаписей(НаборЗаписей, МассивИмен) Экспорт
+ Мд = НаборЗаписей.Метаданные();
+ ОписательЭлемента = СоздатьОписательЭлемента();
+ ОписательЭлемента.ИмяПеременной = ПолучитьУникальноеИмяПеременной(МассивИмен, Мд.Имя);
+ МассивИмен.Добавить(НРег(ОписательЭлемента.ИмяПеременной));
+
+ ОписательЭлемента.Реквизиты = НаборЗаписей;
+ ОписательЭлемента[ВернутьЗначениеСоответствия("Ссылка")] = Неопределено;
+ ОписательЭлемента.Метаданное = Мд;
+ Возврат ОписательЭлемента;
+КонецФункции
+
+Функция СоздатьОписательЭлементаПользовательИБ(ПользовательИБ, МассивИмен, ДанныеОбъекта = Неопределено) Экспорт
+ ОписательЭлемента = СоздатьОписательЭлемента();
+ ОписательЭлемента.ПользовательИБ = ПользовательИБ;
+ ОписательЭлемента.ИмяПеременной = ПолучитьИдентификаторИзПредставления_Лкс(ПользовательИБ.Имя, "_"); //УникальноеИмяПеременнойПоСсылке(ПользовательИБ, МассивИмен);
+ ОписательЭлемента.РежимПоиска = "Перем";
+ Возврат ОписательЭлемента;
+КонецФункции
+
+Функция ЭтоОписательПользователяИБ(ОписательОбъекта, РезПользовательИБ = Неопределено)
+
+ ЭтоПользовательИБ = ОписательОбъекта.Свойство("ПользовательИБ", РезПользовательИБ) И РезПользовательИБ <> Неопределено;
+ Возврат ЭтоПользовательИБ;
+
+КонецФункции
+
+Функция СоздатьОписательЭлемента() Экспорт
+ ОписательЭлемента = Новый Структура;
+ ОписательЭлемента.Вставить(ВернутьЗначениеСоответствия("Ссылка"));
+ ОписательЭлемента.Вставить("ИмяПеременной", "");
+ ОписательЭлемента.Вставить("Значение", Неопределено);
+ ОписательЭлемента.Вставить("Метаданное");
+ ОписательЭлемента.Вставить("ВыгружатьКод", Ложь);
+ ОписательЭлемента.Вставить("РежимПоиска", "");
+ ОписательЭлемента.Вставить("РежимСоздания", "");
+ ОписательЭлемента.Вставить("ГуидСсылки", Неопределено);
+ ОписательЭлемента.Вставить("Реквизиты", Неопределено);
+ ОписательЭлемента.Вставить("ПользовательИБ", Неопределено);
+ Возврат ОписательЭлемента;
+КонецФункции
+
+Функция УникальноеИмяПеременнойПоСсылке(Ссылка, МассивИмен)
+ ИмяПеременной = ПолучитьИдентификаторПредставленияПоСсылке(Ссылка);
+ ИмяПеременной = ПолучитьУникальноеИмяПеременной(МассивИмен, ИмяПеременной);
+ МассивИмен.Добавить(НРег(ИмяПеременной));
+ Возврат ИмяПеременной;
+КонецФункции
+
+Функция ПолучитьУникальноеИмяПеременной(МассивИмен, Знач Имя)
+ Если Не ЗначениеЗаполнено(МассивИмен) Тогда
+ Возврат Имя;
+ КонецЕсли;
+
+ ПоменялиИмя = Ложь;
+ Индекс = 1;
+ ИсходноеИмя = Имя + "_"; // для генерации нормальных имен типа Перем_1, Перем_2, Перем_3
+ Пока МассивИмен.Найти(НРег(Имя)) <> Неопределено Цикл
+ Имя = ИсходноеИмя + XMLСтрока(Индекс);
+ Индекс = Индекс + 1;
+ ПоменялиИмя = Истина;
+ КонецЦикла;
+ Возврат Имя;
+КонецФункции
+
+Функция ПолучитьИдентификаторПредставленияПоСсылке(Ссылка) //Экспорт
+ Мд = Ссылка.Метаданные();
+
+ менеджерОбъекта = ПолучитьМенеджерОбъекта_ирЛкс(Мд);
+ КорневойТипКонфигурации = ПолучитьКорневойТипКонфигурации_ирЛкс(Мд);
+
+ Представление = "";
+ Если КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Справочник") Тогда
+ Представление = Ссылка.Наименование;
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Документ") Тогда
+ Представление = ""+Ссылка;
+ //ИначеЕсли КорневойТипКонфигурации = "РегистрСведений" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("БизнесПроцесс") Тогда
+ Представление = ""+Ссылка;
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Задача") Тогда
+ Представление = ""+Ссылка;
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("ПланОбмена") Тогда
+ Представление = ""+Ссылка;
+ Иначе
+ ВызватьИсключение "ПолучитьИдентификаторПредставленияПоСсылке() : Неизвестный КорневойТипКонфигурации <"+КорневойТипКонфигурации+">";
+ КонецЕсли;
+ рез = ПолучитьИдентификаторИзПредставления_Лкс(Представление, "_");
+ Возврат рез;
+КонецФункции
+
+Процедура ДобавитьПользователяИБ_ВМакет(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных)
+ ДобавитьШапкуПользователяИБ_ВМакет(Макет, ОписательОбъекта, ШапкаДанных);
+
+ ДобавитьРеквизитыПользователяИБ_ВМакет(Макет, ОписательОбъекта, ШапкаДанных);
+ ДобавитьРолиПользователяИБ_ВМакет(Макет, ОписательОбъекта, ШапкаДанных);
+КонецПроцедуры
+
+Процедура ДобавитьШапкуПользователяИБ_ВМакет(Макет, ОписательОбъекта, ШапкаДанных)
+ ДобавитьПростойРеквизитВМакет(Макет, ШапкаДанных, "", ОписательОбъекта.Значение);
+
+ НомерСтрокиМакета = Макет.ВысотаТаблицы;
+
+ НомерКолонкиМакета_Тип = ШапкаДанных.Тип;
+ ОбластьМакета = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_Тип, НомерСтрокиМакета, НомерКолонкиМакета_Тип);
+ ОбластьМакета.Текст = "ПользовательИБ";
+
+ НомерКолонкиМакета_ИмяПеременной = ШапкаДанных.ИмяПеременной;
+ ОбластьМакета = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_ИмяПеременной, НомерСтрокиМакета, НомерКолонкиМакета_ИмяПеременной);
+ ОбластьМакета.Текст = ОписательОбъекта.ИмяПеременной;
+КонецПроцедуры
+
+Процедура ДобавитьРеквизитыПользователяИБ_ВМакет(Макет, ОписательОбъекта, ШапкаДанных)
+
+ параметрыПользователя = Новый Структура;
+ параметрыПользователя.Вставить("Имя", "");
+ параметрыПользователя.Вставить("ПолноеИмя", "");
+ параметрыПользователя.Вставить("АутентификацияСтандартная", Истина);
+ параметрыПользователя.Вставить("АутентификацияОС", Ложь);
+ параметрыПользователя.Вставить("ПользовательОС", "");
+ параметрыПользователя.Вставить("ОсновнойИнтерфейс", ""); //Метаданные.Интерфейсы.Администратор);
+ параметрыПользователя.Вставить("ПоказыватьВСпискеВыбора", Истина);
+ параметрыПользователя.Вставить("РежимЗапуска", РежимЗапускаКлиентскогоПриложения.Авто);
+ //параметрыПользователя.Вставить("Язык", Метаданные.Языки.Русский);
+
+ ЗаполнитьЗначенияСвойств(параметрыПользователя, ОписательОбъекта.ПользовательИБ);
+
+ параметрыПользователя.Вставить("Пароль", "");
+
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+ Для Каждого КлючЗначение Из параметрыПользователя Цикл
+ ДобавитьПростойРеквизитВМакет(Макет, ШапкаДанных, КлючЗначение.Ключ, КлючЗначение.Значение);
+
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ДобавитьРолиПользователяИБ_ВМакет(Макет, ОписательОбъекта, ШапкаДанных)
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+ НомерКолонкиМакета_ТЧ = ШапкаДанных.ТЧ;
+ ОбластьМакета = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_ТЧ, НомерСтрокиМакета, НомерКолонкиМакета_ТЧ);
+ ОбластьМакета.Текст = "Роли";
+
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+
+ Роли = ОписательОбъекта.ПользовательИБ.Роли;
+ Для Каждого Роль Из Роли Цикл
+ ДобавитьПростойРеквизитВМакет(Макет, ШапкаДанных, "Роль", Роль.Имя);
+
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ДобавитьОбъектВМакет(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных)
+ Ссылка = Неопределено;
+ Мд = Неопределено;
+ ЭтоСсылочныйОбъект = ЭтоОписательОбъектаСсылки(ОписательОбъекта, Ссылка);
+ Если ЭтоСсылочныйОбъект Тогда
+ ЭтоСсылочныйОбъект = Истина;
+ Мд = Ссылка.Метаданные();
+ ИначеЕсли ОписательОбъекта.Свойство("Метаданное", Мд) Тогда
+ КонецЕсли;
+
+ ДобавитьМетаданныеВМакетДляДобавляемогоОбъекта(Макет, ОписательОбъекта, ШапкаДанных, Макет.ВысотаТаблицы+1, Мд);
+
+ менеджерОбъекта = ПолучитьМенеджерОбъекта_ирЛкс(Мд);
+ КорневойТипКонфигурации = ПолучитьКорневойТипКонфигурации_ирЛкс(Мд);
+ Если КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Справочник") Тогда
+ Если ЗначениеЗаполнено(Ссылка) и Ссылка.ЭтоГруппа Тогда
+ Если НЕ ВариантВстроенногоЯзыкаАнглийский Тогда
+ лПустойОбъект = менеджерОбъекта.СоздатьГруппу();
+ Иначе
+ лПустойОбъект = менеджерОбъекта.CreateFolder();
+ КонецЕсли;
+ Иначе
+ Если НЕ ВариантВстроенногоЯзыкаАнглийский Тогда
+ лПустойОбъект = менеджерОбъекта.СоздатьЭлемент();
+ Иначе
+ лПустойОбъект = менеджерОбъекта.CreateItem();
+ КонецЕсли;
+ КонецЕсли;
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Документ") Тогда
+ лПустойОбъект = менеджерОбъекта.СоздатьДокумент();
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("БизнесПроцесс") Тогда
+ лПустойОбъект = менеджерОбъекта.СоздатьБизнесПроцесс();
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Задача") Тогда
+ лПустойОбъект = менеджерОбъекта.СоздатьЗадачу();
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрСведений") Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрНакопления") Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрБухгалтерии") Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("ПланОбмена") Тогда
+ лПустойОбъект = менеджерОбъекта.СоздатьУзел();
+ Иначе
+ ВызватьИсключение "Неизвестный КорневойТипКонфигурации <"+КорневойТипКонфигурации+">";
+ КонецЕсли;
+
+ ВыгружаемыеСтандартныеРеквизиты = ВыгружаемыеСтандартныеРеквизиты(ОписательОбъекта, КорневойТипКонфигурации);
+
+ Если ЗначениеЗаполнено(Ссылка) Тогда
+ объект = Ссылка.ПолучитьОбъект();
+
+ Если Не ВыгружатьСсылку И ЗначениеЗаполнено(ОписательОбъекта.ГуидСсылки) Тогда
+ Для каждого РеквизитМд Из Мд.СтандартныеРеквизиты Цикл
+ Если РеквизитМд.Имя = ВернутьЗначениеСоответствия("Ссылка") Тогда
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+ ДобавилиРеквизит = ОбработатьРеквизитОбъекта(Макет, МассивДанных, Объект, РеквизитМд, ОписательОбъекта.ГуидСсылки, Мд, НомерСтрокиМакета, ШапкаДанных);
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+
+ ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект, лПустойОбъект, Мд.СтандартныеРеквизиты, ВыгружаемыеСтандартныеРеквизиты);
+ ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект, лПустойОбъект, Мд.Реквизиты, Неопределено);
+
+ ОбработатьТабличныеЧастиОбъекта(Макет, Мд.ТабличныеЧасти, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект);
+ ОбработатьРежимыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект);
+ ДобавитьДополнительныеСвойства(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект);
+
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрСведений") и ТипЗнч(ОписательОбъекта.Реквизиты) = Тип("Структура") Тогда
+ ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, Мд.СтандартныеРеквизиты, ВыгружаемыеСтандартныеРеквизиты);
+ ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, Мд.Измерения, Неопределено);
+ ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, Мд.Ресурсы, Неопределено);
+ ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, Мд.Реквизиты, Неопределено);
+
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрСведений")
+ Или КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрНакопления")
+ Или КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрБухгалтерии") Тогда
+
+ ЭтоРегистрБухгалтерии = КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрБухгалтерии");
+
+ НаборЗаписейРегистра = ОписательОбъекта.Реквизиты;
+ Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл
+ Макет.Область(Макет.ВысотаТаблицы+1, ШапкаДанных.ТЧ).Текст = "Запись";
+ ОписательОбъекта.Реквизиты = ЗаписьРегистра;
+
+ НаборСтандартныеРеквизиты = Мд.СтандартныеРеквизиты;
+ Если ЭтоРегистрБухгалтерии Тогда
+ ДанныеСчета = Новый Структура;
+ Если Мд.Корреспонденция Тогда
+ ДанныеСчета.Вставить("СчетДт", Новый Структура("НомераВидовСубконто, НаименованиеРеквизитаСубконто", Новый Массив, "СубконтоДт"));
+ ДанныеСчета.Вставить("СчетКт", Новый Структура("НомераВидовСубконто, НаименованиеРеквизитаСубконто", Новый Массив, "СубконтоКт"));
+ Иначе
+ ДанныеСчета.Вставить("Счет", Новый Структура("НомераВидовСубконто, НаименованиеРеквизитаСубконто", Новый Массив, "Субконто"));
+ КонецЕсли;
+
+ НаборСтандартныеРеквизиты = Новый Массив;
+ для каждого МдРеквизит из Мд.СтандартныеРеквизиты Цикл
+ ИмяРеквизита = МдРеквизит.Имя;
+ Если Лев(ИмяРеквизита, СтрДлина("ВидСубконто")) = "ВидСубконто" Тогда
+ Продолжить;
+ КонецЕсли;
+ Если Лев(ИмяРеквизита, СтрДлина("Субконто")) = "Субконто" Тогда
+ Продолжить;
+ КонецЕсли;
+ НаборСтандартныеРеквизиты.Добавить(МдРеквизит);
+ КонецЦикла;
+ КонецЕсли;
+
+ ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, НаборСтандартныеРеквизиты, ВыгружаемыеСтандартныеРеквизиты);
+ ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, Мд.Измерения, Неопределено, КорневойТипКонфигурации);
+ ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, Мд.Ресурсы, Неопределено, КорневойТипКонфигурации);
+ ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, Мд.Реквизиты, Неопределено);
+
+ Если ЭтоРегистрБухгалтерии Тогда
+ ВыгружаемыеРеквизиты = Новый Массив;
+ МассивИмитаторРеквизитовМд = Новый Массив;
+ Для каждого КлючЗначение Из ДанныеСчета Цикл
+ ИмяРеквизита = КлючЗначение.Ключ;
+ ВыгружаемыеРеквизиты.Добавить(ИмяРеквизита);
+ Структура = Новый Структура("Имя,Субконто", ИмяРеквизита, КлючЗначение.Значение);
+ МассивИмитаторРеквизитовМд.Добавить(Структура);
+ КонецЦикла;
+
+ ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, МассивИмитаторРеквизитовМд, ВыгружаемыеРеквизиты, КорневойТипКонфигурации);
+ КонецЕсли;
+ КонецЦикла;
+
+ Иначе
+ ВызватьИсключение "Неизвестный вариант работы - метод <ДобавитьОбъектВМакет>";
+ КонецЕсли;
+КонецПроцедуры
+
+Процедура ДобавитьДополнительныеСвойства(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект)
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+
+ ДопСвойства = Новый Структура();
+ Для Каждого СтрокаТЧ Из ЭтотОбъект.ДополнительныеСвойства Цикл
+ ДопСвойства.Вставить(СтрокаТЧ.Имя, СтрокаТЧ.Значение);
+ КонецЦикла;
+ Если ДопСвойства.Количество() > 0 Тогда
+ НомерКолонкиМакета_ТЧ = ШапкаДанных.ТЧ;
+ ОбластьМакета = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_ТЧ, НомерСтрокиМакета, НомерКолонкиМакета_ТЧ);
+ ОбластьМакета.Текст = "ДополнительныеСвойства";
+ КонецЕсли;
+
+ ДобавитьДопСвойстваВМакет(Макет, ШапкаДанных, "Режим", ДопСвойства);
+КонецПроцедуры
+
+Процедура ДобавитьМетаданныеВМакетДляДобавляемогоОбъекта(Макет, ОписательОбъекта, ШапкаДанных, НомерСтрокиМакета, Мд)
+ НомерКолонкиМакета_Тип = ШапкаДанных.Тип;
+ ОбластьМакета = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_Тип, НомерСтрокиМакета, НомерКолонкиМакета_Тип);
+ ОбластьМакета.Текст = ПолучитьКорневойТипКонфигурации_ирЛкс(Мд);
+
+ НомерКолонкиМакета_Вид = ШапкаДанных.Вид;
+ ОбластьМакета = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_Вид, НомерСтрокиМакета, НомерКолонкиМакета_Вид);
+ ОбластьМакета.Текст = Мд.Имя;
+
+ НомерКолонкиМакета_ИмяПеременной = ШапкаДанных.ИмяПеременной;
+ ОбластьМакета = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_ИмяПеременной, НомерСтрокиМакета, НомерКолонкиМакета_ИмяПеременной);
+
+ ИмяПеременной = ИмяПеременнойИзОписателяОбъекта(Мд, ОписательОбъекта);
+ ОбластьМакета.Текст = ИмяПеременной;
+
+ НомерКолонкиМакета_Режим = ШапкаДанных.Режим;
+ ОбластьМакета_Режим = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_Режим, НомерСтрокиМакета, НомерКолонкиМакета_Режим);
+ ОбластьМакета_Режим.Текст = ОписательОбъекта.РежимСоздания;
+
+ НомерКолонкиМакета_Значение = ШапкаДанных.Значение;
+ ОбластьМакета_Значение = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_Значение, НомерСтрокиМакета, НомерКолонкиМакета_Значение);
+ ОбластьМакета_Значение.Текст = ОписательОбъекта.Значение;
+КонецПроцедуры
+
+Функция ВыгружаемыеСтандартныеРеквизиты(ОписательОбъекта, КорневойТипКонфигурации)
+ ВыгружаемыеСтандартныеРеквизиты = Новый Массив;
+ Если КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Справочник") Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Наименование"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ПометкаУдаления"));
+ ВыгружатьКод = Ложь;
+ Если ОписательОбъекта.Свойство("ВыгружатьКод", ВыгружатьКод) и ВыгружатьКод Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Код"));
+ КонецЕсли;
+ Если ВыгружатьСсылку Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
+ КонецЕсли;
+
+ МетаданныеСправочника = ОписательОбъекта[ВернутьЗначениеСоответствия("Ссылка")].Метаданные();
+ Если МетаданныеСправочника.Владельцы.Количество() > 0 Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Владелец"));
+ КонецЕсли;
+ Если МетаданныеСправочника.Иерархический Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Родитель"));
+ КонецЕсли;
+
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Документ") Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Дата"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ПометкаУдаления"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Проведен"));
+ ВыгружатьКод = Ложь;
+ Если ОписательОбъекта.Свойство("ВыгружатьКод", ВыгружатьКод) и ВыгружатьКод Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Номер"));
+ КонецЕсли;
+ Если ВыгружатьСсылку Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
+ КонецЕсли;
+
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("БизнесПроцесс") Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Дата"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ПометкаУдаления"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Стартован"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Завершен"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ВедущаяЗадача"));
+ ВыгружатьКод = Ложь;
+ Если ОписательОбъекта.Свойство("ВыгружатьКод", ВыгружатьКод) и ВыгружатьКод Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Номер"));
+ КонецЕсли;
+ Если ВыгружатьСсылку Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
+ КонецЕсли;
+
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Задача") Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Дата"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ПометкаУдаления"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("БизнесПроцесс"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ТочкаМаршрута"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Наименование"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Выполнена"));
+ ВыгружатьКод = Ложь;
+ Если ОписательОбъекта.Свойство("ВыгружатьКод", ВыгружатьКод) и ВыгружатьКод Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Номер"));
+ КонецЕсли;
+ Если ВыгружатьСсылку Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
+ КонецЕсли;
+
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрСведений") Тогда
+ Если Не ОписательОбъекта.Метаданное.ПериодичностьРегистраСведений = Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Период"));
+ КонецЕсли;
+ Если ОписательОбъекта.Метаданное.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Регистратор"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Активность"));
+ КонецЕсли;
+
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрНакопления") или КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрБухгалтерии") Тогда
+ Для Каждого ОписаниеСтандартногоРеквизита Из ОписательОбъекта.Метаданное.СтандартныеРеквизиты Цикл
+ Если ОписаниеСтандартногоРеквизита.Имя = ВернутьЗначениеСоответствия("НомерСтроки") Тогда
+ Продолжить;
+ КонецЕсли;
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ОписаниеСтандартногоРеквизита.Имя);
+ КонецЦикла;
+
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("ПланОбмена") Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Наименование"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ПометкаУдаления"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("НомерОтправленного"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("НомерПринятого"));
+ ВыгружатьКод = Ложь;
+ Если ОписательОбъекта.Свойство("ВыгружатьКод", ВыгружатьКод) и ВыгружатьКод Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Код"));
+ КонецЕсли;
+ Если ВыгружатьСсылку Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
+ КонецЕсли;
+
+ Иначе
+ ВызватьИсключение "Неизвестный КорневойТипКонфигурации <"+КорневойТипКонфигурации+"> КорневойТипКонфигурации()";
+ КонецЕсли;
+
+ Возврат ВыгружаемыеСтандартныеРеквизиты;
+КонецФункции
+
+Процедура ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект, лПустойОбъект, МдРеквизиты, ВыгружаемыеРеквизиты, КорневойТипКонфигурации = "")
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+
+ ЭтоСсылочныйОбъект = ЭтоОписательОбъектаСсылки(ОписательОбъекта);
+ Если ЭтоСсылочныйОбъект Тогда
+ Мд = Объект.Метаданные();
+ Иначе
+ Мд = Объект;
+ КонецЕсли;
+
+ Для каждого РеквизитМд Из МдРеквизиты Цикл
+ имяРеквизита = РеквизитМд.Имя;
+ Если ВыгружаемыеРеквизиты <> Неопределено и ВыгружаемыеРеквизиты.Найти(имяРеквизита) = Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+
+ БылДобавленСчетДляЗаписиРегистраБухгалтерии = Ложь;
+
+ Если ЭтоСсылочныйОбъект Тогда
+ ЗначениеРеквизита = объект[имяРеквизита];
+
+ этоЗначениеБудетСозданоПоУмолчанию = лПустойОбъект[имяРеквизита] = ЗначениеРеквизита;
+ Если этоЗначениеБудетСозданоПоУмолчанию Тогда
+ Продолжить;
+ КонецЕсли;
+ Иначе
+ Если КорневойТипКонфигурации = "РегистрБухгалтерии" Тогда
+ Если Лев(ИмяРеквизита, СтрДлина("Счет")) = "Счет" Тогда
+ БылДобавленСчетДляЗаписиРегистраБухгалтерии = Истина;
+ ИмяРеквизитаСчет = имяРеквизита;
+ ИначеЕсли Не РеквизитМд.Балансовый Тогда
+ Суффиксы = Новый Массив;
+ Суффиксы.Добавить("Дт");
+ Суффиксы.Добавить("Кт");
+ Для Каждого Суффикс Из Суффиксы Цикл
+ ЗначениеРеквизита = ОписательОбъекта.Реквизиты[имяРеквизита + Суффикс];
+ ИмитаторРеквизитаМд = Новый Структура("Имя, Тип", имяРеквизита + Суффикс, РеквизитМд.Тип);
+ ДобавилиРеквизит = ОбработатьРеквизитОбъекта(Макет, МассивДанных, Объект, ИмитаторРеквизитаМд, ЗначениеРеквизита, Мд, НомерСтрокиМакета, ШапкаДанных);
+ Если ДобавилиРеквизит Тогда
+ НомерСтрокиМакета = НомерСтрокиМакета + 1;
+ КонецЕсли;
+ КонецЦикла;
+ Продолжить;
+ КонецЕсли;
+ КонецЕсли;
+ ЗначениеРеквизита = ОписательОбъекта.Реквизиты[имяРеквизита];
+ КонецЕсли;
+
+ ДобавилиРеквизит = ОбработатьРеквизитОбъекта(Макет, МассивДанных, Объект, РеквизитМд, ЗначениеРеквизита, Мд, НомерСтрокиМакета, ШапкаДанных);
+
+ Если ДобавилиРеквизит Тогда
+ НомерСтрокиМакета = НомерСтрокиМакета + 1;
+ КонецЕсли;
+
+ Если БылДобавленСчетДляЗаписиРегистраБухгалтерии Тогда
+ Для Каждого ОписаниеВидаСубконто Из ОписательОбъекта.Реквизиты[ИмяРеквизитаСчет].ВидыСубконто Цикл
+ ВидСубконто = ОписаниеВидаСубконто.ВидСубконто;
+ НаименованиеРеквизитаСубконто = РеквизитМд.Субконто.НаименованиеРеквизитаСубконто;
+ ЗначениеРеквизита = ОписательОбъекта.Реквизиты[НаименованиеРеквизитаСубконто][ВидСубконто];
+ Если ЗначениеРеквизита = Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ИмитаторРеквизитаМд = Новый Структура("Имя, Тип", НаименованиеРеквизитаСубконто + ОписаниеВидаСубконто.НомерСтроки, ВидСубконто.ТипЗначения);
+
+ ДобавилиРеквизит = ОбработатьРеквизитОбъекта(Макет, МассивДанных, Объект, ИмитаторРеквизитаМд, ЗначениеРеквизита, Мд, НомерСтрокиМакета, ШапкаДанных);
+
+ Если ДобавилиРеквизит Тогда
+ НомерСтрокиМакета = НомерСтрокиМакета + 1;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ОбработатьТабличныеЧастиОбъекта(Макет, МдТабличныеЧасти, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект)
+ Для каждого МдТч Из МдТабличныеЧасти Цикл
+ МдРеквизиты = МдТч.Реквизиты;
+ ИмяТЧ = МдТч.Имя;
+
+ НомерКолонкиМакета_ТЧ = ШапкаДанных.ТЧ;
+
+ Для каждого строкаТчОбъекта Из объект[ИмяТЧ] Цикл
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+ ОбластьМакета = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_ТЧ, НомерСтрокиМакета, НомерКолонкиМакета_ТЧ);
+ ОбластьМакета.Текст = ИмяТЧ;
+
+ ОбработатьРеквизитыТабличнойЧастиОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект, строкаТчОбъекта, МдРеквизиты);
+ КонецЦикла;
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ОбработатьРежимыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект)
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+ Режимы = новый Массив;
+ Если ТолькоСоздание Тогда
+ Режимы.Добавить("ТолькоСоздание");
+ КонецЕсли;
+ Если ОбменДанными Тогда
+ Режимы.Добавить("ОбменДанными");
+ КонецЕсли;
+ Мета = Объект.Метаданные();
+ Если Метаданные.Справочники.Содержит(Мета) И Объект.ЭтоГруппа Тогда
+ Режимы.Добавить("Группа");
+ КонецЕсли;
+
+ Если Режимы.Количество()>0 Тогда
+ НомерКолонкиМакета_ТЧ = ШапкаДанных.ТЧ;
+ ОбластьМакета = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_ТЧ, НомерСтрокиМакета, НомерКолонкиМакета_ТЧ);
+ ОбластьМакета.Текст = "xddMods";
+
+ Для каждого Режим Из Режимы Цикл
+ ДобавитьПростойРеквизитВМакет(Макет, ШапкаДанных, "Режим", Режим);
+ КонецЦикла;
+ КонецЕсли;
+КонецПроцедуры
+
+Процедура ОбработатьРеквизитыТабличнойЧастиОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект, строкаТчОбъекта, МдРеквизиты)
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+
+ Мд = Объект.Метаданные();
+
+ Для каждого РеквизитМд Из МдРеквизиты Цикл
+ имяРеквизита = РеквизитМд.Имя;
+
+ ЗначениеРеквизита = строкаТчОбъекта[имяРеквизита];
+
+ ДобавилиРеквизит = ОбработатьРеквизитОбъекта(Макет, МассивДанных, Объект, РеквизитМд, ЗначениеРеквизита, Мд, НомерСтрокиМакета, ШапкаДанных);
+
+ Если ДобавилиРеквизит Тогда
+ НомерСтрокиМакета = НомерСтрокиМакета + 1;
+ КонецЕсли;
+ КонецЦикла;
+КонецПроцедуры
+
+Функция ОбработатьРеквизитОбъекта(Макет, МассивДанных, Объект, РеквизитМд, ЗначениеРеквизита, Мд, НомерСтрокиМакета, ШапкаДанных)
+ имяРеквизита = РеквизитМд.Имя;
+ ЕстьТипы = Ложь;
+ Попытка
+ Тип = РеквизитМд.Тип.Типы();
+ ЕстьТипы = Истина;
+ Исключение
+ КонецПопытки;
+
+ Если ЕстьТипы И Не ЗначениеЗаполнено(ЗначениеРеквизита) И РеквизитМд.Тип.Типы().Количество() = 1 Тогда
+ Возврат Ложь;
+ КонецЕсли;
+ ТипРеквизита = ТипЗнч(ЗначениеРеквизита);
+ Если ТипРеквизита = ТипЗнч(Неопределено) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ ПредставлениеЗначенияРеквизита = "";
+ РежимПоиска = "";
+ ДополнительныйТипЗначения = "";
+ Попытка
+ ПолучитьПредставлениеИРежимПоискаПоЗначениюРеквизита(Объект, ЗначениеРеквизита, ТипРеквизита, МассивДанных, ПредставлениеЗначенияРеквизита, РежимПоиска, ДополнительныйТипЗначения);
+ Исключение
+ описаниеОшибки = ОписаниеОшибки();
+ ВызватьИсключение описаниеОшибки + " Не умею обрабатывать реквизит <"+имяРеквизита+"> у объекта <"+Мд.ПолноеИмя()+">";
+ КонецПопытки;
+
+ Если ЕстьТипы И РеквизитМд.Тип.Типы().Количество() = 1 Тогда
+ ДополнительныйТипЗначения = "";
+ КонецЕсли;
+
+ ДобавитьПростойРеквизитВМакет(Макет, ШапкаДанных, ИмяРеквизита, ПредставлениеЗначенияРеквизита);
+
+ НомерКолонкиМакета_Режим = ШапкаДанных.Режим;
+ ОбластьМакета_Режим = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_Режим, НомерСтрокиМакета, НомерКолонкиМакета_Режим);
+ Если РежимПоиска <> "" Тогда
+ ОбластьМакета_Режим.Текст = РежимПоиска;
+ КонецЕсли;
+
+ НомерКолонкиМакета_ДополнительныйТипЗначения = ШапкаДанных.ДополнительныйТипЗначения;
+ ОбластьМакета_ДополнительныйТипЗначения = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_ДополнительныйТипЗначения, НомерСтрокиМакета, НомерКолонкиМакета_ДополнительныйТипЗначения);
+ ОбластьМакета_ДополнительныйТипЗначения.Текст = ДополнительныйТипЗначения;
+
+ Возврат Истина;
+КонецФункции
+
+Процедура ДобавитьПростойРеквизитВМакет(Макет, ШапкаДанных, ИмяРеквизита, ПредставлениеЗначенияРеквизита)
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+
+ НомерКолонкиМакета_Реквизит = ШапкаДанных.Реквизит;
+ НомерКолонкиМакета_Значение = ШапкаДанных.Значение;
+
+ ОбластьМакета_Реквизит = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_Реквизит, НомерСтрокиМакета, НомерКолонкиМакета_Реквизит);
+ ОбластьМакета_Реквизит.Текст = ИмяРеквизита;
+
+ ОбластьМакета_Значение = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_Значение, НомерСтрокиМакета, НомерКолонкиМакета_Значение);
+ ОбластьМакета_Значение.Текст = ПредставлениеЗначенияРеквизита;
+
+КонецПроцедуры
+
+Процедура ДобавитьДопСвойстваВМакет(Макет, ШапкаДанных, ИмяРеквизита, СтруктураДопСвойств)
+ Для Каждого ДопСвойство Из СтруктураДопСвойств Цикл
+ НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
+
+ НомерКолонкиМакета_Реквизит = ШапкаДанных.Реквизит;
+ НомерКолонкиМакета_Значение = ШапкаДанных.Значение;
+
+ ОбластьМакета_Реквизит = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_Реквизит, НомерСтрокиМакета, НомерКолонкиМакета_Реквизит);
+ ОбластьМакета_Реквизит.Текст = ДопСвойство.Ключ;
+
+ ОбластьМакета_Значение = Макет.Область(НомерСтрокиМакета, НомерКолонкиМакета_Значение, НомерСтрокиМакета, НомерКолонкиМакета_Значение);
+ ОбластьМакета_Значение.Текст = ДопСвойство.Значение;
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ПолучитьПредставлениеИРежимПоискаПоЗначениюРеквизита(Объект, ЗначениеРеквизита, ТипРеквизита, МассивДанных, резПредставлениеЗначенияРеквизита, резРежимПоиска, резДополнительныйТипЗначения)
+ резДополнительныйТипЗначения = "";
+ Если ТипРеквизита = Тип("Число") Тогда
+ ПредставлениеЗначенияРеквизита = Формат(ЗначениеРеквизита, "ЧГ=");
+ резДополнительныйТипЗначения = "Число";
+ ИначеЕсли ТипРеквизита = Тип("Строка") Тогда
+ ПредставлениеЗначенияРеквизита = ЗначениеРеквизита;
+ резДополнительныйТипЗначения = "Строка";
+ ИначеЕсли ТипРеквизита = Тип("Дата") Тогда
+ ПредставлениеЗначенияРеквизита = Формат(ЗначениеРеквизита, "ДФ=yyyyMMddЧЧммсс"); // важно ЧЧ
+ резДополнительныйТипЗначения = "Дата";
+ ИначеЕсли ТипРеквизита = Тип("Булево") Тогда
+ ПредставлениеЗначенияРеквизита = Формат(ЗначениеРеквизита, "БЛ=Ложь; БИ=Истина");
+ резДополнительныйТипЗначения = "Булево";
+
+ ИначеЕсли ЛиСсылкаНаОбъектБД_ирЛкс(ЗначениеРеквизита) Тогда
+ ОписательЗначенияРеквизита = НайтиОписательОбъектаПоСсылке(МассивДанных, ЗначениеРеквизита); //МассивДанных.Найти(ЗначениеРеквизита);
+ Если ОписательЗначенияРеквизита <> Неопределено Тогда
+ ЕстьРеквизитСсылка = Истина;
+ Если ТипЗнч(Объект) = Тип("ОбъектМетаданных") Тогда
+ ЕстьРеквизитСсылка = Ложь;
+ Для каждого РеквизитМд Из Объект.СтандартныеРеквизиты Цикл
+ Если РеквизитМд.Имя = ВернутьЗначениеСоответствия("Ссылка") Тогда
+ ЕстьРеквизитСсылка = Истина;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+ Если ЕстьРеквизитСсылка И ЗначениеРеквизита = Объект.Ссылка Тогда
+ ПредставлениеЗначенияРеквизита = Строка(ЗначениеРеквизита.УникальныйИдентификатор());
+ РежимПоиска = "";
+ Иначе
+ ИмяПеременнойИзОписателяОбъекта = ИмяПеременнойИзОписателяОбъекта(ЗначениеРеквизита.Метаданные(), ОписательЗначенияРеквизита);
+ ИскатьПоГуид = Ложь;
+ Если СвязьПоГуид Тогда
+ Для каждого Элемент Из МассивДанных Цикл
+ Если Элемент.ИмяПеременной = ИмяПеременнойИзОписателяОбъекта Тогда
+ ИскатьПоГуид = Истина;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+ Если ИскатьПоГуид Тогда
+ ПредставлениеЗначенияРеквизита = Строка(ЗначениеРеквизита.УникальныйИдентификатор());
+ РежимПоиска = "Гуид";
+ Иначе
+ ПредставлениеЗначенияРеквизита = ИмяПеременнойИзОписателяОбъекта;
+ РежимПоиска = "Перем";
+ КонецЕсли;
+ КонецЕсли;
+ Иначе
+ ПредставлениеЗначенияРеквизита = ЗначениеРеквизита;
+ Если БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().СодержитТип(ТипРеквизита) Тогда
+ ПредставлениеЗначенияРеквизита = ЗначениеРеквизита.Имя;
+ РежимПоиска = "Предопределенный";
+ Иначе
+ Если СвязьПоГуид Тогда
+ ПредставлениеЗначенияРеквизита = Строка(ЗначениеРеквизита.УникальныйИдентификатор());
+ РежимПоиска = "Гуид";
+ Иначе
+ МетаданныеСсылки = ЗначениеРеквизита.Метаданные();
+ Если Метаданные.Справочники.Содержит(МетаданныеСсылки) Тогда
+ ОсновноеПредставлениеСсылки = МетаданныеСсылки.ОсновноеПредставление;
+ Если ЗначениеРеквизита.Предопределенный Тогда
+ РежимПоиска = "Предопределенный";
+ ПредставлениеЗначенияРеквизита = Справочники[МетаданныеСсылки.Имя].ПолучитьИмяПредопределенного(ЗначениеРеквизита);
+ ИначеЕсли ОсновноеПредставлениеСсылки = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеСправочника.ВВидеНаименования Тогда
+ РежимПоиска = "Наименование";
+ Иначе
+ РежимПоиска = "Код";
+ КонецЕсли;
+ резДополнительныйТипЗначения = "СправочникСсылка."+МетаданныеСсылки.Имя;
+ ИначеЕсли Метаданные.Документы.Содержит(МетаданныеСсылки) Тогда
+ ПредставлениеЗначенияРеквизита = ЗначениеРеквизита.Номер;
+ РежимПоиска = "Номер";
+ резДополнительныйТипЗначения = "ДокументСсылка."+МетаданныеСсылки.Имя;
+ ИначеЕсли Метаданные.ПланыСчетов.Содержит(МетаданныеСсылки) Тогда
+ ОсновноеПредставлениеСсылки = МетаданныеСсылки.ОсновноеПредставление;
+ Если ЗначениеРеквизита.Предопределенный Тогда
+ РежимПоиска = "Предопределенный";
+ ПредставлениеЗначенияРеквизита = ПланыСчетов[МетаданныеСсылки.Имя].ПолучитьИмяПредопределенного(ЗначениеРеквизита);
+ ИначеЕсли ОсновноеПредставлениеСсылки = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеСчета.ВВидеНаименования Тогда
+ РежимПоиска = "Наименование";
+ Иначе
+ РежимПоиска = "Код";
+ КонецЕсли;
+ резДополнительныйТипЗначения = "ПланСчетовСсылка."+МетаданныеСсылки.Имя;
+ Иначе
+ // пока так. надо добавить остальные типы
+ РежимПоиска = "Наименование";
+ КонецЕсли;
+ Если ЗначениеРеквизита.Пустая() Тогда
+ РежимПоиска = "";
+ КонецЕсли;
+ КонецЕсли; // СвязьПоГуид
+
+ КонецЕсли;
+
+ КонецЕсли;
+
+ ИначеЕсли ЛиСсылкаНаПеречисление_ирЛкс(ЗначениеРеквизита) Тогда
+ ПредставлениеЗначенияРеквизита = "";
+ ИмяПеречисления = ЗначениеРеквизита.Метаданные().Имя;
+ Если ЗначениеЗаполнено(ЗначениеРеквизита) Тогда
+ ИндексЗначения = Перечисления[ИмяПеречисления].Индекс(ЗначениеРеквизита);
+ ИмяЗначения = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначения].Имя;
+ КонецЕсли;
+ ПредставлениеЗначенияРеквизита = ИмяЗначения;
+ РежимПоиска = "Предопределенный";
+ резДополнительныйТипЗначения = "ПеречислениеСсылка."+ИмяПеречисления;
+
+ ИначеЕсли ТипРеквизита = Тип("УникальныйИдентификатор") Тогда
+ ПредставлениеЗначенияРеквизита = ""+ЗначениеРеквизита;
+ РежимПоиска = "Гуид";
+ ИначеЕсли ТипРеквизита = Тип("ХранилищеЗначения") Тогда
+ ПредставлениеЗначенияРеквизита = ""+ЗначениеРеквизита;
+
+ Иначе
+ УжеВычислилиЗначение = Ложь;
+ ПредставлениеЗначенияРеквизита = Неопределено;
+ СтрокаДляВыполнения = "ПредставлениеЗначенияРеквизита = "+ТипРеквизита+"["""+ЗначениеРеквизита+"""];";
+ Попытка
+ Выполнить(СтрокаДляВыполнения);
+ УжеВычислилиЗначение = Истина;
+ РежимПоиска = "Предопределенный";
+ Исключение
+ КонецПопытки;
+ Если Не УжеВычислилиЗначение Тогда
+ ВызватьИсключение "Генератор макета из реальных данных: Не умею обрабатывать такой тип <"+ТипРеквизита+">";
+ КонецЕсли;
+ КонецЕсли;
+ резПредставлениеЗначенияРеквизита = ПредставлениеЗначенияРеквизита;
+ резРежимПоиска = РежимПоиска;
+КонецПроцедуры
+
+Функция НайтиОписательОбъектаПоСсылке(МассивДанных, Ссылка)
+ Для каждого ОписательОбъекта Из МассивДанных Цикл
+ СсылкаВрем = Неопределено;
+ Если ЭтоОписательОбъектаСсылки(ОписательОбъекта, СсылкаВрем) и СсылкаВрем = Ссылка Тогда
+ Возврат ОписательОбъекта;
+ КонецЕсли;
+ КонецЦикла;
+ Возврат Неопределено;
+КонецФункции
+
+Функция ЭтоОписательОбъектаСсылки(ОписательОбъекта, РезСсылка = Неопределено)
+
+ ЭтоСсылочныйОбъект = ОписательОбъекта.Свойство(ВернутьЗначениеСоответствия("Ссылка"), РезСсылка) И РезСсылка <> Неопределено;
+ Возврат ЭтоСсылочныйОбъект;
+
+КонецФункции
+
+Функция ИмяПеременнойИзОписателяОбъекта(Мд, ОписательОбъекта)
+ ИмяПеременной = "";
+ Если НЕ ОписательОбъекта.Свойство("ИмяПеременной", ИмяПеременной) или ПустаяСтрока(ИмяПеременной) Тогда
+ ИмяПеременной = Мд.Имя;
+ КонецЕсли;
+ Возврат ИмяПеременной;
+КонецФункции
+
+Функция ШапкаДанныхВМакете()
+ рез = Новый Структура();
+ рез.Вставить("Тип", 1);
+ рез.Вставить("Вид", 2);
+ рез.Вставить("ИмяПеременной", 3);
+ рез.Вставить("ТЧ", 4);
+ рез.Вставить("Реквизит", 5);
+ рез.Вставить("Значение", 6);
+ рез.Вставить("Режим", 7);
+ рез.Вставить("ДополнительныйТипЗначения", 8);
+ Возврат рез;
+КонецФункции
+
+// { БЛОК МЕТОДОВ ИЗ ИР (Инструменты Разработчика, автор TormozIt )
+//
+// Определяет корневой тип конфигурации по описанию типов, типу, метаданным, ссылке или объекту.
+// Для описания типов берется первый тип массива типов.
+//
+// Параметры:
+// пОбъект – Произвольный – для чего получаем метаданные;
+// *пЛиТолькоДляКорневого - Булево, *Ложь - возвращать только для объекта корневого типа.
+//
+// Возвращаемое значение:
+// - Строка – имя типа корневого объекта метаданных;
+// Неопределено - не удалось получить имя типа.
+//
+Функция ПолучитьКорневойТипКонфигурации_ирЛкс(пОбъект, пЛиТолькоДляКорневого = Ложь) Экспорт
+
+ Если ТипЗнч(пОбъект) = Тип("ОбъектМетаданных") Тогда
+ МетаданныеТипа = пОбъект;
+ Иначе
+ МетаданныеТипа = ПолучитьМетаданные_ирЛкс(пОбъект);
+ КонецЕсли;
+ Результат = Неопределено;
+ Если МетаданныеТипа <> Неопределено Тогда
+ ПолноеИмя = МетаданныеТипа.ПолноеИмя();
+ Если пЛиТолькоДляКорневого Тогда
+ МассивФрагментов = ПолучитьМассивИзСтрокиСРазделителем_ирЛкс(ПолноеИмя);
+ Если МассивФрагментов.Количество() = 2 Тогда
+ Результат = МассивФрагментов[0];
+ КонецЕсли;
+ Иначе
+ Результат = ПолучитьПервыйФрагмент_ирЛкс(ПолноеИмя);
+ КонецЕсли;
+ КонецЕсли;
+ Если Результат = "ТабличнаяЧасть" Тогда
+ // Баг платформы. У внешних метаданных полное имя не включает сам внешний метаобъект
+ Результат = Неопределено;
+ КонецЕсли;
+ Возврат Результат;
+
+КонецФункции // ЛксПолучитьКорневойТипКонфигурации()
+
+// Проверяет, является ли значение ссылкой на объект БД. На базе ЛксЛиСсылкаНаОбъектБД
+//
+// Параметры:
+// пЗначение – ОбъектМетаданных, Произвольный – проверяемое значение.
+//
+// Возвращаемое значение:
+// Истина – значение является ссылкой на объект БД;
+// Ложь – значение не является ссылкой на объект БД.
+//
+Функция ЛиСсылкаНаОбъектБД_ирЛкс(пЗначение) Экспорт
+
+ Возврат ЛиКорневойТипОбъектаБД_ирЛкс(ПолучитьКорневойТипКонфигурации_ирЛкс(пЗначение, Истина));
+
+КонецФункции // ЛксЛиСсылкаНаОбъектБД
+
+// Проверяет, является ли значение ссылкой на значение перечисления.
+//
+// Параметры:
+// пЗначение – Произвольный – проверяемое значение.
+//
+// Возвращаемое значение:
+// Истина – значение является ссылкой на объект БД;
+// Ложь – значение не является ссылкой на объект БД.
+//
+Функция ЛиСсылкаНаПеречисление_ирЛкс(пЗначение) Экспорт
+
+ Возврат (ПолучитьКорневойТипКонфигурации_ирЛкс(пЗначение) = ВернутьЗначениеСоответствия("Перечисление"));
+
+КонецФункции // ЛксЛиСсылкаНаПеречисление()
+
+// Проверяет, является ли строка именем корневого типа объекта БД.
+//
+// Параметры:
+// пИмяКорневогоТипа - Строка, Неопределено - имя корневого типа.
+//
+// Возвращаемое значение:
+// Истина – тип является корневым типом объекта БД;
+// Ложь – иначе.
+//
+Функция ЛиКорневойТипОбъектаБД_ирЛкс(КорневойТип) Экспорт
+
+ Если Ложь
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("БизнесПроцесс")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("Задача")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("Документ")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("ПланВидовРасчета")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("ПланВидовХарактеристик")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("ПланОбмена")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("ПланСчетов")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("Справочник")
+
+ Тогда
+ Возврат Истина;
+ КонецЕсли;
+ Возврат Ложь;
+
+КонецФункции // ЛксЛиКорневойТипОбъектаБД()
+
+// Получает менеджер по описанию типов, типу, метаданным, ссылке или объекту. На базе метода ЛксПолучитьМенеджер
+// Для описания типов берется первый тип массива типов.
+//
+// Параметры:
+// пОбъект – Произвольный – для чего получаем менеджер.
+//
+// Возвращаемое значение:
+// – МенеджерОбъекта - для ссылки или ссылочного типа;
+// Неопределено - не удалось получить.
+//
+Функция ПолучитьМенеджерОбъекта_ирЛкс(пОбъект) Экспорт
+
+ Если ТипЗнч(пОбъект) = Тип("ОбъектМетаданных") Тогда
+ МетаданныеОбъекта = пОбъект;
+ Иначе
+ МетаданныеОбъекта = ПолучитьМетаданные_ирЛкс(пОбъект);
+ КонецЕсли;
+ Если МетаданныеОбъекта = Неопределено Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ МассивФрагментов = ПолучитьМассивИзСтрокиСРазделителем_ирЛкс(МетаданныеОбъекта.ПолноеИмя());
+ КорневойТип = МассивФрагментов[0];
+ Менеджер = Неопределено;
+ Если Истина
+ И МассивФрагментов.Количество() = 4
+ И КорневойТип = "ВнешнийИсточникДанных"
+ Тогда
+ ИмяТипаМенеджера = МассивФрагментов[0] + "ТаблицаМенеджер." + МассивФрагментов[1] + "." + МассивФрагментов[3];
+ Иначе
+ //КорневойТип = ЛксПолучитьКорневойТипКонфигурации(МетаданныеОбъекта, Истина); // Изменил 02.03.2012
+ Если КорневойТип <> Неопределено Тогда
+ Если НЕ ВариантВстроенногоЯзыкаАнглийский Тогда
+ ИмяМенеджер = "Менеджер.";
+ Иначе
+ ИмяМенеджер = "Manager.";
+ КонецЕсли;
+ ИмяТипаМенеджера = КорневойТип + ИмяМенеджер + МетаданныеОбъекта.Имя;
+ Иначе
+ ИмяТипаМенеджера = "Неопределено";
+ КонецЕсли;
+ КонецЕсли;
+ Попытка
+ Менеджер = Новый (ИмяТипаМенеджера);
+ Исключение
+ КонецПопытки;
+ Возврат Менеджер;
+
+КонецФункции // ЛксПолучитьМенеджер()
+
+// Получает метаданные по полному имени, описанию типов, типу, ссылке или объекту. На базе ЛксПолучитьМетаданные
+// Для описания типов берется первый тип массива типов.
+//
+// Параметры:
+// пОбъект – Произвольный – для чего получаем метаданные.
+//
+// Возвращаемое значение:
+// – Метаданные - полученные;
+// Неопределено - не удалось получить метаданные.
+//
+Функция ПолучитьМетаданные_ирЛкс(пОбъект) Экспорт
+
+ Если ТипЗнч(пОбъект) = Тип("Строка") Тогда
+ Если ПустаяСтрока(пОбъект) Тогда
+ Результат = Неопределено;
+ Иначе
+ Фрагменты = ПолучитьМассивИзСтрокиСРазделителем_ирЛкс(пОбъект);
+ Если Фрагменты.Количество() = 3 Тогда
+ // ВидыСубконто, Изменения
+ ПолноеИмяМД = Фрагменты[0] + "." + Фрагменты[1];
+ Иначе
+ ПолноеИмяМД = пОбъект;
+ КонецЕсли;
+ Результат = Метаданные.НайтиПоПолномуИмени(ПолноеИмяМД);
+ КонецЕсли;
+ Возврат Результат;
+ КонецЕсли;
+ ТипОбъекта = ПолучитьТипОбъекта_ирЛкс(пОбъект);
+ Результат = Метаданные.НайтиПоТипу(ТипОбъекта);
+ Возврат Результат;
+
+КонецФункции // ЛксПолучитьМетаданные()
+
+// Получает тип из описания типов, типа или значения. На базе ЛксПолучитьТипОбъекта
+//
+// Параметры:
+// пОбъект – Тип, ОписаниеТипов, Произвольный – проверяемое значение.
+//
+// Возвращаемое значение:
+// Тип - найденный тип.
+//
+Функция ПолучитьТипОбъекта_ирЛкс(пОбъект)
+
+ ТипОбъекта = Тип("Неопределено");
+ ТипПараметра = ТипЗнч(пОбъект);
+ Если ТипПараметра = Тип("ОписаниеТипов") Тогда
+ Если пОбъект.Типы().Количество() > 0 Тогда
+ ТипОбъекта = пОбъект.Типы()[0];
+ КонецЕсли;
+ ИначеЕсли ТипПараметра <> Тип("Тип") Тогда
+ ТипОбъекта = ТипПараметра;
+ Иначе
+ ТипОбъекта = пОбъект;
+ КонецЕсли;
+
+ Возврат ТипОбъекта;
+
+КонецФункции // ЛксПолучитьТипОбъекта()
+
+// Функция разбивает строку разделителем. На базе ЛксПолучитьМассивИзСтрокиСРазделителем
+//
+// Параметры:
+// пСтрока - Строка - которую разбиваем;
+// *пРазделитель - Строка, "." - символ-разделитель;
+// *ОбрезатьНепечатныеСимволы - Булево, *Ложь - делать СокрЛП.
+// *ОставлятьПустуюСтроку - Булево, *Истина - если передана пустая строка, то добавлять ее в массив.
+//
+// Возвращаемое значение:
+// Массив - фрагментов.
+//
+Функция ПолучитьМассивИзСтрокиСРазделителем_ирЛкс(Знач Стр, Разделитель = ".", ОбрезатьНепечатныеСимволы = Ложь, ОставлятьПустуюСтроку = Истина) Экспорт
+
+ МассивСтрок = Новый Массив;
+ Если Истина
+ И Не ОставлятьПустуюСтроку
+ И ПустаяСтрока(Стр)
+ Тогда
+ Возврат МассивСтрок;
+ КонецЕсли;
+
+ //лСтрока = СтрЗаменить(Стр, Разделитель, Символы.ПС);
+ //// Баг платформы. СтрЧислоСтрок не учитывает терминальный перевод строки.
+ //ЧислоСтрок = СтрЧислоСтрок(лСтрока + " ");
+ //Для Счетчик = 1 По ЧислоСтрок Цикл
+ // Фрагмент = СтрПолучитьСтроку(лСтрока, Счетчик);
+ // Если ОбрезатьНепечатныеСимволы Тогда
+ // Фрагмент = СокрЛП(Фрагмент);
+ // КонецЕсли;
+ // МассивСтрок.Добавить(Фрагмент);
+ //КонецЦикла;
+
+ Если Разделитель = " " Тогда
+ Стр = СокрЛП(Стр);
+ Пока 1=1 Цикл
+ Поз = Найти(Стр,Разделитель);
+ Если Поз=0 Тогда
+ МассивСтрок.Добавить(Стр);
+ Возврат МассивСтрок;
+ КонецЕсли;
+ МассивСтрок.Добавить(Лев(Стр,Поз-1));
+ Стр = СокрЛ(Сред(Стр,Поз));
+ КонецЦикла;
+ Иначе
+ ДлинаРазделителя = СтрДлина(Разделитель);
+ Пока 1=1 Цикл
+ Поз = Найти(Стр,Разделитель);
+ Если Поз=0 Тогда
+ Фрагмент = Стр;
+ Если ОбрезатьНепечатныеСимволы Тогда
+ Фрагмент = СокрЛП(Фрагмент);
+ КонецЕсли;
+ МассивСтрок.Добавить(Фрагмент);
+ Возврат МассивСтрок;
+ КонецЕсли;
+ Фрагмент = Лев(Стр,Поз-1);
+ Если ОбрезатьНепечатныеСимволы Тогда
+ Фрагмент = СокрЛП(Фрагмент);
+ КонецЕсли;
+ МассивСтрок.Добавить(Фрагмент);
+ Стр = Сред(Стр,Поз+ДлинаРазделителя);
+ КонецЦикла;
+ КонецЕсли;
+
+ Возврат МассивСтрок;
+
+КонецФункции // ЛксПолучитьМассивИзСтрокиСРазделителем()
+
+// Получает первый фрагмент, отделяемый разделителем от строки. На базе ЛксПолучитьПервыйФрагмент
+// Написана для оптимизации по скорости.
+//
+// Параметры:
+// пСтрока - Строка - которую разбиваем;
+// *пРазделитель - Строка, "." - символ-разделитель;
+// *пЛиИспользоватьГраницуЕслиМаркерНеНайден - Булево, *Истина.
+//
+// Возвращаемое значение:
+// - Строка - первый фрагмент строки;
+// Неопределено - в строке не обнаружен разделитель.
+//
+Функция ПолучитьПервыйФрагмент_ирЛкс(пСтрока, пРазделитель = ".",
+ пЛиИспользоватьГраницуЕслиМаркерНеНайден = Истина) Экспорт
+
+ Позиция = Найти(пСтрока, пРазделитель);
+ Если Позиция > 0 Тогда
+ Возврат Лев(пСтрока, Позиция - 1);
+ Иначе
+ Если пЛиИспользоватьГраницуЕслиМаркерНеНайден Тогда
+ Возврат пСтрока;
+ Иначе
+ Возврат пСтрока;
+ КонецЕсли;
+ КонецЕсли;
+
+КонецФункции // ЛксПолучитьПервыйФрагмент()
+
+// Получает идентификатор из любой строки.
+// "3-я Дебиторка По контрагентам с интервалами СНГ (для Руководства)" => "_3_яДебиторкаПоКонтрагентамСИнтерваламиСНГ_дляРуководства_".
+//
+// Параметры:
+// Представление – Строка.
+//
+// Возвращаемое значение:
+// Строка.
+//
+Функция ПолучитьИдентификаторИзПредставления_Лкс(Знач Представление, ЗаменаПустойСтроки = "_") Экспорт
+
+ Если ПустаяСтрока(Представление) Тогда
+ Представление = ЗаменаПустойСтроки;
+ КонецЕсли;
+ Если СокрЛП(Представление) = Представление и Найти(Представление, ",") = 0 Тогда
+ Попытка
+ Пустышка = Новый Структура(Представление);
+ Возврат Представление;
+ Исключение КонецПопытки;
+ КонецЕсли;
+ НовоеПредставление = СокрЛП(Представление);
+ ПервыйСимвол = Сред(НовоеПредставление, 1, 1);
+ Если ЭтоЦифра(ПервыйСимвол) Тогда
+ НовоеПредставление = "_" + НовоеПредставление;
+ КонецЕсли;
+ ПредыдущийСимвол = " ";
+ ТекущаяСтрока = "";
+ Для Счетчик = 1 По СтрДлина(НовоеПредставление) Цикл
+ ТекущийСимвол = Сред(НовоеПредставление, Счетчик, 1);
+ Если ЭтоПробельныйСимвол(ПредыдущийСимвол) Тогда
+ // Предыдущий символ - непечатаемый
+ ТекущийСимвол = ВРег(ТекущийСимвол);
+ КонецЕсли;
+ Если ЭтоВалидныйСимволИдентификатора(ТекущийСимвол) Тогда
+ ТекущаяСтрока = ТекущаяСтрока + ТекущийСимвол;
+ ИначеЕсли Не ЭтоПробельныйСимвол(ТекущийСимвол) Тогда
+ ТекущаяСтрока = ТекущаяСтрока + "_";
+ КонецЕсли;
+ ПредыдущийСимвол = ТекущийСимвол;
+
+ КонецЦикла;
+ Результат = ТекущаяСтрока;
+ Возврат ТекущаяСтрока;
+
+КонецФункции // ПолучитьИдентификаторИзПредставления()
+
+Функция ЭтоЦифра(Символ)
+
+ Возврат (Найти("0123456789", Символ) > 0);
+
+КонецФункции
+
+Функция ЭтоПробельныйСимвол(Символ)
+
+ ПробельныеСимволы = " " + Символы.Таб + Символы.НПП + Символы.ВК + Символы.ВТаб + Символы.ПС + Символы.ПФ;
+ Возврат (Найти(ПробельныеСимволы, Символ) > 0)
+
+КонецФункции
+
+Функция ЭтоВалидныйСимволИдентификатора(Символ)
+
+ Алфавит = "_АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ Возврат (Найти(Алфавит, ВРег(Символ)) > 0 Или ЭтоЦифра(Символ));
+
+КонецФункции
+
+// } Конец блока методов из ИР (Инструменты Разработчика, автор TormozIt )
+
+//} КОНЕЦ ОСНОВНОГО БЛОКА
+
+Процедура ПриИзмененииСсылки(ИдентификаторСтрокиДанных) Экспорт
+ Перем Ссылка;
+ ЭлементДанных = ИдентификаторСтрокиДанных;
+ НовыйМассивИмен = ТаблицаДанных.ВыгрузитьКолонку("ИмяПеременной");
+
+ Ссылка = ЭлементДанных.Ссылка;
+ Если ЗначениеЗаполнено(Ссылка) Тогда
+ ОписательЭлемента = СоздатьОписательЭлементаПоСсылке(Ссылка, НовыйМассивИмен);
+ ЗаполнитьЗначенияСвойств(ЭлементДанных, ОписательЭлемента);
+ // ЭлементДанных.ИмяПеременной = УникальноеИмяПеременнойПоСсылке(Ссылка, НовыйМассивИмен);
+ //
+ // Мета = Ссылка.Метаданные();
+ // ЭлементДанных.Метаданное = Мета.ПолноеИмя();
+ // ЭлементДанных.РежимПоиска = "Перем";
+ // Если Метаданные.Справочники.Содержит(Мета) И Ссылка.ЭтоГруппа Тогда
+ // ЭлементДанных.РежимСоздания = "Группа";
+ // Иначе
+ // ЭлементДанных.РежимСоздания = "";
+ // КонецЕсли;
+ КонецЕсли;
+КонецПроцедуры
+
+Функция СоздатьМакетДанныхПоТаблицеДанных(Макет) Экспорт
+ Макет.Очистить();
+
+ массивДанных = Новый Массив;
+
+ Для каждого строка Из ТаблицаДанных Цикл
+ ОписательЭлемента = СоздатьОписательЭлемента();
+ ЗаполнитьЗначенияСвойств(ОписательЭлемента, строка);
+ массивДанных.Добавить(ОписательЭлемента);
+ КонецЦикла;
+ НовыйМакет = СоздатьМакетДляГенерацииДанных(массивДанных);
+ Если ТипЗнч(НовыйМакет) = Тип("ТабличныйДокумент") Тогда
+ Макет.Вывести(НовыйМакет);
+ КонецЕсли;
+
+ Возврат НовыйМакет;
+КонецФункции
+
+Функция СоздатьМакетДанныхПоМетаданным(Макет) Экспорт
+ Макет.Очистить();
+
+ массивДанных = Новый Массив;
+ МассивИмен = ТаблицаДанных.ВыгрузитьКолонку("ИмяПеременной");
+
+ СоздатьПоМетаданным(массивДанных);
+
+ НовыйМакет = СоздатьМакетДляГенерацииДанных(массивДанных);
+ Если ТипЗнч(НовыйМакет) = Тип("ТабличныйДокумент") Тогда
+ Макет.Вывести(НовыйМакет);
+ КонецЕсли;
+
+ МассивИмен = Неопределено;
+
+ Возврат НовыйМакет;
+КонецФункции
+
+Функция СоздатьМакетДанныхПоПользователямИБ(Макет, МассивИменПользователей) Экспорт
+ Макет.Очистить();
+
+ МассивПользователей = Новый Массив;
+ МассивИмен = Новый Массив;
+
+ Для Каждого ИмяПользователяИБ Из МассивИменПользователей Цикл
+ ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователяИБ);
+ Если Неопределено = ПользовательИБ Тогда
+ ВызватьИсключение "Не найден пользователь ИБ по имени <"+ИмяПользователяИБ+">";
+ КонецЕсли;
+ МассивИмен.Добавить(ИмяПользователяИБ);
+
+ ОписательПользователяИБ = СоздатьОписательЭлементаПользовательИБ(ПользовательИБ, МассивИмен);
+ МассивПользователей.Добавить(ОписательПользователяИБ);
+ КонецЦикла;
+
+ НовыйМакет = СоздатьМакетДляГенерацииДанных(МассивПользователей);
+ Если ТипЗнч(НовыйМакет) = Тип("ТабличныйДокумент") Тогда
+ Макет.Вывести(НовыйМакет);
+ КонецЕсли;
+
+ МассивИмен = Неопределено;
+
+ Возврат НовыйМакет;
+КонецФункции
+
+Процедура ПроверитьЗагрузкуМакета(ТабличныйДокумент) Экспорт
+ НачатьТранзакцию();
+
+ ТестовыеДанные = СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент);
+ Если ТестовыеДанные.Количество() = 0 Тогда
+ ВызватьИсключение "не заполнены тестовые данные. Возможно, макет данных пуст!" ;
+ КонецЕсли;
+
+ Сообщить("Проверка загрузки объектов в ИБ из макета данных выполнена успешно.");
+ Сообщить("В ИБ загружены объекты: "+ТестовыеДанные.Количество()+" шт.");
+ Для каждого ЗагруженныйОбъект Из ТестовыеДанные Цикл
+ РеальныйОбъект = ЗагруженныйОбъект.Значение;
+ ДопТекст = "";
+ Если ВыгружатьСсылку Тогда
+ Попытка
+ ДопТекст = ", ГУИД "+РеальныйОбъект.УникальныйИдентификатор()+"";
+ Исключение
+ КонецПопытки;
+ КонецЕсли;
+ Попытка
+ ДопТекст = ", записей "+РеальныйОбъект.Количество()+" шт."; // для регистров
+ Исключение
+ КонецПопытки;
+ Сообщить(" Загружен объект.Имя "+ЗагруженныйОбъект.Ключ+", Тип "+ТипЗнч(РеальныйОбъект)+ДопТекст);
+ КонецЦикла;
+
+ Если ТранзакцияАктивна() Тогда
+ ОтменитьТранзакцию();
+ КонецЕсли;
+КонецПроцедуры
+
+Функция ПодключитьВнешнююОбработку(АдресХранилища, ИдентификаторОбработки, ПолныйПутьФайлаОбработки) Экспорт
+ #Если Клиент Тогда
+ Возврат ПолныйПутьФайлаОбработки;
+ #Иначе
+ Возврат ВнешниеОбработки.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь); // подключаю не в безопасном режиме
+ #КонецЕсли
+КонецФункции
+
+Функция СписокВыбора_РежимПоиска(СписокВыбора_РежимПоиска) Экспорт
+ СписокВыбора_РежимПоиска.Добавить("Перем");
+ СписокВыбора_РежимПоиска.Добавить("Наименование");
+ СписокВыбора_РежимПоиска.Добавить("Код");
+ //СписокВыбора_РежимПоиска.Добавить("Группа");
+ //СписокВыбора_РежимПоиска.Добавить("Объект");
+ СписокВыбора_РежимПоиска.Добавить("Гуид");
+ СписокВыбора_РежимПоиска.Добавить("Предопределенный");
+ СписокВыбора_РежимПоиска.Добавить("ТекущаяДата");
+ //СписокВыбора_РежимПоиска.Добавить("Проведение");
+ СписокВыбора_РежимПоиска.Добавить("СоздатьПоГуид");
+ Возврат СписокВыбора_РежимПоиска;
+КонецФункции
+
+Функция СписокВыбора_РежимСоздания(СписокВыбора_РежимСоздания) Экспорт
+ //СписокВыбора_РежимПоиска.Добавить("Перем");
+ //СписокВыбора_РежимПоиска.Добавить("Наименование");
+ //СписокВыбора_РежимПоиска.Добавить("Код");
+ СписокВыбора_РежимСоздания.Добавить("Группа");
+ СписокВыбора_РежимСоздания.Добавить("Объект");
+ //СписокВыбора_РежимПоиска.Добавить("Гуид");
+ //СписокВыбора_РежимПоиска.Добавить("Предопределенный");
+ //СписокВыбора_РежимПоиска.Добавить("ТекущаяДата");
+ СписокВыбора_РежимСоздания.Добавить("Проведение");
+ //СписокВыбора_РежимСоздания.Добавить("СоздатьПоГуид");
+ Возврат СписокВыбора_РежимСоздания;
+КонецФункции
+
+///////////////////////////////////////////////////////////////////////////////
+// Генерация по метаданным
+///////////////////////////////////////////////////////////////////////////////
+
+// Процедура производит начальную инициализацию - заполнение дерева описания
+// классов объектов метаданных, дерево метаданных, список ссылочных типов
+//
+// Параметры
+//
+Процедура НачальнаяИнициализация() Экспорт
+
+ ЗаполнитьПользователейИБ();
+
+ // Создаем объект, описывающий процессы построения дерева и выгрузку
+ ЗаполнитьОписаниеМетаданных();
+
+ МетаданныеОписание = МетаданныеОписание.Строки[0];
+
+ СсылочныеТипы = Новый Соответствие;
+ СоответствиеОбъектовМетаданныхИСсылочныхТипов = Новый Соответствие;
+
+ ДеревоМетаданных.Колонки.Очистить();
+ // создание необходимых колонок
+ ДеревоМетаданных.Колонки.Добавить("Выгружать", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный)));
+ ДеревоМетаданных.Колонки.Добавить("ВыгружатьПриНеобходимости", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный)), "При необходимости");
+ ДеревоМетаданных.Колонки.Добавить("Метаданные");
+ ДеревоМетаданных.Колонки.Добавить("ЭлементОписания");
+ ДеревоМетаданных.Колонки.Добавить("ОбъектМД");
+ ДеревоМетаданных.Колонки.Добавить("ПолноеИмяМетаданных");
+ ДеревоМетаданных.Колонки.Добавить("НастройкиКомпоновщика");
+ ДеревоМетаданных.Колонки.Добавить("ИспользоватьОтбор");
+ ДеревоМетаданных.Колонки.Добавить("ИндексКартинки");
+ ДеревоМетаданных.Колонки.Добавить("Развернут");
+ ДеревоМетаданных.Колонки.Добавить("ПолноеИмяМетаданныхДляПоиска");
+
+ //ОкноИсполнения = ПолучитьФорму("ОкноИсполнения");
+ #Если Клиент Тогда
+ Состояние("Выполняется анализ метаданных конфигурации...");
+ #КонецЕсли
+
+ //ИспользующиеИтоги = Новый Массив;
+ Корень = ДеревоМетаданных.Строки.Добавить();
+ ПостроениеПоддереваОбъекта(Метаданные, Корень, МетаданныеОписание);
+ СверткаПоддереваОбъекта(Корень);
+
+ Для Каждого Эл Из СсылочныеТипы Цикл
+ СоответствиеОбъектовМетаданныхИСсылочныхТипов.Вставить(Эл.Значение, Эл.Ключ);
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура ЗаполнитьПользователейИБ()
+ НаборПользователиИБ = ПользователиИнформационнойБазы.ПолучитьПользователей();
+
+ Для Каждого ПользовательИБ Из НаборПользователиИБ Цикл
+
+ НоваяСтрока = ПользователиИБ.Добавить();
+ НоваяСтрока.ПолноеИмя = ПользовательИБ.ПолноеИмя;
+ НоваяСтрока.Имя = ПользовательИБ.Имя;
+ НоваяСтрока.АутентификацияСтандартная = ПользовательИБ.АутентификацияСтандартная;
+ НоваяСтрока.АутентификацияОС = ПользовательИБ.АутентификацияОС;
+ //НоваяСтрока.ИдентификаторПользователяИБ = ПользовательИБ.УникальныйИдентификатор;
+ НоваяСтрока.ПользовательОС = ПользовательИБ.ПользовательОС;
+ //НоваяСтрока.АутентификацияOpenID = ПользовательИБ.АутентификацияOpenID;
+
+ СтрокаРолей = "";
+ Для Каждого Роль Из ПользовательИБ.Роли Цикл
+ СтрокаРолей = СтрокаРолей + Роль.Имя+", ";
+ КонецЦикла;
+ Если Не ПустаяСтрока(СтрокаРолей) Тогда
+ СтрокаРолей = Лев(СтрокаРолей, СтрДлина(СтрокаРолей)-2);
+ КонецЕсли;
+ НоваяСтрока.Роли = СтрокаРолей;
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Процедура производит заполнение дерева описания классов объектов метаданных
+//
+// Параметры
+//
+Процедура ЗаполнитьОписаниеМетаданных()
+
+ СтэкДереваЗначенийСтроки = Новый Массив;
+ МетаданныеОписание = Новый ДеревоЗначений;
+ МетаданныеОписание.Колонки.Добавить("Выгружаемый", Новый ОписаниеТипов("Булево"));
+ МетаданныеОписание.Колонки.Добавить("ДляЗапроса", Новый ОписаниеТипов("Строка"));
+ МетаданныеОписание.Колонки.Добавить("Класс", Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(100, ДопустимаяДлина.Переменная)));
+ МетаданныеОписание.Колонки.Добавить("Менеджер");
+ МетаданныеОписание.Колонки.Добавить("Свойства", Новый ОписаниеТипов("СписокЗначений"));
+ МетаданныеОписание.Колонки.Добавить("ИндексКартинки");
+ СтэкДереваЗначенийСтроки.Вставить(0, МетаданныеОписание.Строки);
+ //////////////////////////////////
+ // Конфигурации
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Конфигурации";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.ИндексКартинки = 0;
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.Константы
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Константы";
+ //ОписаниеКласса.Выгружаемый = истина;
+ //ОписаниеКласса.Менеджер = Константы;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.ИндексКартинки = 1;
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ //////////////////////////////////
+ // Конфигурации.Справочники
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Справочники";
+ ОписаниеКласса.Выгружаемый = истина;
+ ОписаниеКласса.Менеджер = Справочники;
+ ОписаниеКласса.ДляЗапроса = ВернутьЗначениеСоответствия("Справочник") + ".";
+ ОписаниеКласса.Свойства.Добавить("Владельцы");
+ ОписаниеКласса.Свойства.Добавить("ВводитсяНаОсновании");
+ ОписаниеКласса.ИндексКартинки = 3;
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.Справочники.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ ОписаниеКласса.Свойства.Добавить("Использование");
+ //////////////////////////////////
+ // Конфигурации.Справочники.ТабличныеЧасти
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "ТабличныеЧасти";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Использование");
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.Справочники.ТабличныеЧасти.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ СтэкДереваЗначенийСтроки.Удалить(0);
+ СтэкДереваЗначенийСтроки.Удалить(0);
+ //////////////////////////////////
+ // Конфигурации.Документы
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Документы";
+ ОписаниеКласса.Выгружаемый = истина;
+ ОписаниеКласса.Менеджер = Документы;
+ ОписаниеКласса.ДляЗапроса = ВернутьЗначениеСоответствия("Документ") + ".";
+ ОписаниеКласса.Свойства.Добавить("ВводитсяНаОсновании");
+ ОписаниеКласса.Свойства.Добавить("Движения");
+ ОписаниеКласса.ИндексКартинки = 7;
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.Документы.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ //////////////////////////////////
+ // Конфигурации.Документы.ТабличныеЧасти
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "ТабличныеЧасти";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.Документы.ТабличныеЧасти.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ СтэкДереваЗначенийСтроки.Удалить(0);
+ СтэкДереваЗначенийСтроки.Удалить(0);
+
+ //////////////////////////////////
+ // Конфигурации.Последовательности
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Последовательности";
+ //ОписаниеКласса.Выгружаемый = истина;
+ //ОписаниеКласса.Менеджер = Последовательности;
+ //ОписаниеКласса.ДляЗапроса = "Последовательность.";
+ //ОписаниеКласса.Свойства.Добавить("Документы");
+ //ОписаниеКласса.Свойства.Добавить("Движения");
+ //ОписаниеКласса.ИндексКартинки = 5;
+ //СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ ////////////////////////////////////
+ //// Конфигурации.Последовательности.Измерения
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Измерения";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ //ОписаниеКласса.Свойства.Добавить("СоответствиеДокументам");
+ //ОписаниеКласса.Свойства.Добавить("СоответствиеДвижениям");
+ //СтэкДереваЗначенийСтроки.Удалить(0);
+ ////////////////////////////////////
+ //// Конфигурации.ПланыВидовХарактеристик
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "ПланыВидовХарактеристик";
+ //ОписаниеКласса.Выгружаемый = истина;
+ //ОписаниеКласса.Менеджер = ПланыВидовХарактеристик;
+ //ОписаниеКласса.ДляЗапроса = "ПланВидовХарактеристик.";
+ //ОписаниеКласса.Свойства.Добавить("ДополнительныеЗначенияХарактеристик");
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ //ОписаниеКласса.Свойства.Добавить("ВводитсяНаОсновании");
+ //ОписаниеКласса.ИндексКартинки = 9;
+ //СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ ////////////////////////////////////
+ //// Конфигурации.ПланыВидовХарактеристик.Реквизиты
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Реквизиты";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ //ОписаниеКласса.Свойства.Добавить("Использование");
+ ////////////////////////////////////
+ //// Конфигурации.ПланыВидовХарактеристик.ТабличныеЧасти
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "ТабличныеЧасти";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.Свойства.Добавить("Использование");
+ //СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ ////////////////////////////////////
+ //// Конфигурации.ПланыВидовХарактеристик.ТабличныеЧасти.Реквизиты
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Реквизиты";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ //СтэкДереваЗначенийСтроки.Удалить(0);
+ //СтэкДереваЗначенийСтроки.Удалить(0);
+ ////////////////////////////////////
+ //// Конфигурации.ПланыСчетов
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "ПланыСчетов";
+ //ОписаниеКласса.Выгружаемый = истина;
+ //ОписаниеКласса.Менеджер = ПланыСчетов;
+ //ОписаниеКласса.ДляЗапроса = "ПланСчетов.";
+ //ОписаниеКласса.Свойства.Добавить("ВводитсяНаОсновании");
+ //ОписаниеКласса.Свойства.Добавить("ВидыСубконто");
+ //ОписаниеКласса.ИндексКартинки = 11;
+ //СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ ////////////////////////////////////
+ //// Конфигурации.ПланыСчетов.Реквизиты
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Реквизиты";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ ////////////////////////////////////
+ //// Конфигурации.ПланыСчетов.ТабличныеЧасти
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "ТабличныеЧасти";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ ////////////////////////////////////
+ //// Конфигурации.ПланыСчетов.ТабличныеЧасти.Реквизиты
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Реквизиты";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ //СтэкДереваЗначенийСтроки.Удалить(0);
+ //СтэкДереваЗначенийСтроки.Удалить(0);
+ ////////////////////////////////////
+ //// Конфигурации.ПланыВидовРасчета
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "ПланыВидовРасчета";
+ //ОписаниеКласса.Выгружаемый = истина;
+ //ОписаниеКласса.Менеджер = ПланыВидовРасчета;
+ //ОписаниеКласса.ДляЗапроса = "ПланВидовРасчета.";
+ //ОписаниеКласса.Свойства.Добавить("ВводитсяНаОсновании");
+ //ОписаниеКласса.Свойства.Добавить("ЗависимостьОтВидовРасчета");
+ //ОписаниеКласса.Свойства.Добавить("БазовыеВидыРасчета");
+ //ОписаниеКласса.Свойства.Добавить("ИспользованиеПериодаДействия");
+ //ОписаниеКласса.ИндексКартинки = 13;
+ //СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ ////////////////////////////////////
+ //// Конфигурации.ПланыВидовРасчета.Реквизиты
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Реквизиты";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ ////////////////////////////////////
+ //// Конфигурации.ПланыВидовРасчета.ТабличныеЧасти
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "ТабличныеЧасти";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ ////////////////////////////////////
+ //// Конфигурации.ПланыВидовРасчета.ТабличныеЧасти.Реквизиты
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Реквизиты";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ //СтэкДереваЗначенийСтроки.Удалить(0);
+ //СтэкДереваЗначенийСтроки.Удалить(0);
+ //////////////////////////////////
+ // Конфигурации.РегистрыСведений
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "РегистрыСведений";
+ ОписаниеКласса.Выгружаемый = истина;
+ ОписаниеКласса.Менеджер = РегистрыСведений;
+ ОписаниеКласса.ДляЗапроса = "РегистрСведений.";
+ ОписаниеКласса.ИндексКартинки = 15;
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.РегистрыСведений.Ресурсы
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Ресурсы";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ //////////////////////////////////
+ // Конфигурации.РегистрыСведений.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ //////////////////////////////////
+ // Конфигурации.РегистрыСведений.Измерения
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Измерения";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ СтэкДереваЗначенийСтроки.Удалить(0);
+ //////////////////////////////////
+ // Конфигурации.РегистрыНакопления
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "РегистрыНакопления";
+ ОписаниеКласса.Выгружаемый = истина;
+ ОписаниеКласса.Менеджер = РегистрыНакопления;
+ ОписаниеКласса.ДляЗапроса = "РегистрНакопления.";
+ ОписаниеКласса.ИндексКартинки = 17;
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.РегистрыНакопления.Ресурсы
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Ресурсы";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ //////////////////////////////////
+ // Конфигурации.РегистрыНакопления.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ //////////////////////////////////
+ // Конфигурации.РегистрыНакопления.Измерения
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Измерения";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ СтэкДереваЗначенийСтроки.Удалить(0);
+ //////////////////////////////////
+ // Конфигурации.РегистрыБухгалтерии
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "РегистрыБухгалтерии";
+ ОписаниеКласса.Выгружаемый = истина;
+ ОписаниеКласса.Менеджер = РегистрыБухгалтерии;
+ ОписаниеКласса.ДляЗапроса = "РегистрБухгалтерии.";
+ ОписаниеКласса.Свойства.Добавить("ПланСчетов");
+ ОписаниеКласса.Свойства.Добавить("Корреспонденция");
+ ОписаниеКласса.ИндексКартинки = 19;
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.РегистрыБухгалтерии.Измерения
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Измерения";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ //////////////////////////////////
+ // Конфигурации.РегистрыБухгалтерии.Ресурсы
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Ресурсы";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ //////////////////////////////////
+ // Конфигурации.РегистрыБухгалтерии.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ СтэкДереваЗначенийСтроки.Удалить(0);
+ ////////////////////////////////////
+ //// Конфигурации.РегистрыРасчета
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "РегистрыРасчета";
+ //ОписаниеКласса.Выгружаемый = истина;
+ //ОписаниеКласса.Менеджер = РегистрыРасчета;
+ //ОписаниеКласса.ДляЗапроса = "РегистрРасчета.";
+ //ОписаниеКласса.Свойства.Добавить("Периодичность");
+ //ОписаниеКласса.Свойства.Добавить("ПериодДействия");
+ //ОписаниеКласса.Свойства.Добавить("БазовыйПериод");
+ //ОписаниеКласса.Свойства.Добавить("График");
+ //ОписаниеКласса.Свойства.Добавить("ЗначениеГрафика");
+ //ОписаниеКласса.Свойства.Добавить("ДатаГрафика");
+ //ОписаниеКласса.Свойства.Добавить("ПланВидовРасчета");
+ //ОписаниеКласса.ИндексКартинки = 21;
+ //СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ ////////////////////////////////////
+ //// Конфигурации.РегистрыРасчета.Ресурсы
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Ресурсы";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ ////////////////////////////////////
+ //// Конфигурации.РегистрыРасчета.Реквизиты
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Реквизиты";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ //ОписаниеКласса.Свойства.Добавить("СвязьСГрафиком");
+ ////////////////////////////////////
+ //// Конфигурации.РегистрыРасчета.Измерения
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Измерения";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.ДляЗапроса = "";
+ //ОписаниеКласса.Свойства.Добавить("Тип");
+ //ОписаниеКласса.Свойства.Добавить("БазовоеИзмерение");
+ //ОписаниеКласса.Свойства.Добавить("СвязьСГрафиком");
+ //////////////////////////////////
+ // Конфигурации.РегистрыРасчета.Перерасчеты
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Перерасчеты";
+ //ОписаниеКласса.Выгружаемый = истина;
+ //ОписаниеКласса.Менеджер = "РегистрыРасчета.%i.Перерасчеты";
+ //ОписаниеКласса.ДляЗапроса = "РегистрРасчета.%i.";
+ //СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.РегистрыРасчета.Перерасчеты.Измерения
+ //ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ //ОписаниеКласса.Класс = "Измерения";
+ //ОписаниеКласса.Выгружаемый = ложь;
+ //ОписаниеКласса.Свойства.Добавить("ДанныеВедущихРегистров");
+ //ОписаниеКласса.Свойства.Добавить("ИзмерениеРегистра");
+ //СтэкДереваЗначенийСтроки.Удалить(0);
+ //СтэкДереваЗначенийСтроки.Удалить(0);
+ //////////////////////////////////
+ // Конфигурации.БизнесПроцессы
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "БизнесПроцессы";
+ ОписаниеКласса.Выгружаемый = истина;
+ ОписаниеКласса.Менеджер = БизнесПроцессы;
+ ОписаниеКласса.ДляЗапроса = "БизнесПроцесс.";
+ ОписаниеКласса.Свойства.Добавить("ВводитсяНаОсновании");
+ ОписаниеКласса.Свойства.Добавить("Задача");
+ ОписаниеКласса.ИндексКартинки = 23;
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.БизнесПроцессы.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ //////////////////////////////////
+ // Конфигурации.БизнесПроцессы.ТабличныеЧасти
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "ТабличныеЧасти";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.БизнесПроцессы.ТабличныеЧасти.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ СтэкДереваЗначенийСтроки.Удалить(0);
+ СтэкДереваЗначенийСтроки.Удалить(0);
+ //////////////////////////////////
+ // Конфигурации.Задачи
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Задачи";
+ ОписаниеКласса.Выгружаемый = истина;
+ ОписаниеКласса.Менеджер = Задачи;
+ ОписаниеКласса.ДляЗапроса = "Задача.";
+ ОписаниеКласса.Свойства.Добавить("Адресация");
+ ОписаниеКласса.Свойства.Добавить("ОсновнойРеквизитАдресации");
+ ОписаниеКласса.Свойства.Добавить("ТекущийИсполнитель");
+ ОписаниеКласса.Свойства.Добавить("ВводитсяНаОсновании");
+ ОписаниеКласса.ИндексКартинки = 25;
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.Задачи.РеквизитыАдресации
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "РеквизитыАдресации";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ ОписаниеКласса.Свойства.Добавить("ИзмерениеАдресации");
+ //////////////////////////////////
+ // Конфигурации.Задачи.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ //////////////////////////////////
+ // Конфигурации.Задачи.ТабличныеЧасти
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "ТабличныеЧасти";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.Задачи.ТабличныеЧасти.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ СтэкДереваЗначенийСтроки.Удалить(0);
+ СтэкДереваЗначенийСтроки.Удалить(0);
+
+ //////////////////////////////////
+ // Конфигурации.ПланыОбмена
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "ПланыОбмена";
+ ОписаниеКласса.Выгружаемый = истина;
+ ОписаниеКласса.Менеджер = ПланыОбмена;
+ ОписаниеКласса.ДляЗапроса = "ПланОбмена.";
+ ОписаниеКласса.Свойства.Добавить("ВводитсяНаОсновании");
+ ОписаниеКласса.ИндексКартинки = 27;
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.ПланыОбмена.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ //////////////////////////////////
+ // Конфигурации.ПланыОбмена.ТабличныеЧасти
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "ТабличныеЧасти";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ СтэкДереваЗначенийСтроки.Вставить(0, ОписаниеКласса.Строки);
+ //////////////////////////////////
+ // Конфигурации.ПланыОбмена.ТабличныеЧасти.Реквизиты
+ ОписаниеКласса = СтэкДереваЗначенийСтроки[0].Добавить();
+ ОписаниеКласса.Класс = "Реквизиты";
+ ОписаниеКласса.Выгружаемый = ложь;
+ ОписаниеКласса.ДляЗапроса = "";
+ ОписаниеКласса.Свойства.Добавить("Тип");
+ СтэкДереваЗначенийСтроки.Удалить(0);
+ СтэкДереваЗначенийСтроки.Удалить(0);
+
+ СтэкДереваЗначенийСтроки.Удалить(0);
+
+КонецПроцедуры
+
+// Процедура заполняет строку дерева метаданных, попутно заполняя соответствие ссылочных типов объектам метаданных
+//
+// Параметры
+// ОбъектМД - описание объекта метаданных
+// ЭлементДЗ - заполняемая строка дерева метаданных
+// ЭлементОписания - описание класса, к которому принадлежит объект метаданных (свойства, подчиненные классы)
+//
+Процедура ПостроениеПоддереваОбъекта(ОбъектМД, ЭлементДЗ, ЭлементОписания)
+
+ ЭлементДЗ.Метаданные = ОбъектМД;
+ ЭлементДЗ.ОбъектМД = ОбъектМД;
+ ЭлементДЗ.ПолноеИмяМетаданных = ОбъектМД.Имя;
+ ЭлементДЗ.ЭлементОписания = ЭлементОписания;
+ ЭлементДЗ.Выгружать = Ложь;
+ ЭлементДЗ.ВыгружатьПриНеобходимости = Истина;
+ ЭлементДЗ.ИндексКартинки = ЭлементОписания.ИндексКартинки;
+
+ Если ЭлементОписания.Менеджер <> Неопределено Тогда
+
+ // заполнение соответствия ссылочных типов объектам метаданных
+ Если ОбъектОбразуетСсылочныйТип(ОбъектМД) Тогда
+ СсылочныеТипы[ТипЗнч(ЭлементОписания.Менеджер[ОбъектМД.Имя].ПустаяСсылка())] = ОбъектМД;
+ КонецЕсли;
+
+ //Если Метаданные.РегистрыНакопления.Содержит(ОбъектМД)
+ // Или Метаданные.РегистрыБухгалтерии.Содержит(ОбъектМД) Тогда
+ //
+ // ИспользующиеИтоги.Добавить(ЭлементДЗ);
+ //
+ //КонецЕсли;
+
+ КонецЕсли;
+
+ // подчиненные ветви
+ Для Каждого ПодчиненныйКласс Из ЭлементОписания.Строки Цикл
+
+ Если Не ПодчиненныйКласс.Выгружаемый Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ВеткаКласса = ЭлементДЗ.Строки.Добавить();
+ ВеткаКласса.Метаданные = ПодчиненныйКласс.Класс;
+ ВеткаКласса.Выгружать = Ложь;
+ ВеткаКласса.ВыгружатьПриНеобходимости = Истина;
+ ВеткаКласса.ПолноеИмяМетаданных = ПодчиненныйКласс.Класс;
+ ВеткаКласса.ИндексКартинки = ПодчиненныйКласс.ИндексКартинки;
+
+ ПодчиненныеОбъектыДанногоКласса = ОбъектМД[ПодчиненныйКласс.Класс];
+
+ Для Каждого ПодчиненныйОбъектМД Из ПодчиненныеОбъектыДанногоКласса Цикл
+
+ //Если Метаданные.РегистрыСведений.Содержит(ПодчиненныйОбъектМД) Тогда
+ // Если ПодчиненныйОбъектМД.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору Тогда
+ // Продолжить;
+ // КонецЕсли;
+ //КонецЕсли;
+
+ ПодчиненныйЭлементДЗ = ВеткаКласса.Строки.Добавить();
+ ПостроениеПоддереваОбъекта(ПодчиненныйОбъектМД, ПодчиненныйЭлементДЗ, ПодчиненныйКласс);
+ КонецЦикла;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Процедура удаляет из дерева метаданных строки, соответствующие метаданным, заведомо не попадающим в выгрузку
+//
+// Параметры
+// ЭлементДЗ - строка дерева метаданных, подчиненные которой рассматриваются
+// с точки зрения удаления из списка потенциально выгружаемых
+//
+Процедура СверткаПоддереваОбъекта(ЭлементДЗ)
+
+ УдаляемыеВеткиКлассов = Новый Массив;
+ Для Каждого ВеткаКласса Из ЭлементДЗ.Строки Цикл
+
+ УдаляемыеПодчиненныеМД = Новый Массив;
+
+ Для Каждого ПодчиненныйОбъектМД Из ВеткаКласса.Строки Цикл
+ СверткаПоддереваОбъекта(ПодчиненныйОбъектМД);
+ Если (ПодчиненныйОбъектМД.Строки.Количество()) = 0
+ и (Не ПодчиненныйОбъектМД.ЭлементОписания.Выгружаемый) Тогда
+
+ УдаляемыеПодчиненныеМД.Добавить(ВеткаКласса.Строки.Индекс(ПодчиненныйОбъектМД));
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Для Сч = 1 По УдаляемыеПодчиненныеМД.Количество() Цикл
+ ВеткаКласса.Строки.Удалить(УдаляемыеПодчиненныеМД[УдаляемыеПодчиненныеМД.Количество() - Сч]);
+ КонецЦикла;
+
+ Если ВеткаКласса.Строки.Количество() = 0 Тогда
+ УдаляемыеВеткиКлассов.Добавить(ЭлементДЗ.Строки.Индекс(ВеткаКласса));
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Для Сч = 1 По УдаляемыеВеткиКлассов.Количество() Цикл
+ ЭлементДЗ.Строки.Удалить(УдаляемыеВеткиКлассов[УдаляемыеВеткиКлассов.Количество() - Сч]);
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Функция определяет имеет ли переданный объект метаданных ссылочный тип
+//
+// Возврат - Истина, если переданный объект метаданных имеет ссылочный тип, Ложь - противном случае
+Функция ОбъектОбразуетСсылочныйТип(ОбъектМД) Экспорт
+
+ Если ОбъектМД = Неопределено Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Если Метаданные.Справочники.Содержит(ОбъектМД)
+ ИЛИ Метаданные.Документы.Содержит(ОбъектМД)
+ ИЛИ Метаданные.ПланыВидовХарактеристик.Содержит(ОбъектМД)
+ ИЛИ Метаданные.ПланыСчетов.Содержит(ОбъектМД)
+ ИЛИ Метаданные.ПланыВидовРасчета.Содержит(ОбъектМД)
+ ИЛИ Метаданные.ПланыОбмена.Содержит(ОбъектМД)
+ ИЛИ Метаданные.БизнесПроцессы.Содержит(ОбъектМД)
+ ИЛИ Метаданные.Задачи.Содержит(ОбъектМД) Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ Возврат Ложь;
+КонецФункции
+
+// Процедура обрабатывает состояние признака Выгрузка, проставляя признаки Выгрузка и ВыгружатьПриНеобходимости
+// связанным ветвям дерева
+//
+// Параметры
+// ЭлементДЗ - строка дерева метаданных
+//
+Процедура ОбработкаИзмененияСостоянияВыгружать(ЭлементДЗ) Экспорт
+ Если ЭлементДЗ.Выгружать = 2 Тогда
+ ЭлементДЗ.Выгружать = 0;
+ КонецЕсли;
+ // Изменяем состояние "вниз"
+ УстановитьВыгружатьПодчиненным(ЭлементДЗ);
+ // Изменяем состояние "вверх"
+ ОбновитьСостояниеВыгружать(ЭлементДЗ.Родитель);
+КонецПроцедуры
+
+// Процедура обрабатывает состояние признака Выгрузка, проставляя признаки Выгрузка и ВыгружатьПриНеобходимости
+// связанным ветвям дерева
+//
+// Параметры
+// ЭлементДЗ - строка дерева метаданных
+//
+Процедура ОбработкаИзмененияСостоянияВыгружатьПриНеобходимости(ЭлементДЗ) Экспорт
+
+ Если ЭлементДЗ.ВыгружатьПриНеобходимости = 2 Тогда
+ ЭлементДЗ.ВыгружатьПриНеобходимости = 0;
+ КонецЕсли;
+
+ // Изменяем состояние "вниз"
+ УстановитьВыгружатьПриНеобходимостиПодчиненным(ЭлементДЗ);
+ // Изменяем состояние "вверх"
+ ОбновитьСостояниеВыгружатьПриНеобходимости(ЭлементДЗ.Родитель);
+
+КонецПроцедуры
+
+// Процедура проставляет признак Выгрузка строкам дерева метаданных, подчиненных данной, вычисляет и
+// выставляет признак выгрузки "по ссылке" другим объектам, ссылки на которые может или должен
+// содержать объект, соответствующий данной строке
+//
+// Параметры
+// ЭлементДЗ - строка дерева метаданных
+//
+Процедура УстановитьВыгружатьПодчиненным(ЭлементДЗ)
+ Для Каждого ПодчиненнаяСтрока Из ЭлементДЗ.Строки Цикл
+ ПодчиненнаяСтрока.Выгружать = ЭлементДЗ.Выгружать;
+ УстановитьВыгружатьПодчиненным(ПодчиненнаяСтрока);
+ КонецЦикла;
+КонецПроцедуры
+
+// Процедура проставляет признак Выгрузка строке дерева метаданных на основании этого признака подчиненных строк,
+// затем вызывает себя же для родителя, обеспечивая отработку до корня дерева
+//
+// Параметры
+// ЭлементДЗ - строка дерева метаданных
+//
+Процедура ОбновитьСостояниеВыгружать(ЭлементДЗ)
+ Если ЭлементДЗ = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+ Если (ЭлементДЗ.ЭлементОписания <> Неопределено) И ЭлементДЗ.ЭлементОписания.Выгружаемый Тогда
+ Возврат; // обновляем вверх или до корня, или до первого встретившегося выгружаемого
+ КонецЕсли;
+ Состояние = Неопределено;
+ Для Каждого ПодчиненныйЭлементДЗ Из ЭлементДЗ.Строки Цикл
+ Если Состояние = Неопределено Тогда
+ Состояние = ПодчиненныйЭлементДЗ.Выгружать;
+ Иначе
+ Если Не Состояние = ПодчиненныйЭлементДЗ.Выгружать Тогда
+ Состояние = 2;
+ Прервать;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если Состояние <> Неопределено Тогда
+ ЭлементДЗ.Выгружать = Состояние;
+ ОбновитьСостояниеВыгружать(ЭлементДЗ.Родитель);
+ КонецЕсли;
+КонецПроцедуры
+
+// Процедура проставляет признак Выгрузка строкам дерева метаданных, подчиненных данной, вычисляет и
+// выставляет признак выгрузки "по ссылке" другим объектам, ссылки на которые может или должен
+// содержать объект, соответствующий данной строке
+//
+// Параметры
+// ЭлементДЗ - строка дерева метаданных
+//
+Процедура УстановитьВыгружатьПриНеобходимостиПодчиненным(ЭлементДЗ)
+
+ Для Каждого ПодчиненнаяСтрока Из ЭлементДЗ.Строки Цикл
+ ПодчиненнаяСтрока.ВыгружатьПриНеобходимости = ЭлементДЗ.ВыгружатьПриНеобходимости;
+ УстановитьВыгружатьПриНеобходимостиПодчиненным(ПодчиненнаяСтрока);
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Процедура проставляет признак Выгрузка строке дерева метаданных на основании этого признака подчиненных строк,
+// затем вызывает себя же для родителя, обеспечивая отработку до корня дерева
+//
+// Параметры
+// ЭлементДЗ - строка дерева метаданных
+//
+Процедура ОбновитьСостояниеВыгружатьПриНеобходимости(ЭлементДЗ)
+
+ Если ЭлементДЗ = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если (ЭлементДЗ.ЭлементОписания <> Неопределено) И ЭлементДЗ.ЭлементОписания.Выгружаемый Тогда
+ Возврат; // обновляем вверх или до корня, или до первого встретившегося выгружаемого
+ КонецЕсли;
+
+ Состояние = Неопределено;
+ Для Каждого ПодчиненныйЭлементДЗ Из ЭлементДЗ.Строки Цикл
+
+ Если Состояние = Неопределено Тогда
+ Состояние = ПодчиненныйЭлементДЗ.ВыгружатьПриНеобходимости;
+ Иначе
+ Если Не Состояние = ПодчиненныйЭлементДЗ.ВыгружатьПриНеобходимости Тогда
+ Состояние = 2;
+ Прервать;
+ КонецЕсли;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Если Состояние <> Неопределено Тогда
+ ЭлементДЗ.ВыгружатьПриНеобходимости = Состояние;
+ ОбновитьСостояниеВыгружатьПриНеобходимости(ЭлементДЗ.Родитель);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Функция ПодготовитьКомпоновщикДляВыгрузки(СтрокаДереваМетаданных, СтрокаПолейДляВыборки = "") Экспорт
+
+ Если ТипЗнч(СтрокаДереваМетаданных.НастройкиКомпоновщика) = Тип("ОтборКомпоновкиДанных") Тогда
+ ЕстьДопОтборы = Ложь;
+ Для Каждого ЭлементОтбора Из СтрокаДереваМетаданных.НастройкиКомпоновщика.Элементы Цикл
+ Если ЭлементОтбора.Использование Тогда
+ ЕстьДопОтборы = Истина;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ Иначе
+ ЕстьДопОтборы = (СтрокаДереваМетаданных.НастройкиКомпоновщика <> Неопределено);
+ КонецЕсли;
+
+ ИтоговыйТекстЗапроса = ПолучитьТекстЗапросаПоСтроке(СтрокаДереваМетаданных, ЕстьДопОтборы, СтрокаПолейДляВыборки);
+
+ СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
+ ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
+ ИсточникДанных.Имя = "ТекущаяБаза";
+ ИсточникДанных.СтрокаСоединения = "";
+ ИсточникДанных.ТипИсточникаДанных = "Local";
+ НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
+ НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина;
+ НаборДанных.Запрос = ИтоговыйТекстЗапроса;
+ НаборДанных.Имя = "ОсновнойЗапрос";
+ НаборДанных.ИсточникДанных = "ТекущаяБаза";
+
+ Если ЕстьДопОтборы Тогда
+
+ НастройкиКомпоновщикаXDTO = СериализаторXDTO.ЗаписатьXDTO(СтрокаДереваМетаданных.НастройкиКомпоновщика);
+ СКДXDTO = СериализаторXDTO.ЗаписатьXDTO(СхемаКомпоновкиДанных);
+ СКДXDTO.defaultSettings = СКДXDTO.settingsVariant[0].settings;
+ СКДXDTO.defaultSettings.filter = НастройкиКомпоновщикаXDTO;
+ СхемаКомпоновкиДанных = СериализаторXDTO.ПрочитатьXDTO(СКДXDTO);
+
+ КонецЕсли;
+
+ ПараметрДатаНачала = Новый ПараметрКомпоновкиДанных("ДатаНачала");
+ ПараметрДатаОкончания = Новый ПараметрКомпоновкиДанных("ДатаОкончания");
+
+ СхемаКомпоновкиДанных.НастройкиПоУмолчанию.ПараметрыДанных.Элементы.Очистить();
+ Параметр = СхемаКомпоновкиДанных.НастройкиПоУмолчанию.ПараметрыДанных.Элементы.Добавить();
+ Параметр.Параметр = ПараметрДатаНачала;
+ Параметр.Значение = ДатаНачала;
+ Параметр.Использование = Истина;
+
+ Параметр = СхемаКомпоновкиДанных.НастройкиПоУмолчанию.ПараметрыДанных.Элементы.Добавить();
+ Параметр.Параметр = ПараметрДатаОкончания;
+ Параметр.Значение = ДатаОкончания;
+ Параметр.Использование = Истина;
+
+ Возврат СхемаКомпоновкиДанных; //ПостроительОтчета;
+
+КонецФункции
+
+Функция ПолучитьТекстЗапросаПоСтроке(СтрокаДереваМетаданных, ЕстьДопОтборы, СтрокаПолейДляВыборки = "") Экспорт
+
+ Если ТипЗнч(СтрокаДереваМетаданных) = Тип("ДанныеФормыЭлементДерева") Тогда
+ // Вызов из управляемой формы
+ РодительскийЭлемент = СтрокаДереваМетаданных.ПолучитьРодителя();
+ Иначе //СтрокаДереваЗначений
+ РодительскийЭлемент = СтрокаДереваМетаданных.Родитель;
+ КонецЕсли;
+ //ОбъектМетаданных = СтрокаДереваМетаданных.Метаданные;
+ ОбъектМетаданных = Метаданные[РодительскийЭлемент.ПолноеИмяМетаданных][СтрокаДереваМетаданных.ПолноеИмяМетаданных];
+ ИмяМетаданных = ОбъектМетаданных.ПолноеИмя();
+
+ Если Метаданные.РегистрыСведений.Содержит(ОбъектМетаданных) Тогда
+
+ ТекстЗапроса = ПолучитьТекстЗапросаДляРегистраСведений(ИмяМетаданных, ОбъектМетаданных, ЕстьДопОтборы, СтрокаПолейДляВыборки);
+ Возврат ТекстЗапроса;
+
+ ИначеЕсли Метаданные.РегистрыНакопления.Содержит(ОбъектМетаданных)
+ ИЛИ Метаданные.РегистрыБухгалтерии.Содержит(ОбъектМетаданных) Тогда
+
+ ТекстЗапроса = ПолучитьТекстЗапросаДляРегистра(ИмяМетаданных, ОбъектМетаданных, ЕстьДопОтборы, СтрокаПолейДляВыборки);
+ Возврат ТекстЗапроса;
+
+ КонецЕсли;
+
+ ЕстьОграничениеПоДатам = ЗначениеЗаполнено(ДатаНачала) Или ЗначениеЗаполнено(ДатаОкончания);
+
+ Если НЕ ЗначениеЗаполнено(СтрокаПолейДляВыборки) Тогда
+ СтрокаПолейДляВыборки = "_.*";
+ КонецЕсли;
+
+ ТекстЗапроса = "ВЫБРАТЬ Разрешенные " + СтрокаПолейДляВыборки + " ИЗ " + ИмяМетаданных + " КАК _ ";
+
+ // возможно нужно ограничение по датам установить
+ Если ЕстьОграничениеПоДатам Тогда
+
+ Если ЕстьДопОтборы И
+ НЕ ИспользоватьОтборПоДатеДляВсехОбъектов Тогда
+
+ Возврат ТекстЗапроса;
+
+ КонецЕсли;
+
+ ДопОграничениеПоДате = "";
+
+ // можно ли для данного объекта МД сторить ограничения по датам
+ Если Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
+
+ ДопОграничениеПоДате = ПолучитьСтрокуОграниченияПоДатеДляЗапроса(ОбъектМетаданных, "Документ");
+
+ ИначеЕсли Метаданные.РегистрыБухгалтерии.Содержит(ОбъектМетаданных)
+ ИЛИ Метаданные.РегистрыНакопления.Содержит(ОбъектМетаданных) Тогда
+
+ ДопОграничениеПоДате = ПолучитьСтрокуОграниченияПоДатеДляЗапроса(ОбъектМетаданных, "Регистр");
+
+ КонецЕсли;
+
+ ТекстЗапроса = ТекстЗапроса + Символы.ПС + ДопОграничениеПоДате;
+
+ КонецЕсли;
+
+ Возврат ТекстЗапроса;
+
+КонецФункции
+
+Функция ПолучитьСтрокуОграниченияПоДатеДляЗапроса(Свойства, ИмяТипа) Экспорт
+
+ ИтоговоеОграничениеПоДате = "";
+ ИмяАлиасаТаблицы = "_";
+
+ Если НЕ (ИмяТипа = "Документ" ИЛИ ИмяТипа = "РегистрСведений" ИЛИ ИмяТипа = "Регистр") Тогда
+ Возврат ИтоговоеОграничениеПоДате;
+ КонецЕсли;
+
+ ИмяПоляОграничения = ИмяАлиасаТаблицы + "." + ?(ИмяТипа = "Документ", "Дата", "Период");
+
+ Если ЗначениеЗаполнено(ДатаНачала) Тогда
+
+ ИтоговоеОграничениеПоДате = "
+ | ГДЕ
+ | " + ИмяПоляОграничения + " >= &ДатаНачала";
+
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(ДатаОкончания) Тогда
+
+ Если ПустаяСтрока(ИтоговоеОграничениеПоДате) Тогда
+
+ ИтоговоеОграничениеПоДате = "
+ | ГДЕ
+ | " + ИмяПоляОграничения + " <= &ДатаОкончания";
+
+ Иначе
+
+ ИтоговоеОграничениеПоДате = ИтоговоеОграничениеПоДате + "
+ | И
+ | " + ИмяПоляОграничения + " <= &ДатаОкончания";
+
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Возврат ИтоговоеОграничениеПоДате;
+
+КонецФункции
+
+Функция ПолучитьТекстЗапросаДляРегистраСведений(ИмяМетаданных, ОбъектМетаданных, ЕстьДопОтборы, СтрокаПолейДляВыборки = "")
+
+ ЕстьОграничениеПоДатам = ЗначениеЗаполнено(ДатаНачала) Или ЗначениеЗаполнено(ДатаОкончания);
+
+ ВыбираемВсеПоля = НЕ ЗначениеЗаполнено(СтрокаПолейДляВыборки) или
+ ОбъектМетаданных.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору и СтрокаПолейДляВыборки = "Регистратор";
+
+ Если ВыбираемВсеПоля Тогда
+ МенеджерНабораЗаписей = Неопределено;
+ Выполнить("МенеджерНабораЗаписей = РегистрыСведений."+ОбъектМетаданных.Имя);
+
+ СтрокаПолейДляВыборки = " Различные " + ПолучитьСтрокуПолейОтбораРегистра(МенеджерНабораЗаписей);
+ Иначе
+ СтрокаПолейДляВыборки = " Различные " + СтрокаПолейДляВыборки;
+ КонецЕсли;
+
+ ТекстЗапроса = "ВЫБРАТЬ Разрешенные " + СтрокаПолейДляВыборки + " ИЗ " + ИмяМетаданных + " КАК _ ";
+
+ Если ОбъектМетаданных.ПериодичностьРегистраСведений = Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда
+ Возврат ТекстЗапроса;
+ КонецЕсли;
+
+ // 0 - отбор за период
+ // 1 - срез последних на дату окончания
+ // 2 - срез первых на дату начала
+ // 3 - срез последних на дату начала + отбор за период
+
+ Если ТипВыгрузкиПериодическихРегистров = 0 Тогда
+
+ Если ЕстьДопОтборы И
+ НЕ ИспользоватьОтборПоДатеДляВсехОбъектов Тогда
+
+ Возврат ТекстЗапроса;
+
+ КонецЕсли;
+
+ ДопОграничениеПоДате = ПолучитьСтрокуОграниченияПоДатеДляЗапроса(ОбъектМетаданных, "РегистрСведений");
+
+ ТекстЗапроса = ТекстЗапроса + Символы.ПС + ДопОграничениеПоДате;
+
+ ИначеЕсли ТипВыгрузкиПериодическихРегистров = 1 Тогда
+
+ ТекстЗапроса = "ВЫБРАТЬ Разрешенные " + СтрокаПолейДляВыборки + " ИЗ " + ИмяМетаданных + ".СрезПоследних(&ДатаОкончания) КАК _ ";
+
+ ИначеЕсли ТипВыгрузкиПериодическихРегистров = 2 Тогда
+
+ ТекстЗапроса = "ВЫБРАТЬ Разрешенные " + СтрокаПолейДляВыборки + " ИЗ " + ИмяМетаданных + ".СрезПервых(&ДатаНачала) КАК _ ";
+
+ ИначеЕсли ТипВыгрузкиПериодическихРегистров = 3 Тогда
+
+ ТекстЗапроса = "ВЫБРАТЬ Разрешенные " + СтрокаПолейДляВыборки + " ИЗ " + ИмяМетаданных + ".СрезПоследних(&ДатаНачала) КАК _
+ |
+ |Объединить все
+ |
+ |ВЫБРАТЬ " + СтрокаПолейДляВыборки + " ИЗ " + ИмяМетаданных + " КАК _ ";
+
+ ДопОграничениеПоДате = ПолучитьСтрокуОграниченияПоДатеДляЗапроса(ОбъектМетаданных, "РегистрСведений");
+
+ ТекстЗапроса = ТекстЗапроса + Символы.ПС + ДопОграничениеПоДате;
+
+ КонецЕсли;
+
+ Возврат ТекстЗапроса;
+
+КонецФункции
+
+Функция ПолучитьТекстЗапросаДляРегистра(ИмяМетаданных, ОбъектМетаданных, ЕстьДопОтборы, СтрокаПолейДляВыборки = "")
+
+ ЕстьОграничениеПоДатам = ЗначениеЗаполнено(ДатаНачала) Или ЗначениеЗаполнено(ДатаОкончания);
+
+ ВыбираемВсеПоля = НЕ ЗначениеЗаполнено(СтрокаПолейДляВыборки) или СтрокаПолейДляВыборки = "Регистратор";
+
+ Если ВыбираемВсеПоля Тогда
+ МенеджерНабораЗаписей = Неопределено;
+ Если НЕ (Метаданные.РегистрыНакопления.Содержит(ОбъектМетаданных)
+ ИЛИ Метаданные.РегистрыБухгалтерии.Содержит(ОбъектМетаданных)) Тогда
+ ВызватьИсключение "должны были передать либо регистр накопления либо регистр бухгалтерии";
+ КонецЕсли;
+
+ ИмяМенеджераРегистра = ?(Метаданные.РегистрыНакопления.Содержит(ОбъектМетаданных), "РегистрыНакопления", "РегистрыБухгалтерии");
+
+ Выполнить("МенеджерНабораЗаписей = "+ИмяМенеджераРегистра+"."+ОбъектМетаданных.Имя);
+
+ СтрокаПолейДляВыборки = " Различные " + ПолучитьСтрокуПолейОтбораРегистра(МенеджерНабораЗаписей);
+ Иначе
+ СтрокаПолейДляВыборки = " РАЗЛИЧНЫЕ " + СтрокаПолейДляВыборки;
+ КонецЕсли;
+
+ ТекстЗапроса = "ВЫБРАТЬ Разрешенные " + СтрокаПолейДляВыборки + " ИЗ " + ИмяМетаданных + " КАК _ ";
+
+ // возможно нужно ограничение по датам установить
+ Если ЕстьОграничениеПоДатам Тогда
+
+ Если ЕстьДопОтборы И
+ НЕ ИспользоватьОтборПоДатеДляВсехОбъектов Тогда
+
+ Возврат ТекстЗапроса;
+
+ КонецЕсли;
+
+ ДопОграничениеПоДате = ПолучитьСтрокуОграниченияПоДатеДляЗапроса(ОбъектМетаданных, "Регистр");
+
+ ТекстЗапроса = ТекстЗапроса + Символы.ПС + ДопОграничениеПоДате;
+
+ КонецЕсли;
+
+ Возврат ТекстЗапроса;
+
+КонецФункции
+
+// Процедура рекурсивно обрабатывает дерево метаданных, образуя списки полной и вспомогательной выгрузки
+//
+// Параметры
+//
+Процедура СоставВыгрузки(ПересчитатьВыгружаемыеПоСсылке = Ложь) Экспорт
+
+ СоставПолнойВыгрузки = Новый ТаблицаЗначений;
+ СоставПолнойВыгрузки.Колонки.Добавить("ОбъектМД");
+ СоставПолнойВыгрузки.Колонки.Добавить("СтрокаДерева");
+ СоставПолнойВыгрузки.Индексы.Добавить("ОбъектМД");
+
+ СоставВспомогательнойВыгрузки = Новый ТаблицаЗначений;
+ СоставВспомогательнойВыгрузки.Колонки.Добавить("ОбъектМД");
+ СоставВспомогательнойВыгрузки.Колонки.Добавить("СтрокаДерева");
+ СоставВспомогательнойВыгрузки.Индексы.Добавить("ОбъектМД");
+
+ Для Каждого СтрокаДЗ Из ДеревоМетаданных.Строки Цикл
+ ДобавитьВыгружаемыеОбъекты(СоставПолнойВыгрузки, СоставВспомогательнойВыгрузки, СтрокаДЗ);
+ КонецЦикла;
+
+ мНаличиеВыгрузкиПодчиненныхОбъектов = СоставВспомогательнойВыгрузки.Количество() > 0;
+
+ Если ПересчитатьВыгружаемыеПоСсылке Тогда
+
+ ПересчитатьВыгружаемыеПоСсылке(СоставПолнойВыгрузки);
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Процедура рекурсивно обрабатывает строку дерева метаданных, образуя списки полной и вспомогательной выгрузки
+//
+// Параметры
+// СоставПолнойВыгрузки - список полной выгрузки
+// СоставВспомогательнойВыгрузки - список вспомогательной выгрузки
+// СтрокаДЗ - обрабатываемая строка дерева метаданных
+//
+Процедура ДобавитьВыгружаемыеОбъекты(СоставПолнойВыгрузки, СоставВспомогательнойВыгрузки, СтрокаДЗ)
+
+ Если (СтрокаДЗ.ЭлементОписания <> Неопределено)
+ И СтрокаДЗ.ЭлементОписания.Выгружаемый Тогда
+
+ СтрокаДобавления = Неопределено;
+
+ Если СтрокаДЗ.Выгружать Тогда
+
+ СтрокаДобавления = СоставПолнойВыгрузки.Добавить();
+
+ КонецЕсли;
+ Если СтрокаДобавления <> Неопределено Тогда
+ СтрокаДобавления.ОбъектМД = СтрокаДЗ.ОбъектМД;
+ СтрокаДобавления.СтрокаДерева = СтрокаДЗ;
+
+ КонецЕсли;
+
+ Если СтрокаДЗ.ВыгружатьПриНеобходимости Тогда // нужно для иерархических метаданных и подгрузки родителей
+
+ СтрокаДобавления = СоставВспомогательнойВыгрузки.Добавить();
+
+ КонецЕсли;
+
+ Если СтрокаДобавления <> Неопределено Тогда
+ СтрокаДобавления.ОбъектМД = СтрокаДЗ.ОбъектМД;
+ СтрокаДобавления.СтрокаДерева = СтрокаДЗ;
+
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Для Каждого ПодчиненнаяСтрокаДЗ Из СтрокаДЗ.Строки Цикл
+ ДобавитьВыгружаемыеОбъекты(СоставПолнойВыгрузки, СоставВспомогательнойВыгрузки, ПодчиненнаяСтрокаДЗ);
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Процедура определяет, какие типы объектов следует выгружать для сохранения ссылочной целостности
+//
+// Параметры
+// Выгрузка - массив строк - совокупность выгружаемых объектов
+Процедура ПересчитатьВыгружаемыеПоСсылке(Выгрузка) Экспорт
+
+ // сброс всех флажков ВыгружатьПриНеобходимости
+ СтрокаКонфигурации = ДеревоМетаданных.Строки[0];
+ СтрокаКонфигурации.ВыгружатьПриНеобходимости = 0;
+ ОбработкаИзмененияСостоянияВыгружатьПриНеобходимости(СтрокаКонфигурации);
+ #Если Клиент Тогда
+ Состояние("Выполняется поиск объектов метаданных, которые могут быть выгружены по ссылкам...");
+ #КонецЕсли
+
+ КоллекцияУжеИспользованныхЭлементовДЗ = Новый Соответствие;
+
+ // обработка переданного набора объектов
+ Для Каждого Выгружаемый Из Выгрузка Цикл
+
+ УстановкаСостоянияВыгружатьПриНеобходимости(Выгружаемый.СтрокаДерева, КоллекцияУжеИспользованныхЭлементовДЗ);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Процедура определяет, на какие объект может ссылаться запись, соответствующая объекту метаданных, отображаемому
+// данной строкой дерева метаданных и проставляет им признак ВыгружатьПриНеобходимости
+//
+// Параметры
+// ЭлементДЗ - строка дерева метаданных
+//
+Процедура УстановкаСостоянияВыгружатьПриНеобходимости(ЭлементДЗ, КоллекцияУжеИспользованныхЭлементовДЗ)
+ Если КоллекцияУжеИспользованныхЭлементовДЗ.Получить(ЭлементДЗ) <> Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+ КоллекцияУжеИспользованныхЭлементовДЗ.Вставить(ЭлементДЗ, ЭлементДЗ);
+
+ ОбновитьСостояниеВыгружатьПриНеобходимости(ЭлементДЗ.Родитель);
+ Если ЭлементДЗ.Выгружать <> 1 И ЭлементДЗ.ВыгружатьПриНеобходимости <> 1 Тогда
+ Возврат;
+ КонецЕсли;
+ Если ЭлементДЗ.ОбъектМД = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ВсеТипы = ПолучитьВсеТипы(ЭлементДЗ);
+ Для Каждого СсылочныйТип Из ВсеТипы Цикл
+
+ ТипИОбъект = СсылочныеТипы.Получить(СсылочныйТип);
+ Если ТипИОбъект = Неопределено Тогда
+
+ ВызватьИсключение("Внутреняя ошибка. Неполное заполнение структуры ссылочных типов - " + СсылочныйТип);
+
+ КонецЕсли;
+
+ ОбъектМД = ТипИОбъект;
+ СтрокаДЗ = ЭлементДЗПоОбъектуМД(ОбъектМД);
+ Если СтрокаДЗ = Неопределено Тогда
+
+ ВызватьИсключение("Внутреняя ошибка. Неполное заполнение дерева метаданных. Отсутствует объект, образующий тип - " + СсылочныйТип);
+
+ КонецЕсли;
+
+ Если СтрокаДЗ.Выгружать = 1
+ И СтрокаДЗ.ВыгружатьПриНеобходимости = 1 Тогда
+
+ Продолжить;
+
+ КонецЕсли;
+
+ СтрокаДЗ.ВыгружатьПриНеобходимости = 1;
+ УстановкаСостоянияВыгружатьПриНеобходимости(СтрокаДЗ, КоллекцияУжеИспользованныхЭлементовДЗ);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Функция возвращает массив типов, которые могут иметь поля записи объекта метаданных, соответствующего строке дерева
+//
+// Параметры
+// ЭлементДЗ - строка дерева метаданных
+// Возврат - массив потенциально используемых соответствующей записью типов
+//
+Функция ПолучитьВсеТипы(ЭлементДЗ)
+
+ ОбъектМД = ЭлементДЗ.ОбъектМД;
+ Если ТипЗнч(ОбъектМД) <> Тип("ОбъектМетаданных")
+ И ТипЗнч(ОбъектМД) <> Тип("ОбъектМетаданныхКонфигурация") Тогда
+
+ ВызватьИсключение("Внутреняя ошибка обработки выгрузки");
+
+ КонецЕсли;
+
+ Возврат ПолучитьТипыИспользуемыеОМД(ОбъектМД, ЭлементДЗ.ЭлементОписания);
+
+КонецФункции
+
+// Функция возвращает строку дерева метаданных, соответствующую переданному объекту метаданных
+// Поиск осуществляется по всему дереву метаданных
+//
+// Параметры
+// ОбъектМД - описание метаданного
+// Возврат - строка дерева метаданных
+//
+Функция ЭлементДЗПоОбъектуМД(ОбъектМД)
+ Для Каждого СтрокаДЗ Из ДеревоМетаданных.Строки Цикл
+ ЭлементДЗ = ЭлементДЗПоОбъектуМДИСтроке(СтрокаДЗ, ОбъектМД);
+ Если ЭлементДЗ <> Неопределено Тогда
+ Возврат ЭлементДЗ;
+ КонецЕсли;
+ КонецЦикла;
+ Возврат Неопределено;
+КонецФункции
+
+// Функция возвращает массив типов, которые могут иметь поля записи объекта метаданных
+//
+// Параметры
+// ОбъектМД - описание метаданного
+// ЭлементОписания - описание класса объекта метаданного
+// Возврат - массив потенциально используемых соответствующей записью типов
+//
+Функция ПолучитьТипыИспользуемыеОМД(ОбъектМД, ЭлементОписания)
+
+ ВсеТипы = Новый Массив;
+
+ Для Каждого Свойство Из ЭлементОписания.Свойства Цикл
+
+ ЗначениеСвойства = ОбъектМД[Свойство.Значение];
+ Если ТипЗнч(ЗначениеСвойства) = Тип("КоллекцияЗначенийСвойстваОбъектаМетаданных") И ЗначениеСвойства.Количество() > 0 Тогда
+
+ Для Каждого СтрокаКоллекции Из ЗначениеСвойства Цикл
+
+ СсылочныйТипКлючИЗначение = СоответствиеОбъектовМетаданныхИСсылочныхТипов[СтрокаКоллекции];
+
+ Если СсылочныйТипКлючИЗначение <> Неопределено Тогда
+
+ ДобавитьВМассивЕслиУникальный(ВсеТипы, СсылочныйТипКлючИЗначение);
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+ ИначеЕсли ТипЗнч(ЗначениеСвойства) = Тип("ОбъектМетаданных") Тогда
+
+ Для Каждого СсылочныйТипКлючИЗначение Из СсылочныеТипы Цикл
+
+ Если ЗначениеСвойства = СсылочныйТипКлючИЗначение.Значение Тогда
+ ДобавитьВМассивЕслиУникальный(ВсеТипы, СсылочныйТипКлючИЗначение.Ключ);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Если КлассМДТипизированный(ЭлементОписания) Тогда
+
+ ОписаниеТипа = ОбъектМД.Тип;
+ Для Каждого ОдинТип Из ОписаниеТипа.Типы() Цикл
+
+ Если СсылочныйТип(ОдинТип) Тогда
+ ДобавитьВМассивЕслиУникальный(ВсеТипы, ОдинТип);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Иначе
+
+ Если Метаданные.РегистрыСведений.Содержит(ОбъектМД) Или
+ Метаданные.РегистрыНакопления.Содержит(ОбъектМД) Или
+ Метаданные.РегистрыБухгалтерии.Содержит(ОбъектМД) Или
+ Метаданные.РегистрыРасчета.Содержит(ОбъектМД) Тогда
+
+ // какой-то из регистров, ищем в возможных регистраторах
+ Для Каждого ДокументМД Из Метаданные.Документы Цикл
+
+ Если ДокументМД.Движения.Содержит(ОбъектМД) Тогда
+
+ ДобавитьВМассивЕслиУникальный(ВсеТипы, ТипЗнч(Документы[ДокументМД.Имя].ПустаяСсылка()));
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+ // нужно для иерархических метаданных и подгрузки родителей
+ ИначеЕсли Метаданные.Справочники.Содержит(ОбъектМД) И ОбъектМД.Иерархический Тогда
+ ДобавитьВМассивЕслиУникальный(ВсеТипы, ТипЗнч(Справочники[ОбъектМД.Имя].ПустаяСсылка()));
+ ИначеЕсли Метаданные.ПланыВидовХарактеристик.Содержит(ОбъектМД) И ОбъектМД.Иерархический Тогда
+ ДобавитьВМассивЕслиУникальный(ВсеТипы, ТипЗнч(ПланыВидовХарактеристик[ОбъектМД.Имя].ПустаяСсылка()));
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Для Каждого ПодчиненныйКласс Из ЭлементОписания.Строки Цикл
+
+ Для Каждого ПодчиненныйОбъектМД Из ОбъектМД[ПодчиненныйКласс.Класс] Цикл
+
+ ТипыПодчиненного = ПолучитьТипыИспользуемыеОМД(ПодчиненныйОбъектМД, ПодчиненныйКласс);
+ Для Каждого ОдинТип Из ТипыПодчиненного Цикл
+ ДобавитьВМассивЕслиУникальный(ВсеТипы, ОдинТип);
+ КонецЦикла;
+
+ КонецЦикла;
+
+ КонецЦикла;
+
+ Возврат ВсеТипы;
+
+КонецФункции
+
+// Функция возвращает строку дерева метаданных, соответствующую переданному объекту метаданных
+// Поиск осуществляется среди строк, подчиненных переданной
+//
+// Параметры
+// СтрокаДЗ - строка дерева метаданных, от которй осуществляется поиск
+// ОбъектМД - описание метаданного
+// Возврат - строка дерева метаданных
+//
+Функция ЭлементДЗПоОбъектуМДИСтроке(СтрокаДЗ, ОбъектМД)
+
+ Возврат СтрокаДЗ.Строки.Найти(ОбъектМД, "ОбъектМД", Истина);
+
+КонецФункции
+
+// Процедура добавляет в массив новый элемент, если он является уникальным
+//
+// Параметры
+// Массив - исследуемый тип
+// Элемент - добавляемый элемент
+//
+Процедура ДобавитьВМассивЕслиУникальный(Массив, Элемент)
+
+ Если Массив.Найти(Элемент) = Неопределено Тогда
+ Массив.Добавить(Элемент);
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Функция определяет, являются ли объекты данного класса метаданных типизированными
+//
+// Параметры
+// Описание - Описание класса
+// Возврат - Истина, если объекты данного класса метаданных типизированы, Ложь в противном случае
+//
+Функция КлассМДТипизированный(Описание)
+
+ Для Каждого Свойство Из Описание.Свойства Цикл
+ Если Свойство.Значение = "Тип" Тогда
+ Возврат Истина;
+ КонецЕсли;
+ КонецЦикла;
+ Возврат Ложь;
+
+КонецФункции
+
+Функция КлассМДИерархический(ОбъектМД)
+ Рез = Ложь;
+ Если ОбъектМД = Неопределено Тогда
+
+ ИначеЕсли Метаданные.Справочники.Содержит(ОбъектМД) И ОбъектМД.Иерархический Тогда
+ Рез = Истина;
+ ИначеЕсли Метаданные.ПланыВидовХарактеристик.Содержит(ОбъектМД) И ОбъектМД.Иерархический Тогда
+ Рез = Истина;
+ КонецЕсли;
+
+ Возврат Рез;
+КонецФункции
+
+// Функция определяет, являются ли тип ссылочным
+//
+// Параметры
+// Тип - исследуемый тип
+// Возврат - Истина, если тип ссылочный, Ложь в противном случае
+//
+Функция СсылочныйТип(Тип)
+
+ МетаданныеТипа = СсылочныеТипы.Получить(Тип);
+ Возврат МетаданныеТипа <> Неопределено;
+
+КонецФункции
+
+
+Процедура СоздатьПоМетаданным(массивДанных)
+
+ ОбработанныхКонстант = 0;
+ ОбработанныхНаборовЗаписей = 0;
+
+ ОбъектыВыгруженныеСОшибками = Новый Соответствие;
+ СоставВыгрузки();
+
+ мВыгруженныеОбъекты = Новый ТаблицаЗначений;
+ мВыгруженныеОбъекты.Колонки.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
+ мВыгруженныеОбъекты.Индексы.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
+
+
+ Если ОбъектыВыгруженныеСОшибками = Неопределено Тогда
+ ОбъектыВыгруженныеСОшибками = Новый Соответствие;
+ КонецЕсли;
+
+ //ОкноИсполнения = ПолучитьФорму("ОкноИсполнения");
+ //ОкноИсполненияОбщееКоличество = 1;
+ //ОкноИсполненияОбработано = 0;
+ //ОкноИсполнения.Открыть();
+
+ Попытка
+
+ Для Каждого СтрокаТаблицыВыгрузки Из СоставПолнойВыгрузки Цикл
+
+ СтрокаДереваМетаданных = СтрокаТаблицыВыгрузки.СтрокаДерева;
+
+ Если СтрокаДереваМетаданных.ЭлементОписания.Менеджер = Неопределено Тогда
+ ВызватьИсключение("Выгрузка данных. Внутренняя ошибка");
+ КонецЕсли;
+
+ Если Метаданные.Константы.Содержит(СтрокаДереваМетаданных.ОбъектМД) Тогда
+
+ //ЗаписьКонстанты(СтрокаДереваМетаданных.ОбъектМД, ОбъектыВыгруженныеСОшибками);
+
+ ИначеЕсли Метаданные.РегистрыСведений.Содержит(СтрокаДереваМетаданных.ОбъектМД) Или
+ Метаданные.РегистрыНакопления.Содержит(СтрокаДереваМетаданных.ОбъектМД) Или
+ Метаданные.РегистрыРасчета.Содержит(СтрокаДереваМетаданных.ОбъектМД) Тогда
+
+ ЗаписьРегистра(СтрокаДереваМетаданных, ОбъектыВыгруженныеСОшибками,, массивДанных);
+
+ ИначеЕсли Метаданные.РегистрыБухгалтерии.Содержит(СтрокаДереваМетаданных.ОбъектМД) Тогда
+
+ ЗаписьРегистра(СтрокаДереваМетаданных, ОбъектыВыгруженныеСОшибками, Истина, массивДанных);
+
+ ИначеЕсли ТипЗнч(СтрокаДереваМетаданных.ЭлементОписания.Менеджер) = Тип("Строка") Тогда
+ // специальный случай для перерасчетов
+ //ЗаписьПерерасчета(СтрокаДереваМетаданных, ОбъектыВыгруженныеСОшибками);
+
+ ИначеЕсли Метаданные.Последовательности.Содержит(СтрокаДереваМетаданных.ОбъектМД) Тогда
+
+ //ЗаписьПоследовательности(СтрокаДереваМетаданных, ОбъектыВыгруженныеСОшибками);
+
+ Иначе
+ ЗаписьДанныхОбъектногоТипа(СтрокаДереваМетаданных, ОбъектыВыгруженныеСОшибками, массивДанных);
+
+ КонецЕсли;
+
+ #Если Клиент Тогда
+ ОбработкаПрерыванияПользователя();
+ #КонецЕсли
+
+ КонецЦикла;
+
+ //ДополнительныеОбъектыДляВыгрузки.Сортировать("ИмяОбъектаДляЗапроса");
+ ТекущийМассивСсылок = Новый Массив();
+ ТекущееИмяЗапроса = "";
+
+
+ //Для Каждого СтрокаТаблицыВыгрузки Из ДополнительныеОбъектыДляВыгрузки Цикл
+ //
+ // Если НЕ ЗначениеЗаполнено(СтрокаТаблицыВыгрузки.Объект)
+ // ИЛИ НЕ ЗначениеЗаполнено(СтрокаТаблицыВыгрузки.ИмяОбъектаДляЗапроса) Тогда
+ //
+ // Продолжить;
+ //
+ // КонецЕсли;
+ //
+ // Если ТекущееИмяЗапроса <> СтрокаТаблицыВыгрузки.ИмяОбъектаДляЗапроса Тогда
+ //
+ // ВыгрузитьДанныеМассиваСсылок(ТекущийМассивСсылок, ТекущееИмяЗапроса, ОбъектыВыгруженныеСОшибками);
+ //
+ // ТекущийМассивСсылок = Новый массив();
+ // ТекущееИмяЗапроса = СтрокаТаблицыВыгрузки.ИмяОбъектаДляЗапроса;
+ //
+ // КонецЕсли;
+ //
+ // ТекущийМассивСсылок.Добавить(СтрокаТаблицыВыгрузки.Объект);
+ //
+ //КонецЦикла;
+
+ //ВыгрузитьДанныеМассиваСсылок(ТекущийМассивСсылок, ТекущееИмяЗапроса, ОбъектыВыгруженныеСОшибками);
+
+ Исключение
+ //ОкноИсполнения.Закрыть();
+ ВызватьИсключение;
+ КонецПопытки;
+
+ //ОкноИсполнения.Закрыть();
+ #Если Клиент Тогда
+ Состояние();
+ #КонецЕсли
+
+КонецПроцедуры
+
+Процедура ЗаписьДанныхОбъектногоТипа(СтрокаДереваМетаданных, ОбъектыВыгруженныеСОшибками, массивДанных)
+
+ ПодзаголовокОкнаИсполнения = СтрокаДереваМетаданных.ОбъектМД.ПолноеИмя();
+
+ ОкноИсполненияОбщееКоличество = 1;
+ //ОкноИсполненияОбработано = 0;
+
+ РезультатЗапроса = ПолучитьРезультатЗапросаСОграничениями(СтрокаДереваМетаданных);
+
+ ЗапросИЗапись(РезультатЗапроса, Истина, ОбъектыВыгруженныеСОшибками, массивДанных);
+
+КонецПроцедуры
+
+Функция ПолучитьРезультатЗапросаСОграничениями(СтрокаДереваМетаданных)
+
+ СКД = ПодготовитьКомпоновщикДляВыгрузки(СтрокаДереваМетаданных);
+
+ ТаблицаЗначений = Новый ТаблицаЗначений;
+
+ Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
+ Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));
+ Компоновщик.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);
+
+ ПолеГруппировки = Компоновщик.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
+
+ СистемныеПоля = Новый ПолеКомпоновкиДанных("СистемныеПоля");
+ ПараметрыДанных = Новый ПолеКомпоновкиДанных("ПараметрыДанных");
+ Для Каждого ДоступноеПоле Из Компоновщик.Настройки.ДоступныеПоляВыбора.Элементы Цикл
+ Если ДоступноеПоле.Поле = СистемныеПоля Или ДоступноеПоле.Поле = ПараметрыДанных Тогда
+ Продолжить;
+ КонецЕсли;
+ ПолеНабора = СКД.НаборыДанных[0].Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
+ ПолеНабора.Поле = Строка(ДоступноеПоле.Поле);
+ ПолеНабора.ПутьКДанным = Строка(ДоступноеПоле.Поле);
+ Если ДоступноеПоле.Папка Тогда
+ ПолеГруппировкиПапки = Компоновщик.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
+ Для Каждого ВложенныйЭлемент Из ДоступноеПоле.Элементы Цикл
+ ПолеНабора = СКД.НаборыДанных[0].Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
+ ПолеНабора.Поле = Строка(ВложенныйЭлемент.Поле);
+ ПолеНабора.ПутьКДанным = Строка(ВложенныйЭлемент.Поле);
+ ВыбранноеПоле = ПолеГруппировкиПапки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
+ ВыбранноеПоле.Поле = ВложенныйЭлемент.Поле;
+ КонецЦикла;
+ Иначе
+ ВыбранноеПоле = ПолеГруппировки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
+ ВыбранноеПоле.Поле = ДоступноеПоле.Поле;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ //#Если Клиент Тогда
+ //
+ //НастройкиКомпоновщикаXDTO = СериализаторXDTO.ЗаписатьXDTO(Компоновщик.Настройки);
+ //СКДXDTO = СериализаторXDTO.ЗаписатьXDTO(СКД);
+ //СКДXDTO.defaultSettings = НастройкиКомпоновщикаXDTO;
+ //СКД = СериализаторXDTO.ПрочитатьXDTO(СКДXDTO);
+ //
+ //КонструкторСКД = Новый КонструкторСхемыКомпоновкиДанных(СКД);
+ //КонструкторСКД.Редактировать(ПолучитьФорму("Форма"));
+ //#КонецЕсли
+
+ КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
+ МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Компоновщик.ПолучитьНастройки(),,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
+ Запрос = Новый Запрос(МакетКомпоновки.НаборыДанных.ОсновнойЗапрос.Запрос);
+ ПараметрыЗапроса = Запрос.НайтиПараметры();
+ Для Каждого Параметр Из ПараметрыЗапроса Цикл
+ ПараметрМакетаСКД = МакетКомпоновки.ЗначенияПараметров.Найти(Параметр.Имя);
+ Запрос.УстановитьПараметр(Параметр.Имя, ПараметрМакетаСКД.Значение);
+ КонецЦикла;
+ РезультатЗапроса = Запрос.Выполнить();
+ //ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
+ //ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
+ //ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
+ //ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
+ //ПроцессорВывода.Вывести(ПроцессорКомпоновки);
+
+ //Возврат ТаблицаЗначений;
+ //ПостроительОтчета.Выполнить();
+ //РезультатЗапроса = ПостроительОтчета.Результат;
+ //
+ Возврат РезультатЗапроса;
+
+КонецФункции
+
+// Процедура исполняет переданный запрос и записывает полученные через запрос объекты
+//
+// Параметры
+// Запрос - запрос для исполнения, результат содержит выборку объектов для записи
+// ЗаписьXML - объект, через которых происходит запись объектов ИБ
+// ЗапросВерхнегоУровня - признак необходимости анимации процесса
+//
+Процедура ЗапросИЗапись(РезультатЗапроса, ЗапросВерхнегоУровня = Ложь, ОбъектыВыгруженныеСОшибками, массивДанных)
+
+ // универсальная процедура выгрузки ссылочных объектов процедура
+ ОбработкаРезультатаЗапроса(РезультатЗапроса, Истина, ЗапросВерхнегоУровня, ОбъектыВыгруженныеСОшибками, массивДанных, МассивИмен);
+
+КонецПроцедуры
+
+// Процедура записывает содержащиеся в выборке результата запроса объекты и необходимые "по ссылке" объекты ИБ
+//
+// Параметры
+// РезультатЗапроса - результат запроса
+// ЗаписьXML - объект, через которых происходит запись объектов ИБ
+// ЭтоЗапросПоОбъекту - если Истина, выборка должна содержать объекты, на которые может быть ссылка,
+// если Ложь, выгружать, как объект не нужно, только обработать возможные ссылки на др. объекты ИБ
+//
+Процедура ОбработкаРезультатаЗапроса(РезультатЗапроса, ЭтоЗапросПоОбъекту = Ложь,
+ ЗапросВерхнегоУровня = Ложь, ОбъектыВыгруженныеСОшибками = Неопределено, массивДанных, МассивИмен)
+
+ #Если Клиент Тогда
+ ОбработкаПрерыванияПользователя();
+ #КонецЕсли
+
+ ВыборкаИзРезультатовЗапроса = РезультатЗапроса.Выбрать();
+ Если ЗапросВерхнегоУровня Тогда
+
+ ОкноИсполненияОбщееКоличество = ВыборкаИзРезультатовЗапроса.Количество();
+ //ОкноИсполнения.ОбновитьВерхнююГраницу();
+
+ КонецЕсли;
+
+ ВсегоОбработаноОбъектов = 0;
+ ОбработаноОбъектов = 0;
+
+ Пока ВыборкаИзРезультатовЗапроса.Следующий() Цикл
+
+ ДанныеОбъекта = ВыборкаИзРезультатаЗапросаВСтруктуру(РезультатЗапроса, ВыборкаИзРезультатовЗапроса);
+
+ Если ЭтоЗапросПоОбъекту Тогда
+
+ // выгрузка ссылочных объектов
+ Ссылка = ДанныеОбъекта[ВернутьЗначениеСоответствия("Ссылка")];
+
+ Если СсылкаВыгружена(Ссылка) Тогда
+
+ Если ЗапросВерхнегоУровня Тогда
+
+ ОбработаноОбъектов = ОбработаноОбъектов + 1;
+ Если ОбработаноОбъектов % 100 = 0 Тогда
+ //ОкноИсполненияОбработано = ОкноИсполненияОбработано + ОбработаноОбъектов;
+ ОбработаноОбъектов = 0;
+ КонецЕсли;
+
+ КонецЕсли;
+ Продолжить;
+
+ КонецЕсли;
+
+ ДобавитьСсылкуКВыгруженным(Ссылка);
+
+ ВсегоОбработаноОбъектов = ВсегоОбработанныхЗаписей();
+
+ ПоказатьПользователюИнформациюОСостоянииВыгрузки(ВсегоОбработаноОбъектов, ОбъектыВыгруженныеСОшибками);
+
+ КонецЕсли;
+
+ Если мНаличиеВыгрузкиПодчиненныхОбъектов Тогда
+
+ // перебираем колонки запроса в поисках ссылочных значений, которые, возможно, нужно выгрузить
+ Для Каждого КолонкаЗапроса Из РезультатЗапроса.Колонки Цикл
+
+ ЗначениеКолонки = ДанныеОбъекта[КолонкаЗапроса.Имя];
+
+ Если ТипЗнч(ЗначениеКолонки) = мТипРезультатЗапроса Тогда
+
+ ОбработкаРезультатаЗапроса(ЗначениеКолонки, , , ОбъектыВыгруженныеСОшибками, массивДанных, МассивИмен);
+
+ Иначе
+
+ ЗаписатьЗначениеПриНеобходимости(ЗначениеКолонки, ОбъектыВыгруженныеСОшибками, массивДанных);
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+ КонецЕсли;
+
+ Если ЭтоЗапросПоОбъекту Тогда
+
+ //Объект = Ссылка.ПолучитьОбъект();
+
+ Попытка
+
+ //ВыполнитьВспомогательныеДействияДляЗаписиXML(ВсегоОбработаноОбъектов);
+
+ //ЗаписатьXML(ЗаписьXML, Объект);
+
+ //НоваяСтрокаТаблицыДанных = ТаблицаДанных.Добавить();
+ //НоваяСтрокаТаблицыДанных.Ссылка = Ссылка;
+ //ПриИзмененииСсылки(НоваяСтрокаТаблицыДанных);
+
+ ОписательЭлемента = СоздатьОписательЭлементаПоСсылке(Ссылка, МассивИмен, ДанныеОбъекта);
+ //ОписательЭлемента = СоздатьОписательЭлемента();
+ //ОписательЭлемента.Ссылка = Ссылка;
+ //ОписательЭлемента.ИмяПеременной = УникальноеИмяПеременнойПоСсылке(Ссылка, МассивИмен);
+ //МетаСсылка = Ссылка.Метаданные();
+ //ОписательЭлемента.Метаданное = МетаСсылка;
+ //ОписательЭлемента.РежимПоиска = "Перем";
+ //Если Метаданные.Справочники.Содержит(МетаСсылка) И Ссылка.ЭтоГруппа Тогда
+ // ОписательЭлемента.РежимСоздания = "Группа";
+ //Иначе
+ // ОписательЭлемента.РежимСоздания = "";
+ //КонецЕсли;
+ МассивДанных.Добавить(ОписательЭлемента);
+
+ Если ВыгружатьСДокументомЕгоДвижения
+ И Метаданные.Документы.Содержит(Ссылка.Метаданные()) Тогда
+
+ Объект = Ссылка.ПолучитьОбъект();
+ // выгрузка движений документа
+ Для Каждого Движение Из Объект.Движения Цикл
+
+ Движение.Прочитать();
+
+ Если мНаличиеВыгрузкиПодчиненныхОбъектов
+ И Движение.Количество() > 0 Тогда
+
+ ТипРегистра = Тип(Движение);
+
+ МассивКолонок = мСоответствиеКолонокДвижений.Получить(ТипРегистра);
+
+ Если МассивКолонок = Неопределено Тогда
+
+ ТаблицаДвижений = Движение.Выгрузить();
+ РегистрБухгалтерии = Метаданные.РегистрыБухгалтерии.Содержит(Движение.Метаданные());
+ МассивКолонок = ПолучитьМассивКолонокДвижения(ТаблицаДвижений, РегистрБухгалтерии);
+ мСоответствиеКолонокДвижений.Вставить(ТипРегистра, МассивКолонок);
+
+ КонецЕсли;
+
+ ВыгрузитьПодчиненныеЗначенияНабора(Движение, МассивКолонок, ОбъектыВыгруженныеСОшибками, массивДанных);
+
+ КонецЕсли;
+
+ //ЗаписатьXML(ЗаписьXML, Движение);
+
+ ОписательЭлемента = СоздатьОписательЭлементаПоНаборуЗаписей(Движение, МассивИмен);
+ МассивДанных.Добавить(ОписательЭлемента);
+ //Мд = Движение.Метаданные();
+ ////Для каждого ЗаписьНабора Из Движение Цикл
+ // ОписательЭлемента = СоздатьОписательЭлемента();
+ // ОписательЭлемента.Реквизиты = Движение; //ЗаписьНабора;
+ // ОписательЭлемента.Ссылка = Неопределено;
+ // ОписательЭлемента.Метаданное = Мд;
+ // МассивДанных.Добавить(ОписательЭлемента);
+ ////КонецЦикла;
+
+ КонецЦикла;
+
+ КонецЕсли;
+
+ Исключение
+
+ СтрокаОписанияОшибки = ОписаниеОшибки();
+ //не смогли записать в XML
+ // возможно проблема с недопустимыми символами в XML
+ //Если ТолькоПроверкаНедопустимыхСимволов Тогда
+ //
+ // Если ОбъектыВыгруженныеСОшибками.Получить(Ссылка) = Неопределено Тогда
+ // ОбъектыВыгруженныеСОшибками.Вставить(Ссылка, СтрокаОписанияОшибки);
+ // КонецЕсли;
+ //
+ //Иначе
+
+ ИтоговаяСтрокаСообщения = "Ошибка при выгрузке объекта: " + Строка(Ссылка) + " Тип: " + Строка(ТипЗнч(Ссылка)) + "
+ |" + СтрокаОписанияОшибки;
+
+ Сообщить(ИтоговаяСтрокаСообщения);
+
+ ВызватьИсключение ИтоговаяСтрокаСообщения;
+
+ //КонецЕсли;
+
+ КонецПопытки;
+
+ КонецЕсли;
+
+ Если ЗапросВерхнегоУровня Тогда
+
+ ОбработаноОбъектов = ОбработаноОбъектов + 1;
+ Если ОбработаноОбъектов % 100 = 0 Тогда
+ //ОкноИсполненияОбработано = ОкноИсполненияОбработано + ОбработаноОбъектов;
+ ОбработаноОбъектов = 0;
+ КонецЕсли;
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+// ОкноИсполненияОбработано = ОкноИсполненияОбработано + ОбработаноОбъектов;
+
+КонецПроцедуры
+
+Функция СсылкаВыгружена(Ссылка)
+
+ Возврат мВыгруженныеОбъекты.Найти(Ссылка, ВернутьЗначениеСоответствия("Ссылка")) <> Неопределено;
+
+КонецФункции
+
+Процедура ДобавитьСсылкуКВыгруженным(Ссылка)
+
+ СтрокаДобавления = мВыгруженныеОбъекты.Добавить();
+ СтрокаДобавления[ВернутьЗначениеСоответствия("Ссылка")] = Ссылка;
+
+КонецПроцедуры
+
+// Функция определяет общее количество произведенных записей констант + объектного типа + наборов записей
+//
+// Возврат - общее количество произведенных записей
+Функция ВсегоОбработанныхЗаписей()
+ Возврат 0;
+ Возврат мВыгруженныеОбъекты.Количество() + ОбработанныхКонстант + ОбработанныхНаборовЗаписей;
+
+КонецФункции
+
+// Процедура анализирует необходимость записи объекта "по ссылке" и осуществляет запись
+//
+// Параметры
+// АнализируемоеЗначение - анализируемое значение
+// ЗаписьXML - объект, через которых происходит запись объектов ИБ
+//
+Процедура ЗаписатьЗначениеПриНеобходимости(АнализируемоеЗначение, ОбъектыВыгруженныеСОшибками, массивДанных)
+
+ Если Не ЗначениеЗаполнено(АнализируемоеЗначение) Тогда
+ Возврат;
+ КонецЕсли;
+
+ ОбъектМД = СсылочныеТипы.Получить(ТипЗнч(АнализируемоеЗначение));
+
+ Если ОбъектМД = Неопределено Тогда
+ Возврат; // это не ссылка
+ КонецЕсли;
+
+ Если СсылкаВыгружена(АнализируемоеЗначение) Тогда
+ Возврат; // объект уже был выгружен
+ КонецЕсли;
+
+ КлассМДИерархический = КлассМДИерархический(ОбъектМД); // нужно для иерархических метаданных и подгрузки родителей
+ Если Не КлассМДИерархический Тогда
+ // Проверка того, что данный тип входит в список выгружаемых дополнительно
+ СтрокаТаблицы = СоставПолнойВыгрузки.Найти(ОбъектМД, "ОбъектМД");
+ Если СтрокаТаблицы <> Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+ КонецЕсли;
+
+ СтрокаТаблицы = СоставВспомогательнойВыгрузки.Найти(ОбъектМД, "ОбъектМД");
+ Если СтрокаТаблицы <> Неопределено Тогда
+
+ ДопЗапрос = Новый Запрос("ВЫБРАТЬ * ИЗ " + СтрокаТаблицы.СтрокаДерева.ЭлементОписания.ДляЗапроса + ОбъектМД.Имя +
+ " КАК ТаблицаОбъекта_" + " ГДЕ Ссылка = &Ссылка");
+ ДопЗапрос.УстановитьПараметр("Ссылка", АнализируемоеЗначение);
+ РезультатЗапроса = ДопЗапрос.Выполнить();
+ ЗапросИЗапись(РезультатЗапроса, , ОбъектыВыгруженныеСОшибками, массивДанных);
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+Функция ПолучитьМассивКолонокДвижения(ТаблицаДвижений, РегистрБухгалтерии = Ложь)
+
+ МассивКолонок = Новый Массив();
+ Для Каждого КолонкаТаблицы Из ТаблицаДвижений.Колонки Цикл
+
+ Если КолонкаТаблицы.Имя = "МоментВремени"
+ ИЛИ Найти(КолонкаТаблицы.Имя, "ВидСубконтоДт") = 1
+ ИЛИ Найти(КолонкаТаблицы.Имя, "ВидСубконтоКт") = 1 Тогда
+
+ Продолжить;
+
+ КонецЕсли;
+
+ Если Найти(КолонкаТаблицы.Имя, "СубконтоДт") = 1 И РегистрБухгалтерии Тогда
+
+ Если МассивКолонок.Найти("СубконтоДт") = Неопределено Тогда
+ МассивКолонок.Добавить("СубконтоДт");
+ Конецесли;
+
+ Продолжить;
+
+ КонецЕсли;
+
+ Если Найти(КолонкаТаблицы.Имя, "СубконтоКт") = 1 И РегистрБухгалтерии Тогда
+
+ Если МассивКолонок.Найти("СубконтоКт") = Неопределено Тогда
+ МассивКолонок.Добавить("СубконтоКт");
+ КонецЕсли;
+
+ Продолжить;
+
+ КонецЕсли;
+
+ МассивКолонок.Добавить(КолонкаТаблицы.Имя);
+
+ КонецЦикла;
+
+ Возврат МассивКолонок;
+
+КонецФункции
+
+Процедура ВыгрузитьПодчиненныеЗначенияНабора(Движение, МассивКолонок, ОбъектыВыгруженныеСОшибками, массивДанных)
+
+ Для Каждого ЗаписьИзНабора Из Движение Цикл
+
+ Для Каждого Колонка Из МассивКолонок Цикл
+
+ Если Колонка = "СубконтоДт"
+ ИЛИ Колонка = "СубконтоКт" Тогда
+
+ Значение = ЗаписьИзНабора[Колонка];
+ Для Каждого КлючИЗначение Из Значение Цикл
+
+ Если ЗначениеЗаполнено(КлючИЗначение.Значение) Тогда
+ ЗаписатьЗначениеПриНеобходимости(КлючИЗначение.Значение, ОбъектыВыгруженныеСОшибками, массивДанных);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Иначе
+
+ СохраненноеЗначение = ЗаписьИзНабора[Колонка];
+ ЗаписатьЗначениеПриНеобходимости(СохраненноеЗначение, ОбъектыВыгруженныеСОшибками, массивДанных);
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Процедура записывает наборы записей регистра (накопления, бухгалтерии...)
+//
+// Параметры
+// ЗаписьXML - объект, через которых происходит запись объектов ИБ
+// СтрокаДереваМетаданных - строка дерева метаданных, соответствующая регистру
+//
+Процедура ЗаписьРегистра(СтрокаДереваМетаданных, ОбъектыВыгруженныеСОшибками, РегистрБухгалтерии = Ложь, массивДанных)
+
+ ПодзаголовокОкнаИсполнения = СтрокаДереваМетаданных.ОбъектМД.ПолноеИмя();
+ ОкноИсполненияОбщееКоличество = 1;
+ //ОкноИсполненияОбработано = 0;
+
+ МенеджерНабораЗаписей = СтрокаДереваМетаданных.ЭлементОписания.Менеджер[СтрокаДереваМетаданных.ОбъектМД.Имя];
+
+ ИмяТаблицыДляЗапроса = СтрокаДереваМетаданных.ЭлементОписания.ДляЗапроса;
+
+ ЗаписьЧерезНаборЗаписей(МенеджерНабораЗаписей, ИмяТаблицыДляЗапроса,
+ СтрокаДереваМетаданных.ОбъектМД.Имя, СтрокаДереваМетаданных, ОбъектыВыгруженныеСОшибками, РегистрБухгалтерии, массивДанных);
+
+КонецПроцедуры
+
+// Процедура записывает данные, доступ к которым осуществляется через набор записей
+//
+// Параметры
+// ЗаписьXML - объект, через которых происходит запись объектов ИБ
+// СтрокаДереваМетаданных - строка дерева метаданных, соответствующая регистру
+//
+Процедура ЗаписьЧерезНаборЗаписей(МенеджерНабораЗаписей, ДляЗапроса, ИмяОбъекта,
+ СтрокаДереваМетаданных = Неопределено, ОбъектыВыгруженныеСОшибками, РегистрБухгалтерии = Ложь, массивДанных)
+
+ // получить состав колонок записи регистра и проверить наличие хотя бы одной записи
+ Если ДляЗапроса = "РегистрБухгалтерии." Тогда
+ ИмяТаблицыДляЗапроса = ДляЗапроса + ИмяОбъекта + ".ДвиженияССубконто";
+ Иначе
+ ИмяТаблицыДляЗапроса = ДляЗапроса + ИмяОбъекта;
+ КонецЕсли;
+
+ Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1 * ИЗ " + ИмяТаблицыДляЗапроса + " КАК ТаблицаОбъекта_" + ИмяОбъекта);
+ РезультатЗапросаПоСоставу = Запрос.Выполнить();
+ Если РезультатЗапросаПоСоставу.Пустой() Тогда
+ Возврат;
+ КонецЕсли;
+
+ ТаблицаДвижений = РезультатЗапросаПоСоставу.Выгрузить();
+ МассивКолонок = ПолучитьМассивКолонокДвижения(ТаблицаДвижений, РегистрБухгалтерии);
+
+ // выгрузка регистров осуществляется через его набор записей
+ НаборЗаписей = МенеджерНабораЗаписей.СоздатьНаборЗаписей();
+
+ СтрокаПолейОтбора = ПолучитьСтрокуПолейОтбораРегистра(МенеджерНабораЗаписей);
+
+ СКД = ПодготовитьКомпоновщикДляВыгрузки(СтрокаДереваМетаданных, СтрокаПолейОтбора);
+ //ПостроительОтчета.Выполнить();
+ РезультатЗапросаПоЗначениямОтбора = ПолучитьРезультатЗапросаСКД(СКД);
+ ВыборкаИзРезультата = РезультатЗапросаПоЗначениямОтбора.Выбрать();
+
+ ОкноИсполненияОбщееКоличество = ВыборкаИзРезультата.Количество();
+ //ОкноИсполненияОбработано = 0;
+ //ОкноИсполнения.ОбновитьВерхнююГраницу();
+
+ КоличествоПолейОтбора = НаборЗаписей.Отбор.Количество();
+
+ // читаем наборы записей с различным составом отбора и записываем их
+ Пока ВыборкаИзРезультата.Следующий() Цикл
+
+ // Пересоздание набора, чтоб чтоб разные экземпляры объекта в МассивДанных попали
+ НаборЗаписей = МенеджерНабораЗаписей.СоздатьНаборЗаписей();
+ Отбор = НаборЗаписей.Отбор;
+
+ // Отбор устанавливаем для регистров, у которых есть хотя бы один отбор (измерение)
+ Если КоличествоПолейОтбора <> 0 Тогда
+
+ Для Каждого Колонка Из РезультатЗапросаПоЗначениямОтбора.Колонки Цикл
+ Отбор[Колонка.Имя].Значение = ВыборкаИзРезультата[Колонка.Имя];
+ Отбор[Колонка.Имя].ВидСравнения = ВидСравнения.Равно;
+ Отбор[Колонка.Имя].Использование = Истина;
+ КонецЦикла;
+
+ КонецЕсли;
+
+ НаборЗаписей.Прочитать();
+
+ Если мНаличиеВыгрузкиПодчиненныхОбъектов Тогда
+
+ // проверяем все записанные в наборе значения на необходимость записи "по ссылке"
+ ВыгрузитьПодчиненныеЗначенияНабора(НаборЗаписей, МассивКолонок, ОбъектыВыгруженныеСОшибками, массивДанных);
+
+ КонецЕсли;
+
+ ВсегоОбработаноОбъектов = ВсегоОбработанныхЗаписей();
+ Попытка
+
+ //ВыполнитьВспомогательныеДействияДляЗаписиXML(ВсегоОбработаноОбъектов, ЗаписьXML, ТолькоПроверкаНедопустимыхСимволов);
+
+ //ЗаписатьXML(ЗаписьXML, НаборЗаписей);
+
+ ОписательЭлемента = СоздатьОписательЭлементаПоНаборуЗаписей(НаборЗаписей, МассивИмен);
+ МассивДанных.Добавить(ОписательЭлемента);
+ //Мд = НаборЗаписей.Метаданные();
+ ////Для каждого ЗаписьНабора Из НаборЗаписей Цикл
+ // ОписательЭлемента = СоздатьОписательЭлемента();
+ // ОписательЭлемента.Реквизиты = НаборЗаписей; //ЗаписьНабора;
+ // ОписательЭлемента.Ссылка = Неопределено;
+ // ОписательЭлемента.Метаданное = Мд;
+ // МассивДанных.Добавить(ОписательЭлемента);
+ ////КонецЦикла;
+
+ Исключение
+
+ СтрокаОписанияОшибки = ОписаниеОшибки();
+ //не смогли записать в XML
+ // возможно проблема с недопустимыми символами в XML
+ //Если ТолькоПроверкаНедопустимыхСимволов Тогда
+ //
+ // НовыйНабор = МенеджерНабораЗаписей.СоздатьНаборЗаписей();
+ //
+ // Для Каждого СтрокаОтбора Из НаборЗаписей.Отбор Цикл
+ //
+ // СтрокаОтбораФормы = НовыйНабор.Отбор.Найти(СтрокаОтбора.Имя);
+ //
+ // Если СтрокаОтбораФормы = Неопределено Тогда
+ // Продолжить;
+ // КонецЕсли;
+ //
+ // СтрокаОтбораФормы.Использование = СтрокаОтбора.Использование;
+ // СтрокаОтбораФормы.ВидСравнения = СтрокаОтбора.ВидСравнения;
+ // СтрокаОтбораФормы.Значение = СтрокаОтбора.Значение;
+ //
+ // КонецЦикла;
+ //
+ // ОбъектыВыгруженныеСОшибками.Вставить(НовыйНабор, СтрокаОписанияОшибки);
+ //
+ //Иначе
+
+ ИтоговаяСтрокаСообщения = "Ошибка при выгрузке набора записей регистра: " + ДляЗапроса + ИмяОбъекта + "
+ |" + СтрокаОписанияОшибки;
+
+ Сообщить(ИтоговаяСтрокаСообщения);
+
+ ВызватьИсключение ИтоговаяСтрокаСообщения;
+
+ //КонецЕсли;
+
+ КонецПопытки;
+
+ ОбработанныхНаборовЗаписей = ОбработанныхНаборовЗаписей + 1;
+ //ОкноИсполненияОбработано = ОкноИсполненияОбработано + 1;
+
+ ПоказатьПользователюИнформациюОСостоянииВыгрузки(ВсегоОбработаноОбъектов, ОбъектыВыгруженныеСОшибками);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура ПоказатьПользователюИнформациюОСостоянииВыгрузки(ВсегоОбработаноОбъектов, ОбъектыВыгруженныеСОшибками)
+
+ #Если Клиент Тогда
+
+ Если ВсегоОбработаноОбъектов %100 = 0 Тогда
+
+ Если ОбъектыВыгруженныеСОшибками <> Неопределено
+ И ОбъектыВыгруженныеСОшибками.Количество() > 0 Тогда
+
+ Состояние("Выгруженных объектов - " + ВсегоОбработаноОбъектов + ", ошибок при выгрузке - " + ОбъектыВыгруженныеСОшибками.Количество());
+
+ Иначе
+ Состояние("Выгруженных объектов - " + ВсегоОбработаноОбъектов);
+ КонецЕсли;
+
+ КонецЕсли;
+
+ #КонецЕсли
+
+КонецПроцедуры
+
+Функция ПолучитьРезультатЗапросаСКД(СКД)
+
+ Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
+ Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));
+ Компоновщик.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);
+
+ СистемныеПоля = Новый ПолеКомпоновкиДанных("СистемныеПоля");
+ ПараметрыДанных = Новый ПолеКомпоновкиДанных("ПараметрыДанных");
+ Для Каждого ДоступноеПоле Из Компоновщик.Настройки.ДоступныеПоляВыбора.Элементы Цикл
+ Если ДоступноеПоле.Поле = СистемныеПоля Или ДоступноеПоле.Поле = ПараметрыДанных Тогда
+ Продолжить;
+ КонецЕсли;
+ ПолеНабора = СКД.НаборыДанных[0].Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
+ ПолеНабора.Поле = Строка(ДоступноеПоле.Поле);
+ ПолеНабора.ПутьКДанным = Строка(ДоступноеПоле.Поле);
+ Если ДоступноеПоле.Папка Тогда
+ ВыбранноеПолеГруппа = Компоновщик.Настройки.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
+ ВыбранноеПолеГруппа.Заголовок = ДоступноеПоле.Заголовок;
+ Для Каждого ВложенныйЭлемент Из ДоступноеПоле.Элементы Цикл
+ ПолеНабора = СКД.НаборыДанных[0].Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
+ ПолеНабора.Поле = Строка(ВложенныйЭлемент.Поле);
+ ПолеНабора.ПутьКДанным = Строка(ВложенныйЭлемент.Поле);
+ ВыбранноеПоле = ВыбранноеПолеГруппа.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
+ ВыбранноеПоле.Поле = ВложенныйЭлемент.Поле;
+ КонецЦикла;
+ Иначе
+ ВыбранноеПоле = Компоновщик.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
+ ВыбранноеПоле.Поле = ДоступноеПоле.Поле;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ ПолеГруппировки = Компоновщик.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
+ ПолеГруппировки.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
+
+
+ //#Если Клиент Тогда
+ //
+ //НастройкиКомпоновщикаXDTO = СериализаторXDTO.ЗаписатьXDTO(Компоновщик.Настройки);
+ //СКДXDTO = СериализаторXDTO.ЗаписатьXDTO(СКД);
+ //СКДXDTO.defaultSettings = НастройкиКомпоновщикаXDTO;
+ //СКД = СериализаторXDTO.ПрочитатьXDTO(СКДXDTO);
+ //
+ //КонструкторСКД = Новый КонструкторСхемыКомпоновкиДанных(СКД);
+ //КонструкторСКД.Редактировать(ПолучитьФорму("Форма"));
+ //#КонецЕсли
+
+ КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
+ МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Компоновщик.ПолучитьНастройки(),,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
+ Запрос = Новый Запрос(МакетКомпоновки.НаборыДанных.ОсновнойЗапрос.Запрос);
+ ПараметрыЗапроса = Запрос.НайтиПараметры();
+ Для Каждого Параметр Из ПараметрыЗапроса Цикл
+ ПараметрМакетаСКД = МакетКомпоновки.ЗначенияПараметров.Найти(Параметр.Имя);
+ Запрос.УстановитьПараметр(Параметр.Имя, ПараметрМакетаСКД.Значение);
+ КонецЦикла;
+ РезультатЗапроса = Запрос.Выполнить();
+
+ Возврат РезультатЗапроса;
+
+КонецФункции
+
+Функция ПолучитьСтрокуПолейОтбораРегистра(МенеджерНабораЗаписей)
+
+ НаборЗаписей = МенеджерНабораЗаписей.СоздатьНаборЗаписей();
+
+ Отбор = НаборЗаписей.Отбор;
+
+ СтрокаПолейОтбора = "";
+ Для Каждого ЭлементОтбора Из Отбор Цикл
+ Если Не ПустаяСтрока(СтрокаПолейОтбора) Тогда
+ СтрокаПолейОтбора = СтрокаПолейОтбора + ",";
+ КонецЕсли;
+ СтрокаПолейОтбора = СтрокаПолейОтбора + ЭлементОтбора.Имя;
+ КонецЦикла;
+ Возврат СтрокаПолейОтбора;
+КонецФункции
+
+Функция СформироватьОтчетПоОтобраннымДанным(СтрокаДереваМетаданных) Экспорт
+
+ СКД = ПодготовитьКомпоновщикДляВыгрузки(СтрокаДереваМетаданных);
+
+ Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
+ Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));
+ Компоновщик.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);
+
+ СистемныеПоля = Новый ПолеКомпоновкиДанных("СистемныеПоля");
+ ПараметрыДанных = Новый ПолеКомпоновкиДанных("ПараметрыДанных");
+ Для Каждого ДоступноеПоле Из Компоновщик.Настройки.ДоступныеПоляВыбора.Элементы Цикл
+ Если ДоступноеПоле.Поле = СистемныеПоля Или ДоступноеПоле.Поле = ПараметрыДанных Или ДоступноеПоле.Папка Тогда
+ Продолжить;
+ КонецЕсли;
+ ПолеНабора = СКД.НаборыДанных[0].Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
+ ПолеНабора.Поле = Строка(ДоступноеПоле.Поле);
+ ПолеНабора.ПутьКДанным = Строка(ДоступноеПоле.Поле);
+
+ ВыбранноеПоле = Компоновщик.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
+ ВыбранноеПоле.Поле = ДоступноеПоле.Поле;
+ КонецЦикла;
+
+ ПолеГруппировки = Компоновщик.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
+ ПолеГруппировки.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
+
+ КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
+ МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Компоновщик.ПолучитьНастройки());
+ ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
+ ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
+ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
+ ТабличныйДокумент = Новый ТабличныйДокумент;
+ ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
+ ПроцессорВывода.Вывести(ПроцессорКомпоновки);
+
+ ТабличныйДокумент.ОтображатьЗаголовки = Ложь;
+ ТабличныйДокумент.ОтображатьСетку = Ложь;
+
+ Возврат ТабличныйДокумент;
+
+КонецФункции
+
+Функция ВыборкаИзРезультатаЗапросаВСтруктуру(РезультатЗапроса, СтрокаВыборки)
+
+ РезультирующаяСтруктура = Новый Структура;
+
+ Если РезультатЗапроса = Неопределено Или СтрокаВыборки = Неопределено Тогда
+ Возврат РезультирующаяСтруктура;
+ КонецЕсли;
+
+ Для Каждого Колонка Из РезультатЗапроса.Колонки Цикл
+ РезультирующаяСтруктура.Вставить(Колонка.Имя, СтрокаВыборки[Колонка.Имя]);
+ КонецЦикла;
+
+ Возврат РезультирующаяСтруктура;
+
+КонецФункции
+
+//Заполнение соответствий в английском языке.
+Процедура ЗаполнитьСоответствие()
+ АнглийскоеСоответствие = Новый Соответствие;
+ АнглийскоеСоответствие.Вставить("Справочник", "Catalog");
+ АнглийскоеСоответствие.Вставить("Документ", "Document");
+ АнглийскоеСоответствие.Вставить("БизнесПроцесс", "BusinessProcess");
+ АнглийскоеСоответствие.Вставить("Задача", "Task");
+ АнглийскоеСоответствие.Вставить("ПланВидовРасчета", "ChartOfCalculationTypes");
+ АнглийскоеСоответствие.Вставить("ПланВидовХарактеристик", "ChartOfCharacteristicTypes");
+ АнглийскоеСоответствие.Вставить("ПланОбмена", "ExchangePlan");
+ АнглийскоеСоответствие.Вставить("ПланСчетов", "ChartOfAccounts");
+ АнглийскоеСоответствие.Вставить("РегистрСведений", "InformationRegister");
+ АнглийскоеСоответствие.Вставить("РегистрНакопления", "AccumulationRegister");
+ АнглийскоеСоответствие.Вставить("РегистрБухгалтерии", "AccountingRegister");
+ АнглийскоеСоответствие.Вставить("Перечисление", "Enum");
+ АнглийскоеСоответствие.Вставить("Наименование", "Description");
+ АнглийскоеСоответствие.Вставить("Код", "Code");
+ АнглийскоеСоответствие.Вставить("Родитель", "Parent");
+ АнглийскоеСоответствие.Вставить("ЭтоГруппа", "IsFolder");
+ АнглийскоеСоответствие.Вставить("ПометкаУдаления", "DeletionMark");
+ АнглийскоеСоответствие.Вставить("Ссылка", "Ref");
+ АнглийскоеСоответствие.Вставить("Предопределенный", "Predefined");
+ АнглийскоеСоответствие.Вставить("ИмяПредопределенныхДанных","PredefinedDataName");
+ АнглийскоеСоответствие.Вставить("Владелец", "Owner");
+ АнглийскоеСоответствие.Вставить("Дата", "Date");
+ АнглийскоеСоответствие.Вставить("Проведен", "Posted");
+ АнглийскоеСоответствие.Вставить("Номер", "Number");
+ АнглийскоеСоответствие.Вставить("Стартован", "Started");
+ АнглийскоеСоответствие.Вставить("Завершен", "Completed");
+ АнглийскоеСоответствие.Вставить("ВедущаяЗадача", "HeadTask");
+ АнглийскоеСоответствие.Вставить("ТочкаМаршрута", "RoutePoint");
+ АнглийскоеСоответствие.Вставить("Выполнена", "Executed");
+ АнглийскоеСоответствие.Вставить("Период", "Period");
+ АнглийскоеСоответствие.Вставить("Регистратор", "Recorder");
+ АнглийскоеСоответствие.Вставить("Активность", "Active");
+ АнглийскоеСоответствие.Вставить("НомерСтроки", "LineNumber");
+ АнглийскоеСоответствие.Вставить("НомерОтправленного", "SentNo");
+ АнглийскоеСоответствие.Вставить("НомерПринятого", "ReceivedNo");
+ АнглийскоеСоответствие.Вставить("ПользовательИБ", "InfoBaseUser");
+
+КонецПроцедуры
+
+//Функция возвращает полученное значение из списка соответствия в зависимости от языка
+Функция ВернутьЗначениеСоответствия(ИскомоеЗначение)
+ ЗначениеСоответствия = ИскомоеЗначение;
+ Если ВариантВстроенногоЯзыкаАнглийский Тогда
+ ЭлементСоответствия = АнглийскоеСоответствие.Получить(ИскомоеЗначение);
+ Если НЕ ЭлементСоответствия = Неопределено Тогда
+ ЗначениеСоответствия = ЭлементСоответствия
+ КонецЕсли;
+ КонецЕсли;
+ Возврат ЗначениеСоответствия;
+КонецФункции
+
+
+мНаличиеВыгрузкиПодчиненныхОбъектов = Ложь;
+мТипРезультатЗапроса = Тип("РезультатЗапроса");
+мСоответствиеКолонокДвижений = Новый Соответствие;
+
+ЗаполнитьСоответствие();
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml"
new file mode 100644
index 000000000..a6c2ddd4f
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml"
@@ -0,0 +1,22 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
new file mode 100644
index 000000000..5bc67f154
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
@@ -0,0 +1,926 @@
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205/RowsPicture.png" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205/RowsPicture.png"
new file mode 100644
index 000000000..bfa6267fe
Binary files /dev/null and "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205/RowsPicture.png" differ
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
new file mode 100644
index 000000000..faa586284
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
@@ -0,0 +1,490 @@
+
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат Объект().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Методы генерации тестовых данных
+
+&НаКлиенте
+Функция СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения = Неопределено, ИмяКолонкиЗамещения = Неопределено) Экспорт
+ Данные = СоздатьДанныеПоТабличномуДокументуСервер(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения);
+ Возврат Данные;
+КонецФункции
+
+&НаСервере
+Функция СоздатьДанныеПоТабличномуДокументуСервер(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения)
+ Данные = Объект().СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения);
+ Возврат Неопределено; //Данные;
+КонецФункции
+//}
+
+////////////////////////////////////////////////////////////////////////////////
+// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ШАПКИ ФОРМЫ
+
+////////////////////////////////////////////////////////////////////////////////
+// ОБРАБОТЧИКИ СОБЫТИЙ ТАБЛИЦЫ ФОРМЫ ТаблицаДанных
+
+&НаКлиенте
+Процедура ТаблицаДанныхСсылкаПриИзменении(Элемент)
+ ТаблицаДанныхСсылкаПриИзмененииСервер(Элементы.ТаблицаДанных.ТекущаяСтрока);
+КонецПроцедуры
+
+////////////////////////////////////////////////////////////////////////////////
+// ОБРАБОТЧИКИ КОМАНД ФОРМЫ
+
+&НаКлиенте
+Процедура СоздатьМакетДанных(Команда)
+ ПанельИсточников = Элементы.ГруппаСтраницы;
+ Если ПанельИсточников.ТекущаяСтраница = ПанельИсточников.ПодчиненныеЭлементы.ГруппаМетаданные Тогда
+ КоманднаяПанель1СоздатьМакетДанныхПоМетаданным();
+ ИначеЕсли ПанельИсточников.ТекущаяСтраница = ПанельИсточников.ПодчиненныеЭлементы.ГруппаТаблицаДанных Тогда
+ КоманднаяПанель1СоздатьМакетДанныхПоТаблицеДанных();
+ ИначеЕсли ПанельИсточников.ТекущаяСтраница = ПанельИсточников.ПодчиненныеЭлементы.ГруппаПользователиИБ Тогда
+ КоманднаяПанель1СоздатьМакетДанныхДляПользователейИБ();
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КоманднаяПанель1СоздатьМакетДанныхПоТаблицеДанных()
+ Если ПроверитьЗаполнение() Тогда
+ НовыйМакет = СоздатьМакетДанныхПоТаблицеДанныхСервер();
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КоманднаяПанель1СоздатьМакетДанныхПоМетаданным()
+
+ СохранитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
+ НовыйМакет = СоздатьМакетДанныхПоМетаданнымСервер();
+ ВосстановитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КоманднаяПанель1СоздатьМакетДанныхДляПользователейИБ()
+
+ МассивИменПользователей = Новый Массив;
+ Для Каждого ИдентификаторСтроки Из Элементы.ПользователиИнфБазы.ВыделенныеСтроки Цикл
+ Строка = Объект.ПользователиИБ.НайтиПоИдентификатору(ИдентификаторСтроки);
+ МассивИменПользователей.Добавить(Строка.Имя);
+ КонецЦикла;
+ НовыйМакет = СоздатьМакетДанныхПоПользователямИБСервер(МассивИменПользователей);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПротестироватьЗагрузкуМакета(Команда)
+ ПроверитьЗагрузкуМакетаСервер(Макет);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура СохранитьМакетДанныхВФайл(Команда)
+ ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
+ ДиалогВыбораФайла.ПолноеИмяФайла = "";
+ ДиалогВыбораФайла.Фильтр = "Табличный документ (*.mxl)|*.mxl|Все файлы (*.*)|*.*";
+ ДиалогВыбораФайла.Заголовок = "Выберите файл";
+ Если Не ДиалогВыбораФайла.Выбрать() Тогда
+ Возврат;
+ КонецЕсли;
+
+ Макет.Записать(ДиалогВыбораФайла.ПолноеИмяФайла);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОчиститьТаблицуДанных(Команда)
+ Объект.ТаблицаДанных.Очистить();
+КонецПроцедуры
+
+////////////////////////////////////////////////////////////////////////////////
+// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
+
+&НаСервере
+Функция Объект()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+&НаСервере
+Процедура ТаблицаДанныхСсылкаПриИзмененииСервер(ИдентификаторСтрокиДанных)
+ ЭлементДанных = Объект.ТаблицаДанных.НайтиПоИдентификатору(ИдентификаторСтрокиДанных);
+ Объект().ПриИзмененииСсылки(ЭлементДанных);
+КонецПроцедуры
+
+&НаСервере
+Функция СоздатьМакетДанныхПоТаблицеДанныхСервер()
+ Возврат Объект().СоздатьМакетДанныхПоТаблицеДанных(Макет);
+КонецФункции
+
+&НаСервере
+Функция СоздатьМакетДанныхПоМетаданнымСервер()
+
+ ОбъектНаСервере = Объект();
+ ЗаполнитьДеревоМетаданныхНаСервере(ОбъектНаСервере);
+ НовыйМакет = ОбъектНаСервере.СоздатьМакетДанныхПоМетаданным(Макет);
+ ЗначениеВРеквизитФормы(ОбъектНаСервере.ДеревоМетаданных, "Объект.ДеревоМетаданных");
+
+ Возврат НовыйМакет;
+
+КонецФункции
+
+Функция СоздатьМакетДанныхПоПользователямИБСервер(МассивИменПользователей)
+ Возврат Объект().СоздатьМакетДанныхПоПользователямИБ(Макет, МассивИменПользователей);
+КонецФункции
+
+&НаСервере
+Процедура ПроверитьЗагрузкуМакетаСервер(ТабличныйДокумент)
+ Объект().ПроверитьЗагрузкуМакета(ТабличныйДокумент);
+КонецПроцедуры
+
+
+
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+
+ ОбъектНаСервере = Объект();
+ ЭтаФорма.Заголовок = ОбъектНаСервере.ЗаголовокФормы();
+
+ ОбъектНаСервере.НачальнаяИнициализация();
+ ЗначениеВРеквизитФормы(ОбъектНаСервере.ДеревоМетаданных, "Объект.ДеревоМетаданных");
+ ЗначениеВРеквизитФормы(ОбъектНаСервере.ПользователиИБ, "Объект.ПользователиИБ");
+
+ ОбъектНаСервере.СписокВыбора_РежимПоиска(Элементы.ТаблицаДанныхРежимПоиска.СписокВыбора);
+ ОбъектНаСервере.СписокВыбора_РежимСоздания(Элементы.ТаблицаДанныхРежимСоздания.СписокВыбора);
+
+ Объект.ВыгружатьСсылку = Истина;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПересчитатьВыгружаемыеПоСсылке(Команда)
+
+ Состояние(Нстр("ru = 'Выполняется поиск объектов метаданных, которые могут быть выгружены по ссылкам...'"));
+ СохранитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
+ ПересчитатьВыгружаемыеПоСсылкеНаСервере();
+ ВосстановитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура СохранитьОтображениеДерева(СтрокиДерева)
+
+ Для Каждого Строка Из СтрокиДерева Цикл
+
+ ИдентификаторСтроки=Строка.ПолучитьИдентификатор();
+ Строка.Развернут = Элементы.ДеревоМетаданных.Развернут(ИдентификаторСтроки);
+
+ СохранитьОтображениеДерева(Строка.ПолучитьЭлементы());
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ВосстановитьОтображениеДерева(СтрокиДерева)
+
+ Для Каждого Строка Из СтрокиДерева Цикл
+
+ ИдентификаторСтроки=Строка.ПолучитьИдентификатор();
+ Если Строка.Развернут Тогда
+ Элементы.ДеревоМетаданных.Развернуть(ИдентификаторСтроки);
+ КонецЕсли;
+
+ ВосстановитьОтображениеДерева(Строка.ПолучитьЭлементы());
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ПересчитатьВыгружаемыеПоСсылкеНаСервере()
+
+ ОбъектНаСервере = Объект();
+ ЗаполнитьДеревоМетаданныхНаСервере(ОбъектНаСервере);
+ ОбъектНаСервере.СоставВыгрузки(Истина);
+ ЗначениеВРеквизитФормы(ОбъектНаСервере.ДеревоМетаданных, "Объект.ДеревоМетаданных");
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ЗаполнитьДеревоМетаданныхНаСервере(ОбъектНаСервере)
+
+ ДеревоМетаданных = РеквизитФормыВЗначение("Объект.ДеревоМетаданных");
+
+ ОбъектНаСервере.НачальнаяИнициализация();
+
+ ПроставитьПометкиВыгружаемыхДанных(ОбъектНаСервере.ДеревоМетаданных.Строки, ДеревоМетаданных.Строки);
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ПроставитьПометкиВыгружаемыхДанных(СтрокиИсходногоДерева, СтрокиЗаменяемогоДерева)
+
+ КолонкаВыгружать = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("Выгружать");
+ СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаВыгружать, "Выгружать");
+
+ КолонкаВыгружатьПриНеобходимости = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("ВыгружатьПриНеобходимости");
+ СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаВыгружатьПриНеобходимости, "ВыгружатьПриНеобходимости");
+
+ КолонкаРазвернут = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("Развернут");
+ СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаРазвернут, "Развернут");
+
+ КолонкаНастройкиКомпоновщика = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("НастройкиКомпоновщика");
+ СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаНастройкиКомпоновщика, "НастройкиКомпоновщика");
+
+ КолонкаИспользоватьОтбор = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("ИспользоватьОтбор");
+ СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаИспользоватьОтбор, "ИспользоватьОтбор");
+
+ Для Каждого СтрокаИсходногоДерева Из СтрокиИсходногоДерева Цикл
+
+ ИндексСтроки = СтрокиИсходногоДерева.Индекс(СтрокаИсходногоДерева);
+ СтрокаИзменяемогоДерева = СтрокиЗаменяемогоДерева.Получить(ИндексСтроки);
+
+ ПроставитьПометкиВыгружаемыхДанных(СтрокаИсходногоДерева.Строки, СтрокаИзменяемогоДерева.Строки);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+////////////////////////////////////////////////////////////////////////////////
+// ОБРАБОТЧИКИ СОБЫТИЙ ТАБЛИЦЫ ФОРМЫ ДеревоМетаданных
+
+&НаКлиенте
+Процедура ДеревоМетаданныхВыгружатьПриИзменении(Элемент)
+
+ ТекущиеДанные = Элементы.ДеревоМетаданных.ТекущиеДанные;
+
+ Если ТекущиеДанные.Выгружать = 2 Тогда
+ ТекущиеДанные.Выгружать = 0;
+ КонецЕсли;
+
+ УстановитьПометкиПодчиненных(ТекущиеДанные, "Выгружать");
+ УстановитьПометкиРодителей(ТекущиеДанные, "Выгружать");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ДеревоМетаданныхВыгружатьПриНеобходимостиПриИзменении(Элемент)
+
+ ТекущиеДанные = Элементы.ДеревоМетаданных.ТекущиеДанные;
+
+ Если ТекущиеДанные.ВыгружатьПриНеобходимости = 2 Тогда
+ ТекущиеДанные.ВыгружатьПриНеобходимости = 0;
+ КонецЕсли;
+
+ УстановитьПометкиПодчиненных(ТекущиеДанные, "ВыгружатьПриНеобходимости");
+ УстановитьПометкиРодителей(ТекущиеДанные, "ВыгружатьПриНеобходимости");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура УстановитьПометкиПодчиненных(ТекСтрока, ИмяФлажка)
+
+ Подчиненные = ТекСтрока.ПолучитьЭлементы();
+
+ Если Подчиненные.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ Для Каждого Строка из Подчиненные Цикл
+
+ Строка[ИмяФлажка] = ТекСтрока[ИмяФлажка];
+
+ УстановитьПометкиПодчиненных(Строка, ИмяФлажка);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура УстановитьПометкиРодителей(ТекСтрока, ИмяФлажка)
+
+ Родитель = ТекСтрока.ПолучитьРодителя();
+ Если Родитель = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ТекСостояние = Родитель[ИмяФлажка];
+
+ НайденыВключенные = Ложь;
+ НайденыВыключенные = Ложь;
+
+ Для Каждого Строка из Родитель.ПолучитьЭлементы() Цикл
+ Если Строка[ИмяФлажка] = 0 Тогда
+ НайденыВыключенные = Истина;
+ ИначеЕсли Строка[ИмяФлажка] = 1
+ ИЛИ Строка[ИмяФлажка] = 2 Тогда
+ НайденыВключенные = Истина;
+ КонецЕсли;
+ Если НайденыВключенные И НайденыВыключенные Тогда
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если НайденыВключенные И НайденыВыключенные Тогда
+ Включить = 2;
+ ИначеЕсли НайденыВключенные И (Не НайденыВыключенные) Тогда
+ Включить = 1;
+ ИначеЕсли (Не НайденыВключенные) И НайденыВыключенные Тогда
+ Включить = 0;
+ ИначеЕсли (Не НайденыВключенные) И (Не НайденыВыключенные) Тогда
+ Включить = 2;
+ КонецЕсли;
+
+ Если Включить = ТекСостояние Тогда
+ Возврат;
+ Иначе
+ Родитель[ИмяФлажка] = Включить;
+ УстановитьПометкиРодителей(Родитель, ИмяФлажка);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ДеревоМетаданныхПриАктивизацииСтроки(Элемент)
+
+ Если Элемент.ТекущаяСтрока = ДеревоМетаданныхПредыдущаяСтрока Тогда
+ Возврат;
+ КонецЕсли;
+ ДеревоМетаданныхПредыдущаяСтрока = Элемент.ТекущаяСтрока;
+
+ НастроитьКомпоновщик();
+
+КонецПроцедуры
+
+// Служит для настройки построителя при отборе данных
+//
+// Параметры:
+//
+&НаКлиенте
+Процедура НастроитьКомпоновщик()
+
+ ТекущаяСтрока = Элементы.ДеревоМетаданных.ТекущиеДанные;
+
+ Если ТекущаяСтрока = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если НЕ ОпределитьПоСтрокеДереваДоступенПостроитель(ТекущаяСтрока) Тогда
+
+ ДоступностьКомпоновщика = ЛОЖЬ;
+ УдалитьОтборыКомпоновщика(Объект.КомпоновщикНастроекКомпоновкиДанных);
+
+ Иначе
+
+ Попытка
+
+ НастроитьКомпоновщикНаСервере(Элементы.ДеревоМетаданных.ТекущаяСтрока);
+
+ ДоступностьКомпоновщика = Истина;
+
+ Исключение
+ ДоступностьКомпоновщика = ЛОЖЬ;
+ УдалитьОтборыКомпоновщика(Объект.КомпоновщикНастроекКомпоновкиДанных);
+ КонецПопытки;
+
+ КонецЕсли;
+
+ Элементы.КомпоновщикОтбор.Доступность = ДоступностьКомпоновщика;
+ //Элементы.КоманднаяПанельКомпоновщикОтбор.Доступность = ДоступностьКомпоновщика;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ОпределитьПоСтрокеДереваДоступенПостроитель(СтрокаДерева)
+
+ Если СтрокаДерева.ПолучитьЭлементы().Количество() > 0 Тогда
+ Возврат Ложь;
+ Иначе
+ Возврат Истина;
+ КонецЕсли;
+
+КонецФункции
+
+&НаКлиенте
+Процедура УдалитьОтборыКомпоновщика(Компоновщик)
+
+ Компоновщик.Настройки.Отбор.Элементы.Очистить();
+
+КонецПроцедуры
+
+&НаСервере
+Процедура НастроитьКомпоновщикНаСервере(ТекущаяСтрока)
+
+ СтрокаДерева = Объект.ДеревоМетаданных.НайтиПоИдентификатору(ТекущаяСтрока);
+ СхемаКомпоновкиДанных = Объект().ПодготовитьКомпоновщикДляВыгрузки(СтрокаДерева);
+ АдресСхемы = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, УникальныйИдентификатор);
+ Объект.КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы));
+ Объект.КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
+
+КонецПроцедуры // НастроитьКомпоновщикНаСервере()
+
+&НаКлиенте
+Процедура КомпоновщикОтборПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
+
+ ОбновитьНастройкиПостроителяВТаблицеДляВыгрузки();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КомпоновщикОтборПослеУдаления(Элемент)
+
+ ОбновитьНастройкиПостроителяВТаблицеДляВыгрузки();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОбновитьНастройкиПостроителяВТаблицеДляВыгрузки()
+
+ ТекущаяСтрока = Элементы.ДеревоМетаданных.ТекущиеДанные;
+ Если Объект.КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор.Элементы.Количество() > 0 Тогда
+
+ ТекущаяСтрока.НастройкиКомпоновщика = Объект.КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор;//Объект.КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки();
+ ТекущаяСтрока.ИспользоватьОтбор = ИСТИНА;
+ ТекущаяСтрока.Выгружать = Истина;
+
+ Иначе
+
+ ТекущаяСтрока.НастройкиКомпоновщика = Неопределено;
+ ТекущаяСтрока.ИспользоватьОтбор = ЛОЖЬ;
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПоказатьРезультатОтбора(Команда)
+
+ // показать выбранные записи
+ Если Элементы.КомпоновщикОтбор.Доступность <> Истина
+ ИЛИ Элементы.ДеревоМетаданных.ТекущиеДанные = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ТабличныйДокумент = ПолучитьРезультатОтбораНаСервере();
+ ТабличныйДокумент.Показать(НСтр("ru = 'Выбранные объекты'"));
+
+КонецПроцедуры
+
+&НаСервере
+Функция ПолучитьРезультатОтбораНаСервере()
+
+ СтрокаДерева = Объект.ДеревоМетаданных.НайтиПоИдентификатору(Элементы.ДеревоМетаданных.ТекущаяСтрока);
+ ТабличныйДокумент = Объект().СформироватьОтчетПоОтобраннымДанным(СтрокаДерева);
+
+ Возврат ТабличныйДокумент;
+
+КонецФункции // ПолучитьРезультатОтбораНаСервере()
+
+&НаКлиенте
+Процедура ДополнительныеСвойства(Команда)
+ Элементы.ФормаДополнительныеСвойства.Пометка = НЕ Элементы.ФормаДополнительныеСвойства.Пометка;
+ Элементы.ДополнительныеСвойства.Видимость = Элементы.ФормаДополнительныеСвойства.Пометка;
+КонецПроцедуры
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
new file mode 100644
index 000000000..7ee263131
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
@@ -0,0 +1,22 @@
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin"
new file mode 100644
index 000000000..715929170
Binary files /dev/null and "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" differ
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.xml"
new file mode 100644
index 000000000..97b1b1954
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеДвухЗаписейВРегистреСведений
+
+
+ ru
+ Создание двух записей в регистре сведений
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271/Ext/Template.xml"
new file mode 100644
index 000000000..1b4d6e133
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271/Ext/Template.xml"
@@ -0,0 +1,971 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 2
+
+
+
+ 5
+
+ 3
+
+
+
+ 6
+
+ 5
+
+
+
+
+ 0
+
+
+
+ 6
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 4
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 9
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 6
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 4
+
+
+
+
+ 9
+
+
+
+
+ 10
+
+
+
+
+ 11
+
+
+
+
+
+ 2
+
+
+
+ 6
+
+
+
+
+ 7
+
+
+
+
+ 8
+
+
+
+
+ 4
+
+
+
+
+ 9
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Тест
+
+
+
+
+
+
+ 11
+
+
+
+
+
+ 3
+
+
+
+ 6
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник21
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+
+ 4
+
+
+ 4
+
+ 9
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Тест1
+
+
+
+
+
+
+
+ 5
+
+
+
+ 6
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 12
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 13
+
+
+
+
+ 14
+
+
+
+
+ 15
+
+
+
+
+ 5
+
+
+
+
+
+ 6
+
+
+
+ 6
+
+
+
+
+ 7
+
+
+
+
+ 12
+
+
+
+
+ 13
+
+
+
+
+ 9
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Тест2
+
+
+
+
+
+
+ 5
+
+
+
+
+
+ 7
+
+
+
+ 6
+
+
+ ru
+ РегистрСведений
+
+
+
+
+
+
+ 0
+
+
+ ru
+ РегистрСведений1
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ЗаписьРегистра1
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 8
+
+
+ 4
+
+ 16
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 5
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 9
+
+
+ 3
+
+ 0
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник21
+
+
+
+
+
+
+ 5
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 10
+
+
+ 3
+
+ 0
+
+
+
+
+ 0
+
+
+ ru
+ РесурсЧисло
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 300
+
+
+
+
+
+
+
+ 11
+
+
+ 4
+
+ 0
+
+
+ ru
+ РесурсБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Ложь
+
+
+
+
+
+
+
+ 12
+
+
+
+ 6
+
+
+ ru
+ РегистрСведений
+
+
+
+
+
+
+ 17
+
+
+ ru
+ РегистрСведений1
+
+
+
+
+
+
+ 12
+
+
+ ru
+ ЗаписьРегистра2
+
+
+
+
+
+
+ 18
+
+
+
+
+ 16
+
+
+
+
+ 19
+
+
+
+
+
+ 5
+
+
+
+
+
+
+ 13
+
+
+
+ 1
+
+
+
+
+ 17
+
+
+
+
+ 12
+
+
+
+
+ 18
+
+
+
+
+ 16
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 5
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 14
+
+
+
+ 1
+
+
+
+
+ 17
+
+
+
+
+ 12
+
+
+
+
+ 18
+
+
+
+
+ 16
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 5
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 15
+
+
+
+ 1
+
+
+
+
+ 17
+
+
+
+
+ 12
+
+
+
+
+ 18
+
+
+
+
+ 16
+
+
+ ru
+ РесурсЧисло
+
+
+
+
+
+
+ 19
+
+
+ ru
+ 400
+
+
+
+
+
+
+ 5
+
+
+
+
+
+ 16
+
+
+
+ 1
+
+
+
+
+ 17
+
+
+
+
+ 12
+
+
+
+
+ 18
+
+
+
+
+ 16
+
+
+ ru
+ РесурсБулево
+
+
+
+
+
+
+ 19
+
+
+ ru
+ Истина
+
+
+
+
+
+
+ 5
+
+
+
+
+ true
+ 20
+ 17
+ 17
+
+ 113
+
+
+ 136
+
+
+ 143
+
+
+ 24
+
+
+ 49
+
+
+ 80
+
+
+ 202
+
+
+ 129
+
+
+ 97
+
+
+ 155
+
+
+ 123
+
+
+ 109
+
+
+ 54
+
+
+ 240
+
+
+ 88
+
+
+ 104
+
+
+ 137
+
+
+ 41
+
+
+ 102
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270.xml"
new file mode 100644
index 000000000..4d36921f5
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеДвухЗаписейРегистраБухгалтерии
+
+
+ ru
+ Создание двух записей регистра бухгалтерии
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270/Ext/Template.xml"
new file mode 100644
index 000000000..c2c9a0bf9
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270/Ext/Template.xml"
@@ -0,0 +1,1706 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 8
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 5
+
+
+
+ 5
+
+ 3
+
+
+
+ 6
+
+ 6
+
+
+
+
+ 0
+
+
+
+ 7
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 8
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 10
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 12
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 13
+
+
+ ru
+ Режим
+
+
+
+
+
+
+ 14
+
+
+ ru
+ ДополнительныйТипЗначения
+
+
+
+
+
+
+
+ 1
+
+
+
+ 7
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 10
+
+
+
+
+ 11
+
+
+
+
+ 12
+
+
+
+
+ 13
+
+
+
+
+
+ 2
+
+
+
+ 7
+
+
+
+
+ 8
+
+
+
+
+ 9
+
+
+
+
+ 10
+
+
+
+
+ 11
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 12
+
+
+ ru
+ Тест
+
+
+
+
+
+
+ 13
+
+
+
+
+
+ 3
+
+
+
+ 7
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник21
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+
+ 4
+
+
+ 4
+
+ 11
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 12
+
+
+ ru
+ Тест1
+
+
+
+
+
+
+
+ 5
+
+
+
+ 7
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 15
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 4
+
+
+
+
+ 16
+
+
+
+
+ 17
+
+
+
+
+ 18
+
+
+
+
+
+ 6
+
+
+
+ 7
+
+
+
+
+ 8
+
+
+
+
+ 15
+
+
+
+
+ 4
+
+
+
+
+ 11
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 12
+
+
+ ru
+ Тест2
+
+
+
+
+
+
+ 18
+
+
+
+
+
+ 7
+
+
+
+ 7
+
+
+ ru
+ Документ
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Документ2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Документ
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 8
+
+
+ 4
+
+ 11
+
+
+ ru
+ Дата
+
+
+
+
+
+
+ 12
+
+
+
+
+ 6
+
+
+ ru
+ ТекущаяДата
+
+
+
+
+
+
+
+ 9
+
+
+ 3
+
+ 0
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 18
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 10
+
+
+ 3
+
+ 0
+
+
+ ru
+ Состав
+
+
+
+
+
+
+
+ 11
+
+
+ 4
+
+ 15
+
+
+ ru
+ РеквизитЧисло
+
+
+
+
+
+
+ 15
+
+
+ ru
+ 150
+
+
+
+
+
+
+ 18
+
+
+
+
+
+ 12
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ПростойСправочник21
+
+
+
+
+
+
+ 18
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 13
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Ложь
+
+
+
+
+
+
+
+ 14
+
+
+ 3
+
+ 4
+
+
+ ru
+ Состав
+
+
+
+
+
+
+ 16
+
+
+
+
+ 17
+
+
+
+
+ 18
+
+
+
+
+
+ 15
+
+
+ 3
+
+ 4
+
+
+
+
+ 16
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 18
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 16
+
+
+ 3
+
+ 4
+
+
+
+
+ 15
+
+
+ ru
+ РеквизитЧисло
+
+
+
+
+
+
+ 15
+
+
+ ru
+ 0
+
+
+
+
+
+
+ 18
+
+
+
+
+
+ 17
+
+
+ 3
+
+ 4
+
+
+
+
+ 16
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 17
+
+
+ ru
+ Истина
+
+
+
+
+
+
+ 18
+
+
+
+
+
+ 18
+
+
+
+ 7
+
+
+ ru
+ РегистрБухгалтерии
+
+
+
+
+
+
+ 2
+
+
+ ru
+ РегистрБухгалтерии1
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ЗаписьРегистра2
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 19
+
+
+ 3
+
+ 0
+
+
+ ru
+ Запись
+
+
+
+
+
+
+ 19
+
+
+
+
+ 9
+
+
+
+
+ 18
+
+
+
+
+
+ 20
+
+
+ 4
+
+ 19
+
+
+ ru
+ Регистратор
+
+
+
+
+
+
+ 9
+
+
+ ru
+ Документ
+
+
+
+
+
+
+ 18
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 21
+
+
+ 4
+
+ 19
+
+
+ ru
+ Период
+
+
+
+
+
+
+ 9
+
+
+
+
+ 18
+
+
+
+
+
+ 22
+
+
+ 4
+
+ 0
+
+
+ ru
+ СчетДт
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Счет01
+
+
+
+
+
+
+ 13
+
+
+ ru
+ Предопределенный
+
+
+
+
+
+
+ 14
+
+
+ ru
+ ПланСчетовСсылка.ПланСчетов1
+
+
+
+
+
+
+
+ 23
+
+
+ 4
+
+ 0
+
+
+ ru
+ СчетКт
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Счет02
+
+
+
+
+
+
+ 13
+
+
+ ru
+ Предопределенный
+
+
+
+
+
+
+ 14
+
+
+ ru
+ ПланСчетовСсылка.ПланСчетов1
+
+
+
+
+
+
+
+ 24
+
+
+ 4
+
+ 19
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 18
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 25
+
+
+ 3
+
+ 0
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2Дт
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ПростойСправочник21
+
+
+
+
+
+
+ 18
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 26
+
+
+ 3
+
+ 0
+
+
+
+
+ 2
+
+
+ ru
+ РесурсЧисло
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 150
+
+
+
+
+
+
+
+ 27
+
+
+ 4
+
+ 2
+
+
+ ru
+ РесурсЧисло1Дт
+
+
+
+
+
+
+ 0
+
+
+
+
+
+ 28
+
+
+ 4
+
+ 2
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Ложь
+
+
+
+
+
+
+
+ 29
+
+
+
+ 1
+
+
+
+
+ 2
+
+
+
+
+ 3
+
+
+
+
+ 4
+
+
+ ru
+ Запись
+
+
+
+
+
+
+ 16
+
+
+
+
+ 17
+
+
+
+
+ 18
+
+
+
+
+
+ 30
+
+
+ 4
+
+ 19
+
+
+ ru
+ Регистратор
+
+
+
+
+
+
+ 9
+
+
+ ru
+ Документ
+
+
+
+
+
+
+ 18
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 31
+
+
+ 4
+
+ 19
+
+
+ ru
+ Период
+
+
+
+
+
+
+ 9
+
+
+
+
+ 18
+
+
+ ru
+ ТекущаяДата
+
+
+
+
+
+
+
+ 32
+
+
+ 4
+
+ 0
+
+
+ ru
+ СчетДт
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Счет02
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+
+ 33
+
+
+ 4
+
+ 0
+
+
+ ru
+ СчетКт
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Счет01
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+
+ 34
+
+
+ 4
+
+ 19
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 18
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 35
+
+
+ 3
+
+ 4
+
+
+
+
+ 16
+
+
+ ru
+ ПростойСправочник2Кт
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 18
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 36
+
+
+ 3
+
+ 4
+
+
+
+
+ 2
+
+
+ ru
+ РесурсЧисло
+
+
+
+
+
+
+ 15
+
+
+ ru
+ 0
+
+
+
+
+
+
+ 18
+
+
+
+
+
+ 37
+
+
+ 3
+
+ 4
+
+
+
+
+ 2
+
+
+ ru
+ РесурсЧисло1Кт
+
+
+
+
+
+
+ 17
+
+
+
+
+ 18
+
+
+
+
+
+ 38
+
+
+ 3
+
+ 4
+
+
+
+
+ 2
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 17
+
+
+ ru
+ Истина
+
+
+
+
+
+
+ 18
+
+
+
+
+ true
+ 20
+ 39
+ 39
+
+ 125
+
+
+ 136
+
+
+ 143
+
+
+ 54
+
+
+ 177
+
+
+ 89
+
+
+ 80
+
+
+ 202
+
+
+ 129
+
+
+ 24
+
+
+ 97
+
+
+ 155
+
+
+ 123
+
+
+ 208
+
+
+ 109
+
+
+ 240
+
+
+ 88
+
+
+ 49
+
+
+ 104
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217.xml"
new file mode 100644
index 000000000..e6732e9ee
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеДвухЗаписейРегистраНакопления
+
+
+ ru
+ Создание двух записей регистра накопления
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217/Ext/Template.xml"
new file mode 100644
index 000000000..e7aab2ccb
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217/Ext/Template.xml"
@@ -0,0 +1,1457 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 2
+
+
+
+ 5
+
+ 3
+
+
+
+ 6
+
+ 5
+
+
+
+
+ 0
+
+
+
+ 6
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 12
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 6
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 9
+
+
+
+
+ 10
+
+
+
+
+ 11
+
+
+
+
+ 12
+
+
+
+
+
+ 2
+
+
+
+ 6
+
+
+
+
+ 7
+
+
+
+
+ 8
+
+
+
+
+ 9
+
+
+
+
+ 10
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тест
+
+
+
+
+
+
+ 12
+
+
+
+
+
+ 3
+
+
+
+ 6
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник21
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+
+ 4
+
+
+ 4
+
+ 10
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тест1
+
+
+
+
+
+
+
+ 5
+
+
+
+ 6
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 13
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 4
+
+
+
+
+ 14
+
+
+
+
+ 15
+
+
+
+
+ 16
+
+
+
+
+
+ 6
+
+
+
+ 6
+
+
+
+
+ 7
+
+
+
+
+ 13
+
+
+
+
+ 4
+
+
+
+
+ 10
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тест2
+
+
+
+
+
+
+ 16
+
+
+
+
+
+ 7
+
+
+
+ 6
+
+
+ ru
+ Документ
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Документ2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Документ
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 8
+
+
+ 4
+
+ 10
+
+
+ ru
+ Дата
+
+
+
+
+
+
+ 11
+
+
+
+
+ 5
+
+
+ ru
+ ТекущаяДата
+
+
+
+
+
+
+
+ 9
+
+
+ 3
+
+ 0
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 16
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 10
+
+
+ 3
+
+ 0
+
+
+ ru
+ Состав
+
+
+
+
+
+
+
+ 11
+
+
+ 4
+
+ 13
+
+
+ ru
+ РеквизитЧисло
+
+
+
+
+
+
+ 13
+
+
+ ru
+ 150
+
+
+
+
+
+
+ 16
+
+
+
+
+
+ 12
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник21
+
+
+
+
+
+
+ 16
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 13
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Ложь
+
+
+
+
+
+
+
+ 14
+
+
+ 3
+
+ 4
+
+
+ ru
+ Состав
+
+
+
+
+
+
+ 14
+
+
+
+
+ 15
+
+
+
+
+ 16
+
+
+
+
+
+ 15
+
+
+ 3
+
+ 4
+
+
+
+
+ 14
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 16
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 16
+
+
+ 3
+
+ 4
+
+
+
+
+ 13
+
+
+ ru
+ РеквизитЧисло
+
+
+
+
+
+
+ 13
+
+
+ ru
+ 0
+
+
+
+
+
+
+ 16
+
+
+
+
+
+ 17
+
+
+ 3
+
+ 4
+
+
+
+
+ 14
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 15
+
+
+ ru
+ Истина
+
+
+
+
+
+
+ 16
+
+
+
+
+
+ 18
+
+
+
+ 6
+
+
+ ru
+ РегистрНакопления
+
+
+
+
+
+
+ 0
+
+
+ ru
+ РегистрНакопления2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ЗаписьРегистра2
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 19
+
+
+ 3
+
+ 0
+
+
+ ru
+ Запись
+
+
+
+
+
+
+ 17
+
+
+
+
+ 8
+
+
+
+
+ 16
+
+
+
+
+
+ 20
+
+
+ 4
+
+ 17
+
+
+ ru
+ Регистратор
+
+
+
+
+
+
+ 8
+
+
+ ru
+ Документ
+
+
+
+
+
+
+ 16
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 21
+
+
+ 4
+
+ 17
+
+
+ ru
+ Период
+
+
+
+
+
+
+ 8
+
+
+
+
+ 16
+
+
+
+
+
+ 22
+
+
+ 4
+
+ 17
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 16
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 23
+
+
+ 3
+
+ 0
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник21
+
+
+
+
+
+
+ 16
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 24
+
+
+ 3
+
+ 0
+
+
+
+
+ 2
+
+
+ ru
+ РесурсЧисло
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 150
+
+
+
+
+
+
+
+ 25
+
+
+ 4
+
+ 2
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Ложь
+
+
+
+
+
+
+
+ 26
+
+
+
+ 1
+
+
+
+
+ 2
+
+
+
+
+ 3
+
+
+
+
+ 4
+
+
+ ru
+ Запись
+
+
+
+
+
+
+ 14
+
+
+
+
+ 15
+
+
+
+
+ 16
+
+
+
+
+
+ 27
+
+
+ 4
+
+ 17
+
+
+ ru
+ Регистратор
+
+
+
+
+
+
+ 8
+
+
+ ru
+ Документ
+
+
+
+
+
+
+ 16
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 28
+
+
+ 4
+
+ 17
+
+
+ ru
+ Период
+
+
+
+
+
+
+ 8
+
+
+
+
+ 16
+
+
+ ru
+ ТекущаяДата
+
+
+
+
+
+
+
+ 29
+
+
+ 4
+
+ 17
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 16
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 30
+
+
+ 3
+
+ 4
+
+
+
+
+ 14
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 16
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 31
+
+
+ 3
+
+ 4
+
+
+
+
+ 2
+
+
+ ru
+ РесурсЧисло
+
+
+
+
+
+
+ 13
+
+
+ ru
+ 0
+
+
+
+
+
+
+ 16
+
+
+
+
+
+ 32
+
+
+ 3
+
+ 4
+
+
+
+
+ 2
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 15
+
+
+ ru
+ Истина
+
+
+
+
+
+
+ 16
+
+
+
+
+ true
+ 18
+ 33
+ 33
+
+ 125
+
+
+ 136
+
+
+ 143
+
+
+ 54
+
+
+ 89
+
+
+ 80
+
+
+ 202
+
+
+ 129
+
+
+ 24
+
+
+ 97
+
+
+ 155
+
+
+ 123
+
+
+ 109
+
+
+ 240
+
+
+ 88
+
+
+ 49
+
+
+ 104
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.xml"
new file mode 100644
index 000000000..52291b1c1
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеДвухПростыхСправочников
+
+
+ ru
+ Создание двух простых справочников
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/Template.xml"
new file mode 100644
index 000000000..70833130d
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/Template.xml"
@@ -0,0 +1,412 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 5
+
+
+
+ 5
+
+ 6
+
+
+
+ 6
+
+ 7
+
+
+
+
+ 0
+
+
+
+ 1
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 8
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 10
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 12
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 10
+
+
+
+
+ 11
+
+
+
+
+ 12
+
+
+
+
+ 7
+
+
+
+
+
+ 2
+
+
+
+ 1
+
+
+
+
+ 8
+
+
+
+
+ 9
+
+
+
+
+ 10
+
+
+
+
+ 11
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 12
+
+
+ ru
+ Тестовое наименование
+
+
+
+
+
+
+ 7
+
+
+
+
+
+ 3
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 11
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 12
+
+
+ ru
+ Ложь
+
+
+
+
+
+
+
+ 4
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+ 4
+
+ 11
+
+
+
+
+ 0
+
+
+
+
+
+ 5
+
+
+ 4
+
+ 11
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 12
+
+
+ ru
+ Тестовое наименование
+
+
+
+
+
+
+ true
+ 13
+ 6
+ 6
+
+ 80
+
+
+ 139
+
+
+ 137
+
+
+ 31
+
+
+ 107
+
+
+ 200
+
+
+ 90
+
+
+ 104
+
+
+ 129
+
+
+ 24
+
+
+ 97
+
+
+ 155
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.xml"
new file mode 100644
index 000000000..556eff31d
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеДокументаСДвумяСтрокамиВТабличнойЧасти
+
+
+ ru
+ Создание документа с двумя строками в табличной части
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270/Ext/Template.xml"
new file mode 100644
index 000000000..787b232ac
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270/Ext/Template.xml"
@@ -0,0 +1,1005 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 2
+
+
+
+ 5
+
+ 3
+
+
+
+ 6
+
+ 5
+
+
+
+
+ 0
+
+
+
+ 1
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 6
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 9
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 6
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+
+
+ 9
+
+
+
+
+ 10
+
+
+
+
+ 11
+
+
+
+
+
+ 2
+
+
+
+ 1
+
+
+
+
+ 6
+
+
+
+
+ 7
+
+
+
+
+ 8
+
+
+
+
+ 9
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Тест
+
+
+
+
+
+
+ 11
+
+
+
+
+
+ 3
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 0
+
+
+ ru
+ Код
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 5
+
+
+
+
+
+
+
+ 4
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник21
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+
+ 5
+
+
+ 4
+
+ 9
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Тест1
+
+
+
+
+
+
+
+ 6
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 0
+
+
+ ru
+ Код
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 5
+
+
+
+
+
+
+
+ 7
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 6
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 12
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 13
+
+
+
+
+ 14
+
+
+
+
+ 15
+
+
+
+
+ 5
+
+
+
+
+
+ 8
+
+
+
+ 1
+
+
+
+
+ 6
+
+
+
+
+ 12
+
+
+
+
+ 13
+
+
+
+
+ 9
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Тест2
+
+
+
+
+
+
+ 5
+
+
+
+
+
+ 9
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 0
+
+
+ ru
+ Код
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 6
+
+
+
+
+
+
+
+ 10
+
+
+
+ 1
+
+
+ ru
+ Документ
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Документ1
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Документ
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 11
+
+
+ 4
+
+ 9
+
+
+ ru
+ Дата
+
+
+
+
+
+
+ 10
+
+
+ ru
+ 20140401
+
+
+
+
+
+
+
+ 12
+
+
+ 3
+
+ 0
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 5
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 13
+
+
+ 3
+
+ 0
+
+
+ ru
+ Состав
+
+
+
+
+
+
+
+ 14
+
+
+ 4
+
+ 12
+
+
+ ru
+ РеквизитЧисло
+
+
+
+
+
+
+ 12
+
+
+ ru
+ 150
+
+
+
+
+
+
+ 5
+
+
+
+
+
+ 15
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Тест1
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+
+ 16
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Ложь
+
+
+
+
+
+
+
+ 17
+
+
+ 3
+
+ 13
+
+
+ ru
+ Состав
+
+
+
+
+
+
+ 14
+
+
+
+
+ 15
+
+
+
+
+ 5
+
+
+
+
+
+ 18
+
+
+ 3
+
+ 13
+
+
+
+
+ 14
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 5
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 19
+
+
+ 3
+
+ 13
+
+
+
+
+ 12
+
+
+ ru
+ РеквизитЧисло
+
+
+
+
+
+
+ 12
+
+
+ ru
+ 0
+
+
+
+
+
+
+ 5
+
+
+
+
+
+ 20
+
+
+ 3
+
+ 13
+
+
+
+
+ 14
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 15
+
+
+ ru
+ Истина
+
+
+
+
+
+
+ 5
+
+
+
+
+ true
+ 16
+ 21
+ 21
+
+ 80
+
+
+ 136
+
+
+ 143
+
+
+ 41
+
+
+ 49
+
+
+ 202
+
+
+ 129
+
+
+ 24
+
+
+ 97
+
+
+ 155
+
+
+ 123
+
+
+ 109
+
+
+ 54
+
+
+ 240
+
+
+ 88
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\274\320\270\320\247\320\260\321\201\321\202\321\217\320\274\320\270.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\274\320\270\320\247\320\260\321\201\321\202\321\217\320\274\320\270.xml"
new file mode 100644
index 000000000..1ace777be
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\274\320\270\320\247\320\260\321\201\321\202\321\217\320\274\320\270.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеДокументаСДвумяТабличнымиЧастями
+
+
+ ru
+ Создание документа с двумя табличными частями
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\274\320\270\320\247\320\260\321\201\321\202\321\217\320\274\320\270/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\274\320\270\320\247\320\260\321\201\321\202\321\217\320\274\320\270/Ext/Template.xml"
new file mode 100644
index 000000000..0fb82ba57
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\274\320\270\320\247\320\260\321\201\321\202\321\217\320\274\320\270/Ext/Template.xml"
@@ -0,0 +1,1016 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 8
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 2
+
+
+
+ 5
+
+ 3
+
+
+
+ 6
+
+ 5
+
+
+
+
+ 0
+
+
+
+ 1
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 6
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 9
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 6
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+
+
+ 9
+
+
+
+
+ 10
+
+
+
+
+ 11
+
+
+
+
+
+ 2
+
+
+
+ 1
+
+
+
+
+ 6
+
+
+
+
+ 7
+
+
+
+
+ 8
+
+
+
+
+ 9
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Тест
+
+
+
+
+
+
+ 11
+
+
+
+
+
+ 3
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 0
+
+
+ ru
+ Код
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 5
+
+
+
+
+
+
+
+ 4
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник21
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+
+ 5
+
+
+ 4
+
+ 9
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Тест1
+
+
+
+
+
+
+
+ 6
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 0
+
+
+ ru
+ Код
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 5
+
+
+
+
+
+
+
+ 7
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 6
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 12
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 13
+
+
+
+
+ 14
+
+
+
+
+ 15
+
+
+
+
+ 5
+
+
+
+
+
+ 8
+
+
+
+ 1
+
+
+
+
+ 6
+
+
+
+
+ 12
+
+
+
+
+ 13
+
+
+
+
+ 9
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Тест2
+
+
+
+
+
+
+ 5
+
+
+
+
+
+ 9
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 0
+
+
+ ru
+ Код
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 6
+
+
+
+
+
+
+
+ 10
+
+
+
+ 1
+
+
+ ru
+ Документ
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Документ2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Документ
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 11
+
+
+ 4
+
+ 9
+
+
+ ru
+ Дата
+
+
+
+
+
+
+ 10
+
+
+ ru
+ 20140401
+
+
+
+
+
+
+
+ 12
+
+
+ 3
+
+ 0
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 5
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 13
+
+
+ 3
+
+ 0
+
+
+ ru
+ Состав
+
+
+
+
+
+
+
+ 14
+
+
+ 4
+
+ 12
+
+
+ ru
+ РеквизитЧисло
+
+
+
+
+
+
+ 12
+
+
+ ru
+ 150
+
+
+
+
+
+
+ 5
+
+
+
+
+
+ 15
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Тест1
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+
+ 16
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Ложь
+
+
+
+
+
+
+
+ 17
+
+
+ 3
+
+ 13
+
+
+ ru
+ Состав2
+
+
+
+
+
+
+ 14
+
+
+
+
+ 15
+
+
+
+
+ 5
+
+
+
+
+
+ 18
+
+
+ 3
+
+ 13
+
+
+
+
+ 12
+
+
+ ru
+ РеквизитУИД
+
+
+
+
+
+
+ 12
+
+
+ ru
+ 39c2b68f-b7c8-11e4-b736-080027b785c3
+
+
+
+
+
+
+ 5
+
+
+ ru
+ Гуид
+
+
+
+
+
+
+
+ 19
+
+ 16
+
+ 4
+
+ 0
+
+
+ ru
+ ХранилищеЗначения
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ХранилищеЗначения
+
+
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+
+
+ 20
+
+
+ 3
+
+ 13
+
+
+
+
+ 14
+
+
+ ru
+ ЛюбаяСсылка
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник22
+
+
+
+
+
+
+ 5
+
+
+ ru
+ Перем
+
+
+
+
+
+
+ true
+ 17
+ 21
+ 21
+
+ 80
+
+
+ 136
+
+
+ 143
+
+
+ 41
+
+
+ 49
+
+
+ 202
+
+
+ 129
+
+
+ 24
+
+
+ 97
+
+
+ 155
+
+
+ 123
+
+
+ 109
+
+
+ 54
+
+
+ 240
+
+
+ 88
+
+
+ 48
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\243\320\267\320\273\320\276\320\262\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\243\320\267\320\273\320\276\320\262\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260.xml"
new file mode 100644
index 000000000..a7f467ee4
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\243\320\267\320\273\320\276\320\262\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеЗаполнениеУзловПланаОбмена
+
+
+ ru
+ Создание/заполнение узлов плана обмена
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\243\320\267\320\273\320\276\320\262\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\243\320\267\320\273\320\276\320\262\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260/Ext/Template.xml"
new file mode 100644
index 000000000..ade20bb50
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\243\320\267\320\273\320\276\320\262\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260/Ext/Template.xml"
@@ -0,0 +1,484 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 8
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 5
+
+
+
+ 5
+
+ 6
+
+
+
+ 6
+
+ 7
+
+
+
+
+ 0
+
+
+
+ 0
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Режим
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ДополнительныйТипЗначения
+
+
+
+
+
+
+
+ 1
+
+
+
+ 0
+
+
+ ru
+ ПланОбмена
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПланОбмена1
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ЭтаИнформационнаяБаза
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+ 0
+
+
+ ru
+ ЭтотУзел
+
+
+
+
+
+
+
+ 2
+
+
+ 4
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Эта информационная база
+
+
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+
+
+ 3
+
+
+ 4
+
+ 0
+
+
+ ru
+ Код
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 000000001
+
+
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+
+
+ 4
+
+
+
+ 0
+
+
+ ru
+ ПланОбмена
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПланОбмена1
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Узел1
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+
+
+ 5
+
+
+ 4
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Узел 1
+
+
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+
+
+ 6
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Истина
+
+
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+
+
+ 7
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитПеречисление
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ЗначениеПеречисления2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Предопределенный
+
+
+
+
+
+
+ 0
+
+
+
+
+
+ true
+ 8
+ 8
+ 8
+
+ 85
+
+
+ 91
+
+
+ 165
+
+
+ 24
+
+
+ 147
+
+
+ 167
+
+
+ 123
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\265\321\201\320\272\320\276\320\273\321\214\320\272\320\270\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\230\320\221.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\265\321\201\320\272\320\276\320\273\321\214\320\272\320\270\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\230\320\221.xml"
new file mode 100644
index 000000000..f072996a1
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\265\321\201\320\272\320\276\320\273\321\214\320\272\320\270\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\230\320\221.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеНесколькихПользователейИБ
+
+
+ ru
+ Создание нескольких пользователей ИБ
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\265\321\201\320\272\320\276\320\273\321\214\320\272\320\270\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\230\320\221/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\265\321\201\320\272\320\276\320\273\321\214\320\272\320\270\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\230\320\221/Ext/Template.xml"
new file mode 100644
index 000000000..1569566ad
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\265\321\201\320\272\320\276\320\273\321\214\320\272\320\270\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\230\320\221/Ext/Template.xml"
@@ -0,0 +1,860 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 5
+
+
+
+ 5
+
+ 6
+
+
+
+ 6
+
+ 7
+
+
+
+
+ 0
+
+
+
+ 0
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 0
+
+
+ ru
+ ПользовательИБ
+
+
+
+
+
+
+ 0
+
+
+
+
+
+ 0
+
+
+ ru
+ Пользователь1
+
+
+
+
+
+
+
+ 2
+
+
+ 4
+
+ 0
+
+
+ ru
+ Имя
+
+
+
+
+
+
+ 8
+ ПользовательПоУмолчанию
+
+
+
+
+ 0
+
+
+
+
+
+
+ 3
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПолноеИмя
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 4
+
+
+ 4
+
+ 0
+
+
+ ru
+ АутентификацияСтандартная
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Да
+
+
+
+
+
+
+
+ 5
+
+
+ 4
+
+ 0
+
+
+ ru
+ АутентификацияОС
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Нет
+
+
+
+
+
+
+
+ 6
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПользовательОС
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 7
+
+
+ 4
+
+ 0
+
+
+ ru
+ ОсновнойИнтерфейс
+
+
+
+
+
+
+ 0
+
+
+
+
+
+ 8
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПоказыватьВСпискеВыбора
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Да
+
+
+
+
+
+
+
+ 9
+
+
+ 4
+
+ 0
+
+
+ ru
+ РежимЗапуска
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Обычное приложение
+
+
+
+
+
+
+
+ 10
+
+
+ 4
+
+ 0
+
+
+ ru
+ Пароль
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 11
+
+
+ 3
+
+ 0
+
+
+ ru
+ Роли
+
+
+
+
+
+
+
+ 12
+
+
+ 4
+
+ 0
+
+
+ ru
+ Роль
+
+
+
+
+
+
+ 8
+ Роль1
+
+
+
+
+
+ 13
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 9
+
+
+ ru
+ Роль
+
+
+
+
+
+
+ 8
+ ПраваНеобходимыеДляТестирования
+
+
+
+
+
+ 14
+
+
+
+ 0
+
+
+ ru
+ ПользовательИБ
+
+
+
+
+
+
+ 0
+
+
+
+
+
+ 0
+
+
+ ru
+ Пользователь2
+
+
+
+
+
+
+
+ 15
+
+
+ 4
+
+ 0
+
+
+ ru
+ Имя
+
+
+
+
+
+
+ 8
+ Пользователь2
+
+
+
+
+ 0
+
+
+
+
+
+
+ 16
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПолноеИмя
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 17
+
+
+ 4
+
+ 0
+
+
+ ru
+ АутентификацияСтандартная
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Да
+
+
+
+
+
+
+
+ 18
+
+
+ 4
+
+ 0
+
+
+ ru
+ АутентификацияОС
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Нет
+
+
+
+
+
+
+
+ 19
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПользовательОС
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 20
+
+
+ 4
+
+ 0
+
+
+ ru
+ ОсновнойИнтерфейс
+
+
+
+
+
+
+ 0
+
+
+
+
+
+ 21
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПоказыватьВСпискеВыбора
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Да
+
+
+
+
+
+
+
+ 22
+
+
+ 4
+
+ 0
+
+
+ ru
+ РежимЗапуска
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Обычное приложение
+
+
+
+
+
+
+
+ 23
+
+
+ 4
+
+ 0
+
+
+ ru
+ Пароль
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 24
+
+
+ 3
+
+ 0
+
+
+ ru
+ Роли
+
+
+
+
+
+
+
+ 25
+
+
+ 4
+
+ 0
+
+
+ ru
+ Роль
+
+
+
+
+
+
+ 8
+ Роль1
+
+
+
+
+
+ 26
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 9
+
+
+ ru
+ Роль
+
+
+
+
+
+
+ 8
+ ПраваНеобходимыеДляТестирования
+
+
+
+
+ true
+ 10
+ 27
+ 27
+
+ 80
+
+
+ 104
+
+
+ 129
+
+
+ 24
+
+
+ 186
+
+
+ 155
+
+
+ 90
+
+
+ 155
+ Parameter
+
+
+ 97
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265.xml"
new file mode 100644
index 000000000..96d4f3da9
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеОбъектаСЗаполненнымРеквизитомТипаПеречисление
+
+
+ ru
+ Создание объекта с заполненным реквизитом типа перечисление
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265/Ext/Template.xml"
new file mode 100644
index 000000000..068c93ce3
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265/Ext/Template.xml"
@@ -0,0 +1,283 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 8
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 2
+
+
+
+ 3
+
+ 3
+
+
+
+ 4
+
+ 4
+
+
+
+ 5
+
+ 5
+
+
+
+ 6
+
+ 6
+
+
+
+
+ 0
+
+
+
+ 0
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Режим
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ДополнительныйТипЗначения
+
+
+
+
+
+
+
+ 1
+
+
+
+ 0
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+
+ 2
+
+
+ 4
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 0
+
+
+ ru
+ тЗначениеПеречисления1
+
+
+
+
+
+
+
+ 3
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитПеречисление
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ЗначениеПеречисления1
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Предопределенный
+
+
+
+
+
+
+ true
+ 8
+ 4
+ 4
+
+ 80
+
+
+ 129
+
+
+ 24
+
+
+ 147
+
+
+ 305
+
+
+ 123
+
+
+ 208
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.xml"
new file mode 100644
index 000000000..2603a6540
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеПодчиненногоСправочника
+
+
+ ru
+ Создание подчиненного справочника
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260/Ext/Template.xml"
new file mode 100644
index 000000000..89e251f05
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260/Ext/Template.xml"
@@ -0,0 +1,332 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 5
+
+
+
+ 5
+
+ 6
+
+
+
+ 6
+
+ 5
+
+
+
+
+ 0
+
+
+
+ 7
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 7
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПодчиненныйСправочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПодчиненныйЭлемент
+
+
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+
+ 2
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+ ru
+ Владелец
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Предопределенное значение
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+
+ 3
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Подчиненный элемент
+
+
+
+
+
+
+ 7
+
+
+
+
+ true
+ 7
+ 4
+ 4
+
+ 80
+
+
+ 159
+
+
+ 142
+
+
+ 24
+
+
+ 97
+
+
+ 178
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.xml"
new file mode 100644
index 000000000..1c789c413
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеПростогоСправочника
+
+
+ ru
+ Создание простого справочника
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260/Ext/Template.xml"
new file mode 100644
index 000000000..e955a0611
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260/Ext/Template.xml"
@@ -0,0 +1,258 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 2
+
+
+
+ 3
+
+ 3
+
+
+
+ 4
+
+ 4
+
+
+
+ 5
+
+ 5
+
+
+
+ 6
+
+ 6
+
+
+
+
+ 0
+
+
+
+ 0
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 0
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+
+ 2
+
+
+ 4
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Тестовое наименование
+
+
+
+
+
+
+
+ 3
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Истина
+
+
+
+
+
+
+ true
+ 7
+ 4
+ 4
+
+ 80
+
+
+ 129
+
+
+ 24
+
+
+ 107
+
+
+ 155
+
+
+ 90
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200.xml"
new file mode 100644
index 000000000..697e22503
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеПростогоСправочника_ПредставлениеНеИдентификатор
+
+
+ ru
+ Создание простого справочника представление не идентификатор
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200/Ext/Template.xml"
new file mode 100644
index 000000000..9e0b0212d
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200/Ext/Template.xml"
@@ -0,0 +1,258 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 2
+
+
+
+ 3
+
+ 3
+
+
+
+ 4
+
+ 4
+
+
+
+ 5
+
+ 5
+
+
+
+ 6
+
+ 6
+
+
+
+
+ 0
+
+
+
+ 0
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 0
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+
+ 2
+
+
+ 4
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Тестовое,. наименование
+
+
+
+
+
+
+
+ 3
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Истина
+
+
+
+
+
+
+ true
+ 7
+ 4
+ 4
+
+ 80
+
+
+ 129
+
+
+ 24
+
+
+ 107
+
+
+ 155
+
+
+ 90
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.xml"
new file mode 100644
index 000000000..19c22dfd4
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеСвязанныхСправочников
+
+
+ ru
+ Создание связанных справочников
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/Template.xml"
new file mode 100644
index 000000000..6bf85f8d2
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262/Ext/Template.xml"
@@ -0,0 +1,448 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 5
+
+
+
+ 5
+
+ 6
+
+
+
+ 6
+
+ 7
+
+
+
+
+ 0
+
+
+
+ 1
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 2
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 5
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 4
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 8
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 9
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 2
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 5
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 4
+
+
+
+
+ 8
+
+
+
+
+ 9
+
+
+
+
+ 10
+
+
+
+
+
+ 2
+
+
+
+ 1
+
+
+
+
+ 2
+
+
+
+
+ 5
+
+
+
+
+ 4
+
+
+
+
+ 8
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 9
+
+
+ ru
+ Тестовое наименование
+
+
+
+
+
+
+ 10
+
+
+
+
+
+ 3
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 8
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 9
+
+
+ ru
+ Ложь
+
+
+
+
+
+
+
+ 4
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ИерархическийСправочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ИерархическийСправочник
+
+
+
+
+
+ 4
+
+ 8
+
+
+
+
+ 0
+
+
+
+
+
+ 5
+
+
+ 4
+
+ 8
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тестовое наименование
+
+
+
+
+
+
+
+ 6
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Перем
+
+
+
+
+
+
+ true
+ 12
+ 7
+ 7
+
+ 80
+
+
+ 104
+
+
+ 109
+
+
+ 24
+
+
+ 129
+
+
+ 162
+
+
+ 49
+
+
+ 97
+
+
+ 155
+
+
+ 90
+
+
+ 200
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\223\321\200\321\203\320\277\320\277\320\265.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\223\321\200\321\203\320\277\320\277\320\265.xml"
new file mode 100644
index 000000000..5eac5b51c
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\223\321\200\321\203\320\277\320\277\320\265.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеСправочникаВГруппе
+
+
+ ru
+ Создание справочника в группе
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\223\321\200\321\203\320\277\320\277\320\265/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\223\321\200\321\203\320\277\320\277\320\265/Ext/Template.xml"
new file mode 100644
index 000000000..cfdced25c
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\223\321\200\321\203\320\277\320\277\320\265/Ext/Template.xml"
@@ -0,0 +1,332 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 5
+
+
+
+ 5
+
+ 6
+
+
+
+ 6
+
+ 5
+
+
+
+
+ 0
+
+
+
+ 7
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 7
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ИерархическийСправочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ЭлементВГруппе
+
+
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+
+ 2
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+ ru
+ Родитель
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Группа1
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+
+ 3
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+
+
+ 7
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Элемент в группе
+
+
+
+
+
+
+ 7
+
+
+
+
+ true
+ 7
+ 4
+ 4
+
+ 80
+
+
+ 171
+
+
+ 112
+
+
+ 24
+
+
+ 97
+
+
+ 117
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.xml"
new file mode 100644
index 000000000..d051aff78
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеСправочникаСДвумяСтрокамиВТабличнойЧасти
+
+
+ ru
+ Создание справочника с двумя строками в табличной части
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270/Ext/Template.xml"
new file mode 100644
index 000000000..e8abb48a8
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270/Ext/Template.xml"
@@ -0,0 +1,954 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 2
+
+
+
+ 3
+
+ 3
+
+
+
+ 4
+
+ 4
+
+
+
+ 5
+
+ 5
+
+
+
+ 6
+
+ 6
+
+
+
+
+ 0
+
+
+
+ 1
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 9
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 12
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 9
+
+
+
+
+ 10
+
+
+
+
+ 11
+
+
+
+
+ 12
+
+
+
+
+
+ 2
+
+
+
+ 1
+
+
+
+
+ 7
+
+
+
+
+ 8
+
+
+
+
+
+ 9
+
+
+
+
+ 10
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тест
+
+
+
+
+
+
+ 12
+
+
+
+
+
+ 3
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 0
+
+
+ ru
+ Код
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 5
+
+
+
+
+
+
+
+ 4
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2_1
+
+
+
+
+
+
+
+ 5
+
+
+ 4
+
+ 10
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тест1
+
+
+
+
+
+
+
+ 6
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 0
+
+
+ ru
+ Код
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 5
+
+
+
+
+
+
+
+ 7
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 13
+
+
+ ru
+ ПростойСправочник2_2
+
+
+
+
+
+
+ 3
+
+
+
+
+ 14
+
+
+
+
+ 15
+
+
+
+
+ 6
+
+
+
+
+
+ 8
+
+
+
+ 1
+
+
+
+
+ 7
+
+
+
+
+ 13
+
+
+
+
+ 3
+
+
+
+
+ 10
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тест2
+
+
+
+
+
+
+ 6
+
+
+
+
+
+ 9
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 4
+
+ 0
+
+
+ ru
+ Код
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 6
+
+
+
+
+
+
+
+ 10
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ СправочникСТабЧастью
+
+
+
+
+
+
+ 0
+
+
+ ru
+ СправочникСТабЧастью
+
+
+
+
+
+
+
+ 11
+
+
+ 4
+
+ 10
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тестовое наименование
+
+
+
+
+
+
+
+ 12
+
+
+ 3
+
+ 0
+
+
+ ru
+ Состав
+
+
+
+
+
+
+
+ 13
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 14
+
+
+ 4
+
+ 13
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 13
+
+
+ ru
+ ПростойСправочник2_1
+
+
+
+
+
+
+ 6
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 15
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Истина
+
+
+
+
+
+
+
+ 16
+
+
+ 3
+
+ 3
+
+
+ ru
+ Состав
+
+
+
+
+
+
+ 14
+
+
+
+
+ 15
+
+
+
+
+ 6
+
+
+
+
+
+ 17
+
+
+ 3
+
+ 3
+
+
+
+
+ 14
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 8
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 6
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 18
+
+
+ 3
+
+ 3
+
+
+
+
+ 13
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 13
+
+
+ ru
+ ПростойСправочник2_2
+
+
+
+
+
+
+ 6
+
+
+ ru
+ Перем
+
+
+
+
+
+
+
+ 19
+
+
+ 3
+
+ 3
+
+
+
+
+ 14
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 15
+
+
+ ru
+ Ложь
+
+
+
+
+
+
+ 6
+
+
+
+
+ true
+ 16
+ 20
+ 20
+
+ 80
+
+
+ 152
+
+
+ 54
+
+
+ 136
+
+
+ 150
+
+
+ 49
+
+
+ 202
+
+
+ 129
+
+
+ 24
+
+
+ 97
+
+
+ 155
+
+
+ 123
+
+
+ 109
+
+
+ 240
+
+
+ 88
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260.xml"
new file mode 100644
index 000000000..ec5d06630
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеСправочникаСПустойСсылкойРеквизитаСоставногоТипа
+
+
+ ru
+ Создание справочника с пустой ссылкой реквизита составного типа
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260/Ext/Template.xml"
new file mode 100644
index 000000000..6eca0204f
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260/Ext/Template.xml"
@@ -0,0 +1,334 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 8
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 5
+
+
+
+ 5
+
+ 6
+
+
+
+ 6
+
+ 7
+
+
+
+ 7
+
+ 8
+
+
+
+
+ 0
+
+
+
+ 0
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Режим
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ДополнительныйТипЗначения
+
+
+
+
+
+
+
+ 1
+
+
+
+ 0
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ СправочникСТабЧастью
+
+
+
+
+
+
+ 2
+
+
+ ru
+ СправочникСТабЧастью
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+
+
+ 2
+
+
+ 4
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 6
+
+
+ ru
+ Тест пустые рекв
+
+
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+
+
+ 3
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитСоставногоТипа
+
+
+
+
+
+ 7
+
+ 0
+
+
+ ru
+ СправочникСсылка.ПростойСправочник
+
+
+
+
+
+
+
+ 4
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитСоставногоТипа2
+
+
+
+
+
+ 7
+
+ 0
+
+
+ ru
+ СправочникСсылка.ПростойСправочник2
+
+
+
+
+
+
+ true
+ 9
+ 5
+ 5
+
+ 80
+
+
+ 152
+
+
+ 177
+
+
+ 24
+
+
+ 167
+
+
+ 183
+
+
+ 49
+
+
+ 246
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\321\201\321\213\320\273\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260\320\232\320\276\320\264.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\321\201\321\213\320\273\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260\320\232\320\276\320\264.xml"
new file mode 100644
index 000000000..4f88b818d
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\321\201\321\213\320\273\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260\320\232\320\276\320\264.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ СозданиеСправочникаСРеквизитомСсылка_РежимПоискаКод
+
+
+ ru
+ Создание справочника с реквизитом ссылка режим поиска код
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\321\201\321\213\320\273\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260\320\232\320\276\320\264/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\321\201\321\213\320\273\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260\320\232\320\276\320\264/Ext/Template.xml"
new file mode 100644
index 000000000..230f47b28
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\321\201\321\213\320\273\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260\320\232\320\276\320\264/Ext/Template.xml"
@@ -0,0 +1,295 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 7
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 5
+
+
+
+ 5
+
+ 6
+
+
+
+ 6
+
+ 7
+
+
+
+
+ 0
+
+
+
+ 1
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 2
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 5
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 4
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 8
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 9
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Режим
+
+
+
+
+
+
+
+ 1
+
+
+
+ 1
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ИерархическийСправочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ИерархическийСправочник
+
+
+
+
+
+ 4
+
+ 8
+
+
+
+
+ 0
+
+
+
+
+
+ 2
+
+
+ 4
+
+ 8
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тестовое наименование
+
+
+
+
+
+
+
+ 3
+
+
+ 4
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 9
+
+
+ ru
+ Тестовое наименование
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ true
+ 12
+ 4
+ 4
+
+ 80
+
+
+ 104
+
+
+ 109
+
+
+ 24
+
+
+ 129
+
+
+ 162
+
+
+ 49
+
+
+ 97
+
+
+ 155
+
+
+ 90
+
+
+ 200
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.xml"
new file mode 100644
index 000000000..10a34be1a
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ ЭталонМакетаДвухЗаписейВРегистреСведений
+
+
+ ru
+ Эталон макета двух записей в регистре сведений
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271/Ext/Template.xml"
new file mode 100644
index 000000000..26cfb7d4a
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271/Ext/Template.xml"
@@ -0,0 +1,689 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 8
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 3
+
+
+
+ 3
+
+ 4
+
+
+
+ 4
+
+ 5
+
+
+
+ 5
+
+ 6
+
+
+
+ 6
+
+ 7
+
+
+
+
+ 0
+
+
+
+ 8
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 9
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 10
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 4
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 7
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 12
+
+
+ ru
+ Режим
+
+
+
+
+
+
+ 13
+
+
+ ru
+ ДополнительныйТипЗначения
+
+
+
+
+
+
+
+ 1
+
+
+
+ 8
+
+
+ ru
+ РегистрСведений
+
+
+
+
+
+
+ 0
+
+
+ ru
+ РегистрСведений1
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ЗаписьРегистра1
+
+
+
+
+
+ 5
+
+ 0
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ 2
+
+
+ 4
+
+ 14
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тест
+
+
+
+
+
+
+ 15
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+
+ 3
+
+
+ 3
+
+ 0
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тест1
+
+
+
+
+
+
+ 15
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+
+ 4
+
+
+ 3
+
+ 0
+
+
+
+
+ 0
+
+
+ ru
+ РесурсЧисло
+
+
+
+
+
+
+ 0
+
+
+ ru
+ 300
+
+
+
+
+
+
+
+ 5
+
+
+ 4
+
+ 0
+
+
+ ru
+ РесурсБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Ложь
+
+
+
+
+
+
+
+ 6
+
+
+
+ 8
+
+
+ ru
+ РегистрСведений
+
+
+
+
+
+
+ 16
+
+
+ ru
+ РегистрСведений1
+
+
+
+
+
+
+ 17
+
+
+ ru
+ ЗаписьРегистра2
+
+
+
+
+
+
+ 18
+
+
+
+
+ 14
+
+
+
+
+ 19
+
+
+
+
+
+ 15
+
+
+
+
+
+
+ 7
+
+
+
+ 1
+
+
+
+
+ 16
+
+
+
+
+ 17
+
+
+
+
+ 18
+
+
+
+
+ 14
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 11
+
+
+ ru
+ Тест
+
+
+
+
+
+
+ 15
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+
+ 8
+
+
+
+ 1
+
+
+
+
+ 16
+
+
+
+
+ 17
+
+
+
+
+ 18
+
+
+
+
+ 14
+
+
+ ru
+ ПростойСправочник2
+
+
+
+
+
+
+ 10
+
+
+ ru
+ Тест2
+
+
+
+
+
+
+ 15
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+
+ 9
+
+
+
+ 1
+
+
+
+
+ 16
+
+
+
+
+ 17
+
+
+
+
+ 18
+
+
+
+
+ 14
+
+
+ ru
+ РесурсЧисло
+
+
+
+
+
+
+ 19
+
+
+ ru
+ 400
+
+
+
+
+
+
+ 15
+
+
+
+
+
+ 10
+
+
+
+ 1
+
+
+
+
+ 16
+
+
+
+
+ 17
+
+
+
+
+ 18
+
+
+
+
+ 14
+
+
+ ru
+ РесурсБулево
+
+
+
+
+
+
+ 19
+
+
+ ru
+ Истина
+
+
+
+
+
+
+ 15
+
+
+
+
+ true
+ 20
+ 11
+ 11
+
+ 113
+
+
+ 120
+
+
+ 112
+
+
+ 24
+
+
+ 136
+
+
+ 66
+
+
+ 97
+
+
+ 80
+
+
+ 202
+
+
+ 129
+
+
+ 155
+
+
+ 123
+
+
+ 187
+
+
+ 104
+
+
+ 49
+
+
+ 137
+
+
+ 109
+
+
+ 41
+
+
+ 102
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.xml"
new file mode 100644
index 000000000..dd6e503f6
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.xml"
@@ -0,0 +1,16 @@
+
+
+
+
+ ЭталонМакетаПростогоСправочника
+
+
+ ru
+ Эталон макета простого справочника
+
+
+
+ SpreadsheetDocument
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260/Ext/Template.xml"
new file mode 100644
index 000000000..2f61c9170
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Templates/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260/Ext/Template.xml"
@@ -0,0 +1,272 @@
+
+
+
+ ru
+ ru
+
+ ru
+ Русский
+ Русский
+
+
+
+ 8
+
+ 0
+
+ 1
+
+
+
+ 1
+
+ 2
+
+
+
+ 2
+
+ 2
+
+
+
+ 3
+
+ 3
+
+
+
+ 4
+
+ 4
+
+
+
+ 5
+
+ 5
+
+
+
+ 6
+
+ 6
+
+
+
+
+ 0
+
+
+
+ 0
+
+
+ ru
+ Тип
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Вид
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ИмяПеременной
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ТЧ
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Реквизит
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Значение
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Режим
+
+
+
+
+
+
+ 7
+
+
+ ru
+ ДополнительныйТипЗначения
+
+
+
+
+
+
+
+ 1
+
+
+
+ 0
+
+
+ ru
+ Справочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник
+
+
+
+
+
+
+ 0
+
+
+ ru
+ ПростойСправочник1
+
+
+
+
+
+
+
+ 2
+
+
+ 4
+
+ 0
+
+
+ ru
+ Наименование
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Тестовое наименование
+
+
+
+
+
+
+
+ 3
+
+
+ 4
+
+ 0
+
+
+ ru
+ РеквизитБулево
+
+
+
+
+
+
+ 0
+
+
+ ru
+ Истина
+
+
+
+
+
+
+ true
+ 8
+ 4
+ 4
+
+ 80
+
+
+ 129
+
+
+ 24
+
+
+ 107
+
+
+ 155
+
+
+ 90
+
+
+ 187
+
+
+ 72
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213.xml"
new file mode 100644
index 000000000..3c552da46
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213.xml"
@@ -0,0 +1,34 @@
+
+
+
+
+
+ dfd8c3fb-8053-4dd6-808e-66185a6de41d
+ 11bbac6c-68e6-4dd6-80cf-054f9435cfcc
+
+
+ abb67565-5b31-4ab1-afdf-e69a3ff9101c
+ 985b2405-6f68-45ae-b7bb-b082258d189b
+
+
+
+ СтроковыеУтилиты
+
+
+ ru
+ Строковые утилиты
+
+
+
+ false
+ DataProcessor.СтроковыеУтилиты.Form.Форма
+
+ false
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Ext/ObjectModule.bsl"
new file mode 100644
index 000000000..9fa2ab21c
--- /dev/null
+++ "b/lib/CF/83xddNoSync/DataProcessors/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Ext/ObjectModule.bsl"
@@ -0,0 +1,1239 @@
+
+// { Plugin interface
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Результат = Новый Структура;
+ Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита);
+ Результат.Вставить("Идентификатор", Метаданные().Имя);
+ Результат.Вставить("Представление", "Строковые утилиты");
+
+ Возврат Новый ФиксированнаяСтруктура(Результат);
+КонецФункции
+
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+
+КонецПроцедуры
+// } Plugin interface
+
+
+// { Функции работы со строками
+
+// Разбивает строку на несколько строк по разделителю. Разделитель может иметь любую длину.
+//
+// Параметры:
+// Строка - Строка - текст с разделителями;
+// Разделитель - Строка - разделитель строк текста, минимум 1 символ;
+// ПропускатьПустыеСтроки - Булево - признак необходимости включения в результат пустых строк.
+// Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией:
+// - для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки
+// включаются в результат.
+// Е если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в
+// случае разделителя-пробела результатом функции будет массив, содержащий одно значение "" (пустая строка), а
+// при других разделителях результатом функции будет пустой массив.
+// СокращатьНепечатаемыеСимволы - Булево - сокращать непечатаемые символы по краям каждой из найденных подстрок.
+//
+// Возвращаемое значение:
+// Массив - массив строк.
+//
+// Примеры:
+// РазложитьСтрокуВМассивПодстрок(",один,,два,", ",") - возвратит массив из 5 элементов, три из которых - пустые
+// строки;
+// РазложитьСтрокуВМассивПодстрок(",один,,два,", ",", Истина) - возвратит массив из двух элементов;
+// РазложитьСтрокуВМассивПодстрок(" один два ", " ") - возвратит массив из двух элементов;
+// РазложитьСтрокуВМассивПодстрок("") - возвратит пустой массив;
+// РазложитьСтрокуВМассивПодстрок("",,Ложь) - возвратит массив с одним элементом "" (пустой строкой);
+// РазложитьСтрокуВМассивПодстрок("", " ") - возвратит массив с одним элементом "" (пустой строкой);
+//
+Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено, СокращатьНепечатаемыеСимволы = Ложь) Экспорт
+
+ Результат = Новый Массив;
+
+ // Для обеспечения обратной совместимости.
+ Если ПропускатьПустыеСтроки = Неопределено Тогда
+ ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь);
+ Если ПустаяСтрока(Строка) Тогда
+ Если Разделитель = " " Тогда
+ Результат.Добавить("");
+ КонецЕсли;
+ Возврат Результат;
+ КонецЕсли;
+ КонецЕсли;
+ //
+
+ Позиция = Найти(Строка, Разделитель);
+ Пока Позиция > 0 Цикл
+ Подстрока = Лев(Строка, Позиция - 1);
+ Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда
+ Если СокращатьНепечатаемыеСимволы Тогда
+ Результат.Добавить(СокрЛП(Подстрока));
+ Иначе
+ Результат.Добавить(Подстрока);
+ КонецЕсли;
+ КонецЕсли;
+ Строка = Сред(Строка, Позиция + СтрДлина(Разделитель));
+ Позиция = Найти(Строка, Разделитель);
+ КонецЦикла;
+
+ Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда
+ Если СокращатьНепечатаемыеСимволы Тогда
+ Результат.Добавить(СокрЛП(Строка));
+ Иначе
+ Результат.Добавить(Строка);
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+/// Объединяет строки из массива в строку с разделителями.
+//
+// Параметры:
+// Массив - Массив - массив строк которые необходимо объединить в одну строку;
+// Разделитель - Строка - любой набор символов, который будет использован в качестве разделителя.
+//
+// Возвращаемое значение:
+// Строка - строка с разделителями.
+//
+Функция СтрокаИзМассиваПодстрок(Массив, Разделитель = ",", СокращатьНепечатаемыеСимволы = Ложь) Экспорт
+
+ Результат = "";
+
+ Для Индекс = 0 По Массив.ВГраница() Цикл
+ Подстрока = Массив[Индекс];
+
+ Если СокращатьНепечатаемыеСимволы Тогда
+ Подстрока = СокрЛП(Подстрока);
+ КонецЕсли;
+
+ Если ТипЗнч(Подстрока) <> Тип("Строка") Тогда
+ Подстрока = Строка(Подстрока);
+ КонецЕсли;
+
+ Если Индекс > 0 Тогда
+ Результат = Результат + Разделитель;
+ КонецЕсли;
+
+ Результат = Результат + Подстрока;
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Определяет, является ли символ разделителем.
+//
+// Параметры:
+// КодСимвола - Число - код проверяемого символа;
+// РазделителиСлов - Строка - символы разделителей.
+//
+// Возвращаемое значение:
+// Булево - истина, если символ является разделителем.
+//
+Функция ЭтоРазделительСлов(КодСимвола, РазделителиСлов = Неопределено) Экспорт
+
+ Если РазделителиСлов <> Неопределено Тогда
+ Возврат Найти(РазделителиСлов, Символ(КодСимвола)) > 0;
+ КонецЕсли;
+
+ Диапазоны = Новый Массив;
+ Диапазоны.Добавить(Новый Структура("Мин,Макс", 48, 57)); // цифры
+ Диапазоны.Добавить(Новый Структура("Мин,Макс", 65, 90)); // латиница большие
+ Диапазоны.Добавить(Новый Структура("Мин,Макс", 97, 122)); // латиница маленькие
+ Диапазоны.Добавить(Новый Структура("Мин,Макс", 1040, 1103)); // кириллица
+ Диапазоны.Добавить(Новый Структура("Мин,Макс", 1025, 1025)); // символ "Ё"
+ Диапазоны.Добавить(Новый Структура("Мин,Макс", 1105, 1105)); // символ "ё"
+ Диапазоны.Добавить(Новый Структура("Мин,Макс", 95, 95)); // символ "_"
+
+ Для Каждого Диапазон Из Диапазоны Цикл
+ Если КодСимвола >= Диапазон.Мин И КодСимвола <= Диапазон.Макс Тогда
+ Возврат Ложь;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Истина;
+
+КонецФункции
+
+// Разбивает строку на несколько строк, используя заданный набор разделителей.
+// Если параметр РазделителиСлов не задан, то разделителем слов считается любой из символов,
+// не относящихся к символам латиницы, кириллицы, цифры, подчеркивания.
+//
+// Параметры:
+// Строка - Строка - строка, которую необходимо разложить на слова.
+// РазделителиСлов - Строка - строка, содержащая символы-разделители.
+//
+// Возвращаемое значение:
+// массив значений, элементы которого - отдельные слова.
+//
+// Пример:
+// РазложитьСтрокуВМассивСлов("один-@#два2_!три") возвратит массив значений: "один", "два2_", "три";
+// РазложитьСтрокуВМассивСлов("один-@#два2_!три", "#@!_") возвратит массив значений: "один-", "два2", "три".
+//
+Функция РазложитьСтрокуВМассивСлов(Знач Строка, РазделителиСлов = Неопределено) Экспорт
+
+ Слова = Новый Массив;
+
+ РазмерТекста = СтрДлина(Строка);
+ НачалоСлова = 1;
+ Для Позиция = 1 По РазмерТекста Цикл
+ КодСимвола = КодСимвола(Строка, Позиция);
+ Если ЭтоРазделительСлов(КодСимвола, РазделителиСлов) Тогда
+ Если Позиция <> НачалоСлова Тогда
+ Слова.Добавить(Сред(Строка, НачалоСлова, Позиция - НачалоСлова));
+ КонецЕсли;
+ НачалоСлова = Позиция + 1;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если Позиция <> НачалоСлова Тогда
+ Слова.Добавить(Сред(Строка, НачалоСлова, Позиция - НачалоСлова));
+ КонецЕсли;
+
+ Возврат Слова;
+
+КонецФункции
+
+// Подставляет параметры в строку. Максимально возможное число параметров - 9.
+// Параметры в строке задаются как %<номер параметра>. Нумерация параметров начинается с единицы.
+//
+// Параметры:
+// СтрокаПодстановки - Строка - шаблон строки с параметрами (вхождениями вида "%ИмяПараметра");
+// Параметр - Строка - подставляемый параметр.
+//
+// Возвращаемое значение:
+// Строка - текстовая строка с подставленными параметрами.
+//
+// Пример:
+// ПодставитьПараметрыВСтроку(НСтр("ru='%1 пошел в %2'"), "Вася", "Зоопарк") = "Вася пошел в Зоопарк".
+//
+Функция ПодставитьПараметрыВСтроку(Знач СтрокаПодстановки,
+ Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено,
+ Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено,
+ Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) Экспорт
+
+ ИспользоватьАльтернативныйАлгоритм =
+ Найти(Параметр1, "%")
+ Или Найти(Параметр2, "%")
+ Или Найти(Параметр3, "%")
+ Или Найти(Параметр4, "%")
+ Или Найти(Параметр5, "%")
+ Или Найти(Параметр6, "%")
+ Или Найти(Параметр7, "%")
+ Или Найти(Параметр8, "%")
+ Или Найти(Параметр9, "%");
+
+ Если ИспользоватьАльтернативныйАлгоритм Тогда
+ СтрокаПодстановки = ПодставитьПараметрыВСтрокуАльтернативныйАлгоритм(СтрокаПодстановки, Параметр1,
+ Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9);
+ Иначе
+ СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%1", Параметр1);
+ СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%2", Параметр2);
+ СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%3", Параметр3);
+ СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%4", Параметр4);
+ СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%5", Параметр5);
+ СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%6", Параметр6);
+ СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%7", Параметр7);
+ СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%8", Параметр8);
+ СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%9", Параметр9);
+ КонецЕсли;
+
+ Возврат СтрокаПодстановки;
+КонецФункции
+
+// Подставляет параметры в строку. Число параметров в строке не ограничено.
+// Параметры в строке задаются как %<номер параметра>. Нумерация параметров
+// начинается с единицы.
+//
+// Параметры
+// СтрокаПодстановки - Строка - шаблон строки с параметрами (вхождениями вида "%1");
+// МассивПараметров - Массив - массив строк, которые соответствуют параметрам в строке подстановки.
+//
+// Возвращаемое значение:
+// Строка - строка с подставленными параметрами.
+//
+// Пример:
+// МассивПараметров = Новый Массив;
+// МассивПараметров = МассивПараметров.Добавить("Вася");
+// МассивПараметров = МассивПараметров.Добавить("Зоопарк");
+//
+// Строка = ПодставитьПараметрыВСтроку(НСтр("ru='%1 пошел в %2'"), МассивПараметров);
+//
+Функция ПодставитьПараметрыВСтрокуИзМассива(Знач СтрокаПодстановки, Знач МассивПараметров) Экспорт
+
+ СтрокаРезультата = СтрокаПодстановки;
+
+ Индекс = МассивПараметров.Количество();
+ Пока Индекс > 0 Цикл
+ Значение = МассивПараметров[Индекс-1];
+ Если Не ПустаяСтрока(Значение) Тогда
+ СтрокаРезультата = СтрЗаменить(СтрокаРезультата, "%" + Формат(Индекс, "ЧГ="), Значение);
+ КонецЕсли;
+ Индекс = Индекс - 1;
+ КонецЦикла;
+
+ Возврат СтрокаРезультата;
+
+КонецФункции
+
+// Заменяет в шаблоне строки имена параметров на их значения. Параметры в строке выделяются с двух сторон квадратными
+// скобками.
+//
+// Параметры:
+//
+// ШаблонСтроки - Строка - строка, в которую необходимо вставить значения.
+// ВставляемыеЗначения - Структура - структура значений, где ключ - имя параметра без спецсимволов,
+// значение - вставляемое значение.
+//
+// Возвращаемое значение:
+// Строка - строка со вставленными значениями.
+//
+// Пример использования:
+// ВставитьПараметрыВСтроку("Здравствуй, [Имя] [Фамилия].", Новый Структура("Фамилия,Имя", "Пупкин", "Вася"));
+// Возвращает: "Здравствуй, Вася Пупкин".
+Функция ВставитьПараметрыВСтроку(Знач ШаблонСтроки, ВставляемыеЗначения) Экспорт
+ Результат = ШаблонСтроки;
+ Для Каждого Параметр Из ВставляемыеЗначения Цикл
+ Результат = СтрЗаменить(Результат, "[" + Параметр.Ключ + "]", Параметр.Значение);
+ КонецЦикла;
+ Возврат Результат;
+КонецФункции
+
+// Получает значения параметров из строки.
+//
+// Параметры:
+// СтрокаПараметров - Строка - строка, содержащая параметры, каждый из которых представляет собой
+// фрагмент вида <Имя параметра>=<Значение>, где:
+// Имя параметра - имя параметра;
+// Значение - его значение.
+// Фрагменты отделяются друг от друга символами ';'.
+// Если значение содержит пробельные символы, то оно должно быть заключено в двойные
+// кавычки (").
+// Например:
+// "File=""c:\InfoBases\Trade""; Usr=""Director"";"
+//
+// Возвращаемое значение:
+// Структура - структура параметров, где ключ - имя параметра, значение - значение параметра.
+//
+Функция ПолучитьПараметрыИзСтроки(Знач СтрокаПараметров) Экспорт
+
+ Результат = Новый Структура;
+
+ СимволДвойныеКавычки = Символ(34); // (")
+
+ МассивПодстрок = РазложитьСтрокуВМассивПодстрок(СтрокаПараметров, ";");
+
+ Для Каждого СтрокаПараметра Из МассивПодстрок Цикл
+
+ ПозицияПервогоЗнакаРавенства = Найти(СтрокаПараметра, "=");
+
+ // Получаем имя параметра
+ ИмяПараметра = СокрЛП(Лев(СтрокаПараметра, ПозицияПервогоЗнакаРавенства - 1));
+
+ // Получаем значение параметра
+ ЗначениеПараметра = СокрЛП(Сред(СтрокаПараметра, ПозицияПервогоЗнакаРавенства + 1));
+
+ Если Лев(ЗначениеПараметра, 1) = СимволДвойныеКавычки
+ И Прав(ЗначениеПараметра, 1) = СимволДвойныеКавычки Тогда
+
+ ЗначениеПараметра = Сред(ЗначениеПараметра, 2, СтрДлина(ЗначениеПараметра) - 2);
+
+ КонецЕсли;
+
+ Если Не ПустаяСтрока(ИмяПараметра) Тогда
+
+ Результат.Вставить(ИмяПараметра, ЗначениеПараметра);
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Результат;
+КонецФункции
+
+// Проверяет, содержит ли строка только цифры.
+//
+// Параметры:
+// СтрокаПроверки - Строка - Строка для проверки.
+// УчитыватьЛидирующиеНули - Булево - Флаг учета лидирующих нулей, если Истина, то ведущие нули пропускаются.
+// УчитыватьПробелы - Булево - Флаг учета пробелов, если Истина, то пробелы при проверке игнорируются.
+//
+// Возвращаемое значение:
+// Булево - Истина - строка содержит только цифры или пустая, Ложь - строка содержит иные символы.
+//
+Функция ТолькоЦифрыВСтроке(Знач СтрокаПроверки, Знач УчитыватьЛидирующиеНули = Истина, Знач УчитыватьПробелы = Истина) Экспорт
+
+ Если ТипЗнч(СтрокаПроверки) <> Тип("Строка") Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Если Не УчитыватьПробелы Тогда
+ СтрокаПроверки = СтрЗаменить(СтрокаПроверки, " ", "");
+ КонецЕсли;
+
+ Если ПустаяСтрока(СтрокаПроверки) Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ Если Не УчитыватьЛидирующиеНули Тогда
+ Позиция = 1;
+ // Взятие символа за границей строки возвращает пустую строку.
+ Пока Сред(СтрокаПроверки, Позиция, 1) = "0" Цикл
+ Позиция = Позиция + 1;
+ КонецЦикла;
+ СтрокаПроверки = Сред(СтрокаПроверки, Позиция);
+ КонецЕсли;
+
+ // Если содержит только цифры, то в результате замен должна быть получена пустая строка.
+ // Проверять при помощи ПустаяСтрока нельзя, так как в исходной строке могут быть пробельные символы.
+ Возврат СтрДлина(
+ СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
+ СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
+ СтрокаПроверки, "0", ""), "1", ""), "2", ""), "3", ""), "4", ""), "5", ""), "6", ""), "7", ""), "8", ""), "9", "")
+ ) = 0;
+
+КонецФункции
+
+// Проверяет, содержит ли строка только символы кириллического алфавита.
+//
+// Параметры:
+// УчитыватьРазделителиСлов - Булево - учитывать ли разделители слов или они являются исключением.
+// ДопустимыеСимволы - строка для проверки.
+//
+// Возвращаемое значение:
+// Булево - Истина, если строка содержит только кириллические (или допустимые) символы или пустая;
+// Ложь, если строка содержит иные символы.
+//
+Функция ТолькоКириллицаВСтроке(Знач СтрокаПроверки, Знач УчитыватьРазделителиСлов = Истина, ДопустимыеСимволы = "") Экспорт
+
+ Если ТипЗнч(СтрокаПроверки) <> Тип("Строка") Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Если НЕ ЗначениеЗаполнено(СтрокаПроверки) Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ КодыДопустимыхСимволов = Новый Массив;
+ КодыДопустимыхСимволов.Добавить(1105); // "ё"
+ КодыДопустимыхСимволов.Добавить(1025); // "Ё"
+
+ Для а = 1 По СтрДлина(ДопустимыеСимволы) Цикл
+ КодыДопустимыхСимволов.Добавить(КодСимвола(Сред(ДопустимыеСимволы, а, 1)));
+ КонецЦикла;
+
+ Для а = 1 По СтрДлина(СтрокаПроверки) Цикл
+ КодСимвола = КодСимвола(Сред(СтрокаПроверки, а, 1));
+ Если ((КодСимвола < 1040) Или (КодСимвола > 1103))
+ И (КодыДопустимыхСимволов.Найти(КодСимвола) = Неопределено)
+ И Не (Не УчитыватьРазделителиСлов И ЭтоРазделительСлов(КодСимвола)) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Истина;
+
+КонецФункции
+
+// Проверяет, содержит ли строка только символы латинского алфавита.
+//
+// Параметры:
+// УчитыватьРазделителиСлов - Булево - учитывать ли разделители слов или они являются исключением.
+// ДопустимыеСимволы - строка для проверки.
+//
+// Возвращаемое значение:
+// Булево - Истина, если строка содержит только латинские (или допустимые) символы;
+// - Ложь, если строка содержит иные символы.
+//
+Функция ТолькоЛатиницаВСтроке(Знач СтрокаПроверки, Знач УчитыватьРазделителиСлов = Истина, ДопустимыеСимволы = "") Экспорт
+
+ Если ТипЗнч(СтрокаПроверки) <> Тип("Строка") Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Если НЕ ЗначениеЗаполнено(СтрокаПроверки) Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ КодыДопустимыхСимволов = Новый Массив;
+
+ Для а = 1 По СтрДлина(ДопустимыеСимволы) Цикл
+ КодыДопустимыхСимволов.Добавить(КодСимвола(Сред(ДопустимыеСимволы, а, 1)));
+ КонецЦикла;
+
+ Для а = 1 По СтрДлина(СтрокаПроверки) Цикл
+ КодСимвола = КодСимвола(Сред(СтрокаПроверки, а, 1));
+ Если ((КодСимвола < 65) Или (КодСимвола > 90 И КодСимвола < 97) Или (КодСимвола > 122))
+ И (КодыДопустимыхСимволов.Найти(КодСимвола) = Неопределено)
+ И Не (Не УчитыватьРазделителиСлов И ЭтоРазделительСлов(КодСимвола)) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Истина;
+
+КонецФункции
+
+// Удаляет двойные кавычки с начала и конца строки, если они есть.
+//
+// Параметры:
+// Строка - входная строка;
+//
+// Возвращаемое значение:
+// Строка - строка без двойных кавычек.
+//
+Функция СократитьДвойныеКавычки(Знач Строка) Экспорт
+
+ Пока Лев(Строка, 1) = """" Цикл
+ Строка = Сред(Строка, 2);
+ КонецЦикла;
+
+ Пока Прав(Строка, 1) = """" Цикл
+ Строка = Лев(Строка, СтрДлина(Строка) - 1);
+ КонецЦикла;
+
+ Возврат Строка;
+
+КонецФункции
+
+// Удаляет из строки указанное количество символов справа.
+//
+// Параметры:
+// Текст - Строка - строка, в которой необходимо удалить последние символы;
+// ЧислоСимволов - Число - количество удаляемых символов.
+//
+Процедура УдалитьПоследнийСимволВСтроке(Текст, ЧислоСимволов = 1) Экспорт
+
+ Текст = Лев(Текст, СтрДлина(Текст) - ЧислоСимволов);
+
+КонецПроцедуры
+
+// Осуществляет поиск символа, начиная с конца строки.
+//
+// Параметры:
+// Строка - Строка - строка, в которой осуществляется поиск;
+// Символ - Строка - искомый символ. Допускается искать строку, содержащую более одного символа.
+//
+// Возвращаемое значение:
+// Число - позиция символа в строке.
+// Если строка не содержит указанного символа, то возвращается 0.
+//
+Функция НайтиСимволСКонца(Знач Строка, Знач Символ) Экспорт
+
+ Для Позиция = -СтрДлина(Строка) По -1 Цикл
+ Если Сред(Строка, -Позиция, СтрДлина(Символ)) = Символ Тогда
+ Возврат -Позиция;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат 0;
+
+КонецФункции
+
+// Проверяет, является ли строка уникальным идентификатором.
+// В качестве уникального идентификатора предполагается строка вида
+// "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", где X = [0..9,a..f].
+//
+// Параметры:
+// ИдентификаторСтрока - Строка - проверяемая строка.
+//
+// Возвращаемое значение:
+// Булево - Истина, если переданная строка является уникальным идентификатором.
+Функция ЭтоУникальныйИдентификатор(Знач Строка) Экспорт
+
+ Шаблон = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
+
+ Если СтрДлина(Шаблон) <> СтрДлина(Строка) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+ Для Позиция = 1 По СтрДлина(Строка) Цикл
+ Если КодСимвола(Шаблон, Позиция) = 88 // X
+ И ((КодСимвола(Строка, Позиция) < 48 Или КодСимвола(Строка, Позиция) > 57) // 0..9
+ И (КодСимвола(Строка, Позиция) < 97 Или КодСимвола(Строка, Позиция) > 102) // a..f
+ И (КодСимвола(Строка, Позиция) < 65 Или КодСимвола(Строка, Позиция) > 70)) // A..F
+ Или КодСимвола(Шаблон, Позиция) = 45 И КодСимвола(Строка, Позиция) <> 45 Тогда // -
+ Возврат Ложь;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Истина;
+
+КонецФункции
+
+// Формирует строку повторяющихся символов заданной длины.
+//
+// Параметры:
+// Символ - Строка - символ, из которого будет формироваться строка.
+// ДлинаСтроки - Число - требуемая длина результирующей строки.
+//
+// Возвращаемое значение:
+// Строка - строка, состоящая из повторяющихся символов.
+//
+Функция СформироватьСтрокуСимволов(Знач Символ, Знач ДлинаСтроки) Экспорт
+
+ Результат = "";
+ Для Счетчик = 1 По ДлинаСтроки Цикл
+ Результат = Результат + Символ;
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Дополняет строку символами слева или справа до заданной длины и возвращает ее.
+// Незначащие символы слева и справа удаляются. По умолчанию функция дополняет строку символами "0" (ноль) слева.
+//
+// Параметры:
+// Строка - Строка - исходная строка, которую необходимо дополнить символами;
+// ДлинаСтроки - Число - требуемая результирующая длина строки;
+// Символ - Строка - символ, которым необходимо дополнить строку;
+// Режим - Строка - "Слева" или "Справа" - режим добавления символов к исходной строке.
+//
+// Возвращаемое значение:
+// Строка - строка, дополненная символами.
+//
+// Пример 1:
+// Строка = "1234"; ДлинаСтроки = 10; Символ = "0"; Режим = "Слева"
+// Возврат: "0000001234"
+//
+// Пример 2:
+// Строка = " 1234 "; ДлинаСтроки = 10; Символ = "#"; Режим = "Справа"
+// Возврат: "1234######"
+//
+Функция ДополнитьСтроку(Знач Строка, Знач ДлинаСтроки, Знач Символ = "0", Знач Режим = "Слева") Экспорт
+
+ // Длина символа не должна превышать единицы.
+ Символ = Лев(Символ, 1);
+
+ // Удаляем крайние пробелы слева и справа строки.
+ Строка = СокрЛП(Строка);
+
+ КоличествоСимволовНадоДобавить = ДлинаСтроки - СтрДлина(Строка);
+
+ Если КоличествоСимволовНадоДобавить > 0 Тогда
+
+ СтрокаДляДобавления = СформироватьСтрокуСимволов(Символ, КоличествоСимволовНадоДобавить);
+
+ Если ВРег(Режим) = "СЛЕВА" Тогда
+
+ Строка = СтрокаДляДобавления + Строка;
+
+ ИначеЕсли ВРег(Режим) = "СПРАВА" Тогда
+
+ Строка = Строка + СтрокаДляДобавления;
+
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Возврат Строка;
+
+КонецФункции
+
+// Удаляет крайние повторяющиеся символы слева или справа в строке.
+//
+// Параметры:
+// Строка - Строка - исходная строка, из которой необходимо удалить крайние повторяющиеся символы;
+// Символ - Строка - искомый символ для удаления;
+// Режим - Строка - "Слева" или "Справа" - режим удаления символов в исходной строке.
+//
+// Возвращаемое значение:
+// Строка - обрезанная строка.
+//
+Функция УдалитьПовторяющиесяСимволы(Знач Строка, Знач Символ, Знач Режим = "Слева") Экспорт
+
+ Если ВРег(Режим) = "СЛЕВА" Тогда
+
+ Пока Лев(Строка, 1)= Символ Цикл
+
+ Строка = Сред(Строка, 2);
+
+ КонецЦикла;
+
+ ИначеЕсли ВРег(Режим) = "СПРАВА" Тогда
+
+ Пока Прав(Строка, 1)= Символ Цикл
+
+ Строка = Лев(Строка, СтрДлина(Строка) - 1);
+
+ КонецЦикла;
+
+ КонецЕсли;
+
+ Возврат Строка;
+КонецФункции
+
+// Выполняет замену символов в строке.
+//
+// Параметры:
+// ЗаменяемыеСимволы - Строка - строка символов, каждый из которых требует замены;
+// Строка - Строка - исходная строка, в которой требуется замена символов;
+// СимволыЗамены - Строка - строка символов, на каждый из которых нужно заменить символы параметра
+// ЗаменяемыеСимволы.
+//
+// Возвращаемое значение:
+// Строка - строка после замены символов.
+//
+// Примечание: функция предназначена для простых случаев, например, для замены латиницы на похожие кириллические
+// символы.
+//
+Функция ЗаменитьОдниСимволыДругими(ЗаменяемыеСимволы, Строка, СимволыЗамены) Экспорт
+
+ Результат = Строка;
+
+ Для НомерСимвола = 1 По СтрДлина(ЗаменяемыеСимволы) Цикл
+ Результат = СтрЗаменить(Результат, Сред(ЗаменяемыеСимволы, НомерСимвола, 1), Сред(СимволыЗамены, НомерСимвола, 1));
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Выполняет преобразование арабского числа в римское.
+//
+// Параметры:
+// АрабскоеЧисло - число, целое, от 0 до 999;
+// ИспользоватьКириллицу - булево, использовать в качестве арабских цифр кириллицу или латиницу.
+//
+// Возвращаемое значение:
+// Строка - число в римской нотации.
+//
+// Пример:
+// ПреобразоватьЧислоВРимскуюНотацию(17) = "ХVII".
+//
+Функция ПреобразоватьЧислоВРимскуюНотацию(АрабскоеЧисло, ИспользоватьКириллицу = Истина) Экспорт
+
+ РимскоеЧисло = "";
+ АрабскоеЧисло = ДополнитьСтроку(АрабскоеЧисло, 3);
+
+ Если ИспользоватьКириллицу Тогда
+ c1 = "1"; c5 = "У"; c10 = "Х"; c50 = "Л"; c100 ="С"; c500 = "Д"; c1000 = "М";
+
+ Иначе
+ c1 = "I"; c5 = "V"; c10 = "X"; c50 = "L"; c100 ="C"; c500 = "D"; c1000 = "M";
+
+ КонецЕсли;
+
+ Единицы = Число(Сред(АрабскоеЧисло, 3, 1));
+ Десятки = Число(Сред(АрабскоеЧисло, 2, 1));
+ Сотни = Число(Сред(АрабскоеЧисло, 1, 1));
+
+ РимскоеЧисло = РимскоеЧисло + ПреобразоватьЦифруВРимскуюНотацию(Сотни, c100, c500, c1000);
+ РимскоеЧисло = РимскоеЧисло + ПреобразоватьЦифруВРимскуюНотацию(Десятки, c10, c50, c100);
+ РимскоеЧисло = РимскоеЧисло + ПреобразоватьЦифруВРимскуюНотацию(Единицы, c1, c5, c10);
+
+ Возврат РимскоеЧисло;
+
+КонецФункции
+
+// Выполняет преобразование римского числа в арабское.
+//
+// Параметры:
+// РимскоеЧисло - Строка - число, записанное римскими цифрами;
+// ИспользоватьКириллицу - Булево - использовать в качестве арабских цифр кириллицу или латиницу.
+//
+// Возвращаемое значение:
+// Число.
+//
+// Пример:
+// ПреобразоватьЧислоВАрабскуюНотацию("ХVII") = 17.
+//
+Функция ПреобразоватьЧислоВАрабскуюНотацию(РимскоеЧисло, ИспользоватьКириллицу = Истина) Экспорт
+
+ АрабскоеЧисло=0;
+
+ Если ИспользоватьКириллицу Тогда
+ c1 = "1"; c5 = "У"; c10 = "Х"; c50 = "Л"; c100 ="С"; c500 = "Д"; c1000 = "М";
+
+ Иначе
+ c1 = "I"; c5 = "V"; c10 = "X"; c50 = "L"; c100 ="C"; c500 = "D"; c1000 = "M";
+
+ КонецЕсли;
+
+ РимскоеЧисло = СокрЛП(РимскоеЧисло);
+ ЧислоСимволов = СтрДлина(РимскоеЧисло);
+
+ Для Сч=1 По ЧислоСимволов Цикл
+ Если Сред(РимскоеЧисло,Сч,1) = c1000 Тогда
+ АрабскоеЧисло = АрабскоеЧисло+1000;
+ ИначеЕсли Сред(РимскоеЧисло,Сч,1) = c500 Тогда
+ АрабскоеЧисло = АрабскоеЧисло+500;
+ ИначеЕсли Сред(РимскоеЧисло,Сч,1) = c100 Тогда
+ Если (Сч < ЧислоСимволов) И ((Сред(РимскоеЧисло,Сч+1,1) = c500) ИЛИ (Сред(РимскоеЧисло,Сч+1,1) = c1000)) Тогда
+ АрабскоеЧисло = АрабскоеЧисло-100;
+ Иначе
+ АрабскоеЧисло = АрабскоеЧисло+100;
+ КонецЕсли;
+ ИначеЕсли Сред(РимскоеЧисло,Сч,1) = c50 Тогда
+ АрабскоеЧисло = АрабскоеЧисло+50;
+ ИначеЕсли Сред(РимскоеЧисло,Сч,1) = c10 Тогда
+ Если (Сч < ЧислоСимволов) И ((Сред(РимскоеЧисло,Сч+1,1) = c50) ИЛИ (Сред(РимскоеЧисло,Сч+1,1) = c100)) Тогда
+ АрабскоеЧисло = АрабскоеЧисло-10;
+ Иначе
+ АрабскоеЧисло = АрабскоеЧисло+10;
+ КонецЕсли;
+ ИначеЕсли Сред(РимскоеЧисло,Сч,1) = c5 Тогда
+ АрабскоеЧисло = АрабскоеЧисло+5;
+ ИначеЕсли Сред(РимскоеЧисло,Сч,1) = c1 Тогда
+ Если (Сч < ЧислоСимволов) И ((Сред(РимскоеЧисло,Сч+1,1) = c5) ИЛИ (Сред(РимскоеЧисло,Сч+1,1) = c10)) Тогда
+ АрабскоеЧисло = АрабскоеЧисло-1;
+ Иначе
+ АрабскоеЧисло = АрабскоеЧисло+1;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат АрабскоеЧисло;
+
+КонецФункции
+
+// Возвращает текстовое представление числа с единицей измерения в правильном склонении и числе.
+//
+// Параметры:
+// Число - Число - любое целое число.
+// ПараметрыПредметаИсчисления - Строка - варианты написания единицы измерения в родительном падеже для одной,
+// для двух и для пяти единиц, разделитель - запятая.
+//
+// Возвращаемое значение:
+// Строка - текстовое представление количества единиц, число записывается цифрами.
+//
+// Примеры:
+// ЧислоЦифрамиПредметИсчисленияПрописью(23, "минуту,минуты,минут") = "23 минуты";
+// ЧислоЦифрамиПредметИсчисленияПрописью(15, "минуту,минуты,минут") = "15 минут".
+Функция ЧислоЦифрамиПредметИсчисленияПрописью(Знач Число, Знач ПараметрыПредметаИсчисления) Экспорт
+
+ Результат = Формат(Число,"ЧН=0");
+
+ МассивПредставлений = Новый Массив;
+
+ Позиция = Найти(ПараметрыПредметаИсчисления, ",");
+ Пока Позиция > 0 Цикл
+ Значение = СокрЛП(Лев(ПараметрыПредметаИсчисления, Позиция-1));
+ ПараметрыПредметаИсчисления = Сред(ПараметрыПредметаИсчисления, Позиция + 1);
+ МассивПредставлений.Добавить(Значение);
+ Позиция = Найти(ПараметрыПредметаИсчисления, ",");
+ КонецЦикла;
+
+ Если СтрДлина(ПараметрыПредметаИсчисления) > 0 Тогда
+ Значение = СокрЛП(ПараметрыПредметаИсчисления);
+ МассивПредставлений.Добавить(Значение);
+ КонецЕсли;
+
+ Если Число >= 100 Тогда
+ Число = Число - Цел(Число / 100)*100;
+ КонецЕсли;
+
+ Если Число > 20 Тогда
+ Число = Число - Цел(Число/10)*10;
+ КонецЕсли;
+
+ Если Число = 1 Тогда
+ Результат = Результат + " " + МассивПредставлений[0];
+ ИначеЕсли Число > 1 И Число < 5 Тогда
+ Результат = Результат + " " + МассивПредставлений[1];
+ Иначе
+ Результат = Результат + " " + МассивПредставлений[2];
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Очищает текст в формате HTML от тегов и возвращает неформатированный текст.
+//
+// Параметры:
+// ИсходныйТекст - Строка - текст в формате HTML.
+//
+// Возвращаемое значение:
+// Строка - текст, очищенный от тегов, скриптов и заголовков.
+//
+Функция ИзвлечьТекстИзHTML(Знач ИсходныйТекст) Экспорт
+ Результат = "";
+
+ Текст = НРег(ИсходныйТекст);
+
+ // отрезаем все что не body
+ Позиция = Найти(Текст, " 0 Тогда
+ Текст = Сред(Текст, Позиция + 5);
+ ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 5);
+ Позиция = Найти(Текст, ">");
+ Если Позиция > 0 Тогда
+ Текст = Сред(Текст, Позиция + 1);
+ ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 1);
+ КонецЕсли;
+ КонецЕсли;
+
+ Позиция = Найти(Текст, "");
+ Если Позиция > 0 Тогда
+ Текст = Лев(Текст, Позиция - 1);
+ ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1);
+ КонецЕсли;
+
+ // вырезаем скрипты
+ Позиция = Найти(Текст, "");
+ Если ПозицияЗакрывающегоТега = 0 Тогда
+ // Не найден закрывающий тег - вырезаем оставшийся текст.
+ ПозицияЗакрывающегоТега = СтрДлина(Текст);
+ КонецЕсли;
+ Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 9);
+ ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 9);
+ Позиция = Найти(Текст, "");
+ Если ПозицияЗакрывающегоТега = 0 Тогда
+ // Не найден закрывающий тег - вырезаем оставшийся текст.
+ ПозицияЗакрывающегоТега = СтрДлина(Текст);
+ КонецЕсли;
+ Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 9);
+ ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 9);
+ Позиция = Найти(Текст, "