diff --git a/lib/CF/83xdd/Configuration.xml b/lib/CF/83xdd/Configuration.xml index 4614e837e..dcebd21ae 100644 --- a/lib/CF/83xdd/Configuration.xml +++ b/lib/CF/83xdd/Configuration.xml @@ -151,29 +151,10 @@ ТестовыйОтчетСКДДляСравнениеСЭталоном Тест_Отчет Отчет2 - xddGuidShow Тест_Обработка ТестОбработка_Форма_ИсключениеПриОткрытии ТестПадающий_Обработка Тест_ЗагрузчикИзПодсистем_НовыйAPIОбъявленияТестов - xddTestRunner - БазовыеУтверждения - ВременныеФайлы - ГенераторОтчетаJUnitXML - ГенераторОтчетаMXL - ЗагрузчикИзПодсистемКонфигурации - ЗагрузчикКаталога - ЗагрузчикФайла - ЗапросыИзБД - КомандныйФайл - ПарсерКоманднойСтроки - ПостроительДереваТестов - СериализаторMXL - СтроковыеУтилиты - УтвержденияBDD - УтвержденияПроверкаТаблиц - ПреобразованиеЖурналаДействийПользователя - xddTestsConvertIntoRebornFormat РегистрСведений1 РСПодчиненныйРегистратору РегистрНакопления2 diff --git a/lib/CF/83xdd/DataProcessors/xddGuidShow.xml b/lib/CF/83xdd/DataProcessors/xddGuidShow.xml deleted file mode 100644 index a5a5198ae..000000000 --- a/lib/CF/83xdd/DataProcessors/xddGuidShow.xml +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - 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/83xdd/DataProcessors/xddGuidShow/Ext/ObjectModule.bsl b/lib/CF/83xdd/DataProcessors/xddGuidShow/Ext/ObjectModule.bsl deleted file mode 100644 index 5f282702b..000000000 --- a/lib/CF/83xdd/DataProcessors/xddGuidShow/Ext/ObjectModule.bsl +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index be0cbae8a..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 92ed83a9b..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,65 +0,0 @@ - -
- None - useIfNecessary - - - - Объект.Ссылка - - - - СсылкаПриИзменении - - - - Horizontal - None - false - - - - Объект.ГУИД - true - - - - - - - - - - - cfg:DataProcessorObject.xddGuidShow - - true - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Показать ГУИД</v8:content> - </v8:item> - - - - ru - Показать ГУИД - - - - StdPicture.Refresh - true - - ПоказатьГУИД - Picture - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 6b9d048b8..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,20 +0,0 @@ - -&НаКлиенте -Процедура ПоказатьГУИД(Команда) - - Если ПроверитьЗаполнение() Тогда - Объект.ГУИД = Объект.Ссылка.УникальныйИдентификатор(); - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура СсылкаПриИзменении(Элемент) - - Если ЗначениеЗаполнено(Объект.Ссылка) Тогда - Объект.ГУИД = Объект.Ссылка.УникальныйИдентификатор(); - Иначе - ГУИД = ""; - КонецЕсли; - -КонецПроцедуры diff --git "a/lib/CF/83xdd/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index d7681f5ca..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" "b/lib/CF/83xdd/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" deleted file mode 100644 index 46db8ebaf..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" and /dev/null differ diff --git a/lib/CF/83xdd/DataProcessors/xddTestRunner.xml b/lib/CF/83xdd/DataProcessors/xddTestRunner.xml deleted file mode 100644 index ba8d6b914..000000000 --- a/lib/CF/83xdd/DataProcessors/xddTestRunner.xml +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - 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/83xdd/DataProcessors/xddTestRunner/Ext/Help.xml b/lib/CF/83xdd/DataProcessors/xddTestRunner/Ext/Help.xml deleted file mode 100644 index aaa8b4844..000000000 --- a/lib/CF/83xdd/DataProcessors/xddTestRunner/Ext/Help.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - ru - \ No newline at end of file diff --git a/lib/CF/83xdd/DataProcessors/xddTestRunner/Ext/Help/ru.html b/lib/CF/83xdd/DataProcessors/xddTestRunner/Ext/Help/ru.html deleted file mode 100644 index d174560d9..000000000 --- a/lib/CF/83xdd/DataProcessors/xddTestRunner/Ext/Help/ru.html +++ /dev/null @@ -1,99 +0,0 @@ - -

https://github.com/xDrivenDevelopment/xUnitFor1C/wiki

-

-

xUnitFor1C - набор инструментов для выполнения тестирования (модульного/юнит, приемочного, сценарного для 1С 8.3, интеграционного) в 1С:Предприятии 8.

-

xUnitFor1C работает с любыми конфигурациями, полностью независима, но может быть встроена в конфигурацию.

-

Позволяет открывать/тестировать в разных режимах - обычное приложение, тонкий и толстый клиент управляемого приложения.

-

Тесты могут быть как во внешних обработках, так и во встроенных обработках.

-

Любые наборы тестов могут прогоняться в полностью автоматическом режиме через специальную командную строку запуска. Автозапуск используется в различных build-серверах и в системах Continuous Integration.

-

Для дополнительной информации см. Wiki проекта

-

Что к чему

-

Как помочь проекту

-

Мы рады любой помощи:

-
  1. -

    Если вы занимаетесь разработкой на 1С:Преприятии 8 пробуйте писать и выполнять тесты при помощи xUnitFor1C, сообщайте нам об обнаруженных ошибках, пишите пожелания. Для управления сообщениями об ошибках и пожеланиями мы используем баг-трекер GitHub'а.

    -
  2. -

    Если у вас есть время разобраться в исходном коде, вы можете взять на себя реализацию одной из открытых задач.

    -
  3. -

    Если вы уже используете 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/83xdd/DataProcessors/xddTestRunner/Ext/ObjectModule.bsl b/lib/CF/83xdd/DataProcessors/xddTestRunner/Ext/ObjectModule.bsl deleted file mode 100644 index 2b5962365..000000000 --- a/lib/CF/83xdd/DataProcessors/xddTestRunner/Ext/ObjectModule.bsl +++ /dev/null @@ -1,727 +0,0 @@ - -Процедура Инициализация() - - ЭтоВстроеннаяОбработка = ОбработкаЯвляетсяВстроеннойВКонфигурацию(); - Если ЭтоВстроеннаяОбработка Тогда - // Для встроенной в состав конфигурации обработки - // может быть использван префикс, который определяет имена объектов - // фреймворка xUnitFor1C в составе конфигурации - // Например: Обработки.<префикс>xddTestRunner - // Если префикс не задан, то должны использоваться оригинальные - // имена обработок и подсистем. - // Для подсистем нужно добавлять префикс тольяо для главной - "xUnitFor1C" - ИспользуемыйПрефиксПодсистемы = ""; - Иначе - ПолныйПутьКФайлуБраузераТестов = ЭтотОбъект["ИспользуемоеИмяФайла"]; - КонецЕсли; - ПолноеИмяБраузераТестов = Метаданные().ПолноеИмя(); - - ТипыПлагинов = ТипыПлагинов(); - СостоянияТестов = СостоянияТестов(); - СтатусыРезультатаТестирования = СтатусыРезультатаТестирования(); - ВозможныеСобытия = ВозможныеСобытия(); - ВозможныеИсключения = ВозможныеИсключения(); - - ЗагрузитьНастройки(); -КонецПроцедуры - -Функция Версия() Экспорт - Возврат "4.1.0.0"; -КонецФункции - -Функция ЗаголовокФормы() Экспорт - Возврат СокрЛП(Метаданные().Синоним) + ", версия " + Версия(); -КонецФункции - -// { Plugins -Функция ТипыПлагинов() - Результат = Новый Структура; - Результат.Вставить("Загрузчик", "Загрузчик"); - Результат.Вставить("Утилита", "Утилита"); - Результат.Вставить("ГенераторОтчета", "ГенераторОтчета"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Функция Плагин(Знач Идентификатор) Экспорт - - ИдентификаторПлагинаСПрефиксомПодсистемы = ДополнитьИдентификаторПрефиксомПодсистемы(Идентификатор); - ИдентификаторПлагинаБезПрефиксаПодсистемы = ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор); - Плагин = Плагины[ИдентификаторПлагинаБезПрефиксаПодсистемы]; - Если ТипЗнч(Плагин) = Тип("Строка") Тогда - Плагин = СоздатьОбъектПлагина(Плагин); - КонецЕсли; - - Возврат Плагин; - -КонецФункции - -Функция ПолучитьОписанияПлагиновПоТипу(Знач ТипПлагина) Экспорт - Результат = Новый Массив; - Для каждого КлючЗначение Из Плагины Цикл - Плагин = Плагин(КлючЗначение.Ключ); - Плагин.Инициализация(ЭтотОбъект); - ОписаниеПлагина = Плагин.ОписаниеПлагина(ТипыПлагинов); - Если ОписаниеПлагина.Тип = ТипПлагина Тогда - Результат.Добавить(ОписаниеПлагина); - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции - -Функция ЗагрузчикПоУмолчанию() Экспорт - Возврат Плагин("ЗагрузчикКаталога"); -КонецФункции -// } Plugins - -// { Выполнение тестов -Функция ПолучитьКоличествоТестовыхМетодов(Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено) Экспорт - КоличествоТестовыхМетодов = 0; - ФильтрДляДочернихУзлов = Неопределено; - Если Не УзелДереваТестовУдовлетворяетФильтру(КонтейнерДереваТестов, Фильтр) Тогда - ФильтрДляДочернихУзлов = Фильтр; - КонецЕсли; - Для каждого ДочернийУзел Из КонтейнерДереваТестов.Строки Цикл - КоличествоДочернихТестовыхМетодов = 0; - Если ДочернийУзел.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Контейнер Тогда - КоличествоДочернихТестовыхМетодов = ПолучитьКоличествоТестовыхМетодов(ДочернийУзел, ФильтрДляДочернихУзлов); - ИначеЕсли ДочернийУзел.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Элемент Тогда - Если УзелДереваТестовУдовлетворяетФильтру(ДочернийУзел, ФильтрДляДочернихУзлов) Тогда - КоличествоДочернихТестовыхМетодов = 1; - КонецЕсли; - КонецЕсли; - КоличествоТестовыхМетодов = КоличествоТестовыхМетодов + КоличествоДочернихТестовыхМетодов; - КонецЦикла; - - Возврат КоличествоТестовыхМетодов; -КонецФункции - -Функция ВыполнитьТесты(Знач Загрузчик, Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено, Знач Подписчик = Неопределено) Экспорт - РезультатТестирования = СоздатьКонтейнерРезультатовТестирования(КонтейнерДереваТестов); - ФильтрДляДочернихУзлов = Неопределено; - Если Не УзелДереваТестовУдовлетворяетФильтру(КонтейнерДереваТестов, Фильтр) Тогда - ФильтрДляДочернихУзлов = Фильтр; - КонецЕсли; - - Если КонтейнерДереваТестов.СлучайныйПорядокВыполнения Тогда - СтрокиКонтейнера = ПеремешатьМассив(КонтейнерДереваТестов.Строки); - Иначе - СтрокиКонтейнера = КонтейнерДереваТестов.Строки; - КонецЕсли; - - Для каждого ДочернийУзел Из СтрокиКонтейнера Цикл - ДочернийРезультатТестирования = Неопределено; - Если ДочернийУзел.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Контейнер Тогда - ДочернийРезультатТестирования = ВыполнитьТесты(Загрузчик, ДочернийУзел, ФильтрДляДочернихУзлов, Подписчик); - ИначеЕсли ДочернийУзел.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Элемент Тогда - Если УзелДереваТестовУдовлетворяетФильтру(ДочернийУзел, ФильтрДляДочернихУзлов) Тогда - Контекст = Загрузчик.ПолучитьКонтекстПоПути(ЭтотОбъект, ДочернийУзел.Путь); - // Заполняем служебные поля, если они имеются - ЗаполнитьСвойствоПриНаличии(Контекст, "ПутьКФайлуПолный", ДочернийУзел.Путь); - ЭтотОбъект.ТекущийКонтейнер = КонтейнерДереваТестов; - ДочернийРезультатТестирования = ВыполнитьТестовыйМетод(Контекст, ДочернийУзел); - - Если Подписчик <> Неопределено Тогда - ОповеститьОСобытии(Подписчик, ЭтотОбъект.ВозможныеСобытия.ВыполненТестовыйМетод, ДочернийРезультатТестирования); - КонецЕсли; - КонецЕсли; - КонецЕсли; - Если ДочернийРезультатТестирования <> Неопределено Тогда - РезультатТестирования.Строки.Добавить(ДочернийРезультатТестирования); - РезультатТестирования.Состояние = ВыбратьХудшееСостояниеВыполненияТестов(РезультатТестирования.Состояние, ДочернийРезультатТестирования.Состояние); - ЗаполнитьДанныеСтатистики(РезультатТестирования, ДочернийРезультатТестирования); - Если Не КонтейнерДереваТестов.СлучайныйПорядокВыполнения И ДочернийРезультатТестирования.Состояние <> ЭтотОбъект.СостоянияТестов.Пройден Тогда - Прервать; - КонецЕсли; - КонецЕсли; - КонецЦикла; - Если РезультатТестирования.Строки.Количество() = 0 Тогда - РезультатТестирования = Неопределено; - КонецЕсли; - - Возврат РезультатТестирования; -КонецФункции - -Функция УзелДереваТестовУдовлетворяетФильтру(Знач УзелДереваТестов, Знач Фильтр) - Возврат (Фильтр = Неопределено) Или (Фильтр.Найти(УзелДереваТестов.Ключ) <> Неопределено); -КонецФункции - -Процедура ЗаполнитьДанныеСтатистики(РезультатТестирования, Знач ДочернийРезультатТестирования) Экспорт - Если ДочернийРезультатТестирования.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Контейнер Тогда - РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + ДочернийРезультатТестирования.КоличествоТестов; - РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + ДочернийРезультатТестирования.КоличествоСломанныхТестов; - РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + ДочернийРезультатТестирования.КоличествоНеРеализованныхТестов; - РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + ДочернийРезультатТестирования.КоличествоОшибочныхТестов; - - ИначеЕсли ДочернийРезультатТестирования.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Элемент Тогда - РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + 1; - Если ДочернийРезультатТестирования.Состояние = СостоянияТестов.Сломан Тогда - РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + 1; - ИначеЕсли ДочернийРезультатТестирования.Состояние = СостоянияТестов.НеРеализован Тогда - РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + 1; - ИначеЕсли ДочернийРезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка Тогда - РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + 1; - КонецЕсли; - КонецЕсли; - РезультатТестирования.ВремяВыполнения = РезультатТестирования.ВремяВыполнения + ДочернийРезультатТестирования.ВремяВыполнения; -КонецПроцедуры - -Функция ВыбратьХудшееСостояниеВыполненияТестов(Знач Состояние1, Знач Состояние2) - Возврат Макс(Состояние1, Состояние2); -КонецФункции - -Функция ВыполнитьТестовыйМетод(Знач КонтекстВыполнения, Знач ЭлементДереваТестов) Экспорт - РезультатТестирования = СоздатьЭлементРезультатовТестирования(ЭлементДереваТестов); - НачалоВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах(); - - Если ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования) Тогда - - Попытка - ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПередЗапускомТеста); - ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ЭлементДереваТестов.ИмяМетода, ЭлементДереваТестов.Параметры); - - РезультатТестирования.Состояние = СостоянияТестов.Пройден; - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); - КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - Если ЕстьОшибка_МетодОбъектаНеОбнаружен(КраткийТекстОшибки, ЭлементДереваТестов.ИмяМетода) Тогда - РезультатТестирования.Состояние = СостоянияТестов.НеРеализован; - Сообщение = НСтр("ru = 'Отсутствует реализация тестового метода (%1).'"); - РезультатТестирования.Сообщение = СтрЗаменить(Сообщение, "%1", ЭлементДереваТестов.ИмяМетода); - Иначе - РезультатТестирования.Сообщение = ТекстОшибки; - Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда - РезультатТестирования.Состояние = СостоянияТестов.Сломан; - ИначеЕсли ЭтоПропущенныйТест(КраткийТекстОшибки) Тогда - РезультатТестирования.Состояние = СостоянияТестов.НеРеализован; - Иначе - РезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка; - КонецЕсли; - КонецЕсли; - КонецПопытки; - Попытка - ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПослеЗапускаТеста); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); - - КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - Если ЭтоОшибкаПроверки(ТекстОшибки) Тогда - РезультатТестирования.Состояние = СостоянияТестов.Сломан; - Иначе - РезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка; - КонецЕсли; - КонецПопытки; - КонецЕсли; - - ОкончаниеВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах(); - РезультатТестирования.ВремяВыполнения = (ОкончаниеВыполнения - НачалоВыполнения) / 1000; - - Возврат РезультатТестирования; -КонецФункции - -Функция ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования) - Попытка - КонтекстВыполнения.Инициализация(ЭтотОбъект); - Возврат Истина; - Исключение - РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - РезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка; - КонецПопытки; - Возврат Ложь; -КонецФункции - -Процедура ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(Знач КонтекстВыполнения, Знач ИмяПроцедуры) - Попытка - ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ИмяПроцедуры); - Исключение - ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, ИмяПроцедуры) Тогда - ВызватьИсключение; - КонецЕсли; - КонецПопытки; -КонецПроцедуры - -Процедура ВыполнитьПроцедуруКонтекста(Знач КонтекстВыполнения, Знач ПроцедураКонтекста, Знач Параметры = Неопределено) - СтрокаПараметров = СформироватьСтрокуПараметров(Параметры); - ИcполняемыйКод = "КонтекстВыполнения." + ПроцедураКонтекста + "(" + СтрокаПараметров + ");"; - Выполнить(ИcполняемыйКод); -КонецПроцедуры - -Функция СформироватьСтрокуПараметров(Знач Параметры) - СтрокаПараметров = ""; - Если ТипЗнч(Параметры) = Тип("Массив") Тогда - Для Сч = 0 По Параметры.Количество() - 1 Цикл - СтрокаПараметров = СтрокаПараметров + ",Параметры[" + Формат(Сч, "ЧН=0; ЧГ=") + "]"; - КонецЦикла; - КонецЕсли; - - Возврат Сред(СтрокаПараметров, 2); -КонецФункции - -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - ИЛИ Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции - -Функция ЭтоОшибкаПроверки(ТекстОшибки) - - Возврат Найти(ТекстОшибки, "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]") = 1; - -КонецФункции - -Функция ЭтоПропущенныйТест(ТекстОшибки) - - Возврат Найти(ТекстОшибки, "["+ СтатусыРезультатаТестирования.ТестПропущен + "]") > 0; - -КонецФункции - -// } Выполнение тестов - -// { Генерация результатов тестирования -Функция СостоянияТестов() - СостоянияТестов = Новый Структура; - СостоянияТестов.Вставить("НеВыполнен", 0); - СостоянияТестов.Вставить("Пройден", 1); - СостоянияТестов.Вставить("НеРеализован", 2); - СостоянияТестов.Вставить("Сломан", 3); - СостоянияТестов.Вставить("НеизвестнаяОшибка", 4); - - Возврат Новый ФиксированнаяСтруктура(СостоянияТестов); -КонецФункции - -Функция СтатусыРезультатаТестирования() - СтатусыРезультатаТестирования = Новый Структура; - СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed"); - СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken"); - СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending"); - - Возврат Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); -КонецФункции - -Функция СоздатьКонтейнерРезультатовТестирования(Знач КонтейнерДереваТестов) - ГруппаРезультатовТестирования = Новый Структура; - ГруппаРезультатовТестирования.Вставить("Ключ", КонтейнерДереваТестов.Ключ); - ГруппаРезультатовТестирования.Вставить("Тип", КонтейнерДереваТестов.Тип); - ГруппаРезультатовТестирования.Вставить("Имя", КонтейнерДереваТестов.Имя); - ГруппаРезультатовТестирования.Вставить("Состояние", СостоянияТестов.НеВыполнен); - ГруппаРезультатовТестирования.Вставить("КоличествоТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоСломанныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоНеРеализованныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоОшибочныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("ВремяВыполнения", 0); - ГруппаРезультатовТестирования.Вставить("Строки", Новый Массив); - - Возврат ГруппаРезультатовТестирования; -КонецФункции - -Функция СоздатьЭлементРезультатовТестирования(Знач ЭлементДереваТестов) - РезультатТестирования = Новый Структура; - РезультатТестирования.Вставить("Ключ", ЭлементДереваТестов.Ключ); - РезультатТестирования.Вставить("Тип", ЭлементДереваТестов.Тип); - РезультатТестирования.Вставить("Путь", ЭлементДереваТестов.Путь); - РезультатТестирования.Вставить("ИмяМетода", ЭлементДереваТестов.ИмяМетода); - РезультатТестирования.Вставить("Представление", ЭлементДереваТестов.Представление); - РезультатТестирования.Вставить("Параметры", ЭлементДереваТестов.Параметры); - РезультатТестирования.Вставить("Состояние", СостоянияТестов.НеВыполнен); - РезультатТестирования.Вставить("ВремяВыполнения", 0); - РезультатТестирования.Вставить("Сообщение", ""); - - Возврат РезультатТестирования; -КонецФункции -// } Генерация результатов тестирования - -// { Настройки браузера тестирования -Процедура ЗагрузитьНастройки() Экспорт - ЭтотОбъект.Настройки = ПолучитьПустыеНастройкиБраузераТестирования(); - // Ключом настроек должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки - // может совпадать с именем обработки, встроенной в состав конфигурации - СчитанныеНастройки = ХранилищеОбщихНастроек.Загрузить(ЭтотОбъект.Метаданные().ПолноеИмя()); - Если ТипЗнч(СчитанныеНастройки) = Тип("Структура") Тогда - Для каждого СчитанныеКлючЗначение Из СчитанныеНастройки Цикл - Если ЭтотОбъект.Настройки.Свойство(СчитанныеКлючЗначение.Ключ) И ТипЗнч(СчитанныеКлючЗначение.Значение) = ТипЗнч(ЭтотОбъект.Настройки[СчитанныеКлючЗначение.Ключ]) Тогда - ЭтотОбъект.Настройки[СчитанныеКлючЗначение.Ключ] = СчитанныеКлючЗначение.Значение; - КонецЕсли; - КонецЦикла; - КонецЕсли; -КонецПроцедуры - -Процедура СохранитьНастройки() Экспорт - Попытка - // Ключом настроек должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки - // может совпадать с именем обработки, встроенной в состав конфигурации - ХранилищеОбщихНастроек.Сохранить(ЭтотОбъект.Метаданные().ПолноеИмя(), , ЭтотОбъект.Настройки); - Исключение - // TODO: При пакетном запуске и тестировании в тонком клиенте возникает ошибка типа XDTO - // Могут возникнуть ошибки, пропускаем - КонецПопытки; -КонецПроцедуры - -Функция ПолучитьПустыеНастройкиБраузераТестирования() - Результат = Новый Структура; - Результат.Вставить("ИсторияЗагрузкиТестов", Новый Массив); - - Возврат Результат; -КонецФункции - -Процедура СохранитьВИсториюЗагрузкиТестов(Знач ИдентификаторЗагрузчика, Знач Путь) Экспорт - ИсторияЗагрузкиТестов = ЭтотОбъект.Настройки.ИсторияЗагрузкиТестов; - Для Сч = - ИсторияЗагрузкиТестов.Количество() + 1 По 0 Цикл - Индекс = -Сч; - ЭлементИстории = ИсторияЗагрузкиТестов[Индекс]; - Если ЭлементИстории.ИдентификаторЗагрузчика = ИдентификаторЗагрузчика И ЭлементИстории.Путь = Путь Тогда - ИсторияЗагрузкиТестов.Удалить(Индекс); - КонецЕсли; - КонецЦикла; - - ИсторияЗагрузкиТестов.Вставить(0, Новый Структура("ИдентификаторЗагрузчика, Путь", ИдентификаторЗагрузчика, Путь)); - ДлинаИстории = 10; - Пока ИсторияЗагрузкиТестов.Количество() > ДлинаИстории Цикл - ИсторияЗагрузкиТестов.Удалить(ДлинаИстории); - КонецЦикла; -КонецПроцедуры -// } Настройки браузера тестирования - -// { Оповещения -Функция ВозможныеСобытия() Экспорт - ИмяФреймворка = Метаданные().Имя; - ВозможныеСобытия = Новый Структура; - ВозможныеСобытия.Вставить("ВыполненТестовыйМетод", ИмяФреймворка + "_ВыполненТестовыйМетод"); - - Возврат Новый ФиксированнаяСтруктура(ВозможныеСобытия); -КонецФункции - -Процедура ОповеститьОСобытии(Знач Подписчик, Знач Событие, Знач ПараметрыСобытия) - Выполнить("Подписчик.ОбработатьСобытиеВыполненияТестов(Событие, ПараметрыСобытия);"); -КонецПроцедуры -// } Оповещения - -// { Контекст -Процедура СохранитьКонтекст(Знач Контекст) Экспорт - Если ЭтотОбъект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда - ВызватьИсключение ЭтотОбъект.ВозможныеИсключения.СохранятьКонтекстТолькоВСтрогомРежиме; - КонецЕсли; - ЭтотОбъект.ТекущийКонтейнер.Контекст = Контекст; -КонецПроцедуры - -Функция ПолучитьКонтекст() Экспорт - Если ЭтотОбъект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда - ВызватьИсключение ЭтотОбъект.ВозможныеИсключения.ПолучатьКонтекстТолькоВСтрогомРежиме; - КонецЕсли; - Возврат ЭтотОбъект.ТекущийКонтейнер.Контекст; -КонецФункции -// } Контекст - -Процедура ВызватьОшибкуПроверки(СообщениеОшибки = "") Экспорт - - Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; - -КонецПроцедуры - -Процедура ПропуститьТест(Знач Сообщение = "") Экспорт - - Префикс = "[" + СтатусыРезультатаТестирования.ТестПропущен + "]"; - Если ПустаяСтрока(Сообщение) Тогда - Сообщение = НСтр("ru = 'Тест пропущен'"); - КонецЕсли; - ВызватьИсключение Префикс + " " + Сообщение; - -КонецПроцедуры - -// Выводит сообщение. В тестах ВСЕГДА должна использоваться ВМЕСТО метода Сообщить(). -// -Функция ВывестиСообщение(ТекстСообщения, Статус=Неопределено) Экспорт - - Сообщить(ТекстСообщения, Статус); - -КонецФункции - -// { Helpers -Функция ВозможныеИсключения() - ВозможныеИсключения = Новый Структура; - ВозможныеИсключения.Вставить("СохранятьКонтекстТолькоВСтрогомРежиме", "Сохранять контекст можно только в рамках контейнеров со строгим порядком выполнения"); - ВозможныеИсключения.Вставить("ПолучатьКонтекстТолькоВСтрогомРежиме", "Получать контекст можно только в рамках контейнеров со строгим порядком выполнения"); - - Возврат Новый ФиксированнаяСтруктура(ВозможныеИсключения); -КонецФункции - -Функция ПеремешатьМассив(Знач ИсходныйМассив) - Результат = Новый Массив; - Для Каждого Элемент Из ИсходныйМассив Цикл - Результат.Добавить(Элемент); - КонецЦикла; - - // алгоритм перемешивания взят из книги Кнута "Искусство программирования" т.2 - ГСЧ = Новый ГенераторСлучайныхЧисел(); - ПоследнийИндекс = Результат.ВГраница(); - Для Индекс = 1 По ПоследнийИндекс Цикл - ТекущийИндекс = ПоследнийИндекс - Индекс + 1; - НовыйИндекс = ГСЧ.СлучайноеЧисло(0, ТекущийИндекс); - Если НовыйИндекс <> ТекущийИндекс Тогда - Значение = Результат[НовыйИндекс]; - Результат[НовыйИндекс] = Результат[ТекущийИндекс]; - Результат[ТекущийИндекс] = Значение; - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции - -Функция НайтиРезультатТестированияПоИдентификатору(Знач КонтейнерРезультатовТестирования, Знач ИдентификаторТеста, Знач ВключатьПодчиненные = Ложь) Экспорт - Перем Результат; - - Для каждого ДочернийРезультатТестирования Из КонтейнерРезультатовТестирования.Строки Цикл - Если ДочернийРезультатТестирования.Ключ = ИдентификаторТеста Тогда - Результат = ДочернийРезультатТестирования; - ИначеЕсли ЗначениеЗаполнено(Результат) И ВключатьПодчиненные И ДочернийРезультатТестирования.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Контейнер Тогда - Результат = НайтиРезультатТестированияПоИдентификатору(ДочернийРезультатТестирования, ИдентификаторТеста, ВключатьПодчиненные); - КонецЕсли; - Если ЗначениеЗаполнено(Результат) Тогда - Прервать; - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции - -Функция ПараметрыМетода(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыМетода = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыМетода.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыМетода; -КонецФункции -// } Helpers - -// { Подсистема конфигурации xUnitFor1C - -Функция ПолучитьГлавнуюПодсистему() Экспорт - - КоллекцияПодсистем = Метаданные.Подсистемы; - - ГлавнаяПодсистема = Неопределено; - - ИмяГлавнойПодсистемы = ИспользуемыйПрефиксПодсистемы + "xUnitFor1C"; - Для Каждого Подсистема Из КоллекцияПодсистем Цикл - Если Подсистема.Имя = ИмяГлавнойПодсистемы Тогда - ГлавнаяПодсистема = Подсистема; - Прервать; - Иначе - ГлавнаяПодсистема = НайтиПодсистемуПоИмени(Подсистема.Подсистемы, ИмяГлавнойПодсистемы); - Если ЗначениеЗаполнено(ГлавнаяПодсистема) Тогда - Прервать; - КонецЕсли; - КонецЕсли; - КонецЦикла; - - Если ГлавнаяПодсистема = Неопределено Тогда - ВызватьИсключение "Не удалось главную подсистему """ + ИмяГлавнойПодсистемы + """!"; - КонецЕсли; - - Возврат ГлавнаяПодсистема; - -КонецФункции - -Функция НайтиПодсистемуПоИмени(КоллекцияПодсистем, ИмяПодсистемыДляПоиска) - - Для Каждого Подсистема Из КоллекцияПодсистем Цикл - Если Подсистема.Имя = ИмяПодсистемыДляПоиска Тогда - Возврат Подсистема; - Иначе - Возврат НайтиПодсистемуПоИмени(Подсистема.Подсистемы, ИмяПодсистемыДляПоиска); - КонецЕсли; - КонецЦикла; - -КонецФункции - -Функция ПолучитьПлагины() Экспорт - - ГлавнаяПодсистема = ПолучитьГлавнуюПодсистему(); - - СтруктураПлагинов = Новый Структура; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - - КоллекцияПлагинов = ГлавнаяПодсистема.Подсистемы.Plugins.Состав; - Для Каждого Плагин Из КоллекцияПлагинов Цикл - ИмяПлагина = Прав(Плагин.Имя, СтрДлина(Плагин.Имя) - ДлинаПрефикса); - СтруктураПлагинов.Вставить(ИмяПлагина, Плагин.Имя); - КонецЦикла; - - Возврат СтруктураПлагинов; - -КонецФункции - -Функция ПолучитьУтилиты() Экспорт - - ГлавнаяПодсистема = ПолучитьГлавнуюПодсистему(); - - СтруктураПлагинов = Новый Структура; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - - КоллекцияПлагинов = ГлавнаяПодсистема.Подсистемы.Utils.Состав; - Для Каждого Плагин Из КоллекцияПлагинов Цикл - ИмяПлагина = Прав(Плагин.Имя, СтрДлина(Плагин.Имя) - ДлинаПрефикса); - СтруктураПлагинов.Вставить(ИмяПлагина, Плагин.Имя); - КонецЦикла; - - Возврат СтруктураПлагинов; - -КонецФункции - -Функция ОбработкаЯвляетсяВстроеннойВКонфигурацию() Экспорт - - ПолноеИмяТекущейОбработки = ЭтотОбъект.Метаданные().ПолноеИмя(); - ВстроеннаяВКонфигурациюОбработка = Метаданные.НайтиПоПолномуИмени(ПолноеИмяТекущейОбработки); - - ОбработкаВстроенаяВСоставКонфигурации = НЕ (ВстроеннаяВКонфигурациюОбработка = Неопределено); - - Возврат ОбработкаВстроенаяВСоставКонфигурации; - -КонецФункции - -Функция СлужебныеПараметрыОбработки() Экспорт - - СтруктураПараметров = Новый Структура; - СтруктураПараметров.Вставить("ПолноеИмяБраузераТестов", ПолноеИмяБраузераТестов); - СтруктураПараметров.Вставить("ПолныйПутьКФайлуБраузераТестов", ПолныйПутьКФайлуБраузераТестов); - - Возврат СтруктураПараметров; - -КонецФункции - -// Универсальная функция для проверки наличия -// свойств у значения любого типа данных -// Переменные: -// 1. Переменная - переменная любого типа, -// для которой необходимо проверить наличие свойства -// 2. ИмяСвойства - переменная типа "Строка", -// содержащая искомое свойства -// -Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) - // Инициализируем структуру для теста - // с ключом (значение переменной "ИмяСвойства") - // и значением произвольного GUID'а - GUIDПроверка = Новый УникальныйИдентификатор; - СтруктураПроверка = Новый Структура; - СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка); - // Заполняем созданную структуру из переданного - // значения переменной - ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная); - // Если значение для свойства структуры осталось - // NULL, то искомое свойство не найдено, - // и наоборот. - Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда - Возврат Ложь; - Иначе - Возврат Истина; - КонецЕсли; -КонецФункции -Функция ЗаполнитьСвойствоПриНаличии(ОбъектЗаполнения, ИмяСвойство, ЗначениеСвойства) - - Если ПеременнаяСодержитСвойство(ОбъектЗаполнения, ИмяСвойство) Тогда - ОбъектЗаполнения[ИмяСвойство] = ЗначениеСвойства; - КонецЕсли; - -КонецФункции - -Функция ДополнитьИдентификаторПрефиксомПодсистемы(Знач Идентификатор) Экспорт - - Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда - Возврат Идентификатор; - КонецЕсли; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда - Возврат Идентификатор; - Иначе - Возврат ИспользуемыйПрефиксПодсистемы + Идентификатор; - КонецЕсли; - -КонецФункции -Функция ПолучитьИдентификаторБезПрефиксаПодсистемы(Знач Идентификатор) Экспорт - - Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда - Возврат Идентификатор; - КонецЕсли; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда - Возврат Прав(Идентификатор, СтрДлина(Идентификатор) - ДлинаПрефикса); - Иначе - Возврат Идентификатор; - КонецЕсли; - -КонецФункции - -Функция СоздатьОбъектПлагина(Идентификатор, ВстроенаВКонфигурацию = Ложь, ЭтоОтчет = Ложь) Экспорт - - ОбъектПлагина = Неопределено; - - Если ЭтотОбъект.ЭтоВстроеннаяОбработка - ИЛИ ВстроенаВКонфигурацию = Истина Тогда - - ИдентификаторСПрефиксомПодсистемы = ДополнитьИдентификаторПрефиксомПодсистемы(Идентификатор); - ИдентификаторБезПрефиксаПодсистемы = ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор); - - Если ЭтоОтчет = Истина Тогда - МенеджерВидаОбъектов = Отчеты; - МетаданныеВидаОбъектов = Метаданные.Отчеты; - Иначе - МенеджерВидаОбъектов = Обработки; - МетаданныеВидаОбъектов = Метаданные.Обработки; - КонецЕсли; - - Если НЕ МетаданныеВидаОбъектов.Найти(ИдентификаторСПрефиксомПодсистемы) = Неопределено Тогда - ОбъектПлагина = МенеджерВидаОбъектов[ИдентификаторСПрефиксомПодсистемы].Создать(); - ИначеЕсли НЕ МетаданныеВидаОбъектов.Найти(ИдентификаторБезПрефиксаПодсистемы) = Неопределено Тогда - ОбъектПлагина = МенеджерВидаОбъектов[ИдентификаторБезПрефиксаПодсистемы].Создать(); - КонецЕсли; - - КонецЕсли; - - Если ОбъектПлагина = Неопределено Тогда - Если ЭтоОтчет = Истина Тогда - ОбъектПлагина = ВнешниеОтчеты.Создать(Идентификатор, Ложь); - Иначе - ОбъектПлагина = ВнешниеОбработки.Создать(Идентификатор, Ложь); - КонецЕсли; - КонецЕсли; - - Возврат ОбъектПлагина; - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C - -Инициализация(); diff --git "a/lib/CF/83xdd/DataProcessors/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.xml" "b/lib/CF/83xdd/DataProcessors/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.xml" deleted file mode 100644 index 098668691..000000000 --- "a/lib/CF/83xdd/DataProcessors/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.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/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/lib/CF/83xdd/DataProcessors/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" deleted file mode 100644 index 59005adc0..000000000 --- "a/lib/CF/83xdd/DataProcessors/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" +++ /dev/null @@ -1,645 +0,0 @@ - -
- false - useIfNecessary - - false - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Загрузить ...</v8:content> - </v8:item> - - - - ru - Подменю загрузить тесты - - - - Picture.png - false - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Плагины загрузчики</v8:content> - </v8:item> - - - - ru - Плагины загрузчики - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Подменю история загрузки тестов</v8:content> - </v8:item> - - - - ru - История загрузки тестов - - - - - - - - - - - true - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Внешние инструменты</v8:content> - </v8:item> - - - - ru - Внешние инструменты - - - - - - - - - - - - - - - - ПриОткрытии - ПриСозданииНаСервере - ПриЗакрытии - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дерево тестов</v8:content> - </v8:item> - - - - ru - Дерево тестов - - - Vertical - None - false - - - - Tree - true - false - false - 3 - Row - true - ExpandAllLevels - ДеревоТестов - ДеревоТестов.ИконкаУзла - - RowsPicture.png - false - - None - None - None - - false - - - - - - false - - - - - ДеревоТестов - SearchStringRepresentation - - - - - - - ДеревоТестов - ViewStatusRepresentation - - - - - - - ДеревоТестов - SearchControl - - - - - - - ДеревоТестов.Состояние - None - EnterOnInput - - ValuesPicture.png - false - - - - - - ДеревоТестов.Имя - EnterOnInput - - - - - ДеревоТестов.КоличествоТестов - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Кол-во</v8:content> - </v8:item> - - EnterOnInput - - - - - ДеревоТестов.ВремяВыполнения - EnterOnInput - - - - - ДеревоТестов.Путь - EnterOnInput - - - - -
-
-
- - ИндикаторВыполнения - None - Broken - true - - - -
- - - - cfg:DataProcessorObject.xddTestRunner - - true - - 1/0:e46a4b91-3cc7-4188-b6f0-96c31aa42e19 - 1/0:a2724854-2f5c-4048-b7b2-02cbb9cb7fa3 - 1/0:092b3fc1-7ced-4d20-8a28-79b535f8a9c4 - 1/0:07f739b4-709b-41bf-8096-032bddefd0f9 - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Индикатор выполнения</v8:content> - </v8:item> - - - xs:decimal - - 10 - 0 - Any - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дерево тестов</v8:content> - </v8:item> - - - v8:ValueTree - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Количество тестов</v8:content> - </v8:item> - - - xs:decimal - - 10 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Состояние</v8:content> - </v8:item> - - - xs:decimal - - 1 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Имя</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Время выполнения</v8:content> - </v8:item> - - - xs:decimal - - 10 - 3 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Путь</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Иконка узла</v8:content> - </v8:item> - - - xs:decimal - - 1 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Ключ</v8:content> - </v8:item> - - - v8:UUID - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Используемое имя файла</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Идентификатор загрузчика</v8:content> - </v8:item> - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дерево от загрузчика</v8:content> - </v8:item> - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Это пакетный запуск</v8:content> - </v8:item> - - - xs:boolean - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Выполнить все тесты (F7)</v8:content> - </v8:item> - - - - ru - Команда выполнить все тесты - - - F7 - КомандаВыполнитьВсеТесты - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Перезагрузить</v8:content> - </v8:item> - - - - ru - Команда перезагрузить все тесты - - - Ctrl+R - ПерезагрузитьПоследниеТестыПоИстории - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Выполнить выделенные (Ctrl+Enter)</v8:content> - </v8:item> - - - - ru - Команда выполнить выделенные тесты - - - - StdPicture.GenerateReport - true - - КомандаВыполнитьВыделенныеТесты - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Генератор макетов данных</v8:content> - </v8:item> - - - - ru - Генератор макетов данных на базе реальных данных - - - ГенераторМакетовДанных - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Показать ГУИД</v8:content> - </v8:item> - - - - ru - Показать ГУИД - - - ПоказатьГУИД - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Загрузить только выделенные тесты</v8:content> - </v8:item> - - - - ru - Команда загрузить только выделенные тесты - - - КомандаЗагрузитьТолькоВыделенныеТесты - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Перезагрузить браузер тестирования</v8:content> - </v8:item> - - - - ru - Команда перезагрузить форму - - - КомандаПерезагрузитьФорму - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Загрузить тесты по умолчанию</v8:content> - </v8:item> - - - - ru - Загрузить тесты по умолчанию - - - ЗагрузитьТестыПоУмолчанию - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Конвертер тестов в формат 4-й версии</v8:content> - </v8:item> - - - - ru - Конвертер тестов - - - КонвертерТестов - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Преобразовать журнал действий пользователя в тест</v8:content> - </v8:item> - - - - ru - Преобразовать журнал действий пользователя в тест - - - ПреобразоватьЖурналДействийПользователяВТест - - - - - - v8:ValueListType - - - -
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262/RowsPicture.png" "b/lib/CF/83xdd/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262/RowsPicture.png" deleted file mode 100644 index 4b74f63e9..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262/RowsPicture.png" and /dev/null differ diff --git "a/lib/CF/83xdd/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265/ValuesPicture.png" "b/lib/CF/83xdd/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265/ValuesPicture.png" deleted file mode 100644 index bafa4a172..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265/ValuesPicture.png" and /dev/null differ diff --git "a/lib/CF/83xdd/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\222\321\201\320\265\320\242\320\265\321\201\321\202\321\213/Picture.png" "b/lib/CF/83xdd/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\222\321\201\320\265\320\242\320\265\321\201\321\202\321\213/Picture.png" deleted file mode 100644 index 800aa1674..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\222\321\201\320\265\320\242\320\265\321\201\321\202\321\213/Picture.png" and /dev/null differ diff --git "a/lib/CF/83xdd/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\320\265\321\200\320\265\320\267\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" "b/lib/CF/83xdd/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\320\265\321\200\320\265\320\267\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" deleted file mode 100644 index 8cd2ce115..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\320\265\321\200\320\265\320\267\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" and /dev/null differ diff --git "a/lib/CF/83xdd/DataProcessors/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/Items/\320\237\320\276\320\264\320\274\320\265\320\275\321\216\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" "b/lib/CF/83xdd/DataProcessors/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/Items/\320\237\320\276\320\264\320\274\320\265\320\275\321\216\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" deleted file mode 100644 index 30ddd6b31..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/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/Items/\320\237\320\276\320\264\320\274\320\265\320\275\321\216\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" and /dev/null differ diff --git "a/lib/CF/83xdd/DataProcessors/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/Items/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216/Picture.png" "b/lib/CF/83xdd/DataProcessors/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/Items/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216/Picture.png" deleted file mode 100644 index 30ddd6b31..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/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/Items/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216/Picture.png" and /dev/null differ diff --git "a/lib/CF/83xdd/DataProcessors/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/lib/CF/83xdd/DataProcessors/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" deleted file mode 100644 index b53f29f43..000000000 --- "a/lib/CF/83xdd/DataProcessors/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" +++ /dev/null @@ -1,1192 +0,0 @@ -&НаКлиенте -Перем КэшФормПлагинов; -&НаКлиенте -Перем ПодключенныеВнешниеОбработки; - -// { События формы -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - ОбъектНаСервере = РеквизитФормыВЗначение("Объект"); - - ЭтаФорма.Заголовок = ОбъектНаСервере.ЗаголовокФормы(); - - Если НЕ Объект.ЭтоВстроеннаяОбработка Тогда // Используемое имя файла меняется в зависимости от того - // встроена обработка в конфигурацию или нет - ИспользуемоеИмяФайла = ОбъектНаСервере.ИспользуемоеИмяФайла; - КонецЕсли; - - ОбновитьКомандыИсторииЗагрузкиТестов(); -КонецПроцедуры - -&НаКлиенте -Процедура ПриОткрытии() - ЗагрузитьПлагины(); - КэшироватьПеречисленияПлагинов(); - СброситьПодключенныеВнешниеОбработки(); - - ЭтоПакетныйЗапуск = ЗначениеЗаполнено(ПараметрЗапуска); - Если ЭтоПакетныйЗапуск Тогда - ВыполнитьПакетныйЗапуск(ПараметрЗапуска); - Иначе - ПерезагрузитьПоследниеТестыПоИстории(); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПриЗакрытии() - - // Для пакетного запуска нет смысла вызывать это событие, - Если НЕ ЭтоПакетныйЗапуск Тогда - ПриЗакрытииНаСервере(); - КонецЕсли; - -КонецПроцедуры - -&НаСервере -Процедура ПриЗакрытииНаСервере() - ЭтотОбъектНаСервере().СохранитьНастройки(); -КонецПроцедуры - -&НаКлиенте -Процедура ОбработатьСобытиеВыполненияТестов(Знач ИмяСобытия, Знач Параметр) Экспорт - Если ИмяСобытия = Объект.ВозможныеСобытия.ВыполненТестовыйМетод Тогда - Если Параметр.Состояние = Объект.СостоянияТестов.НеРеализован Тогда - Если Элементы.ИндикаторВыполнения.ЦветРамки <> WebЦвета.Красный Тогда - Элементы.ИндикаторВыполнения.ЦветРамки = WebЦвета.Золотой; - КонецЕсли; - ИначеЕсли Параметр.Состояние = Объект.СостоянияТестов.Сломан Тогда - Элементы.ИндикаторВыполнения.ЦветРамки = WebЦвета.Красный; - КонецЕсли; - ИндикаторВыполнения = ИндикаторВыполнения + 1; - КонецЕсли; - ОбновитьОтображениеДанных(); -КонецПроцедуры -// } События формы - -// { Управляющие воздействия пользователя -&НаКлиенте -Процедура ЗагрузитьТестыПоУмолчанию(Команда) - ЗагрузчикПоУмолчанию = ЗагрузчикПоУмолчанию(); - ИдентификаторЗагрузчикаПоУмолчанию = ЗагрузчикПоУмолчанию.ОписаниеПлагина(Объект.ТипыПлагинов).Идентификатор; - Подключаемый_ИнтерактивныйВызовЗагрузчика(Новый Структура("Имя", ИдентификаторЗагрузчикаПоУмолчанию)); -КонецПроцедуры - -&НаКлиенте -Процедура КомандаВыполнитьВсеТесты(Команда) - ВыполнитьТестыНаКлиенте(); -КонецПроцедуры - -&НаКлиенте -Процедура ВыполнитьТестыНаКлиенте(Знач Фильтр = Неопределено) - Если ЗначениеЗаполнено(ЭтаФорма.ДеревоОтЗагрузчика) Тогда - ОчиститьСообщения(); - - КоличествоТестовыхМетодов = ПолучитьКоличествоТестовыхМетодов(ЭтаФорма.ДеревоОтЗагрузчика, Фильтр); - ИнициализироватьИндикаторВыполнения(КоличествоТестовыхМетодов); - - СброситьПодключенныеВнешниеОбработки(); - РезультатыТестирования = ВыполнитьТесты(Плагин(ИдентификаторЗагрузчика), ЭтаФорма.ДеревоОтЗагрузчика, Фильтр, ЭтаФорма); - - ОбновитьДеревоТестовНаОснованииРезультатовТестирования(ДеревоТестов.ПолучитьЭлементы()[0], РезультатыТестирования); - - ГенераторОтчетаMXL = Плагин("ГенераторОтчетаMXL"); - Отчет = ГенераторОтчетаMXL.СоздатьОтчет(ЭтаФорма, РезультатыТестирования); - ГенераторОтчетаMXL.Показать(Отчет); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура КомандаВыполнитьВыделенныеТесты(Команда) - Фильтр = Новый Массив; - ВыделенныеСтроки = Элементы.ДеревоТестов.ВыделенныеСтроки; - Для каждого ИдентификаторВыделеннойСтроки Из ВыделенныеСтроки Цикл - ВыделеннаяСтрока = ДеревоТестов.НайтиПоИдентификатору(ИдентификаторВыделеннойСтроки); - Фильтр.Добавить(Новый УникальныйИдентификатор(ВыделеннаяСтрока.Ключ)); - КонецЦикла; - Если Фильтр.Количество() > 0 Тогда - ВыполнитьТестыНаКлиенте(Фильтр); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура КомандаПерезагрузитьФорму(Команда) - Перем АдресХранилища; - - Закрыть(); - - Если Объект.ЭтоВстроеннаяОбработка Тогда // Для встроенной в конф. обработки открываем форму - ОткрытьФорму(ЭтаФорма.ИмяФормы); - Иначе - - Оповещение = Новый ОписаниеОповещения("КомандаПерезагрузитьФормуЗавершение", ЭтаФорма); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ЭтаФорма.ИспользуемоеИмяФайла , Ложь, ЭтаФорма.УникальныйИдентификатор); - - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура ПерезагрузитьПоследниеТестыПоИстории(Команда = Неопределено) - ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов; - Если ИсторияЗагрузкиТестов.Количество() > 0 Тогда - ЭлементИстории = ИсторияЗагрузкиТестов[0]; - Попытка - ЗагрузитьТесты(ЭлементИстории.ИдентификаторЗагрузчика, ЭлементИстории.Путь); - Исключение - // TODO - Сообщить("Не удалось загрузить тесты из истории <" + ЭлементИстории.ИдентификаторЗагрузчика + ": " + ЭлементИстории.Путь + ">" + Символы.ПС + ОписаниеОшибки()); - КонецПопытки; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ГенераторМакетовДанных(Команда) - ОткрытьИнструмент("СериализаторMXL", ПолучитьПутьКПлагинам()); -КонецПроцедуры - -&НаКлиенте -Процедура ПоказатьГУИД(Команда) - ОткрытьИнструмент("xddGuidShow"); -КонецПроцедуры - -&НаКлиенте -Процедура КонвертерТестов(Команда) - ОткрытьИнструмент("xddTestsConvertIntoRebornFormat"); -КонецПроцедуры - -&НаКлиенте -Процедура ПреобразоватьЖурналДействийПользователяВТест(Команда) - ОткрытьИнструмент("UILogToScript"); -КонецПроцедуры -// } Управляющие воздействия пользователя - -// { Плагины -&НаКлиенте -Процедура ЗагрузитьПлагины() - Объект.Плагины = Новый Структура; - КэшФормПлагинов = Новый Структура; - - // Для встроенного в состав конфигурации браузера тестов - // плагины также загружаем из встроенных обработок - Если Объект.ЭтоВстроеннаяОбработка Тогда - ЗагрузитьВстроенныеПлагины(); - Для Каждого Плагин Из Объект.Плагины Цикл - КэшФормПлагинов.Вставить(Плагин.Ключ, Истина); - КонецЦикла; - Иначе - КаталогПлагинов = ПолучитьПутьКПлагинам(); - НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь); - ПомещаемыеФайлы = Новый Массив; - ИдентификаторыПлагинов = Новый Соответствие; - Для каждого ФайлОбработки Из НайденныеФайлы Цикл - - ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); - ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); - - ИмяПлагина = ФайлОбработки.ИмяБезРасширения; - ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - - КонецЦикла; - - ЗагруженныеФайлы = Новый Массив; - Если ПомещаемыеФайлы.Количество() Тогда - ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор); - КонецЕсли; - - ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); - - Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл - ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; - - ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя]; - Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); - КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); - - КонецЦикла; - КонецЕсли; - - ДобавитьКомандыЗагрузчиковНаФорме(); - -КонецПроцедуры - -&НаСервере -Функция ПодключитьПлагиныНаСервере(Знач ЗагружаемыеФайлы) - - ОписанияПлагинов = Новый Соответствие; - - Для Каждого ОписаниеФайла Из ЗагружаемыеФайлы Цикл - ФайлОбъект = Новый Файл(ОписаниеФайла.Имя); - ИмяПлагина = ФайлОбъект.ИмяБезРасширения; - ПодключитьФайлОбработкиНаСервере(ОписаниеФайла.Хранение, ИмяПлагина); - - Попытка - ОбъектОбработки = ВнешниеОбработки.Создать(ИмяПлагина, Ложь); - ОбъектОбработки.Инициализация(ЭтотОбъектНаСервере()); - ОписанияПлагинов.Вставить(ОписаниеФайла.Имя, ОбъектОбработки.ОписаниеПлагина(Объект.ТипыПлагинов)); - Исключение - Ошибка = "Возникла ошибка при загрузке плагина: "+ОписаниеФайла.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Сообщить(Ошибка); - Продолжить; - КонецПопытки; - - КонецЦикла; - - Возврат Новый ФиксированноеСоответствие(ОписанияПлагинов); - -КонецФункции // ПодключитьПлагиныНаСервере() - -&НаКлиенте -Процедура КэшироватьПеречисленияПлагинов() - Объект.ТипыУзловДереваТестов = Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов; -КонецПроцедуры - -&НаКлиенте -Функция Плагин(Знач Идентификатор) Экспорт - - ОбъектПлагин = Неопределено; - ИдентификаторБезПрефиксовПодсистемы = ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор, Объект.ИспользуемыйПрефиксПодсистемы); - Если КэшФормПлагинов.Свойство(ИдентификаторБезПрефиксовПодсистемы) Тогда - ОбъектПлагин = КэшФормПлагинов[ИдентификаторБезПрефиксовПодсистемы]; - КонецЕсли; - - Если ОбъектПлагин = Неопределено Тогда - ВызватьИсключение НСтр("ru = 'Неизвестный идентификатор плагина: <"+Идентификатор+">'"); - ИначеЕсли ОбъектПлагин = Истина Тогда - // загрузка клиентского плагина "По требованию" - ИмяПлагина = Объект.Плагины[ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор, Объект.ИспользуемыйПрефиксПодсистемы)]; - Попытка - Если Объект.ЭтоВстроеннаяОбработка Тогда - ОбъектПлагин = ПолучитьФорму("Обработка." + ДополнитьИдентификаторПрефиксомПодсистемы(ИмяПлагина, Объект.ИспользуемыйПрефиксПодсистемы) + ".Форма", , ЭтаФорма); - Иначе - ОбъектПлагин = ПолучитьФорму("ВнешняяОбработка." + ИмяПлагина + ".Форма", , ЭтаФорма); - КонецЕсли; - КэшФормПлагинов.Вставить(ИдентификаторБезПрефиксовПодсистемы, ОбъектПлагин); - Исключение - // TODO добавить поведение при отсутствии управляемой формы у плагина - ВызватьИсключение; - КонецПопытки; - - КонецЕсли; - - Возврат ОбъектПлагин; -КонецФункции - -&НаСервере -Процедура ДобавитьКомандыЗагрузчиковНаФорме() - ОписанияЗагрузчиков = ПолучитьОписанияЗагрузчиковНаСервере(); - Для каждого Описание Из ОписанияЗагрузчиков Цикл - Команда = ЭтаФорма.Команды.Добавить(Описание.Идентификатор); - Команда.Действие = "Подключаемый_ИнтерактивныйВызовЗагрузчика"; - ПунктМеню = ЭтаФорма.Элементы.Добавить(Команда.Имя, Тип("КнопкаФормы"), ЭтаФорма.Элементы.ПлагиныЗагрузчики); - ПунктМеню.Заголовок = Описание.Представление; - ПунктМеню.ИмяКоманды = Команда.Имя; - КонецЦикла; -КонецПроцедуры - -&НаКлиенте -Функция ПолучитьОписанияПлагиновПоТипу(Знач ТипПлагина) Экспорт - Результат = ПолучитьОписанияПлагиновПоТипуНаСервере(ТипПлагина); - - Возврат Результат; -КонецФункции - -&НаСервере -Функция ПолучитьОписанияПлагиновПоТипуНаСервере(Знач ТипПлагина) - ОбъектНаСервере = РеквизитФормыВЗначение("Объект"); - Результат = ОбъектНаСервере.ПолучитьОписанияПлагиновПоТипу(ТипПлагина); - - Возврат Результат; -КонецФункции - -&НаСервере -Функция ПолучитьОписанияЗагрузчиковНаСервере() - ОбъектНаСервере = РеквизитФормыВЗначение("Объект"); - ОписанияЗагрузчиков = ОбъектНаСервере.ПолучитьОписанияПлагиновПоТипу(ОбъектНаСервере.ТипыПлагинов.Загрузчик); - - Возврат ОписанияЗагрузчиков; -КонецФункции - -&НаКлиенте -Функция ЗагрузчикПоУмолчанию() Экспорт - Возврат Плагин("ЗагрузчикКаталога"); -КонецФункции -// } Плагины - -// { Работа с деревом тестов -&НаКлиенте -Процедура Подключаемый_ИнтерактивныйВызовЗагрузчика(Команда) - ИдентификаторВыбранногоЗагрузчика = Команда.Имя; - Плагин(ИдентификаторВыбранногоЗагрузчика).ВыбратьПутьИнтерактивно(ЭтаФорма); -КонецПроцедуры - -&НаКлиенте -Процедура ЗагрузитьТесты(Знач ИдентификаторВыбранногоЗагрузчика, Знач Путь) Экспорт - ИнициализироватьИндикаторВыполнения(); - - ЭтаФорма.ИдентификаторЗагрузчика = ИдентификаторВыбранногоЗагрузчика; - ФормаЗагрузчика = Плагин(ИдентификаторВыбранногоЗагрузчика); - - Попытка - ЭтаФорма.ДеревоОтЗагрузчика = ФормаЗагрузчика.Загрузить(ЭтаФорма, Путь); - Исключение - Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Возврат; - КонецПопытки; - - ЭлементыДереваТестов = ЭтаФорма.ДеревоТестов.ПолучитьЭлементы(); - ЭлементыДереваТестов.Очистить(); - ЗаполнитьДеревоТестов(ЭтаФорма.ДеревоТестов, ДеревоОтЗагрузчика); - - КоличествоТестовыхСлучаев = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(ЭтаФорма.ДеревоТестов); - РазвернутьСтрокиДерева(КоличествоТестовыхСлучаев < 30); - - СохранитьВИсториюЗагрузкиТестовНаСервере(ИдентификаторВыбранногоЗагрузчика, Путь); - ОбновитьКомандыИсторииЗагрузкиТестов(); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьДеревоТестов(РодительскаяСтрокаДереваТестов, Знач КонтейнерДереваТестовЗагрузчика) - СтрокаКонтейнера = РодительскаяСтрокаДереваТестов.ПолучитьЭлементы().Добавить(); - СтрокаКонтейнера.Имя = КонтейнерДереваТестовЗагрузчика.Имя; - СтрокаКонтейнера.ИконкаУзла = КонтейнерДереваТестовЗагрузчика.ИконкаУзла; - СтрокаКонтейнера.Ключ = КонтейнерДереваТестовЗагрузчика.Ключ; - - Для каждого ЭлементКоллекции Из КонтейнерДереваТестовЗагрузчика.Строки Цикл - Если ЭлементКоллекции.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда - ЗаполнитьДеревоТестов(СтрокаКонтейнера, ЭлементКоллекции); - ИначеЕсли ЭлементКоллекции.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда - СтрокаЭлемента = СтрокаКонтейнера.ПолучитьЭлементы().Добавить(); - СтрокаЭлемента.Имя = ЭлементКоллекции.Представление; - СтрокаЭлемента.Путь = ЭлементКоллекции.Путь; - СтрокаЭлемента.ИконкаУзла = ЭлементКоллекции.ИконкаУзла; - СтрокаЭлемента.Ключ = ЭлементКоллекции.Ключ; - КонецЕсли; - КонецЦикла; -КонецПроцедуры - -&НаКлиенте -Функция ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(РодительскаяСтрока) - КоллекцияСтрок = РодительскаяСтрока.ПолучитьЭлементы(); - Если КоллекцияСтрок.Количество() = 0 Тогда - Возврат 1; - КонецЕсли; - ОбщееКоличествоТестов = 0; - Для каждого СтрокаДерева из КоллекцияСтрок Цикл - КоличествоТестовВСтроке = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(СтрокаДерева); - СтрокаДерева.КоличествоТестов = КоличествоТестовВСтроке; - ОбщееКоличествоТестов = ОбщееКоличествоТестов + КоличествоТестовВСтроке; - КонецЦикла; - - Возврат ОбщееКоличествоТестов; -КонецФункции - -&НаКлиенте -Процедура РазвернутьСтрокиДерева(Знач ВключаяПодчиненные = Ложь) - Для каждого СтрокаДерева из ДеревоТестов.ПолучитьЭлементы() Цикл - Идентификатор = СтрокаДерева.ПолучитьИдентификатор(); - Элементы.ДеревоТестов.Развернуть(Идентификатор, ВключаяПодчиненные); - КонецЦикла; -КонецПроцедуры - -&НаКлиенте -Процедура ОбновитьДеревоТестовНаОснованииРезультатовТестирования(УзелДереваТестов, Знач РезультатТестирования) - УзелДереваТестов.Состояние = РезультатТестирования.Состояние; - УзелДереваТестов.ВремяВыполнения = РезультатТестирования.ВремяВыполнения; - Если РезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда - Для каждого ДочернийРезультатТестирования Из РезультатТестирования.Строки Цикл - ДочернийУзелДереваТестов = НайтиСтрокуВДеревеТестовПоКлючу(УзелДереваТестов, ДочернийРезультатТестирования.Ключ); - ОбновитьДеревоТестовНаОснованииРезультатовТестирования(ДочернийУзелДереваТестов, ДочернийРезультатТестирования); - КонецЦикла; - ИначеЕсли РезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда - Если РезультатТестирования.Свойство("Сообщение") И ЗначениеЗаполнено(РезультатТестирования.Сообщение) Тогда - Сообщить(РезультатТестирования.Сообщение, СтатусСообщения.ОченьВажное); - КонецЕсли; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Функция НайтиСтрокуВДеревеТестовПоКлючу(УзелДереваТестов, Знач Ключ) - Результат = Неопределено; - Для каждого ЭлементКоллекции Из УзелДереваТестов.ПолучитьЭлементы() Цикл - Если ЭлементКоллекции.Ключ = Ключ Тогда - Результат = ЭлементКоллекции; - Прервать; - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции -// } Работа с деревом тестов - -// { Выполнение тестов -&НаКлиенте -Функция ПолучитьКоличествоТестовыхМетодов(Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено) Экспорт - Возврат ПолучитьКоличествоТестовыхМетодовНаСервере(КонтейнерДереваТестов, Фильтр); -КонецФункции - -&НаСервере -Функция ПолучитьКоличествоТестовыхМетодовНаСервере(Знач КонтейнерДереваТестов, Знач Фильтр) - Возврат ЭтотОбъектНаСервере().ПолучитьКоличествоТестовыхМетодов(КонтейнерДереваТестов, Фильтр); -КонецФункции - -&НаКлиенте -Функция ВыполнитьТесты(Знач Загрузчик, Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено, Знач Подписчик = Неопределено) Экспорт - РезультатТестирования = СоздатьКонтейнерРезультатовТестирования(КонтейнерДереваТестов); - ФильтрДляДочернихУзлов = Неопределено; - Если Не УзелДереваТестовУдовлетворяетФильтру(КонтейнерДереваТестов, Фильтр) Тогда - ФильтрДляДочернихУзлов = Фильтр; - КонецЕсли; - - Если КонтейнерДереваТестов.СлучайныйПорядокВыполнения Тогда - СтрокиКонтейнера = ПеремешатьМассив(КонтейнерДереваТестов.Строки); - Иначе - СтрокиКонтейнера = КонтейнерДереваТестов.Строки; - КонецЕсли; - - Для каждого ДочернийУзел Из СтрокиКонтейнера Цикл - ДочернийРезультатТестирования = Неопределено; - Если ДочернийУзел.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда - ДочернийРезультатТестирования = ВыполнитьТесты(Загрузчик, ДочернийУзел, ФильтрДляДочернихУзлов, Подписчик); - ИначеЕсли ДочернийУзел.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда - Если УзелДереваТестовУдовлетворяетФильтру(ДочернийУзел, ФильтрДляДочернихУзлов) Тогда - КонтекстВыполнения = ПолучитьКонтекстВыполненияПоПути(Загрузчик, ДочернийУзел.Путь); - // Заполняем служебные поля, если они имеются - Если ПеременнаяСодержитСвойство(КонтекстВыполнения, "ИспользуемыйПрефиксПодсистемы") Тогда - КонтекстВыполнения.ИспользуемыйПрефиксПодсистемы = Объект.ИспользуемыйПрефиксПодсистемы; - КонецЕсли; - Объект.ТекущийКонтейнер = КонтейнерДереваТестов; - ДочернийРезультатТестирования = ВыполнитьТестовыйМетод(КонтекстВыполнения, ДочернийУзел); - КонтейнерДереваТестов.Контекст = Объект.ТекущийКонтейнер.Контекст; - - Если Подписчик <> Неопределено Тогда - ОповеститьОСобытии(Подписчик, Объект.ВозможныеСобытия.ВыполненТестовыйМетод, ДочернийРезультатТестирования); - КонецЕсли; - КонецЕсли; - КонецЕсли; - Если ДочернийРезультатТестирования <> Неопределено Тогда - РезультатТестирования.Строки.Добавить(ДочернийРезультатТестирования); - РезультатТестирования.Состояние = ВыбратьХудшееСостояниеВыполненияТестов(РезультатТестирования.Состояние, ДочернийРезультатТестирования.Состояние); - ЗаполнитьДанныеСтатистики(РезультатТестирования, ДочернийРезультатТестирования); - Если Не КонтейнерДереваТестов.СлучайныйПорядокВыполнения И ДочернийРезультатТестирования.Состояние <> Объект.СостоянияТестов.Пройден Тогда - Прервать; - КонецЕсли; - КонецЕсли; - КонецЦикла; - Если РезультатТестирования.Строки.Количество() = 0 Тогда - РезультатТестирования = Неопределено; - КонецЕсли; - - Возврат РезультатТестирования; -КонецФункции - -&НаКлиенте -Функция УзелДереваТестовУдовлетворяетФильтру(Знач УзелДереваТестов, Знач Фильтр) - Возврат (Фильтр = Неопределено) Или (Фильтр.Найти(УзелДереваТестов.Ключ) <> Неопределено); -КонецФункции - -&НаКлиенте -Функция ПолучитьКонтекстВыполненияПоПути(Знач Загрузчик, Знач Путь) - КонтекстВыполнения = Загрузчик.ПолучитьКонтекстПоПути(ЭтаФорма, Путь); - - Возврат КонтекстВыполнения; -КонецФункции - -&НаКлиенте -Функция ЭтоСерверныйКонтекстВыполнения(Знач КонтекстВыполнения) - Результат = ТипЗнч(КонтекстВыполнения) = Тип("ФиксированнаяСтруктура"); - - Возврат Результат; -КонецФункции - -&НаКлиенте -Процедура ЗаполнитьДанныеСтатистики(РезультатТестирования, Знач ДочернийРезультатТестирования) - Если ДочернийРезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда - РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + ДочернийРезультатТестирования.КоличествоТестов; - РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + ДочернийРезультатТестирования.КоличествоСломанныхТестов; - РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + ДочернийРезультатТестирования.КоличествоНеРеализованныхТестов; - РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + ДочернийРезультатТестирования.КоличествоОшибочныхТестов; - - ИначеЕсли ДочернийРезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда - РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + 1; - Если ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан Тогда - РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + 1; - ИначеЕсли ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован Тогда - РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + 1; - ИначеЕсли ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка Тогда - РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + 1; - КонецЕсли; - КонецЕсли; - РезультатТестирования.ВремяВыполнения = РезультатТестирования.ВремяВыполнения + ДочернийРезультатТестирования.ВремяВыполнения; -КонецПроцедуры - -&НаКлиенте -Функция ВыбратьХудшееСостояниеВыполненияТестов(Знач Состояние1, Знач Состояние2) - Возврат Макс(Состояние1, Состояние2); -КонецФункции - -&НаКлиенте -Функция ВыполнитьТестовыйМетод(Знач КонтекстВыполнения, Знач ЭлементДереваТестов) - Перем РезультатТестирования; - - Если ЭтоСерверныйКонтекстВыполнения(КонтекстВыполнения) Тогда - РезультатТестирования = ВыделитьТестовыйМетодНаСервереСОбработкойОшибокПередачиМеждуНаКлиентомИСервером(КонтекстВыполнения, ЭлементДереваТестов); - Иначе - РезультатТестирования = ВыполнитьТестовыйМетодНаКлиенте(КонтекстВыполнения, ЭлементДереваТестов); - КонецЕсли; - - Возврат РезультатТестирования; -КонецФункции - -&НаКлиенте -Функция ВыполнитьТестовыйМетодНаКлиенте(Знач КонтекстВыполнения, Знач ЭлементДереваТестов) Экспорт - - РезультатТестирования = СоздатьЭлементРезультатовТестирования(ЭлементДереваТестов); - НачалоВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах(); - - Если ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования) Тогда - - Попытка - ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПередЗапускомТеста); - ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ЭлементДереваТестов.ИмяМетода, ЭлементДереваТестов.Параметры); - - РезультатТестирования.Состояние = Объект.СостоянияТестов.Пройден; - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); - КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - Если ЕстьОшибка_МетодОбъектаНеОбнаружен(КраткийТекстОшибки, ЭлементДереваТестов.ИмяМетода) Тогда - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован; - Сообщение = НСтр("ru = 'Отсутствует реализация тестового метода (%1).'"); - РезультатТестирования.Сообщение = СтрЗаменить(Сообщение, "%1", ЭлементДереваТестов.ИмяМетода); - Иначе - РезультатТестирования.Сообщение = ТекстОшибки; - Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда - РезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан; - ИначеЕсли ЭтоПропущенныйТест(КраткийТекстОшибки) Тогда - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован; - Иначе - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка; - КонецЕсли; - КонецЕсли; - КонецПопытки; - Попытка - ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПослеЗапускаТеста); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); - - КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда - РезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан; - Иначе - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка; - КонецЕсли; - - КонецПопытки; - КонецЕсли; - - ОкончаниеВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах(); - РезультатТестирования.ВремяВыполнения = (ОкончаниеВыполнения - НачалоВыполнения) / 1000; - - Возврат РезультатТестирования; -КонецФункции - -&НаКлиенте -Функция ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования) - Попытка - КонтекстВыполнения.Инициализация(ЭтаФорма); - Возврат Истина; - Исключение - РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка; - КонецПопытки; - Возврат Ложь; -КонецФункции - -&НаКлиенте -Функция ВыделитьТестовыйМетодНаСервереСОбработкойОшибокПередачиМеждуНаКлиентомИСервером(Знач КонтекстВыполнения, Знач ЭлементДереваТестов) - - Перем ПолныйТекстОшибки, РезультатТестирования; - - Попытка - РезультатТестирования = ВыполнитьТестовыйМетодНаСервере(КонтекстВыполнения, ЭлементДереваТестов); - Исключение - ПолныйТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - РезультатТестирования = СоздатьЭлементРезультатовТестирования(ЭлементДереваТестов); - РезультатТестирования.Сообщение = ПолныйТекстОшибки; - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка; - КонецПопытки; - - Возврат РезультатТестирования; -КонецФункции - -&НаСервере -Функция ВыполнитьТестовыйМетодНаСервере(Знач ОписаниеКонтекста, Знач ЭлементДереваТестов) - ОбъектНаСервере = ЭтотОбъектНаСервере(); - - Если ОписаниеКонтекста.ЭтоВнутренняяОбработка Тогда - ЭтоОтчет = (Метаданные.Отчеты.Найти(ОписаниеКонтекста.Идентификатор) <> Неопределено); - Иначе - ФайлОбработки = Новый Файл(ЭлементДереваТестов.Путь); - ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = ".erf"); - КонецЕсли; - - КонтекстВыполнения = СоздатьОбъектПлагина(ОписаниеКонтекста.Идентификатор, ОписаниеКонтекста.ЭтоВнутренняяОбработка, ЭтоОтчет); - КонтекстВыполнения.Инициализация(ОбъектНаСервере); - - // Заполняем служебные поля, если они имеются - ЗаполнитьСвойствоПриНаличии(КонтекстВыполнения, "ПутьКФайлуПолный", ЭлементДереваТестов.Путь); - - РезультатТестирования = ОбъектНаСервере.ВыполнитьТестовыйМетод(КонтекстВыполнения, ЭлементДереваТестов); - - Возврат РезультатТестирования; -КонецФункции - -&НаКлиенте -Процедура ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(Знач КонтекстВыполнения, Знач ИмяПроцедуры) - Попытка - ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ИмяПроцедуры); - Исключение - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, ИмяПроцедуры) Тогда - ВызватьИсключение; - КонецЕсли; - КонецПопытки; -КонецПроцедуры - -&НаКлиенте -Процедура ВыполнитьПроцедуруКонтекста(Знач КонтекстВыполнения, Знач ПроцедураКонтекста, Знач Параметры = Неопределено) - СтрокаПараметров = СформироватьСтрокуПараметров(Параметры); - ИcполняемыйКод = "КонтекстВыполнения." + ПроцедураКонтекста + "(" + СтрокаПараметров + ");"; - Выполнить(ИcполняемыйКод); -КонецПроцедуры - -&НаКлиенте -Функция СформироватьСтрокуПараметров(Знач Параметры) - СтрокаПараметров = ""; - Если ТипЗнч(Параметры) = Тип("Массив") Тогда - Для Сч = 0 По Параметры.Количество() - 1 Цикл - СтрокаПараметров = СтрокаПараметров + ",Параметры[" + Формат(Сч, "ЧН=0; ЧГ=") + "]"; - КонецЦикла; - КонецЕсли; - - Возврат Сред(СтрокаПараметров, 2); -КонецФункции - -&НаКлиенте -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(ТекстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - ИЛИ Найти(ТекстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции - -Функция ЭтоОшибкаПроверки(ТекстОшибки) - - Возврат Найти(ТекстОшибки, "["+ Объект.СтатусыРезультатаТестирования.ОшибкаПроверки + "]") = 1; - -КонецФункции - -Функция ЭтоПропущенныйТест(ТекстОшибки) - - Возврат Найти(ТекстОшибки, "["+ Объект.СтатусыРезультатаТестирования.ТестПропущен + "]") > 0; - -КонецФункции - -// } Выполнение тестов - -// { Генерация результатов тестирования -&НаКлиенте -Функция СоздатьКонтейнерРезультатовТестирования(Знач КонтейнерДереваТестов) - ГруппаРезультатовТестирования = Новый Структура; - ГруппаРезультатовТестирования.Вставить("Ключ", КонтейнерДереваТестов.Ключ); - ГруппаРезультатовТестирования.Вставить("Тип", КонтейнерДереваТестов.Тип); - ГруппаРезультатовТестирования.Вставить("Имя", КонтейнерДереваТестов.Имя); - ГруппаРезультатовТестирования.Вставить("Состояние", Объект.СостоянияТестов.НеВыполнен); - ГруппаРезультатовТестирования.Вставить("КоличествоТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоСломанныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоОшибочныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоНеРеализованныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("ВремяВыполнения", 0); - ГруппаРезультатовТестирования.Вставить("Строки", Новый Массив); - - Возврат ГруппаРезультатовТестирования; -КонецФункции - -&НаКлиенте -Функция СоздатьЭлементРезультатовТестирования(Знач ЭлементДереваТестов) - РезультатТестирования = Новый Структура; - РезультатТестирования.Вставить("Ключ", ЭлементДереваТестов.Ключ); - РезультатТестирования.Вставить("Тип", ЭлементДереваТестов.Тип); - РезультатТестирования.Вставить("Путь", ЭлементДереваТестов.Путь); - РезультатТестирования.Вставить("ИмяМетода", ЭлементДереваТестов.ИмяМетода); - РезультатТестирования.Вставить("Представление", ЭлементДереваТестов.Представление); - РезультатТестирования.Вставить("Параметры", ЭлементДереваТестов.Параметры); - РезультатТестирования.Вставить("Состояние", Объект.СостоянияТестов.НеВыполнен); - РезультатТестирования.Вставить("ВремяВыполнения", 0); - РезультатТестирования.Вставить("Сообщение", ""); - - Возврат РезультатТестирования; -КонецФункции -// } Генерация результатов тестирования - -// { История загрузки тестов -&НаСервере -Процедура СохранитьВИсториюЗагрузкиТестовНаСервере(Знач ИдентификаторЗагрузчика, Знач Путь) - ЭтотОбъектНаСервере = ЭтотОбъектНаСервере(); - ЭтотОбъектНаСервере.СохранитьВИсториюЗагрузкиТестов(ИдентификаторЗагрузчика, Путь); - ЗначениеВРеквизитФормы(ЭтотОбъектНаСервере, "Объект"); -КонецПроцедуры - -&НаСервере -Процедура ОбновитьКомандыИсторииЗагрузкиТестов() - ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов; - ПодменюИсторияЗагрузкиТестов = Элементы.ПодменюИсторияЗагрузкиТестов; - Для Сч = 0 По ИсторияЗагрузкиТестов.Количество() - 1 Цикл - ИмяКоманды = "История_" + Сч; - НайденнаяКоманда = Команды.Найти(ИмяКоманды); - Если НайденнаяКоманда = Неопределено Тогда - НоваяКоманда = Команды.Добавить(ИмяКоманды); - НоваяКоманда.Действие = "Подключаемый_ЗагрузитьТестыИзИстории"; - ПунктМеню = Элементы.Добавить(НоваяКоманда.Имя, Тип("КнопкаФормы"), ПодменюИсторияЗагрузкиТестов); - ПунктМеню.ИмяКоманды = НоваяКоманда.Имя; - Иначе - ПунктМеню = Элементы.Найти(ИмяКоманды); - КонецЕсли; - ЭлементИстории = ИсторияЗагрузкиТестов[Сч]; - ПунктМеню.Заголовок = ЭлементИстории.ИдентификаторЗагрузчика + ": " + ЭлементИстории.Путь; - КонецЦикла; -КонецПроцедуры - -&НаКлиенте -Процедура Подключаемый_ЗагрузитьТестыИзИстории(Команда) - ИндексИстории = Число(Сред(Команда.Имя, Найти(Команда.Имя, "_") + 1)); - ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов; - ЭлементИстории = ИсторияЗагрузкиТестов[ИндексИстории]; - ЗагрузитьТесты(ЭлементИстории.ИдентификаторЗагрузчика, ЭлементИстории.Путь); -КонецПроцедуры -// } История загрузки тестов - -// { Пакетный запуск -&НаКлиенте -Процедура ВыполнитьПакетныйЗапуск(Знач ПараметрЗапуска) - Перем РезультатыТестирования; - - ПарсерКоманднойСтроки = ЭтаФорма.Плагин("ПарсерКоманднойСтроки"); - ПараметрыЗапуска = ПарсерКоманднойСтроки.Разобрать(ПараметрЗапуска); - - Параметры_xddRun = Неопределено; - Если ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun, Параметры_xddRun) Тогда - РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Параметры_xddRun); - КонецЕсли; - - Параметры_xddReport = Неопределено; - Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddReport, Параметры_xddReport) Тогда - СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Параметры_xddReport, РезультатыТестирования); - КонецЕсли; - - Если ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddShutdown) Тогда - ЗавершитьРаботуСистемы(Ложь); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Функция ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Знач Параметры_xddRun) - Попытка - ИдентификаторЗагрузчика = Параметры_xddRun[0]; - Загрузчик = ЭтаФорма.Плагин(ИдентификаторЗагрузчика); - - ПутьКТестам = Параметры_xddRun[1]; - ДеревоТестовОтЗагрузчика = Загрузчик.Загрузить(ЭтаФорма, ПутьКТестам); - - РезультатыТестирования = ЭтаФорма.ВыполнитьТесты(Загрузчик, ДеревоТестовОтЗагрузчика); - Исключение - ОписаниеОшибки = "Ошибка загрузки и выполнения тестов в пакетном режиме - |" + ОписаниеОшибки(); - ЗафиксироватьОшибкуВЖурналеРегистрации(ОписаниеОшибки); - КонецПопытки; - - Возврат РезультатыТестирования; -КонецФункции - -&НаКлиенте -Процедура СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Знач Параметры_xddReport, Знач РезультатыТестирования) - Попытка - ИдентификаторГенератораОтчета = Параметры_xddReport[0]; - ГенераторОтчета = ЭтаФорма.Плагин(ИдентификаторГенератораОтчета); - - Отчет = ГенераторОтчета.СоздатьОтчет(ЭтаФорма, РезультатыТестирования); - - ПутьКОтчету = Параметры_xddReport[1]; - ГенераторОтчета.Экспортировать(Отчет, ПутьКОтчету); - Исключение - ОписаниеОшибки = "Ошибка формирования и экспорта отчета о тестировании в пакетном режиме - |" + ОписаниеОшибки(); - ЗафиксироватьОшибкуВЖурналеРегистрации(ОписаниеОшибки); - КонецПопытки; -КонецПроцедуры - -&НаСервере -Процедура ЗафиксироватьОшибкуВЖурналеРегистрации(Знач ОписаниеОшибки) - ЗаписьЖурналаРегистрации(ЭтотОбъектНаСервере().Метаданные().Имя, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки); -КонецПроцедуры -// } Пакетный запуск - -// { Контекст -&НаКлиенте -Процедура СохранитьКонтекст(Знач Контекст) Экспорт - Если Объект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда - ВызватьИсключение Объект.ВозможныеИсключения.СохранятьКонтекстТолькоВСтрогомРежиме; - КонецЕсли; - Объект.ТекущийКонтейнер.Контекст = Контекст; -КонецПроцедуры - -&НаКлиенте -Функция ПолучитьКонтекст() Экспорт - Если Объект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда - ВызватьИсключение Объект.ВозможныеИсключения.ПолучатьКонтекстТолькоВСтрогомРежиме; - КонецЕсли; - - Возврат Объект.ТекущийКонтейнер.Контекст; -КонецФункции -// } Контекст - -Процедура ВызватьОшибкуПроверки(СообщениеОшибки = "") Экспорт - - Префикс = "["+ Объект.СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; - -КонецПроцедуры - -Процедура ПропуститьТест(Знач Сообщение = "") Экспорт - - Префикс = "[" + Объект.СтатусыРезультатаТестирования.ТестПропущен + "]"; - Если ПустаяСтрока(Сообщение) Тогда - Сообщение = НСтр("ru = 'Тест пропущен'"); - КонецЕсли; - ВызватьИсключение Префикс + " " + Сообщение; - -КонецПроцедуры - -// Выводит сообщение. В тестах ВСЕГДА должна использоваться ВМЕСТО метода Сообщить(). -// -Функция ВывестиСообщение(ТекстСообщения, Статус=Неопределено) Экспорт - - Сообщить(ТекстСообщения, Статус); - -КонецФункции - -// { Внешние интерфейсные инструменты -&НаКлиенте -Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = "", Знач ИмяФормы = "Форма") - Перем АдресХранилища; - - // Для встроенного в состав конфигурации браузера тестов - // инструменты находятся также в составке конфигурации - Если Объект.ЭтоВстроеннаяОбработка Тогда - // Преобразование имени инструмента к имени обработки - Если ИмяИнструмента = "UILogToScript" Тогда - ИмяИнструмента = "ПреобразованиеЖурналаДействийПользователя"; - КонецЕсли; - ИмяИнструмента = ДополнитьИдентификаторПрефиксомПодсистемы(ИмяИнструмента, Объект.ИспользуемыйПрефиксПодсистемы); - ФормаИнструмента = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормы); - ФормаИнструмента.Открыть(); - ФормаИнструмента = Неопределено; - - Иначе - Если Не ПустаяСтрока(ПутьИнструмента) Тогда - ПутьКВнешнимИнструментам = ПутьИнструмента + "\"; - Иначе - ПутьКВнешнимИнструментам = ПолучитьПутьКВнешнимИнструментам(); - КонецЕсли; - ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + ".epf"; - ФайлИнструмента = Новый Файл(ПутьИнструмента); - Если Не ФайлИнструмента.Существует() Тогда - Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">"); - Возврат; - КонецЕсли; - - Оповещение = Новый ОписаниеОповещения("ОткрытьИнструментЗавершение", ЭтаФорма, Новый Структура("ИмяИнструмента, ИмяФормыИнструмента", ИмяИнструмента, ИмяФормы)); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); - - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Функция ПолучитьПутьКПлагинам() - // Для встроенного в состав конфигурации браузера тестов - // используемое имя файла не используется - Если НЕ Объект.ЭтоВстроеннаяОбработка Тогда - ФайлЯдра = Новый Файл(ЭтаФорма["ИспользуемоеИмяФайла"]); - Результат = ФайлЯдра.Путь + "Plugins\"; - КонецЕсли; - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция ПолучитьПутьКВнешнимИнструментам() - ФайлЯдра = Новый Файл(ЭтаФорма.ИспользуемоеИмяФайла); - Результат = ФайлЯдра.Путь + "Utils\"; - - Возврат Результат; -КонецФункции -// } Внешние интерфейстные инструменты - -// { Helpers -&НаКлиенте -Процедура ПодключитьВнешнююОбработку(ФайлОбработки) Экспорт - Перем АдресХранилища; - - Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда - ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = ".erf"); - Оп = Новый ОписаниеОповещения("ПодключитьВнешнююОбработкуЗавершение", ЭтаФорма, Новый Структура("ФайлОбработки, ЭтоОтчет", ФайлОбработки, ЭтоОтчет)); - НачатьПомещениеФайла(Оп, АдресХранилища, ФайлОбработки.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); - КонецЕсли; -КонецПроцедуры - -&НаСервереБезКонтекста -Процедура ПодключитьФайлОбработкиНаСервере(Знач АдресХранилища, Знач ИдентификаторОбработки, ЭтоОтчет = Ложь) - Если ЭтоОтчет = Истина Тогда - ВнешниеОтчеты.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь); - Иначе - ВнешниеОбработки.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Функция ПолучитьОписаниеКонтекстаВыполнения(Знач Идентификатор, Знач ЭтоВнутренняяОбработка = Ложь) Экспорт - ОписаниеКонтекстаВыполнения = Новый Структура("Идентификатор, ЭтоВнутренняяОбработка", Идентификатор, ЭтоВнутренняяОбработка); - - Возврат Новый ФиксированнаяСтруктура(ОписаниеКонтекстаВыполнения); -КонецФункции - -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции - -&НаКлиенте -Процедура ИнициализироватьИндикаторВыполнения(Знач КоличествоТестовыхМетодов = 0) - Элементы.ИндикаторВыполнения.МаксимальноеЗначение = КоличествоТестовыхМетодов; - ИндикаторВыполнения = 0; - Элементы.ИндикаторВыполнения.ЦветРамки = Новый Цвет(0, 174, 0); // Зеленый -КонецПроцедуры - -&НаКлиенте -Процедура ОповеститьОСобытии(Знач Подписчик, Знач Событие, Знач ПараметрыСобытия) - Выполнить("Подписчик.ОбработатьСобытиеВыполненияТестов(Событие, ПараметрыСобытия);"); -КонецПроцедуры - -&НаКлиенте -Функция ПеремешатьМассив(Знач ИсходныйМассив) Экспорт - Результат = Новый Массив; - Для Каждого Элемент Из ИсходныйМассив Цикл - Результат.Добавить(Элемент); - КонецЦикла; - - // алгоритм перемешивания взят из книги Кнута "Искусство программирования" т.2 - ГСЧ = Новый ГенераторСлучайныхЧисел(); - ПоследнийИндекс = Результат.ВГраница(); - Для Индекс = 1 По ПоследнийИндекс Цикл - ТекущийИндекс = ПоследнийИндекс - Индекс + 1; - НовыйИндекс = ГСЧ.СлучайноеЧисло(0, ТекущийИндекс); - Если НовыйИндекс <> ТекущийИндекс Тогда - Значение = Результат[НовыйИндекс]; - Результат[НовыйИндекс] = Результат[ТекущийИндекс]; - Результат[ТекущийИндекс] = Значение; - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция НайтиРезультатТестированияПоИдентификатору(Знач КонтейнерРезультатовТестирования, Знач ИдентификаторТеста, Знач ВключатьПодчиненные = Ложь) Экспорт - Результат = НайтиРезультатТестированияПоИдентификатору_НаСервере(КонтейнерРезультатовТестирования, ИдентификаторТеста, ВключатьПодчиненные); - - Возврат Результат; -КонецФункции - -&НаСервере -Функция НайтиРезультатТестированияПоИдентификатору_НаСервере(Знач КонтейнерРезультатовТестирования, Знач ИдентификаторТеста, Знач ВключатьПодчиненные) Экспорт - Результат = ЭтотОбъектНаСервере().НайтиРезультатТестированияПоИдентификатору(КонтейнерРезультатовТестирования, ИдентификаторТеста, ВключатьПодчиненные); - - Возврат Результат; -КонецФункции - -&НаКлиенте -Процедура СброситьПодключенныеВнешниеОбработки() - ПодключенныеВнешниеОбработки = Новый Соответствие; -КонецПроцедуры - -&НаКлиенте -Функция ПараметрыМетода(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыМетода = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыМетода.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыМетода; -КонецФункции - -&НаСервере -Процедура ЗагрузитьВстроенныеПлагины() - - ОбъектНаСервере = ЭтотОбъектНаСервере(); - Объект.Плагины = ОбъектНаСервере.ПолучитьПлагины(); - -КонецПроцедуры - -// } Helpers - -// { Подсистема конфигурации xUnitFor1C - -// Универсальная функция для проверки наличия -// свойств у значения любого типа данных -// Переменные: -// 1. Переменная - переменная любого типа, -// для которой необходимо проверить наличие свойства -// 2. ИмяСвойства - переменная типа "Строка", -// содержащая искомое свойства -// -&НаКлиентеНаСервереБезКонтекста -Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) - // Инициализируем структуру для теста - // с ключом (значение переменной "ИмяСвойства") - // и значением произвольного GUID'а - GUIDПроверка = Новый УникальныйИдентификатор; - СтруктураПроверка = Новый Структура; - СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка); - // Заполняем созданную структуру из переданного - // значения переменной - ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная); - // Если значение для свойства структуры осталось - // NULL, то искомое свойство не найдено, - // и наоборот. - Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда - Возврат Ложь; - Иначе - Возврат Истина; - КонецЕсли; -КонецФункции -&НаКлиентеНаСервереБезКонтекста -Функция ЗаполнитьСвойствоПриНаличии(ОбъектЗаполнения, ИмяСвойство, ЗначениеСвойства) - - Если ПеременнаяСодержитСвойство(ОбъектЗаполнения, ИмяСвойство) Тогда - ОбъектЗаполнения[ИмяСвойство] = ЗначениеСвойства; - КонецЕсли; - -КонецФункции - -&НаКлиенте -Функция ДополнитьИдентификаторПрефиксомПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы) Экспорт - - Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда - Возврат Идентификатор; - КонецЕсли; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда - Возврат Идентификатор; - Иначе - Возврат ИспользуемыйПрефиксПодсистемы + Идентификатор; - КонецЕсли; - -КонецФункции -&НаКлиенте -Функция ПолучитьИдентификаторБезПрефиксаПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы) Экспорт - - Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда - Возврат Идентификатор; - КонецЕсли; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда - Возврат Прав(Идентификатор, СтрДлина(Идентификатор) - ДлинаПрефикса); - Иначе - Возврат Идентификатор; - КонецЕсли; - -КонецФункции - -&НаСервере -Функция СоздатьОбъектПлагина(Идентификатор, ВстроенаВКонфигурацию = Ложь, ЭтоОтчет = Ложь) - - ОбъектНаСервере = ЭтотОбъектНаСервере(); - - Возврат ОбъектНаСервере.СоздатьОбъектПлагина(Идентификатор, ВстроенаВКонфигурацию, ЭтоОтчет); - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C - -// { Вспомогательные методы - -&НаКлиенте -Процедура ПодключитьВнешнююОбработкуЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт - - - ФайлОбработки = ДополнительныеПараметры.ФайлОбработки; - ЭтоОтчет = ДополнительныеПараметры.ЭтоОтчет; - - ПодключитьФайлОбработкиНаСервере(Адрес, ФайлОбработки.ИмяБезРасширения, ЭтоОтчет); - - ПодключенныеВнешниеОбработки.Вставить(ФайлОбработки.ИмяБезРасширения, Истина); - -КонецПроцедуры - -&НаКлиенте -Процедура ОткрытьИнструментЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт - - ИмяИнструмента = ДополнительныеПараметры.ИмяИнструмента; - ИмяФормыИнструмента = ДополнительныеПараметры.ИмяФормыИнструмента; - - ПодключитьФайлОбработкиНаСервере(Адрес, ИмяИнструмента); - - ФормаИнструмента = ПолучитьФорму("ВнешняяОбработка." + ИмяИнструмента + "." + ИмяФормыИнструмента); - Если ФормаИнструмента = Неопределено Тогда - Сообщить("Инструмент <" + ИмяИнструмента + ">: не удалось получить основную форму!"); - Возврат; - КонецЕсли; - - ФормаИнструмента.Открыть(); - ФормаИнструмента = Неопределено; - -КонецПроцедуры - -&НаКлиенте -Процедура КомандаПерезагрузитьФормуЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт - - ПодключитьФайлОбработкиНаСервере(Адрес, Неопределено); - - НоваяФорма = ПолучитьФорму(ЭтаФорма.ИмяФормы,,,Истина); - НоваяФорма.ИспользуемоеИмяФайла = ЭтаФорма.ИспользуемоеИмяФайла; - НоваяФорма.Открыть(); - -КонецПроцедуры - -// } Вспомогательные методы \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index c10139354..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" "b/lib/CF/83xdd/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" deleted file mode 100644 index c1a714472..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" and /dev/null differ diff --git a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat.xml b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat.xml deleted file mode 100644 index 310e8a541..000000000 --- a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - 708e0251-9a7c-4ba1-bf67-b81769161a18 - 2e229ff5-a332-4c33-9674-0474dd90fb2d - - - f94f5915-9170-4dd1-a719-56545bf9b594 - 9f6c7f4c-44ee-47d9-84a2-bbc161f33db5 - - - - xddTestsConvertIntoRebornFormat - - - ru - Конвертация тестов xUnitFor1C в версию4 из формата версии 3 - - - - false - DataProcessor.xddTestsConvertIntoRebornFormat.Form.Форма - DataProcessor.xddTestsConvertIntoRebornFormat.Form.УправляемаяФорма - false - - - - -
Форма
-
УправляемаяФорма
- - - - - - - -
-
-
\ No newline at end of file diff --git a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Ext/ObjectModule.bsl b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Ext/ObjectModule.bsl deleted file mode 100644 index 1a93dbf9c..000000000 --- a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Ext/ObjectModule.bsl +++ /dev/null @@ -1,790 +0,0 @@ -//Перем КонтекстЯдра; -Перем Ожидаем; -Перем ВременныеФайлы; -Перем КомандныйФайл; - -Перем Лог; -Перем ЛогВключен; - -Перем RegExp_ПолучитьСписокТестов; -Перем RegExp_КонецФункции_ПолучитьСписокТестов; - -Перем ПолноеИмяБраузераТестов; -Перем ПолныйПутьКФайлуБраузераТестов; - -//{ Интерфейс конвертера - -Функция Инициализация(СлужебныеПараметрыЯдра = Неопределено) Экспорт - - Если ТипЗнч(СлужебныеПараметрыЯдра) = Тип("Структура") Тогда - СлужебныеПараметрыЯдра.Свойство("ПолноеИмяБраузераТестов", ПолноеИмяБраузераТестов); - СлужебныеПараметрыЯдра.Свойство("ПолныйПутьКФайлуБраузераТестов", ПолныйПутьКФайлуБраузераТестов); - КонецЕсли; - - ВременныеФайлы = СоздатьУтилиту("ВременныеФайлы"); - КомандныйФайл = СоздатьУтилиту("КомандныйФайл"); - Ожидаем = СоздатьУтилиту("УтвержденияBDD"); - - РегулярныеВыражения_Инициализация (RegExp_ПолучитьСписокТестов, "^\s*((?:procedure)|(?:function)|(?:процедура)|(?:функция))\s+(получитьсписоктестов)\s*\(([\wА-яёЁ\d]+)\s*\)\s+экспорт"); - РегулярныеВыражения_Инициализация (RegExp_КонецФункции_ПолучитьСписокТестов, "^\s*конецфункции"); - - ВключитьЛог(Ложь); - Лог = ""; - -КонецФункции - -Функция ПреобразоватьКаталог(КаталогТестов, ИскатьВПодкаталогах = Ложь) Экспорт - Рез = СоздатьСтруктуруРезультатаПреобразования(); - - Файлы = НайтиФайлы(КаталогТестов, "*.epf", ИскатьВПодкаталогах); - Возврат ПреобразоватьФайлы(Файлы, Истина); -КонецФункции - -Функция ПреобразоватьФайлы(НаборФайлов, НужноДелатьКопию = Истина) Экспорт - Рез = СоздатьСтруктуруРезультатаПреобразования(); - - Если НаборФайлов.Количество() = 0 Тогда - Возврат Рез; - КонецЕсли; - Для Каждого Файл Из НаборФайлов Цикл - Попытка - РезультатыПоФайлу = ПреобразоватьФайл(Файл, Истина); - ДобавитьЧислаВНаборИзДругогоНабора(Рез, РезультатыПоФайлу); - Исключение - Сообщить(Файл.ПолноеИмя + " : " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - КонецЦикла; - Возврат Рез; -КонецФункции - -Функция ПреобразоватьФайл(ИсходныйФайл, НужноДелатьКопию = Истина) Экспорт - Рез = СоздатьСтруктуруРезультатаПреобразования(); - Рез.НайденоВнешнихОбработок = 1; - - ИмяКаталогаСборки = ПодготовитьВременныйКаталогДляСборкиРазборки(); - - ФайлУтилиты = ПолучитьУтилитуСборкиРазборки(ИмяКаталогаСборки); - МассивОписанийФайловМодулей = РазобратьФайлТестаНаИсходники(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты); - НовыйМассивОписанийФайловМодулей = НайтиФайлыМодуляТестаВИсходниках(МассивОписанийФайловМодулей); - Если НовыйМассивОписанийФайловМодулей.Количество() = 0 Тогда - Возврат Рез; - КонецЕсли; - Рез.НайденоФайловТестов = 1; - - Для Каждого ОписаниеФайлаМодуля Из НовыйМассивОписанийФайловМодулей Цикл - ФайлМодуляТеста = ОписаниеФайлаМодуля.Файл; - ИсходныйТекст = ПолучитьИсходныйТекстМодуляТеста(ФайлМодуляТеста); - ЭтоОбычнаяФорма = ОписаниеФайлаМодуля.БылРазборДополнительногоКонтейнера; - КонечныйТекст = ПреобразоватьТекстМодуляТестаВФормат_v4_reborn(ИсходныйТекст, ЭтоОбычнаяФорма); - ЗаписатьНовыйТекстМодуляТестаВИсходникМодуляФайлТеста(ФайлМодуляТеста, КонечныйТекст); - КонецЦикла; - Если НужноДелатьКопию Тогда - ФайлКопии = СделатьКопиюФайла(ИсходныйФайл); - КонецЕсли; - ПодменитьФайлВерсийВИсходниках(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты); - - СобратьФайлТеста(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты, МассивОписанийФайловМодулей); - Рез.КонвертированоТестов = 1; - - УдалитьВременныеФайлы(); - Возврат Рез; -КонецФункции - -Процедура УдалитьВременныеФайлы() Экспорт - ВременныеФайлы.Удалить(); -КонецПроцедуры - -Процедура ВключитьЛог(НовоеЗначение = Истина) Экспорт - ЛогВключен = НовоеЗначение = Истина; -КонецПроцедуры - -Функция ПолучитьЛог() Экспорт - Возврат Лог; -КонецФункции - -//} - -//{ приватные методы - -Функция СоздатьУтилиту(ИмяУтилиты) - - КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере(); - - Возврат КонтекстЯдра.СоздатьОбъектПлагина(ИмяУтилиты); - -КонецФункции - -Функция ПодготовитьВременныйКаталогДляСборкиРазборки() - ИмяКаталогаСборки = ВременныеФайлы.СоздатьКаталог_(); - Возврат ИмяКаталогаСборки; -КонецФункции - -Функция ПолучитьУтилитуСборкиРазборки(ИмяКаталогаСборки) - МакетУтилиты = ПолучитьМакет("v8unpack"); - - Файл = Новый Файл(ИмяКаталогаСборки+"\v8unpack.exe"); - - МакетУтилиты.Записать(Файл.ПолноеИмя); - Возврат Файл; -КонецФункции - -Функция РазобратьФайлТестаНаИсходники(ИмяКаталогаСборки, ФайлТеста, ФайлУтилиты) - МассивОписанийФайловМодулей = Новый Массив; - - ИмяКаталогаИсходниковФайла = ФайлТеста.ИмяБезРасширения; - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + ИмяКаталогаСборки); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -unpack """ + ФайлТеста.ПолноеИмя + """ " + ИмяКаталогаИсходниковФайла + " > "+ИмяКаталогаИсходниковФайла+".unpack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата первый -unpack").Равно(0); - - Файлы = НайтиФайлы(ИмяКаталогаСборки+"/"+ИмяКаталогаИсходниковФайла, "*.0.data"); - Ожидаем.Что(Файлы.Количество(), "Должны быть файлы, а их нет").Больше(0); - Для Каждого БинарныйФайл Из Файлы Цикл - ИмяФайлаИсходников = БинарныйФайл.Имя + ".txt"; - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + БинарныйФайл.Путь); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -undeflate " + БинарныйФайл.Имя + " " + ИмяФайлаИсходников + " > "+БинарныйФайл.ИмяБезРасширения+".unpack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата -undeflate "+БинарныйФайл.Имя).Равно(0); - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + БинарныйФайл.Путь); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -unpack " + ИмяФайлаИсходников + " " + БинарныйФайл.ИмяБезРасширения + " > "+БинарныйФайл.ИмяБезРасширения+".unpack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - - ОписаниеИсходника = Новый Структура("ИсходныйФайл", БинарныйФайл); - ОписаниеИсходника.Вставить("ФайлДополнительногоКонтейнера", Новый Файл(БинарныйФайл.Путь +"/"+ИмяФайлаИсходников)); - Если КодВозврата = 4294967245 Тогда //UnpackToFolder. This is not V8 file! - ОписаниеИсходника.Вставить("БылРазборДополнительногоКонтейнера", Ложь); - ОписаниеИсходника.Вставить("Файл", Новый Файл(БинарныйФайл.Путь +"/"+ИмяФайлаИсходников)); - МассивОписанийФайловМодулей.Добавить(ОписаниеИсходника); - Продолжить; - ИначеЕсли КодВозврата = 0 Тогда - ОписаниеИсходника.Вставить("БылРазборДополнительногоКонтейнера", Истина); - НужныйФайл = Новый Файл(БинарныйФайл.Путь +"/"+БинарныйФайл.ИмяБезРасширения+"/text.data"); - Если НужныйФайл.Существует() Тогда - ОписаниеИсходника.Вставить("Файл", НужныйФайл); - МассивОписанийФайловМодулей.Добавить(ОписаниеИсходника); - КонецЕсли; - Продолжить; - КонецЕсли; - Ожидаем.Что(КодВозврата, "КодВозврата второй -unpack "+БинарныйФайл.Имя).Равно(0); - КонецЦикла; - Возврат МассивОписанийФайловМодулей; - - //разборка - //@echo off - //v8unpack.exe -unpack ШаблонТестаУФ.epf .\ШаблонТестаУФ - //v8unpack.exe -undeflate .\ШаблонТестаУФ\727eda5f-558c-428b-86d2-3421c52f4c50.0.data .\ШаблонТестаУФ\Module.txt - //v8unpack.exe -unpack .\ШаблонТестаУФ\Module.txt .\ШаблонТестаУФ\Module - - //v8unpack.exe -undeflate .\ШаблонТестаУФ\ba335523-e6ff-4049-91a9-5f97f7ab0a0b.0.data .\ШаблонТестаУФ\UF.txt - //rem v8unpack.exe -unpack .\ШаблонТестаУФ\UF.txt .\ШаблонТеста\UF - - //сборка - //rem @echo off - //v8unpack.exe -pack .\ШаблонТеста\Module .\ШаблонТеста\NewModule.txt - //v8unpack.exe -deflate .\ШаблонТеста\NewModule.txt .\ШаблонТеста\727eda5f-558c-428b-86d2-3421c52f4c50.0.data - //v8unpack.exe -pack .\ШаблонТеста ШаблонТеста2.epf -КонецФункции - -Функция ПолучитьИмяКонтейнераИзФайла(БинарныйФайл) - Возврат БинарныйФайл.Имя + ".txt"; -КонецФункции - -Функция НайтиФайлыМодуляТестаВИсходниках(МассивОписанийФайловМодулей) - НовыйМассивОписанийФайловМодулей = Новый Массив; - Для Каждого ОписаниеИсходника Из МассивОписанийФайловМодулей Цикл - Файл = ОписаниеИсходника.Файл; - Текст = Новый ЧтениеТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8); - Стр = Текст.ПрочитатьСтроку(); - Пока Стр <> Неопределено Цикл - Если РегулярныеВыражения_Проверка(RegExp_ПолучитьСписокТестов, Стр) Тогда - НовыйМассивОписанийФайловМодулей.Добавить(ОписаниеИсходника); - Прервать; - КонецЕсли; - Стр = Текст.ПрочитатьСтроку(); - КонецЦикла; - КонецЦикла; - Возврат НовыйМассивОписанийФайловМодулей;; -КонецФункции - -Функция ПолучитьИсходныйТекстМодуляТеста(ФайлМодуляТеста) - Возврат ПолучитьТекстФайла(ФайлМодуляТеста); -КонецФункции - -Функция ПреобразоватьТекстМодуляТестаВФормат_v4_reborn(ИсходныйТекст, ЭтоОбычнаяФорма) - ЕстьДвеДвойныеКавычки = Не ЭтоОбычнаяФорма; - Возврат ПреобразоватьТекст(ИсходныйТекст, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки); -КонецФункции - -Функция ЗаписатьНовыйТекстМодуляТестаВИсходникМодуляФайлТеста(ФайлМодуляТеста, КонечныйТекст) - ЗаписатьТекстВФайл(ФайлМодуляТеста, КонечныйТекст); -КонецФункции - -Функция СделатьКопиюФайла(ИсходныйФайл) - ФайлКопии = Новый Файл(ИсходныйФайл.Путь+"/"+ИсходныйФайл.ИмяБезРасширения +".orig.epf"); - КопироватьФайл(ИсходныйФайл.ПолноеИмя, ФайлКопии.ПолноеИмя); - Ожидаем.Что(ФайлКопии.Существует(), "не удалось сделать копию-файла для файла "+ИсходныйФайл.ПолноеИмя +", ожидали файл копии "+ФайлКопии.ПолноеИмя).ЭтоИстина(); - Возврат ФайлКопии; -КонецФункции - -Процедура ПодменитьФайлВерсийВИсходниках(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты) - НовыйФайлВерсий = Новый Файл(ВременныеФайлы.НовоеИмяФайла("txt")); - ЗаписатьТекстВФайл(НовыйФайлВерсий, "{1,0}"); - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + ИмяКаталогаСборки+"/"+ИсходныйФайл.ИмяБезРасширения); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -deflate " + НовыйФайлВерсий.ПолноеИмя + " versions.data >> versions.data.pack.log"); - - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата versions -pack").Равно(0); -КонецПроцедуры - -Функция СобратьФайлТеста(ИмяКаталогаСборки, ФайлТеста, ФайлУтилиты, МассивОписанийФайловМодулей) - УдалитьФайлы(ФайлТеста.ПолноеИмя); - Ожидаем.Что(ФайлТеста.Существует(), "исходный файл теста не удалось удалить "+ФайлТеста.ПолноеИмя).ЭтоЛожь(); - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + ИмяКаталогаСборки+"/"+ФайлТеста.ИмяБезРасширения); - Для Каждого ОписаниеИсходника Из МассивОписанийФайловМодулей Цикл - РазобранныйФайл = ОписаниеИсходника.Файл; - ИсходныйФайл = ОписаниеИсходника.ИсходныйФайл; - ФайлДополнительногоКонтейнера = ОписаниеИсходника.ФайлДополнительногоКонтейнера; - Если ОписаниеИсходника.БылРазборДополнительногоКонтейнера Тогда - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -pack " + РазобранныйФайл.Путь + " " + ФайлДополнительногоКонтейнера.Имя + " > "+РазобранныйФайл.Имя +".pack.log"); - КонецЕсли; - - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -deflate " + ФайлДополнительногоКонтейнера.Имя + " " + ИсходныйФайл.Имя + " >> "+РазобранныйФайл.Имя +".pack.log"); - КонецЦикла; - ИмяКаталогаИсходниковФайла = ФайлТеста.ИмяБезРасширения; - - КомандныйФайл.Добавить("cd .."); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -pack " + ИмяКаталогаИсходниковФайла + " """ + ФайлТеста.ПолноеИмя + """ > "+ИмяКаталогаИсходниковФайла+".pack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата первый -pack").Равно(0); -КонецФункции - -Функция ПреобразоватьТекст(Знач Исходный, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки) Экспорт - - ОписаниеМетодаПолучитьСписокТестов = ПолучитьОписаниеМетода_ПолучитьСписокТестов(Исходный); - Если Не ЗначениеЗаполнено(ОписаниеМетодаПолучитьСписокТестов) Тогда - Возврат ""; - КонецЕсли; - - СтрокаРез = ИсправитьОписаниеТестов(Исходный, ОписаниеМетодаПолучитьСписокТестов, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки); - СтрокаРез = ПодменитьБазовыеУтверждения(СтрокаРез, ОписаниеМетодаПолучитьСписокТестов); - Возврат СтрокаРез; -КонецФункции - -Функция ПолучитьОписаниеМетода_ПолучитьСписокТестов(Знач ИсходныйТекст) Экспорт - ОписаниеМетода = Новый Структура("Начало, Конец, ИмяПараметра_КонтекстЯдра, ТелоМетода, КоллекцияТестов"); - - Группировки = РегулярныеВыражения_Выполнить(RegExp_ПолучитьСписокТестов, ИсходныйТекст); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ДобавитьЛог("Не удалось найти экспортную процедуру ПолучитьСписокТестов с одним параметром."); - Возврат Неопределено; - КонецЕсли; - - Группировка_Процедура = Группировки[0]; - Ожидаем.Что(Группировка_Процедура.ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ПолучитьСписокТестов равно образцу, а это не так").Равно(3); - Если Сред(ИсходныйТекст, Группировка_Процедура.Начало, 1) = Символы.ПС Тогда - Начало = Группировка_Процедура.Начало + 1; - КонецЕсли; - Если Сред(ИсходныйТекст, Начало, 1) = Символы.ПС Тогда - Начало = Начало + 1; - КонецЕсли; - ОписаниеМетода.Вставить("Начало", Начало); - ОписаниеМетода.Вставить("ИмяПараметра_КонтекстЯдра", Группировка_Процедура.ПодВыражения[2]); - ДобавитьЛог("ОписаниеМетода.ИмяПараметра_КонтекстЯдра "+ОписаниеМетода.ИмяПараметра_КонтекстЯдра); - - НачалоКодаПроцедуры = Группировка_Процедура.Начало + Группировка_Процедура.Длина + 2; - - Группировки_КонецПроцедуры = РегулярныеВыражения_Выполнить(RegExp_КонецФункции_ПолучитьСписокТестов, Сред(ИсходныйТекст, НачалоКодаПроцедуры)); - Если Не ЗначениеЗаполнено(Группировки_КонецПроцедуры) Тогда - ВызватьИсключение "Не удалось найти конец процедуры для процедуры ПолучитьСписокТестов с одним параметром."; - КонецЕсли; - - ГруппировкаДляКонецПроцедуры = Группировки_КонецПроцедуры[0]; - ТекстМетодаПолучитьСписокТестов = Сред(ИсходныйТекст, НачалоКодаПроцедуры, ГруппировкаДляКонецПроцедуры.Начало - 1); - - ОписаниеМетода.Вставить("Конец", НачалоКодаПроцедуры + ГруппировкаДляКонецПроцедуры.Начало + ГруппировкаДляКонецПроцедуры.Длина + 2); - ОписаниеМетода.Вставить("ТелоМетода", ТекстМетодаПолучитьСписокТестов); - - ДобавитьЛог("ТелоМетода ПолучитьСписокТестов <"+ОписаниеМетода.ТелоМетода+">"); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра = ПолучитьОписаниеГлобальнойПеременнойКонтекстаЯдра(ИсходныйТекст, ОписаниеМетода); - ПодтвердитьИмяГлобальнойПеременнойКонтекстаЯдра(ИсходныйТекст, ОписаниеМетода, ОписаниеГлобальнойПеременнойКонтекстаЯдра); - ОписаниеМетода.Вставить("ОписаниеГлобальнойПеременнойКонтекстаЯдра", ОписаниеГлобальнойПеременнойКонтекстаЯдра); - - КоллекцияТестов = ПолучитьКоллекциюТестов(ИсходныйТекст, ОписаниеМетода); - ОписаниеМетода.Вставить("КоллекцияТестов", КоллекцияТестов); - - Возврат ОписаниеМетода; -КонецФункции - -Функция ПолучитьОписаниеГлобальнойПеременнойКонтекстаЯдра(Знач ИсходныйТекст, ОписаниеМетода) - RegExp_ПрисваиваниеКонтекстаЯдра = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ПрисваиваниеКонтекстаЯдра, "^\s*([\wА-яёЁ\d]+)\s*=\s*" + ОписаниеМетода.ИмяПараметра_КонтекстЯдра + "\s*;"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ПрисваиваниеКонтекстаЯдра, ОписаниеМетода.ТелоМетода); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ВызватьИсключение "Не удалось найти присваивание параметра контекста ядра."; - КонецЕсли; - Группировка = Группировки[0]; - - Ожидаем.Что(Группировка.ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра = Новый Структура("Имя, НачалоОписания, КонецОписания"); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра.Вставить("Имя", Группировка.ПодВыражения[0]); - - ДобавитьЛог("предварительно ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя = " + ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя); - Возврат ОписаниеГлобальнойПеременнойКонтекстаЯдра; -КонецФункции - -Процедура ПодтвердитьИмяГлобальнойПеременнойКонтекстаЯдра(Знач ИсходныйТекст, ОписаниеМетода, ОписаниеГлобальнойПеременнойКонтекстаЯдра) - RegExp_ОбъявлениеГлобальнойПеременнойКонтекстаЯдра = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ОбъявлениеГлобальнойПеременнойКонтекстаЯдра, "^\s*Перем\s+(" + ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя + ")\s*[;,]"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ОбъявлениеГлобальнойПеременнойКонтекстаЯдра, ИсходныйТекст); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ВызватьИсключение ("Не удалось найти глобальную переменную контекста ядра."); - КонецЕсли; - Группировка = Группировки[0]; - - Ожидаем.Что(Группировка.ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при проверке ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - ДобавитьЛог("подтверждено ИмяГлобальнойПеременнойКонтекстаЯдра = "+Группировка.ПодВыражения[0]); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра.Вставить("НачалоОписания", Группировка.Начало); - ОписаниеГлобальнойПеременнойКонтекстаЯдра.Вставить("КонецОписания", Группировка.Начало + Группировка.Длина); -КонецПроцедуры - -Функция ПолучитьКоллекциюТестов(Знач ИсходныйТекст, ОписаниеМетода) - RegExp_ИмяКоллекцииТестов = Неопределено; - //РегулярныеВыражения_Инициализация (RegExp_ИмяКоллекцииТестов, "\s*([\wА-яёЁ\d]+)\s*=\s*Новый\s+Массив\s*[;\(]([.\s].+)+Возврат\s+([\wА-яёЁ\d]+)"); - РегулярныеВыражения_Инициализация (RegExp_ИмяКоллекцииТестов, "^\s*Возврат\s+([\wА-яёЁ\d]+)"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ИмяКоллекцииТестов, ОписаниеМетода.ТелоМетода); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ВызватьИсключение "Не удалось найти создание коллекции тестов."; - КонецЕсли; - Ожидаем.Что(Группировки[0].ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - ИмяПеременнойКоллекцииСпискаТестов = Группировки[0].ПодВыражения[0]; - ДобавитьЛог("ИмяПеременнойКоллекцииСпискаТестов = "+ИмяПеременнойКоллекцииСпискаТестов); - - RegExp_ДобавлениеТеста = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ДобавлениеТеста, "^\s*" + ИмяПеременнойКоллекцииСпискаТестов + "\s*\.\s*Добавить\(\s*""{1,2}([\wА-яёЁ\d]+)""{1,2}\s*\)\s*;"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ДобавлениеТеста, ОписаниеМетода.ТелоМетода); - - КоллекцияТестов = Новый Массив; - Если Не ЗначениеЗаполнено(Группировки) Тогда - Возврат КоллекцияТестов; - КонецЕсли; - Ожидаем.Что(Группировки[0].ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - - Для Каждого Группировка Из Группировки Цикл - ИмяТеста = Группировка.ПодВыражения[0]; - ДобавитьЛог("добавляем имя теста = "+ИмяТеста); - КоллекцияТестов.Добавить(ИмяТеста); - КонецЦикла; - - Возврат КоллекцияТестов; -КонецФункции - -Функция ИсправитьОписаниеТестов(Знач Исходный, ОписаниеМетодаПолучитьСписокТестов, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки) - Ожидаем.Что(Не ЭтоОбычнаяФорма ИЛИ ЭтоОбычнаяФорма И Не ЕстьДвеДвойныеКавычки, "Ожидаем, что ЕстьДвеДвойныеКавычки только в режиме УФ, а сейчас наоборот").ЭтоИстина(); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра = ОписаниеМетодаПолучитьСписокТестов.ОписаниеГлобальнойПеременнойКонтекстаЯдра; - ИмяГлобальнойПеременнойКонтекстаЯдра = ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя; - - Макет = ПолучитьМакет("ШаблонТеста"); - - ОбластьПеременныеТестирования = ?(ЭтоОбычнаяФорма, Макет.ПолучитьОбласть("ПеременныеТестирования"), Макет.ПолучитьОбласть("ПеременныеТестирования_УФ")); - ОбластьОписанияТестов = ?(ЭтоОбычнаяФорма, Макет.ПолучитьОбласть("ОписанияТестов"), Макет.ПолучитьОбласть("ОписанияТестов_УФ")); - Если ЕстьДвеДвойныеКавычки Тогда - ОбластьОписанияТестов = Макет.ПолучитьОбласть("ОписанияТестов_УФ_ДвеДвойныеКавычки"); - КонецЕсли; - - ОбластьДобавитьИмяТеста = Макет.ПолучитьОбласть("ДобавитьИмяТеста"); - ОбластьЗавершениеСпискаТестов = Макет.ПолучитьОбласть("ЗавершениеСпискаТестов"); - ОбластьУФ_НаКлиенте = Макет.ПолучитьОбласть("УФ_НаКлиенте"); - - ИтоговыйТекст = Новый ТекстовыйДокумент; - - ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = СокрЛП(Лев(Исходный, ОписаниеГлобальнойПеременнойКонтекстаЯдра.НачалоОписания-1)); - СтрЧислоСтрок_ТекстДо = СтрЧислоСтрок(ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра); - Если СтрЧислоСтрок_ТекстДо > 0 и СтрПолучитьСтроку(ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра, СтрЧислоСтрок_ТекстДо) = "&НаКлиенте" Тогда - ТекстДо = ""; - Для к = 1 По СтрЧислоСтрок_ТекстДо-1 Цикл - ТекстДо = ТекстДо + СтрПолучитьСтроку(ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра, к) + Символы.ПС; - КонецЦикла; - ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = ТекстДо; - //Если ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = "&НаКлиенте" Тогда - // ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = ""; - КонецЕсли; - ДобавитьЛог("текст до описания глобальной переменной контекста "+Символы.ПС+ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра +"=========="+Символы.ПС); - - ДобавитьНепустуюСтрокуКТексту(ИтоговыйТекст, ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра); - - ИтоговыйТекст.Вывести(ОбластьПеременныеТестирования); - ИтоговыйТекст.ДобавитьСтроку(""); - - ТекстДоМетодаПолучитьСписокТестов = СокрЛП(Сред(Исходный, ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания + 1, ОписаниеМетодаПолучитьСписокТестов.Начало-1 - ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания - 1)); - Если ТекстДоМетодаПолучитьСписокТестов = "&НаКлиенте" Тогда - ТекстДоМетодаПолучитьСписокТестов = ""; - КонецЕсли; - ДобавитьЛог("текст до ПолучитьСписокТестов"+Символы.ПС+ТекстДоМетодаПолучитьСписокТестов +"=========="+Символы.ПС); - ДобавитьНепустуюСтрокуКТексту(ИтоговыйТекст, ТекстДоМетодаПолучитьСписокТестов); - Если Не ПустаяСтрока(ТекстДоМетодаПолучитьСписокТестов) Тогда - ИтоговыйТекст.ДобавитьСтроку(""); - КонецЕсли; - - ИтоговыйТекст.ДобавитьСтроку(ДобавитьКомментарии("Перем " + ИмяГлобальнойПеременнойКонтекстаЯдра + ";")); - - ИсходныйТекстВКомментарии = ДобавитьКомментарии(Сред(Исходный, ОписаниеМетодаПолучитьСписокТестов.Начало, ОписаниеМетодаПолучитьСписокТестов.Конец-ОписаниеМетодаПолучитьСписокТестов.Начало - 2)); - - ИтоговыйТекст.ДобавитьСтроку(ИсходныйТекстВКомментарии); - ИтоговыйТекст.ДобавитьСтроку(""); - - ИтоговыйТекст.Вывести(ОбластьОписанияТестов); - - Для Каждого ИмяТеста Из ОписаниеМетодаПолучитьСписокТестов.КоллекцияТестов Цикл - // из-за невозможности управлять длиной строки-параметра при установке параметра не использую параметры макета текстового документа - НужныеКавычки = ?(ЕстьДвеДвойныеКавычки, """"+"""", """"); - ВставляемоеИмяТеста = НужныеКавычки + ИмяТеста + НужныеКавычки; - ДобавляемыйТекст = СтрЗаменить(ОбластьДобавитьИмяТеста.ПолучитьСтроку(2), "%ИмяТеста%", ВставляемоеИмяТеста); - ИтоговыйТекст.ДобавитьСтроку(ДобавляемыйТекст); - КонецЦикла; - ИтоговыйТекст.Вывести(ОбластьЗавершениеСпискаТестов); - - ОсновнойТекст = Сред(Исходный, ОписаниеМетодаПолучитьСписокТестов.Конец); - ИтоговыйТекст.ДобавитьСтроку(ОсновнойТекст); - - ДобавитьЛог("ИтоговыйТекст.ПолучитьТекст() = "+Символы.ПС + ИтоговыйТекст.ПолучитьТекст()+"=========="+Символы.ПС); - - Возврат ИтоговыйТекст.ПолучитьТекст(); -КонецФункции - -Функция ПодменитьБазовыеУтверждения(Знач Исходный, ОписаниеМетодаПолучитьСписокТестов) - НаборОписанийУтвержденийДляЗамены = Новый Структура; - НаборОписанийУтвержденийДляЗамены.Вставить("БазовыеУтверждения", "Утверждения"); - НаборОписанийУтвержденийДляЗамены.Вставить("ГенераторТестовыхДанных", "ГенераторТестовыхДанных"); - НаборОписанийУтвержденийДляЗамены.Вставить("ЗапросыИзБД", "ЗапросыИзБД"); - НаборОписанийУтвержденийДляЗамены.Вставить("УтвержденияПроверкаТаблиц", "УтвержденияПроверкаТаблиц"); - НаборОписанийУтвержденийДляЗамены.Вставить("КонтекстЯдра", "КонтекстЯдра"); - - Для Каждого ОписаниеУтверждения Из НаборОписанийУтвержденийДляЗамены Цикл - НаборБазовыхУтверждений = ПолучитьНаборБазовыхУтверждений(ОписаниеУтверждения.Ключ); - Исходный = ЗаменитьБазовыеУтвержденияИзНабораУтверждений(Исходный, ОписаниеМетодаПолучитьСписокТестов.ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя, НаборБазовыхУтверждений, ОписаниеУтверждения.Значение); - КонецЦикла; - Возврат Исходный; -КонецФункции - -Функция ПолучитьНаборБазовыхУтверждений(ИмяМакетаУтверждений) - ТекстУтверждений = ПолучитьМакет(ИмяМакетаУтверждений); - НаборБазовыхУтверждений = Новый Структура; - Для к = 1 По ТекстУтверждений.КоличествоСтрок() Цикл - ТекстУтверждения = СокрЛП(ТекстУтверждений.ПолучитьСтроку(к)); - Если ПустаяСтрока(ТекстУтверждения) Тогда - Продолжить; - КонецЕсли; - Описание = ПолучитьОписаниеБазовогоУтверждения(ТекстУтверждения); - НаборБазовыхУтверждений.Вставить(Описание.Исходное, Описание); - КонецЦикла; - Возврат НаборБазовыхУтверждений; -КонецФункции - -Функция ПолучитьОписаниеБазовогоУтверждения(ТекстУтверждения) - Результат = Новый Структура("Исходное, Результирующее, ЕстьЗамена"); - - МассивСтрок = РазложитьСтрокуВМассивПодстрок(ТекстУтверждения, "="); - - Если МассивСтрок.Количество() = 1 Тогда - Результат.Вставить("Исходное", ТекстУтверждения); - Результат.Вставить("Результирующее", ТекстУтверждения); - Результат.Вставить("ЕстьЗамена", Ложь); - ИначеЕсли МассивСтрок.Количество() = 2 Тогда - Результат.Вставить("Исходное", МассивСтрок[0]); - Результат.Вставить("Результирующее", МассивСтрок[1]); - Результат.Вставить("ЕстьЗамена", Истина); - Иначе - ВызватьИсключение "Неверный формат базового утверждения. В макете разрешено либо название утверждения (например, ПроверитьРавенство) либо описание замены (например, ПрерватьТест=КонтекстЯдра.ВызватьОшибкуПроверки)"; - КонецЕсли; - - Возврат Результат; -КонецФункции - -Функция ЗаменитьБазовыеУтвержденияИзНабораУтверждений(Знач Исходный, ОписаниеГлобальнойПеременнойКонтекстаЯдра, НаборБазовыхУтверждений, ИмяНовойПеременнойУтверждений) - - НаборЗамен = Новый Соответствие; - ШаблонУтверждений = "("; - Для Каждого Структура Из НаборБазовыхУтверждений Цикл - ИсходноеУтверждение = Структура.Ключ; - ОписаниеУтверждения = Структура.Значение; - - ШаблонУтверждений = ШаблонУтверждений + "(" + ОписаниеГлобальнойПеременнойКонтекстаЯдра + "\s*\.\s*("+ИсходноеУтверждение+")\s*\()|"; - - Если ОписаниеУтверждения.ЕстьЗамена Тогда - НаборЗамен.Вставить(НРег(ОписаниеГлобальнойПеременнойКонтекстаЯдра + "." + ИсходноеУтверждение + "("), ОписаниеУтверждения.Результирующее + "("); - Иначе - НаборЗамен.Вставить(НРег(ОписаниеГлобальнойПеременнойКонтекстаЯдра + "." + ИсходноеУтверждение + "("), ИмяНовойПеременнойУтверждений + "." + ИсходноеУтверждение + "("); - КонецЕсли; - КонецЦикла; - НаборЗамен = Новый ФиксированноеСоответствие(НаборЗамен); // для точной проверки свойств через НаборЗамен[ТекстУтверждения], а не переустановки значения свойство в Неопределено - - ШаблонУтверждений = Лев(ШаблонУтверждений, СтрДлина(ШаблонУтверждений) - 1); - ШаблонУтверждений = ШаблонУтверждений + ")+"; - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " ШаблонУтверждений " + ШаблонУтверждений); - - RegExp_ШаблонУтверждений = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ШаблонУтверждений, ШаблонУтверждений); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ШаблонУтверждений, Исходный); - - Если Не ЗначениеЗаполнено(Группировки) Тогда - ДобавитьЛог("Не удалось найти использование утверждений в тексте теста"); - Возврат Исходный; - КонецЕсли; - - //обход в обратном порядке, чтобы не было проблем с индексом по строке в Лев, Сред - Для н = -Группировки.Количество()+1 По 0 Цикл - к = -н; - Группировка = Группировки[к]; - - ТекстУтверждения = Группировка.ПодВыражения[0]; - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " найден текст утверждения имя теста = "+ТекстУтверждения); - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " найден НаборЗамен["+НРег(ТекстУтверждения)+"] = "+НаборЗамен[НРег(ТекстУтверждения)]); - ЛеваяЧасть = Лев(Исходный, Группировка.Начало); - ПраваяЧасть = Сред(Исходный, Группировка.Начало + Группировка.Длина + 1); - - Исходный = ЛеваяЧасть + НаборЗамен[НРег(ТекстУтверждения)] + ПраваяЧасть; - КонецЦикла; - - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " После ЗаменитьБазовыеУтвержденияИзНабораУтверждений ============== "+Символы.ПС + Исходный); - Возврат Исходный; -КонецФункции - -Функция ДобавитьКомментарии(Строка) - Рез = Новый ТекстовыйДокумент; - Для к=1 По СтрЧислоСтрок(Строка) Цикл - Рез.ДобавитьСтроку("//"+СтрПолучитьСтроку(Строка, к)); - КонецЦикла; - Возврат СокрЛП(Рез.ПолучитьТекст()); -КонецФункции - -Процедура ДобавитьНепустуюСтрокуКТексту(Текст, Строка) - Если Не ПустаяСтрока(Строка) Тогда - Текст.ДобавитьСтроку(Строка); - КонецЕсли; -КонецПроцедуры - -Функция ПолучитьТекстФайла(Файл) - Текст = Новый ЧтениеТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8); - Стр = Текст.Прочитать(); - Возврат Стр; -КонецФункции - -Процедура ЗаписатьТекстВФайл(Файл, Строка) - Текст = Новый ЗаписьТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8); - Текст.Записать(Строка); - Текст.Закрыть(); -КонецПроцедуры - -Процедура ДобавитьЛог(Сообщение) - Если ЛогВключен Тогда - Лог = Лог + Сообщение + Символы.ПС; - КонецЕсли; -КонецПроцедуры - -Функция СоздатьСтруктуруРезультатаПреобразования() - Возврат Новый Структура("НайденоВнешнихОбработок,НайденоФайловТестов,КонвертированоТестов",0,0,0); -КонецФункции - -Процедура ДобавитьЧислаВНаборИзДругогоНабора(ИсходныйНабор, ДобавляемыйНабор) - Для Каждого КлючЗначение Из ДобавляемыйНабор Цикл - Ключ = КлючЗначение.Ключ; - ИсходныйНабор.Вставить(Ключ, ИсходныйНабор[Ключ] + КлючЗначение.Значение); - КонецЦикла; -КонецПроцедуры - -// Разбивает строку на несколько строк по разделителю. Разделитель может иметь любую длину. -// Общий модуль СтроковыеФункцииКлиентСервер. -// -// Параметры: -// Строка - Строка - текст с разделителями; -// Разделитель - Строка - разделитель строк текста, минимум 1 символ; -// ПропускатьПустыеСтроки - Булево - признак необходимости включения в результат пустых строк. -// Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией: -// - для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки -// включаются в результат. -// - если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в -// случае разделителя-пробела результатом функции будет массив, содержащий одно значение "" (пустая строка), а -// при других разделителях результатом функции будет пустой массив. -// -// -// Возвращаемое значение: -// Массив - массив строк. -// -// Примеры: -// РазложитьСтрокуВМассивПодстрок(",один,,два,", ",") - возвратит массив из 5 элементов, три из которых - пустые строки; -// РазложитьСтрокуВМассивПодстрок(",один,,два,", ",", Истина) - возвратит массив из двух элементов; -// РазложитьСтрокуВМассивПодстрок(" один два ", " ") - возвратит массив из двух элементов; -// РазложитьСтрокуВМассивПодстрок("") - возвратит пустой массив; -// РазложитьСтрокуВМассивПодстрок("",,Ложь) - возвратит массив с одним элементом "" (пустой строкой); -// РазложитьСтрокуВМассивПодстрок("", " ") - возвратит массив с одним элементом "" (пустой строкой); -// -Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) - - Результат = Новый Массив; - - // для обеспечения обратной совместимости - Если ПропускатьПустыеСтроки = Неопределено Тогда - ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); - Если ПустаяСтрока(Строка) Тогда - Если Разделитель = " " Тогда - Результат.Добавить(""); - КонецЕсли; - Возврат Результат; - КонецЕсли; - КонецЕсли; - // - - Позиция = Найти(Строка, Разделитель); - Пока Позиция > 0 Цикл - Подстрока = Лев(Строка, Позиция - 1); - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда - Результат.Добавить(Подстрока); - КонецЕсли; - Строка = Сред(Строка, Позиция + СтрДлина(Разделитель)); - Позиция = Найти(Строка, Разделитель); - КонецЦикла; - - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда - Результат.Добавить(Строка); - КонецЕсли; - - Возврат Результат; - -КонецФункции - -//} - -//{ RegExp - -Процедура РегулярныеВыражения_Инициализация (RegExp, Шаблон, ИскатьДоПервогоСовпадения = Ложь, МногоСтрок = Истина, ИгнорироватьРегистр = Истина) Экспорт - - Если RegExp = Неопределено Тогда - RegExp = Новый COMОбъект("VBScript.RegExp"); - КонецЕсли; - - RegExp.MultiLine = МногоСтрок; // истина — текст многострочный, ложь — одна строка - RegExp.Global = Не ИскатьДоПервогоСовпадения; // истина — поиск по всей строке, ложь — до первого совпадения - RegExp.IgnoreCase = ИгнорироватьРегистр; // истина — игнорировать регистр строки при поиске - RegExp.Pattern = Шаблон; // шаблон (регулярное выражение) - -КонецПроцедуры - -Функция РегулярныеВыражения_Проверка(RegExp, ПроверяемыйТекст) - - Возврат RegExp.Test(ПроверяемыйТекст); - -КонецФункции - -Функция РегулярныеВыражения_Выполнить(RegExp, АнализируемыйТекст) Экспорт - - РезультатАнализаСтроки = RegExp.Execute(АнализируемыйТекст); - - Группировки = Новый Массив; - - Для Каждого Выражение Из РезультатАнализаСтроки Цикл - СтруктураВыражение = Новый Структура ("Начало, Длина, Значение, ПодВыражения", Выражение.FirstIndex, Выражение.Length,Выражение.Value); - - МассивПодВыражений = Новый Массив; - Для Каждого ПодВыражение Из Выражение.SubMatches Цикл - МассивПодВыражений.Добавить(ПодВыражение); - КонецЦикла; - СтруктураВыражение.ПодВыражения = МассивПодВыражений; - - Группировки.Добавить (СтруктураВыражение); - - КонецЦикла; - - Возврат Группировки; - -КонецФункции - -Функция РегулярныеВыражения_Заменить(RegExp, АнализируемыйТекст, ЗаменяемыйТекст) Экспорт - - Рез = RegExp.Replace(АнализируемыйТекст, ЗаменяемыйТекст); - Возврат Рез; - -КонецФункции - -//} - -// { Подсистема конфигурации xUnitFor1C - -Функция ПолучитьКорневойКаталогФреймворка(Знач АнализируемыйПутьККаталогу) - - РезультатПоиска = НайтиФайлы(АнализируемыйПутьККаталогу, "xddTestRunner.epf"); - Если РезультатПоиска.Количество() = 0 Тогда - ВышестоящийКаталог = ПолучитьПутьВышестоящегоКаталога(АнализируемыйПутьККаталогу); - Возврат ПолучитьКорневойКаталогФреймворка(ВышестоящийКаталог); - Иначе - Возврат РезультатПоиска.Получить(0).Путь; - КонецЕсли; - -КонецФункции -Функция ПолучитьПутьВышестоящегоКаталога(Знач ТекущийПутьККаталогу) - - МассивРазделителей = Новый Массив; - МассивРазделителей.Добавить("/"); - МассивРазделителей.Добавить("\"); - - ПоследнийСимвол = Прав(ТекущийПутьККаталогу, 1); - Если НЕ МассивРазделителей.Найти(ПоследнийСимвол) = Неопределено Тогда - ДлинаПутьБезПоследнегоРазделителя = СтрДлина(ТекущийПутьККаталогу) - 1; - ТекущийПутьККаталогу = Лев(ТекущийПутьККаталогу, ДлинаПутьБезПоследнегоРазделителя); - КонецЕсли; - - Пока СтрДлина(ТекущийПутьККаталогу) > 0 Цикл - - ПоследнийСимвол = Прав(ТекущийПутьККаталогу, 1); - Если НЕ МассивРазделителей.Найти(ПоследнийСимвол) = Неопределено Тогда - Прервать; - Иначе - ДлинаПутьБезПоследнегоСимвола = СтрДлина(ТекущийПутьККаталогу) - 1; - ТекущийПутьККаталогу = Лев(ТекущийПутьККаталогу, ДлинаПутьБезПоследнегоСимвола); - КонецЕсли; - - КонецЦикла; - - Возврат ТекущийПутьККаталогу; - -КонецФункции - -Функция ПолучитьКонтекстЯдраНаСервере() - - // Получаем доступ к серверному контексту обработки с использованием - // полного имени метаданных браузера тестов. Иначе нет возможности получить - // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте. - // При передаче на сервер клиентский контекст теряется. - КонтекстЯдра = Неопределено; - МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов); - Если НЕ МетаданныеЯдра = Неопределено - И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "Обработка", "Обработки"); - Выполнить("КонтекстЯдра = " + ИмяОбработкиКонекстаЯдра + ".Создать()"); - Иначе - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ВнешняяОбработка", "ВнешниеОбработки"); - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ".", Символы.ПС); - МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1); - ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2); - Выполнить("КонтекстЯдра = " + МенеджерОбъектов + ".Создать("""+ИмяОбъекта+""")"); - КонецЕсли; - - Возврат КонтекстЯдра; - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/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/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/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" deleted file mode 100644 index 63f0f1c25..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/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" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/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/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/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" deleted file mode 100644 index 099f57a6a..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/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" +++ /dev/null @@ -1,29 +0,0 @@ - -
- useIfNecessary - - - - web:DarkCyan - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Конвертация тестов из формата 3.Х в новый формат (4.Х) работает только в режиме обычного приложения. - -Запустите 1С в указанном приложении!</v8:content> - </v8:item> - - - - - - - - - cfg:DataProcessorObject.xddTestsConvertIntoRebornFormat - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 4d97b9715..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" deleted file mode 100644 index 9bf93d1cb..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" and /dev/null differ diff --git a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack.xml b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack.xml deleted file mode 100644 index 60c08103f..000000000 --- a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack/Ext/Template.bin b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack/Ext/Template.bin deleted file mode 100644 index 59496ab38..000000000 Binary files a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack/Ext/Template.bin and /dev/null differ diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" deleted file mode 100644 index 8727d091b..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" deleted file mode 100644 index 096e10ae6..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" +++ /dev/null @@ -1,24 +0,0 @@ -Проверить -ПроверитьИстину -ПроверитьЛожь -ПроверитьДату -ПроверитьРавенствоДатСТочностью2Секунды -ПроверитьРавенство -ПроверитьНеРавенство -ПроверитьБольше -ПроверитьБольшеИлиРавно -ПроверитьМеньше -ПроверитьМеньшеИлиРавно -ПроверитьВыполнилось -ПроверитьМетодВыполнился -ПроверитьНеВыполнилось -ПроверитьМетодНеВыполнился -ПроверитьЗаполненность -ПроверитьНеЗаполненность -ПроверитьТип -ПроверитьВхождение -ПроверитьВхождениеВКоллекцию -ПроверитьВалидностьЗапросаСКД -ПроверитьНаличиеОбъектаИБ -ПроверитьРавенствоФайлов -ПропуститьТест \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.xml" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.xml" deleted file mode 100644 index 8f343e4e4..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Ext/Template.txt" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Ext/Template.txt" deleted file mode 100644 index 2cf09194f..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Ext/Template.txt" +++ /dev/null @@ -1,5 +0,0 @@ -СоздатьДанныеПоМакетам -СоздатьДанныеПоТабличномуДокументу -УдалитьСозданныеДанные -СоздатьПользователяИБ -РазложитьСтрокуВМассивПодстрок \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" deleted file mode 100644 index 360f8d6ee..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/Template.txt" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/Template.txt" deleted file mode 100644 index 20982aa63..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/Template.txt" +++ /dev/null @@ -1,10 +0,0 @@ -ПолучитьКоличествоДокументовПоОтбору -ПолучитьКоличествоЭлементовСправочникаПоОтбору -ПолучитьКоличествоСтрокВДокументахПоОтбору -ПолучитьИтоговуюСуммуТабличнойЧастиДокументовПоОтбору -ПолучитьИтоговуюСуммуДокументовПоОтбору -ПолучитьКоличествоЭлементовМетаданногоПоОтбору -ПолучитьКоличествоБизнесПроцессовПоОтбору -ПолучитьКоличествоЗадачПоОтбору -ПолучитьКоличествоЭлементовРегистраПоОтбору -ПолучитьЭлементыМетаданногоПоОтбору \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260.xml" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260.xml" deleted file mode 100644 index d556e41b0..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260/Ext/Template.txt" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260/Ext/Template.txt" deleted file mode 100644 index 341a1519d..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260/Ext/Template.txt" +++ /dev/null @@ -1,2 +0,0 @@ -ВывестиСообщение -ПрерватьТест=КонтекстЯдра.ВызватьОшибкуПроверки \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" deleted file mode 100644 index 805b6763a..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/Template.txt" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/Template.txt" deleted file mode 100644 index 665228224..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/Template.txt" +++ /dev/null @@ -1,3 +0,0 @@ -ПроверитьРавенствоТаблиц -ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям -ПолучитьТаблицуЗначенийИзТабличногоДокумента \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260.xml" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260.xml" deleted file mode 100644 index 808e5fc87..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" "b/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" deleted file mode 100644 index 0a533b325..000000000 --- "a/lib/CF/83xdd/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" +++ /dev/null @@ -1,79 +0,0 @@ -#Область ПеременныеТестирования -Перем КонтекстЯдра; -Перем Ожидаем; -Перем Утверждения; -Перем ГенераторТестовыхДанных; -Перем ЗапросыИзБД; -Перем УтвержденияПроверкаТаблиц; -#КонецОбласти - -#Область ПеременныеТестирования_УФ -&НаКлиенте -Перем КонтекстЯдра; -&НаКлиенте -Перем Ожидаем; -&НаКлиенте -Перем Утверждения; -&НаКлиенте -Перем ГенераторТестовыхДанных; -&НаКлиенте -Перем ЗапросыИзБД; -&НаКлиенте -Перем УтвержденияПроверкаТаблиц; -#КонецОбласти - -#Область ОписанияТестов -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт -#КонецОбласти - -#Область ОписанияТестов_УФ -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт -#КонецОбласти - -#Область ОписанияТестов_УФ_ДвеДвойныеКавычки -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD""); - Утверждения = КонтекстЯдра.Плагин(""БазовыеУтверждения""); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин(""СериализаторMXL""); - ЗапросыИзБД = КонтекстЯдра.Плагин(""ЗапросыИзБД""); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин(""УтвержденияПроверкаТаблиц""); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт -#КонецОбласти - -#Область ДобавитьИмяТеста - НаборТестов.Добавить(%ИмяТеста%); -#КонецОбласти - -#Область ЗавершениеСпискаТестов -КонецПроцедуры - -#КонецОбласти - -#Область УФ_НаКлиенте -&НаКлиенте -#КонецОбласти diff --git "a/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" "b/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" deleted file mode 100644 index ef5469a36..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 824a7f81-6e79-492d-8c40-2f6d36f77bc3 - 420e4203-7737-419e-951c-3b79e2bb75ff - - - fab045ed-8db6-4a8f-9c32-9d0cadd47e0c - dace8333-7cb2-4bbe-881c-76e08ad28f0d - - - - БазовыеУтверждения - - - ru - Базовые утверждения - - - - false - DataProcessor.БазовыеУтверждения.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/ObjectModule.bsl" deleted file mode 100644 index 0f8e1d620..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,386 +0,0 @@ -Перем СтатусыРезультатаТестирования; - -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", "БазовыеУтверждения"); - Результат.Вставить("Представление", "Базовый набор утверждений"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры - -//{ МЕТОДЫ ДЛЯ ПРОВЕРКИ ЗНАЧЕНИЙ (assertions). - -Процедура Проверить(_Истина, ДопСообщениеОшибки = "") Экспорт - Если Не _Истина Тогда - СообщениеОшибки = "Переданный параметр ("+Формат(_Истина, "БЛ=ложь; БИ=истина")+") не является Истиной, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьИстину(_Истина, ДопСообщениеОшибки = "") Экспорт - Проверить(_Истина, ДопСообщениеОшибки); -КонецПроцедуры - -Процедура ПроверитьЛожь(_Ложь, ДопСообщениеОшибки = "") Экспорт - Если _Ложь Тогда - СообщениеОшибки = "Переданный параметр ("+Формат(_Ложь, "БЛ=ложь; БИ=истина")+") не является Ложью, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьДату(_Дата, _Период, ДопСообщениеОшибки = "") Экспорт - Если _Дата < _Период.ДатаНачала или _Дата > _Период.ДатаОкончания Тогда - представление = ПредставлениеПериода(_Период.ДатаНачала, _Период.ДатаОкончания, "ФП = Истина"); - СообщениеОшибки = "Переданный параметр ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не входит в период "+представление+", а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьРавенствоДатСТочностью2Секунды(_Дата, _Дата2, ДопСообщениеОшибки = "") Экспорт - Если _Дата < _Дата2-2 или _Дата > _Дата2+2 Тогда - СообщениеОшибки = "Переданная дата ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не равна дате ("+Формат(_Дата2, "ДФ='dd.MM.yyyy HH:mm:ss'")+") с точностью до 2-х секунд, а хотели, чтобы они равнялись." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт - Если _1 <> _2 Тогда - СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") не равны, а хотели, чтобы были равны." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьНеРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт - Если _1 = _2 Тогда - СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") равны, а хотели, чтобы были не равны." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьБольше(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт - Если _Больше <= _Меньше Тогда - СообщениеОшибки = "Первый параметр ("+_Больше+") меньше или равен второму ("+_Меньше+") а хотели, чтобы был больше." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьБольшеИлиРавно(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт - Если _Больше < _Меньше Тогда - СообщениеОшибки = "Первый параметр ("+_Больше+") меньше второго ("+_Меньше+") а хотели, чтобы был больше или равен." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьМеньше(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт - Если проверяемоеЗначение1 >= проверяемоеЗначение2 Тогда - СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше или равно, чем <"+проверяемоеЗначение2+">, а ожидалось меньше"+ - ФорматДСО(СообщениеОбОшибке); - ВызватьОшибкуПроверки(СообщениеОшибки) - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьМеньшеИлиРавно(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт - Если проверяемоеЗначение1 > проверяемоеЗначение2 Тогда - СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше, чем <"+проверяемоеЗначение2+">, а ожидалось меньше или равно"+ - ФорматДСО(СообщениеОбОшибке); - ВызватьОшибкуПроверки(СообщениеОшибки) - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры; - - Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиДопСообщениеОшибки; - КонецЕсли; - Попытка - Выполнить(СтрокаАлгоритм); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - СообщениеОшибки = "Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - -КонецПроцедуры - -Процедура ПроверитьМетодВыполнился(Объект, Знач ИмяМетода, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры; - - Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиДопСообщениеОшибки; - Если Параметры <> Неопределено Тогда - ТипПараметра = ТипЗнч(Параметры); - Если ТипПараметра <> Тип("Массив") Тогда - ВызватьИсключение ("Ожидали, что вторым параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">"); - КонецЕсли; - КонецЕсли; - КонецЕсли; - - ПараметрыСтрока = ПараметрыСтрокой(Параметры); - - СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")"; - - Попытка - Выполнить(СтрокаВыполнения); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - СообщениеОшибки = "Хотели, чтобы код """+СтрокаВыполнения+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - -КонецПроцедуры - -Функция ПараметрыСтрокой(Параметры) - ПараметрыСтрока = ""; - Если ЗначениеЗаполнено(Параметры) Тогда - Для Индекс = 0 По Параметры.ВГраница() Цикл - ПараметрыСтрока = ПараметрыСтрока + ", Параметры[" + Формат(Индекс, "ЧН=0; ЧГ=0") + "]"; - КонецЦикла; - КонецЕсли; - Возврат Сред(ПараметрыСтрока, 3); -КонецФункции - -Процедура ПроверитьНеВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры, ОжидаемоеОписаниеОшибки; - Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда - ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки; - ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки; - ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - КонецЕсли; - Попытка - Выполнить(СтрокаАлгоритм); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда - ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Возврат; - КонецПопытки; - - ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки)); - -КонецПроцедуры - -Процедура ПроверитьМетодНеВыполнился(Объект, ИмяМетода, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры, ОжидаемоеОписаниеОшибки; - - Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда - ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки; - ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки; - Если Параметры <> Неопределено Тогда - ТипПараметра = ТипЗнч(Параметры); - Если ТипПараметра <> Тип("Массив") Тогда - ВызватьИсключение ("Ожидали, что третьим параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">"); - КонецЕсли; - КонецЕсли; - ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - КонецЕсли; - - ПараметрыСтрока = ПараметрыСтрокой(Параметры); - - СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")"; - - Попытка - Выполнить(СтрокаВыполнения); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда - ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Возврат; - КонецПопытки; - - ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки)); - -КонецПроцедуры - -// проверка идет через ЗначениеЗаполнено, но мутабельные значение всегда считаем заполненными -Процедура ПроверитьЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт - Попытка - фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение); - Исключение - Возврат; - КонецПопытки; - Если НЕ фЗаполнено Тогда - ВызватьОшибкуПроверки("Значение ("+ПроверяемоеЗначение+") не заполнено, а ожидалась заполненность" + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьНеЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт - СообщениеОшибки = "Значение ("+ПроверяемоеЗначение+") заполнено, а ожидалась незаполненность" + ФорматДСО(ДопСообщениеОшибки); - Попытка - фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение); - Исключение - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - Если фЗаполнено Тогда - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьТип(значение, ТипИлиИмяТипа, ДопСообщениеОшибки = "") Экспорт - Если ТипЗнч(ТипИлиИмяТипа) = Тип("Строка") Тогда - искомыйТип = Тип(ТипИлиИмяТипа); - ИначеЕсли ТипЗнч(ТипИлиИмяТипа) = Тип("Тип") Тогда - искомыйТип = ТипИлиИмяТипа; - Иначе - ВызватьИсключение ("ПроверитьТип: Тип значения параметра ТипИлиИмяТипа должен быть <Тип> или <Строка>, а получили <"+ ТипЗнч(ТипИлиИмяТипа) + ">" + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Если ТипЗнч(значение) <> искомыйТип Тогда - ВызватьОшибкуПроверки("Типом значения <"+значение+"> является <"+ТипЗнч(значение)+">, а ожидался тип <"+ТипИлиИмяТипа+">."+ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьВхождение(строка, подстрокаПоиска, ДопСообщениеОшибки = "") Экспорт - Если Найти(строка, подстрокаПоиска) = 0 Тогда - ПредставлениеСтроки = "<"+строка+">"; - Если СтрДлина(строка) > 20 Тогда - ПредставлениеСтроки = ПредставлениеСтроки + Символы.ПС; - КонецЕсли; - ПредставлениеПодСтроки = "<"+подстрокаПоиска+">"; - Если СтрДлина(подстрокаПоиска) > 20 Тогда - ПредставлениеПодСтроки = ПредставлениеПодСтроки + Символы.ПС; - КонецЕсли; - СообщениеОшибки = "Искали в "+ПредставлениеСтроки+" подстроку "+ПредставлениеПодСтроки+", но не нашли." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -//Коллекция - Массив, Структура, Соответствие, ФиксированныйМассив, ФиксированнаяСтруктура, ФиксированноеСоответствие, СписокЗначений -Процедура ПроверитьВхождениеВКоллекцию(Элемент, Коллекция, ДопСообщениеОшибки = "") Экспорт - Нашли = Неопределено; - ТипКоллекции = ТипЗнч(Коллекция); - Если ТипКоллекции = Тип("Массив") или ТипКоллекции = Тип("ФиксированныйМассив") Тогда - Нашли = Коллекция.Найти(Элемент) <> Неопределено; - ИначеЕсли ТипКоллекции = Тип("Структура") или ТипКоллекции = Тип("Соответствие") - или ТипКоллекции = Тип("ФиксированнаяСтруктура") или ТипКоллекции = Тип("ФиксированноеСоответствие") Тогда - Для каждого КлючЗначение Из Коллекция Цикл - Нашли = КлючЗначение.Значение = Элемент; - Если Нашли Тогда - Прервать; - КонецЕсли; - КонецЦикла; - ИначеЕсли ТипКоллекции = Тип("СписокЗначений") Тогда - Нашли = Коллекция.НайтиПоЗначению(Элемент) <> Неопределено; - КонецЕсли; - Если Нашли = Неопределено Тогда - СообщениеОшибки = "Утверждение ""ПроверитьВхождениеВКоллекцию"" не умеет работать с типом коллекции <"+ТипКоллекции+">." + ФорматДСО(ДопСообщениеОшибки); - ВызватьИсключение СообщениеОшибки; - КонецЕсли; - Если Не Нашли Тогда - СообщениеОшибки = "Не нашли элемент <"+Элемент+"> в коллекции, а хотели, чтобы он был в коллекции." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьВалидностьЗапросаСКД(ТекстЗапроса, ДопСообщениеОшибки = "") Экспорт - - СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных; - - ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить(); - ИсточникДанных.Имя = "ИсточникДанных"; - ИсточникДанных.СтрокаСоединения = ""; - ИсточникДанных.ТипИсточникаДанных = "Local"; - - НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); - НаборДанных.Имя = "НаборДанных"; - НаборДанных.ИсточникДанных = "ИсточникДанных"; - НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина; - НаборДанных.Запрос = ТекстЗапроса; - - КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; - Попытка - КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); - Исключение - СообщениеОшибки = ОписаниеОшибки() + "." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - -КонецПроцедуры // ПроверитьВалидностьЗапросаСКД() - -Процедура ПроверитьНаличиеОбъектаИБ(ссылка, ДопСообщениеОшибки = "") Экспорт - Если Не ЗначениеЗаполнено(ссылка) Тогда - СообщениеОшибки = "Ожидали заполненность ссылки, а получили пустую ссылку." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - лОбъект = ссылка.ПолучитьОбъект(); - Если лОбъект = Неопределено Тогда - СообщениеОшибки = "Ожидали существование объекта в ИБ, а получили объект не найден <" + ссылка + "> ." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -// Проеряет равенство файлов -// Параметры: -// ПутьФайла1, ПутьФайла2 - полные пути к фалйам -// ПарамСравнениеФайлов - структура с ключами: -// ИгнорироватьПустоеПространство -// СпособСравнения -// УчитыватьРазделителиСтрок -// УчитыватьРегистр -// ПоказатьРазличия - в случае ошибки появляется окно сравнеия (для отладки) -Процедура ПроверитьРавенствоФайлов(ПутьФайла1, ПутьФайла2, ДопСообщениеОшибки = "", ПарамСравнениеФайлов = Неопределено, ПоказатьРазличия = Ложь) Экспорт -#Если ТолстыйКлиентОбычноеПриложение или ТолстыйКлиентУправляемоеПриложение Тогда - Если ПарамСравнениеФайлов = Неопределено Тогда - ПарамСравнениеФайлов = Новый Структура; - КонецЕсли; - СравнениеФайлов = Новый СравнениеФайлов; - СравнениеФайлов.ПервыйФайл = ПутьФайла1; - СравнениеФайлов.ВторойФайл = ПутьФайла2; - Если Не ПарамСравнениеФайлов.Свойство("СпособСравнения") Тогда - Файл = Новый Файл(ПутьФайла1); - ТипФайла = НРег(Файл.Расширение); - ТекстовыеТипы = ".txt,.xml"; - Если ТипФайла = ".mxl" Тогда - ПарамСравнениеФайлов.Вставить("СпособСравнения", СпособСравненияФайлов.ТабличныйДокумент); - ИначеЕсли Найти(ТекстовыеТипы, ТипФайла) > 0 Тогда - ПарамСравнениеФайлов.Вставить("СпособСравнения", СпособСравненияФайлов.ТекстовыйДокумент); - КонецЕсли; - КонецЕсли; - ЗаполнитьЗначенияСвойств(СравнениеФайлов, ПарамСравнениеФайлов); - ФайлыИдентичны = СравнениеФайлов.Сравнить(); - Если Не ФайлыИдентичны Тогда - Если ПоказатьРазличия Тогда // для удобства отладки и расследования ошибок - СравнениеФайлов.ПоказатьРазличия(); - КонецЕсли; - СообщениеОшибки = "Ожидали идентичность файлов, а получили, что они различны." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -#Иначе - ВызватьИсключение "Утверждение ПроверитьРавенствоФайлов можно использовать только в толстом клиенте!"; -#КонецЕсли -КонецПроцедуры -//} - -Процедура ВызватьОшибкуПроверки(СообщениеОшибки) - - Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; - -КонецПроцедуры - -Функция ФорматДСО(ДопСообщениеОшибки) - Если ДопСообщениеОшибки = "" Тогда - Возврат ""; - КонецЕсли; - - Возврат Символы.ПС + ДопСообщениеОшибки; -КонецФункции - -СтатусыРезультатаТестирования = Новый Структура; -СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed"); -СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken"); -СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending"); -СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 30f4aedce..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 6fb087216..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.БазовыеУтверждения - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 28e144457..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,366 +0,0 @@ -&НаКлиенте -Перем СтатусыРезультатаТестирования; - -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат Объект().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции - -// { функции утверждения- проверки значений. - -&НаКлиенте -Процедура Проверить(_Истина, ДопСообщениеОшибки = "") Экспорт - Если Не _Истина Тогда - СообщениеОшибки = "Переданный параметр ("+Формат(_Истина, "БЛ=ложь; БИ=истина")+") не является Истиной, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьИстину(_Истина, ДопСообщениеОшибки = "") Экспорт - Проверить(_Истина, ДопСообщениеОшибки); -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьЛожь(_Ложь, ДопСообщениеОшибки = "") Экспорт - Если _Ложь Тогда - СообщениеОшибки = "Переданный параметр ("+Формат(_Ложь, "БЛ=ложь; БИ=истина")+") не является Ложью, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьДату(_Дата, _Период, ДопСообщениеОшибки = "") Экспорт - Если _Дата < _Период.ДатаНачала или _Дата > _Период.ДатаОкончания Тогда - представление = ПредставлениеПериода(_Период.ДатаНачала, _Период.ДатаОкончания, "ФП = Истина"); - СообщениеОшибки = "Переданный параметр ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не входит в период "+представление+", а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьРавенствоДатСТочностью2Секунды(_Дата, _Дата2, ДопСообщениеОшибки = "") Экспорт - Если _Дата < _Дата2-2 или _Дата > _Дата2+2 Тогда - СообщениеОшибки = "Переданная дата ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не равна дате ("+Формат(_Дата2, "ДФ='dd.MM.yyyy HH:mm:ss'")+") с точностью до 2-х секунд, а хотели, чтобы они равнялись." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт - Если _1 <> _2 Тогда - СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") не равны, а хотели, чтобы были равны." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьНеРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт - Если _1 = _2 Тогда - СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") равны, а хотели, чтобы были не равны." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьБольше(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт - Если _Больше <= _Меньше Тогда - СообщениеОшибки = "Первый параметр ("+_Больше+") меньше или равен второму ("+_Меньше+") а хотели, чтобы был больше." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьБольшеИлиРавно(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт - Если _Больше < _Меньше Тогда - СообщениеОшибки = "Первый параметр ("+_Больше+") меньше второго ("+_Меньше+") а хотели, чтобы был больше или равен." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьМеньше(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт - Если проверяемоеЗначение1 >= проверяемоеЗначение2 Тогда - СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше или равно, чем <"+проверяемоеЗначение2+">, а ожидалось меньше"+ - ФорматДСО(СообщениеОбОшибке); - ВызватьОшибкуПроверки(СообщениеОшибки) - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьМеньшеИлиРавно(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт - Если проверяемоеЗначение1 > проверяемоеЗначение2 Тогда - СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше, чем <"+проверяемоеЗначение2+">, а ожидалось меньше или равно"+ - ФорматДСО(СообщениеОбОшибке); - ВызватьОшибкуПроверки(СообщениеОшибки) - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры; - - Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиДопСообщениеОшибки; - КонецЕсли; - Попытка - Выполнить(СтрокаАлгоритм); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - СообщениеОшибки = "Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьМетодВыполнился(Объект, Знач ИмяМетода, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры; - - Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиДопСообщениеОшибки; - Если Параметры <> Неопределено Тогда - ТипПараметра = ТипЗнч(Параметры); - Если ТипПараметра <> Тип("Массив") Тогда - ВызватьИсключение ("Ожидали, что вторым параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">"); - КонецЕсли; - КонецЕсли; - КонецЕсли; - - ПараметрыСтрока = ПараметрыСтрокой(Параметры); - - СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")"; - - Попытка - Выполнить(СтрокаВыполнения); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - СообщениеОшибки = "Хотели, чтобы код """+СтрокаВыполнения+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - -КонецПроцедуры - -&НаКлиенте -Функция ПараметрыСтрокой(Параметры) - ПараметрыСтрока = ""; - Если ЗначениеЗаполнено(Параметры) Тогда - Для Индекс = 0 По Параметры.ВГраница() Цикл - ПараметрыСтрока = ПараметрыСтрока + ", Параметры[" + Формат(Индекс, "ЧН=0; ЧГ=0") + "]"; - КонецЦикла; - КонецЕсли; - Возврат Сред(ПараметрыСтрока, 3); -КонецФункции - -&НаКлиенте -Процедура ПроверитьНеВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры, ОжидаемоеОписаниеОшибки; - Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда - ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки; - ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки; - ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - КонецЕсли; - Попытка - Выполнить(СтрокаАлгоритм); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда - ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Возврат; - КонецПопытки; - - ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки)); - -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьМетодНеВыполнился(Объект, ИмяМетода, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры, ОжидаемоеОписаниеОшибки; - - Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда - ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки; - ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки; - Если Параметры <> Неопределено Тогда - ТипПараметра = ТипЗнч(Параметры); - Если ТипПараметра <> Тип("Массив") Тогда - ВызватьИсключение ("Ожидали, что третьим параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">"); - КонецЕсли; - КонецЕсли; - ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - КонецЕсли; - - ПараметрыСтрока = ПараметрыСтрокой(Параметры); - - СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")"; - - Попытка - Выполнить(СтрокаВыполнения); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда - ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Возврат; - КонецПопытки; - - ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки)); - -КонецПроцедуры - -// проверка идет через ЗначениеЗаполнено, но мутабельные значение всегда считаем заполненными -&НаКлиенте -Процедура ПроверитьЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт - Попытка - фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение); - Исключение - Возврат; - КонецПопытки; - Если НЕ фЗаполнено Тогда - ВызватьОшибкуПроверки("Значение ("+ПроверяемоеЗначение+") не заполнено, а ожидалась заполненность" + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьНеЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт - СообщениеОшибки = "Значение ("+ПроверяемоеЗначение+") заполнено, а ожидалась незаполненность" + ФорматДСО(ДопСообщениеОшибки); - Попытка - фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение); - Исключение - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - Если фЗаполнено Тогда - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьТип(значение, ТипИлиИмяТипа, ДопСообщениеОшибки = "") Экспорт - Если ТипЗнч(ТипИлиИмяТипа) = Тип("Строка") Тогда - искомыйТип = Тип(ТипИлиИмяТипа); - ИначеЕсли ТипЗнч(ТипИлиИмяТипа) = Тип("Тип") Тогда - искомыйТип = ТипИлиИмяТипа; - Иначе - ВызватьИсключение ("ПроверитьТип: Тип значения параметра ТипИлиИмяТипа должен быть <Тип> или <Строка>, а получили <"+ ТипЗнч(ТипИлиИмяТипа) + ">" + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Если ТипЗнч(значение) <> искомыйТип Тогда - ВызватьОшибкуПроверки("Типом значения <"+значение+"> является <"+ТипЗнч(значение)+">, а ожидался тип <"+ТипИлиИмяТипа+">."+ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьВхождение(строка, подстрокаПоиска, ДопСообщениеОшибки = "") Экспорт - Если Найти(строка, подстрокаПоиска) = 0 Тогда - ПредставлениеСтроки = "<"+строка+">"; - Если СтрДлина(строка) > 20 Тогда - ПредставлениеСтроки = ПредставлениеСтроки + Символы.ПС; - КонецЕсли; - ПредставлениеПодСтроки = "<"+подстрокаПоиска+">"; - Если СтрДлина(подстрокаПоиска) > 20 Тогда - ПредставлениеПодСтроки = ПредставлениеПодСтроки + Символы.ПС; - КонецЕсли; - СообщениеОшибки = "Искали в "+ПредставлениеСтроки+" подстроку "+ПредставлениеПодСтроки+", но не нашли." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -//Коллекция - Массив, Структура, Соответствие, ФиксированныйМассив, ФиксированнаяСтруктура, ФиксированноеСоответствие, СписокЗначений -&НаКлиенте -Процедура ПроверитьВхождениеВКоллекцию(Элемент, Коллекция, ДопСообщениеОшибки = "") Экспорт - Нашли = Неопределено; - ТипКоллекции = ТипЗнч(Коллекция); - Если ТипКоллекции = Тип("Массив") или ТипКоллекции = Тип("ФиксированныйМассив") Тогда - Нашли = Коллекция.Найти(Элемент) <> Неопределено; - ИначеЕсли ТипКоллекции = Тип("Структура") или ТипКоллекции = Тип("Соответствие") - или ТипКоллекции = Тип("ФиксированнаяСтруктура") или ТипКоллекции = Тип("ФиксированноеСоответствие") Тогда - Для каждого КлючЗначение Из Коллекция Цикл - Нашли = КлючЗначение.Значение = Элемент; - Если Нашли Тогда - Прервать; - КонецЕсли; - КонецЦикла; - ИначеЕсли ТипКоллекции = Тип("СписокЗначений") Тогда - Нашли = Коллекция.НайтиПоЗначению(Элемент) <> Неопределено; - КонецЕсли; - Если Нашли = Неопределено Тогда - СообщениеОшибки = "Утверждение ""ПроверитьВхождениеВКоллекцию"" не умеет работать с типом коллекции <"+ТипКоллекции+">." + ФорматДСО(ДопСообщениеОшибки); - ВызватьИсключение СообщениеОшибки; - КонецЕсли; - Если Не Нашли Тогда - СообщениеОшибки = "Не нашли элемент <"+Элемент+"> в коллекции, а хотели, чтобы он был в коллекции." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьВалидностьЗапросаСКД(ТекстЗапроса, ДопСообщениеОшибки = "") Экспорт - ПроверитьВалидностьЗапросаСКДНаСервере(ТекстЗапроса, ДопСообщениеОшибки); -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки); -КонецПроцедуры - -&НаСервере -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - Объект().ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки); -КонецПроцедуры - -&НаКлиенте -Процедура ВызватьОшибкуПроверки(СообщениеОшибки) - - Префикс = "[" + СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; - -КонецПроцедуры - -&НаКлиенте -Процедура ПропуститьТест(Знач Сообщение = "") Экспорт - - Префикс = "[" + СтатусыРезультатаТестирования.ТестПропущен + "]"; - Если ПустаяСтрока(Сообщение) Тогда - Сообщение = НСтр("ru = 'Тест пропущен'"); - КонецЕсли; - ВызватьИсключение Префикс + " " + Сообщение; - -КонецПроцедуры - -&НаСервере -Процедура ПроверитьВалидностьЗапросаСКДНаСервере(ТекстЗапроса, ДопСообщениеОшибки = "") - Объект().ПроверитьВалидностьЗапросаСКД(ТекстЗапроса, ДопСообщениеОшибки); -КонецПроцедуры -// } - -&НаКлиенте -Функция ФорматДСО(ДопСообщениеОшибки) - Если ДопСообщениеОшибки = "" Тогда - Возврат ""; - КонецЕсли; - - Возврат Символы.ПС + ДопСообщениеОшибки; -КонецФункции - -&НаСервере -Функция Объект() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции - -СтатусыРезультатаТестирования = Новый Структура; -СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed"); -СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken"); -СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending"); -СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); diff --git "a/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.xml" "b/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.xml" deleted file mode 100644 index 8eea79b0b..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 61246342-9a0f-49d6-9b9e-726b5f607d44 - 777524cb-341e-4fc4-80b3-582edf19b399 - - - 41a92690-ab41-487e-9a10-c964a0a71bab - 5eeffb20-0ba8-490c-bfc9-7658a6c1a529 - - - - ВременныеФайлы - - - ru - Временные файлы - - - - false - DataProcessor.ВременныеФайлы.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Ext/ObjectModule.bsl" deleted file mode 100644 index a6be3506f..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,102 +0,0 @@ - -////////////////////////////////////////////////////////////////// -// -// Простой хелпер создания временных файлов и каталогов -// -////////////////////////////////////////////////////////////////// - -//#Использовать logos - -Перем мВременныеФайлы; -//Перем Лог; - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "ВременныеФайлы"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -///////////////////////////////////////////////////////////////////////// -// Программный интерфейс - -Функция НовоеИмяФайла(Знач Расширение = "tmp") Экспорт - - ИмяВремФайла = ПолучитьИмяВременногоФайла(Расширение); - мВременныеФайлы.Добавить(ИмяВремФайла); - - Возврат ИмяВремФайла; - -КонецФункции - -Функция СоздатьФайл(Знач Расширение = "tmp") Экспорт - - ИмяФайла = НовоеИмяФайла(Расширение); - ЗаписьТекста = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI); - ЗаписьТекста.Закрыть(); - Возврат ИмяФайла; - -КонецФункции - -Функция СоздатьКаталог_(Знач Расширение = "tmp") Экспорт - - ИмяФайла = НовоеИмяФайла(Расширение); - СоздатьКаталог(ИмяФайла); - - Возврат ИмяФайла; - -КонецФункции - -Процедура Удалить() Экспорт - - КрайнийИндекс = мВременныеФайлы.Количество()-1; - Для Сч = 0 По КрайнийИндекс Цикл - - Индекс = КрайнийИндекс-Сч; - ИмяВременногоФайла = мВременныеФайлы[Индекс]; - Если БезопасноУдалитьФайл(ИмяВременногоФайла) Тогда - мВременныеФайлы.Удалить(Индекс); - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -Функция УдалитьФайл(Знач Путь) Экспорт - Возврат БезопасноУдалитьФайл(Путь); -КонецФункции - -Функция БезопасноУдалитьФайл(Знач Путь) Экспорт - - Попытка - УдалитьФайлы(Путь); - Возврат Истина; - Исключение - ТекстОшибки = "Попытка удаления "+Путь+" закончилась неудачей, по причине "+ОписаниеОшибки(); - УдаляемыйФайл = Новый Файл(Путь); - Если УдаляемыйФайл.ЭтоФайл() и УдаляемыйФайл.ПолучитьТолькоЧтение() Тогда - УдаляемыйФайл.УстановитьТолькоЧтение(Ложь); - Попытка - УдалитьФайлы(Путь); - Возврат Истина; - Исключение - //Лог.Предупреждение(ТекстОшибки); - КонецПопытки; - Иначе - //Лог.Предупреждение(ТекстОшибки); - КонецЕсли; - КонецПопытки; - - Возврат Ложь; - -КонецФункции - -мВременныеФайлы = Новый Массив; -//Лог = Логирование.ПолучитьЛог("oscript.app.tempfiles"); \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 4566918e2..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 1e76386ce..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ВременныеФайлы - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index c8ecf2899..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,19 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.xml" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.xml" deleted file mode 100644 index de1da74ab..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.xml" +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - 34d3e7a1-d956-4b27-b02f-72da65b7b961 - 0098a90c-15f5-49cb-b685-df792b2c4b30 - - - 24518f9a-7802-4cfb-a587-80f522fc1f97 - 531d1ba5-bbcf-43c8-9112-90e30eefea16 - - - - ГенераторОтчетаJUnitXML - - - ru - Генератор отчета JUnit XML - - - - false - DataProcessor.ГенераторОтчетаJUnitXML.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 - - - - - СтатусыJUnit - - - ru - Статусы junit - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
Форма
- -
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Ext/ObjectModule.bsl" deleted file mode 100644 index 63a27256e..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,115 +0,0 @@ - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.ГенераторОтчета); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "Отчет о тестировании в формате MXL"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -// { Report generator interface -Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт - ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); - ЭтотОбъект.ТипыУзловДереваТестов = ПостроительДереваТестов.ТипыУзловДереваТестов; - ЭтотОбъект.СостоянияТестов = КонтекстЯдра.СостоянияТестов; - Отчет = СоздатьОтчетНаСервере(РезультатыТестирования); - - Возврат Отчет; -КонецФункции - -Функция СоздатьОтчетНаСервере(РезультатыТестирования) Экспорт - ЗаписьXML = Новый ЗаписьXML; - ЗаписьXML.УстановитьСтроку("UTF-8"); - ЗаписьXML.ЗаписатьОбъявлениеXML(); - - ЗаписьXML.ЗаписатьНачалоЭлемента("testsuites"); - ЗаписьXML.ЗаписатьАтрибут("name", XMLСтрока(РезультатыТестирования.Имя)); - ЗаписьXML.ЗаписатьАтрибут("time", XMLСтрока(РезультатыТестирования.ВремяВыполнения)); - ЗаписьXML.ЗаписатьАтрибут("tests", XMLСтрока(РезультатыТестирования.КоличествоТестов)); - ЗаписьXML.ЗаписатьАтрибут("failures", XMLСтрока(РезультатыТестирования.КоличествоСломанныхТестов)); - ЗаписьXML.ЗаписатьАтрибут("errors", XMLСтрока(РезультатыТестирования.КоличествоОшибочныхТестов)); - ЗаписьXML.ЗаписатьАтрибут("skipped", XMLСтрока(РезультатыТестирования.КоличествоНеРеализованныхТестов)); - - ВывестиДанныеОтчетаТестированияРекурсивно(ЗаписьXML, РезультатыТестирования); - - ЗаписьXML.ЗаписатьКонецЭлемента(); - - СтрокаXML = ЗаписьXML.Закрыть(); - Отчет = Новый ТекстовыйДокумент; - Отчет.ДобавитьСтроку(СтрокаXML); - - Возврат Отчет; -КонецФункции - -Процедура ВывестиДанныеОтчетаТестированияРекурсивно(ЗаписьXML, РезультатыТестирования, ИмяРодителя = "") - Если РезультатыТестирования.Тип = ТипыУзловДереваТестов.Контейнер Тогда - ЗаписьXML.ЗаписатьНачалоЭлемента("testsuite"); - ЗаписьXML.ЗаписатьАтрибут("name", РезультатыТестирования.Имя); - Для Каждого ЭлементКоллекции Из РезультатыТестирования.Строки Цикл - ВывестиДанныеОтчетаТестированияРекурсивно(ЗаписьXML, ЭлементКоллекции, РезультатыТестирования.Имя); - КонецЦикла; - ЗаписьXML.ЗаписатьКонецЭлемента(); - Иначе - ВывестиРезультатЭлемента(ЗаписьXML, РезультатыТестирования, ИмяРодителя); - КонецЕсли; -КонецПроцедуры - -Процедура ВывестиРезультатЭлемента(ЗаписьXML, РезультатыТестирования, ИмяРодителя) - ЗаписьXML.ЗаписатьНачалоЭлемента("testcase"); - ЗаписьXML.ЗаписатьАтрибут("classname", XMLСтрока(ИмяРодителя)); - ЗаписьXML.ЗаписатьАтрибут("name", XMLСтрока(РезультатыТестирования.Представление)); - ЗаписьXML.ЗаписатьАтрибут("time", XMLСтрока(РезультатыТестирования.ВремяВыполнения)); - - Если РезультатыТестирования.Состояние = СостоянияТестов.Пройден Тогда - ЗаписьXML.ЗаписатьАтрибут("status", "passed"); - ИначеЕсли РезультатыТестирования.Состояние = СостоянияТестов.НеРеализован Тогда - СтатусJUnit = "skipped"; - ЗаписьXML.ЗаписатьАтрибут("status", СтатусJUnit); - ЗаписьXML.ЗаписатьНачалоЭлемента(СтатусJUnit); - ЗаписьXML.ЗаписатьКонецЭлемента(); - ИначеЕсли РезультатыТестирования.Состояние = СостоянияТестов.Сломан Тогда - СтатусJUnit = "failure"; - ЗаписьXML.ЗаписатьАтрибут("status", СтатусJUnit); - ЗаписьXML.ЗаписатьНачалоЭлемента(СтатусJUnit); - Сообщение = УдалитьНедопустимыеСимволыXML(РезультатыТестирования.Сообщение); - ЗаписьXML.ЗаписатьАтрибут("message", XMLСтрока(Сообщение)); - ЗаписьXML.ЗаписатьКонецЭлемента(); - ИначеЕсли РезультатыТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка Тогда - СтатусJUnit = "error"; - ЗаписьXML.ЗаписатьАтрибут("status", СтатусJUnit); - ЗаписьXML.ЗаписатьНачалоЭлемента(СтатусJUnit); - Сообщение = УдалитьНедопустимыеСимволыXML(РезультатыТестирования.Сообщение); - ЗаписьXML.ЗаписатьАтрибут("message", XMLСтрока(Сообщение)); - ЗаписьXML.ЗаписатьКонецЭлемента(); - КонецЕсли; - ЗаписьXML.ЗаписатьКонецЭлемента(); -КонецПроцедуры - -#Если ТолстыйКлиентОбычноеПриложение Тогда -Процедура Показать(Отчет) Экспорт - Отчет.Показать(); -КонецПроцедуры -#КонецЕсли - -Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт - Отчет.Записать(ПолныйПутьФайла); -КонецПроцедуры -// } Report generator interface - -// { Helpers -Функция УдалитьНедопустимыеСимволыXML(Знач Результат) - Позиция = НайтиНедопустимыеСимволыXML(Результат); - Пока Позиция > 0 Цикл - Результат = Лев(Результат, Позиция - 1) + Сред(Результат, Позиция + 1); - Позиция = НайтиНедопустимыеСимволыXML(Результат, Позиция); - КонецЦикла; - - Возврат Результат; -КонецФункции -// } Helpers diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 4e7ece186..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index da3afde50..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ГенераторОтчетаJUnitXML - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 9f00ea34d..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,44 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Report generator interface -&НаКлиенте -Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт - Объект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов; - Объект.СостоянияТестов = КонтекстЯдра.Объект.СостоянияТестов; - Возврат СоздатьОтчетНаСервере(РезультатыТестирования); -КонецФункции - -&НаСервере -Функция СоздатьОтчетНаСервере(РезультатыТестирования) - Возврат ЭтотОбъектНаСервере().СоздатьОтчетНаСервере(РезультатыТестирования); -КонецФункции - -&НаКлиенте -Процедура Показать(Отчет) Экспорт - Отчет.Показать(); -КонецПроцедуры - -&НаКлиенте -Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт - Отчет.Записать(ПолныйПутьФайла); -КонецПроцедуры -// } Report generator interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers - diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4.xml" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4.xml" deleted file mode 100644 index b3b7d8e02..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4/Ext/Template.txt" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4/Ext/Template.txt" deleted file mode 100644 index 77cab717c..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4/Ext/Template.txt" +++ /dev/null @@ -1,206 +0,0 @@ - - - - - JUnit test result schema for the Apache Ant JUnit and JUnitReport tasks -Copyright © 2011, Windy Road Technology Pty. Limited -The Apache Ant JUnit XML Schema is distributed under the terms of the GNU Lesser General Public License (LGPL) http://www.gnu.org/licenses/lgpl.html -Permission to waive conditions of this license may be requested from Windy Road Support (http://windyroad.org/support). - - - - - - - - - - Contains an aggregation of testsuite results - - - - - - - - - - Derived from testsuite/@name in the non-aggregated documents - - - - - Starts at '0' for the first testsuite and is incremented by 1 for each following testsuite - - - - - - - - - - - - Contains the results of exexuting a testsuite - - - - - Properties (e.g., environment settings) set during test execution - - - - - - - - - - - - - - - - - - - - - - - - Indicates that the test errored. An errored test is one that had an unanticipated problem. e.g., an unchecked throwable; or a problem with the implementation of the test. Contains as a text node relevant data for the error, e.g., a stack trace - - - - - - - The error message. e.g., if a java exception is thrown, the return value of getMessage() - - - - - The type of error that occured. e.g., if a java execption is thrown the full class name of the exception. - - - - - - - - - Indicates that the test failed. A failure is a test which the code has explicitly failed by using the mechanisms for that purpose. e.g., via an assertEquals. Contains as a text node relevant data for the failure, e.g., a stack trace - - - - - - - The message specified in the assert - - - - - The type of the assert. - - - - - - - - - - Name of the test method - - - - - Full class name for the class the test method is in. - - - - - Time taken (in seconds) to execute the test - - - - - - - Data that was written to standard out while the test was executed - - - - - - - - - - Data that was written to standard error while the test was executed - - - - - - - - - - - Full class name of the test for non-aggregated testsuite documents. Class name without the package for aggregated testsuites documents - - - - - - - - - - when the test was executed. Timezone may not be specified. - - - - - Host on which the tests were executed. 'localhost' should be used if the hostname cannot be determined. - - - - - - - - - - The total number of tests in the suite - - - - - The total number of tests in the suite that failed. A failure is a test which the code has explicitly failed by using the mechanisms for that purpose. e.g., via an assertEquals - - - - - The total number of tests in the suite that errorrd. An errored test is one that had an unanticipated problem. e.g., an unchecked throwable; or a problem with the implementation of the test. - - - - - Time taken (in seconds) to execute the tests in the suite - - - - - - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.xml" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.xml" deleted file mode 100644 index a2a5e72ca..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.xml" +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - a04f8187-ec37-4bc7-a9e7-094a9f9f4782 - a2f8dce6-6d9c-44ad-be59-5bbb0bfc6ff1 - - - 6c288d37-5757-40b7-8204-90e6dd3cce64 - 8a890cc3-0df9-4550-ab0d-21213a4b1245 - - - - ГенераторОтчетаMXL - - - ru - Генератор отчета MXL - - - - false - DataProcessor.ГенераторОтчетаMXL.Form.Форма - - false - - - - - - - ТипыУзловДереваТестов - - - ru - Типы узлов дерева тестов - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - СостоянияТестов - - - ru - Состояния тестов - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
Форма
- -
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Ext/ObjectModule.bsl" deleted file mode 100644 index 4be4b5044..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,81 +0,0 @@ - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.ГенераторОтчета); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "Отчет о тестировании в формате MXL"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -// { Report generator interface -Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт - ЭтотОбъект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").ТипыУзловДереваТестов; - ЭтотОбъект.СостоянияТестов = КонтекстЯдра.СостоянияТестов; - Отчет = СоздатьОтчетНаСервере(РезультатыТестирования); - - Возврат Отчет; -КонецФункции - -Функция СоздатьОтчетНаСервере(РезультатыТестирования) Экспорт - Если (РезультатыТестирования.КоличествоСломанныхТестов = 0) И (РезультатыТестирования.КоличествоОшибочныхТестов = 0) И (РезультатыТестирования.КоличествоНеРеализованныхТестов = 0) Тогда - Возврат Неопределено; - КонецЕсли; - - МакетОтчетТестирования = ПолучитьМакет("ОтчетТестирования"); - Отчет = Новый ТабличныйДокумент; - ОбластьЗаголовок = МакетОтчетТестирования.ПолучитьОбласть("Заголовок"); - ЗаполнитьЗначенияСвойств(ОбластьЗаголовок.Параметры, РезультатыТестирования); - ОбластьЗаголовок.Параметры.ВремяВыполненияСтрока = Формат(Дата(1, 1, 1) + РезультатыТестирования.ВремяВыполнения, "ДЛФ=T"); - Отчет.Вывести(ОбластьЗаголовок); - - Отчет.НачатьАвтогруппировкуСтрок(); - ВывестиДанныеОтчетаТестированияРекурсивно(ТипыУзловДереваТестов, СостоянияТестов, РезультатыТестирования, МакетОтчетТестирования, Отчет); - Отчет.ЗакончитьАвтогруппировкуСтрок(); - - Отчет.ОтображатьСетку = Ложь; - Отчет.Защита = Ложь; - Отчет.ТолькоПросмотр = Ложь; - Отчет.ОтображатьЗаголовки = Ложь; - - Возврат Отчет; -КонецФункции - -Процедура ВывестиДанныеОтчетаТестированияРекурсивно(ТипыУзловДереваТестов, СостоянияТестов, РезультатыТестирования, МакетОтчетТестирования, Отчет, Уровень = 0) - Если РезультатыТестирования.Состояние <> СостоянияТестов.Пройден Тогда - Если РезультатыТестирования.Тип = ТипыУзловДереваТестов.Контейнер Тогда - ОбластьКонтейнер = МакетОтчетТестирования.ПолучитьОбласть("Контейнер"); - ОбластьКонтейнер.Параметры.ИмяКонтейнера = РезультатыТестирования.Имя; - Отчет.Вывести(ОбластьКонтейнер, Уровень); - Для каждого ЭлементКоллекции Из РезультатыТестирования.Строки Цикл - ВывестиДанныеОтчетаТестированияРекурсивно(ТипыУзловДереваТестов, СостоянияТестов, ЭлементКоллекции, МакетОтчетТестирования, Отчет, Уровень + 1); - КонецЦикла; - Иначе - ОбластьЭлемент = МакетОтчетТестирования.ПолучитьОбласть("Элемент"); - ОбластьЭлемент.Параметры.ИмяМетода = РезультатыТестирования.Представление; - ОбластьЭлемент.Параметры.Путь = РезультатыТестирования.Путь; - ОбластьЭлемент.Параметры.Сообщение = РезультатыТестирования.Сообщение; - ОбластьЭлемент.Области.Элемент.Отступ = Уровень * 2; - Отчет.Вывести(ОбластьЭлемент, Уровень); - КонецЕсли; - КонецЕсли; -КонецПроцедуры - -#Если ТолстыйКлиентОбычноеПриложение Тогда -Процедура Показать(Отчет) Экспорт - Если Отчет <> Неопределено Тогда - ЗаголовокОкнаОтчета = НСтр("ru = 'Отчет об автоматическом тестировании'"); - Отчет.Показать(ЗаголовокОкнаОтчета); - КонецЕсли; -КонецПроцедуры -#КонецЕсли - -Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт - ВызватьИсключение "Метод не реализован"; -КонецПроцедуры -// } Report generator interface diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 3e7149b16..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 1bf4c9c49..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ГенераторОтчетаMXL - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 793020bfd..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,46 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Report generator interface -&НаКлиенте -Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт - Объект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов; - Объект.СостоянияТестов = КонтекстЯдра.Объект.СостоянияТестов; - Возврат СоздатьОтчетНаСервере(РезультатыТестирования); -КонецФункции - -&НаСервере -Функция СоздатьОтчетНаСервере(РезультатыТестирования) - Возврат ЭтотОбъектНаСервере().СоздатьОтчетНаСервере(РезультатыТестирования); -КонецФункции - -&НаКлиенте -Процедура Показать(Отчет) Экспорт - Если Отчет <> Неопределено Тогда - ЗаголовокОкнаОтчета = НСтр("ru = 'Отчет об автоматическом тестировании'"); - Отчет.Показать(ЗаголовокОкнаОтчета); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт - ВызватьИсключение "Метод не реализован"; -КонецПроцедуры -// } Report generator interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.xml" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.xml" deleted file mode 100644 index c8c488168..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217/Ext/Template.xml" "b/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217/Ext/Template.xml" deleted file mode 100644 index 2ae3b3d68..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217/Ext/Template.xml" +++ /dev/null @@ -1,184 +0,0 @@ - - - - ru - ru - - ru - Русский - Русский - - - - 1 - - 0 - - 1 - - - - - 1 - - 2 - - - 3 - - - ru - Запущено тестов - [КоличествоТестов], ошибочных тестов - [КоличествоОшибочныхТестов], не прошло проверку - [КоличествоСломанныхТестов], пропущено - [КоличествоНеРеализованныхТестов] - - - - - - - - 2 - - 2 - - - 4 - - - ru - Общее время выполнения: [ВремяВыполнения] ( [ВремяВыполненияСтрока] сек. ) - - - - - - - - 5 - - - - 5 - - - ru - [ИмяКонтейнера] - - - - - - - - 8 - - 6 - - - 7 - - - ru - [ИмяМетода], путь [Путь] - - - - - - - - 9 - - 2 - - - 0 - - - - - - 10 - - - - 2 - - - ru - [Сообщение] - - - - - - - true - 8 - 11 - 11 - - Заголовок - - Rows - 1 - 2 - -1 - -1 - - - - Контейнер - - Rows - 4 - 5 - -1 - -1 - - - - Элемент - - Rows - 7 - 10 - -1 - -1 - - - - - 946 - - - Template - - - 0 - d3p1:FireBrick - Template - - - 0 - Template - - - 0 - Template - 2 - - - 0 - d3p1:IndianRed - Template - - - 0 - 72 - d3p1:IndianRed - Template - - - 72 - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml" deleted file mode 100644 index 63fdc8663..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml" +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - b6e00ba1-9825-4b58-b46a-a7c8fd541c73 - 423f3c29-65bb-4e60-b669-d84cf743dd12 - - - f621c2b2-9619-4955-8dbd-440f5c92a04f - 6efa2dd9-e8a4-4f64-907a-c898be2f6996 - - - - ЗагрузчикИзПодсистемКонфигурации - - - ru - Загрузчик из подсистем конфигурации - - - - false - DataProcessor.ЗагрузчикИзПодсистемКонфигурации.Form.УправляемаяФорма - - false - - - - -
УправляемаяФорма
-
ФормаВыбораПодсистемы
-
ФормаВыбораПодсистемУФ
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" deleted file mode 100644 index 9c5a0a312..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,332 +0,0 @@ -Перем мЗначенияТиповСтроки Экспорт; - -Перем КэшПостроительДереваТестов; -Перем ЗагружаемыйПуть; - -Перем КонтейнерТестов; -Перем ТекущаяГруппа; - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Загрузчик); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "Загрузить тесты из конфигурации"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -// { Loader interface -#Если ТолстыйКлиентОбычноеПриложение Тогда -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - ФормаВыбораПодсистем = ЭтотОбъект.ПолучитьФорму("ФормаВыбораПодсистемы"); - ФормаВыбораПодсистем.РежимВыбора = Истина; - ФормаВыбораПодсистем.ОтборПоИмениТеста = ""; - ВыбранныйПуть = ФормаВыбораПодсистем.ОткрытьМодально(); - - Возврат ВыбранныйПуть; -КонецФункции -#КонецЕсли - -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - Перем ДеревоТестов; - - ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - - ДеревоТестов = ЗагрузитьПуть(Путь, ПостроительДереваТестов, ЗагрузчикФайла); - - Возврат ДеревоТестов; -КонецФункции - -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - ОбъектМетаданных = ПолучитьОбъектМетаданныхПоПути(Путь); - Контекст = СоздатьОбработкуПоМетаданным(ОбъектМетаданных); - - Возврат Контекст; -КонецФункции -// } Loader interface - -Функция ЗагрузитьПуть(Путь, ПостроительДереваТестов, ЗагрузчикФайла) Экспорт - ОбъектМетаданных = ПолучитьОбъектМетаданныхПоПути(Путь); - ДеревоТестов = ОбработатьОбъектМетаданных(ОбъектМетаданных, ПостроительДереваТестов, ЗагрузчикФайла); - - Возврат ДеревоТестов; -КонецФункции - -Функция ПолучитьОбъектМетаданныхПоПути(Путь) Экспорт - Перем ОбъектКонфигурации; - Попытка - Выполнить("ОбъектКонфигурации = " + Путь); - Исключение - ВызватьИсключение "Передан невалидный путь <" + Путь + ">"; - КонецПопытки; - - Возврат ОбъектКонфигурации; -КонецФункции - -Функция ОбработатьОбъектМетаданных(ОбъектМетаданных, ПостроительДереваТестов, ЗагрузчикФайла) - Если ЭтоПодсистема(ОбъектМетаданных) Тогда - Контейнер = ЗагрузитьПодсистему(ОбъектМетаданных, ПостроительДереваТестов, ЗагрузчикФайла); - Иначе - Контейнер = ЗагрузитьОбработку(ОбъектМетаданных, ПостроительДереваТестов, ЗагрузчикФайла); - КонецЕсли; - - Возврат Контейнер; -КонецФункции - -Функция ЭтоПодсистема(ОбъектМетаданных) - Возврат (Найти(НРег(ОбъектМетаданных.ПолноеИмя()), НРег("Подсистема")) > 0); -КонецФункции - -Функция ЗагрузитьПодсистему(Подсистема, ПостроительДереваТестов, ЗагрузчикФайла) - Контейнер = ПостроительДереваТестов.СоздатьКонтейнер(Подсистема.Имя, ПостроительДереваТестов.ИконкиУзловДереваТестов.Подсистема); - Для каждого ПодчиненнаяПодсистема Из Подсистема.Подсистемы цикл - КонтейнерПодчиненнойПодсистемы = ЗагрузитьПодсистему(ПодчиненнаяПодсистема, ПостроительДереваТестов, ЗагрузчикФайла); - Если КонтейнерПодчиненнойПодсистемы.Строки.Количество() > 0 Тогда - Контейнер.Строки.Добавить(КонтейнерПодчиненнойПодсистемы); - КонецЕсли; - КонецЦикла; - - Для каждого ДочернееМетаданное Из Подсистема.Состав цикл - Если Метаданные.Обработки.Найти(ДочернееМетаданное.Имя) <> Неопределено - ИЛИ Метаданные.Отчеты.Найти(ДочернееМетаданное.Имя) <> Неопределено Тогда - КонтейнерСТестамиОбработки = ЗагрузитьОбработку(ДочернееМетаданное, ПостроительДереваТестов, ЗагрузчикФайла); - Если КонтейнерСТестамиОбработки.Строки.Количество() > 0 Тогда - Контейнер.Строки.Добавить(КонтейнерСТестамиОбработки); - КонецЕсли; - КонецЕсли; - КонецЦикла; - - Возврат Контейнер; -КонецФункции - -Функция ЗагрузитьОбработку(МетаданныеОбработки, ПостроительДереваТестов, ЗагрузчикФайла) Экспорт - Обработка = СоздатьОбработкуПоМетаданным(МетаданныеОбработки); - Попытка - Контейнер = ЗагрузитьТестыВНовомФормате(ПостроительДереваТестов, Обработка, МетаданныеОбработки, ЗагрузчикФайла); - Исключение - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда - ВызватьИсключение; - Иначе - Контейнер = ЗагрузитьТестыВСтаромФормате(ПостроительДереваТестов, Обработка, МетаданныеОбработки, ЗагрузчикФайла); - КонецЕсли; - КонецПопытки; - - Возврат Контейнер; -КонецФункции - -Функция ЗагрузитьТестыВНовомФормате(ПостроительДереваТестов, Обработка, МетаданныеОбработки, ЗагрузчикФайла) - КэшПостроительДереваТестов = ПостроительДереваТестов; - Если Метаданные.Обработки.Содержит(МетаданныеОбработки) Тогда - ЗагружаемыйПуть = СтрЗаменить("Метаданные." + МетаданныеОбработки.ПолноеИмя(), ".Обработка.", ".Обработки."); - ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Обработка; - ИначеЕсли Метаданные.Отчеты.Содержит(МетаданныеОбработки) Тогда - ЗагружаемыйПуть = СтрЗаменить("Метаданные." + МетаданныеОбработки.ПолноеИмя(), ".Отчет.", ".Отчеты."); - ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Отчет; - КонецЕсли; - КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(МетаданныеОбработки.Имя, ИконкаУзла); - Обработка.ЗаполнитьНаборТестов(ЭтотОбъект); - Результат = КонтейнерТестов; - КонтейнерТестов = Неопределено; - ТекущаяГруппа = Неопределено; - - Возврат Результат; -КонецФункции - -Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки) - ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов"); - - Возврат ЭтоНовыйФорматОбработки; -КонецФункции - -Функция ЗагрузитьТестыВСтаромФормате(ПостроительДереваТестов, Обработка, МетаданныеОбработки, ЗагрузчикФайла) - - Обработка = СоздатьОбработкуПоМетаданным(МетаданныеОбработки); - Попытка - СписокТестов = Обработка.ПолучитьСписокТестов(); - Исключение - Описание = ОписаниеОшибки(); - Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда - ВызватьИсключение "Старый формат тестов в обработке тестов <"+МетаданныеОбработки.Имя+">."+Символы.ПС+ - "Метод ПолучитьСписокТестов сейчас не принимает параметров"; - КонецЕсли; - - Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда - ВызватьИсключение Описание; - КонецЕсли; - КонецПопытки; - - СлучайныйПорядокВыполнения = Истина; - Попытка - СлучайныйПорядокВыполнения = Обработка.РазрешенСлучайныйПорядокВыполненияТестов(); - Исключение - КонецПопытки; - Путь = СтрЗаменить("Метаданные." + МетаданныеОбработки.ПолноеИмя(), ".Обработка.", ".Обработки."); - Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, ЗагрузчикФайла, СписокТестов, МетаданныеОбработки.Имя, Путь, СлучайныйПорядокВыполнения); - - Возврат Контейнер; -КонецФункции - -Функция ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, ЗагрузчикФайла, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина) Экспорт - - Контейнер = ЗагрузчикФайла.ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения); - - Возврат Контейнер; - -КонецФункции - -Функция СоздатьОбработкуПоМетаданным(МетаданныеОбработки) - Если Метаданные.Обработки.Найти(МетаданныеОбработки.Имя) <> Неопределено Тогда - Возврат Обработки[МетаданныеОбработки.Имя].Создать(); - ИначеЕсли Метаданные.Отчеты.Найти(МетаданныеОбработки.Имя) <> Неопределено Тогда - Возврат Отчеты[МетаданныеОбработки.Имя].Создать(); - Иначе - ВызватьИсключение "Не удалось найти обработку / отчет с идентификатором """+МетаданныеОбработки.Имя+""""; - КонецЕсли; -КонецФункции - -//{ Работа со встроенными в конфигурацию тестами и подсистемами -Процедура ЗаполнитьДеревоПодсистем(ДеревоПодсистем, ОтборПоИмениТеста) Экспорт - Для каждого МетаПодсистема из Метаданные.Подсистемы цикл - ДобавитьПодсистемуВДерево(МетаПодсистема, ДеревоПодсистем, ЭтотОбъект, ОтборПоИмениТеста); - КонецЦикла; -КонецПроцедуры - -Функция ДобавитьПодсистемуВДерево(ТекМетаПодсистема, РодительскаяСтрока, ОбработкаОбъект, ОтборПоИмениТеста) - СтрокаПодсистемы = ПодчиненныеСтроки(РодительскаяСтрока).Добавить(); - СтрокаПодсистемы.Имя = ТекМетаПодсистема.Имя; - СтрокаПодсистемы.Путь = "Метаданные."+СтрЗаменить(ТекМетаПодсистема.ПолноеИмя(), "Подсистема.", "Подсистемы."); - СтрокаПодсистемы.ТипСтроки = мЗначенияТиповСтроки.Подсистема; - Для Каждого Подсистема из ТекМетаПодсистема.Подсистемы Цикл - ДобавитьПодсистемуВДерево(Подсистема,СтрокаПодсистемы, ОбработкаОбъект, ОтборПоИмениТеста); - КонецЦикла; - - Для каждого ОбъектМетаданных из ТекМетаПодсистема.Состав цикл - Если Найти(ОбъектМетаданных.ПолноеИмя(), "Обработка."+ОтборПоИмениТеста) = 1 Тогда - СтрокаТеста = ПодчиненныеСтроки(СтрокаПодсистемы).Добавить(); - СтрокаТеста.Имя = ОбъектМетаданных.Имя; - СтрокаТеста.Путь = "Метаданные."+СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), "Обработка.", "Обработки."); - СтрокаТеста.ТипСтроки = мЗначенияТиповСтроки.ТестовыйСлучай; - ИначеЕсли Найти(ОбъектМетаданных.ПолноеИмя(), "Отчет."+ОтборПоИмениТеста) = 1 Тогда - СтрокаТеста = ПодчиненныеСтроки(СтрокаПодсистемы).Добавить(); - СтрокаТеста.Имя = ОбъектМетаданных.Имя; - СтрокаТеста.Путь = "Метаданные."+СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), "Отчет.", "Отчеты."); - СтрокаТеста.ТипСтроки = мЗначенияТиповСтроки.ТестовыйСлучайОтчет; - КонецЕсли; - КонецЦикла; - - Если ПодчиненныеСтроки(СтрокаПодсистемы).Количество() = 0 Тогда - ПодчиненныеСтроки(РодительскаяСтрока).Удалить(СтрокаПодсистемы); - КонецЕсли; - -КонецФункции - -Функция ПодчиненныеСтроки(СтрокаДерева, РезЭтоСтрокаДереваУФ = Ложь) Экспорт - РезЭтоСтрокаДереваУФ = ЭтоСтрокаДереваУФ(СтрокаДерева); - Если Не РезЭтоСтрокаДереваУФ Тогда - Строки = СтрокаДерева.Строки; - Иначе - Строки = СтрокаДерева.ПолучитьЭлементы(); - КонецЕсли; - Возврат Строки; -КонецФункции - -Функция ЭтоСтрокаДереваУФ(СтрокаДерева) - Рез = Ложь; - Если ТипЗнч(СтрокаДерева) = Тип("СтрокаДереваЗначений") ИЛИ ТипЗнч(СтрокаДерева) = Тип("ДеревоЗначений") Тогда - ИначеЕсли ТипЗнч(СтрокаДерева) = Тип("ДанныеФормыЭлементДерева") ИЛИ ТипЗнч(СтрокаДерева) = Тип("ДанныеФормыДерево") Тогда - Рез = Истина; - КонецЕсли; - Возврат Рез; -КонецФункции -//} - -// { API нового формата -Процедура СлучайныйПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Истина; - КонецЕсли; -КонецПроцедуры - -Процедура СтрогийПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь; - КонецЕсли; -КонецПроцедуры - -Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт - ТекущаяГруппа = КэшПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, КэшПостроительДереваТестов.ИконкиУзловДереваТестов.Группа); - ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения; - КонтейнерТестов.Строки.Добавить(ТекущаяГруппа); -КонецПроцедуры - -Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт - Элемент = КэшПостроительДереваТестов.СоздатьЭлемент(ЗагружаемыйПуть, ИмяМетода, Представление); - Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда - Элемент.Параметры = Параметры; - КонецЕсли; - Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда - ТекущаяГруппа.Строки.Добавить(Элемент); - Иначе - КонтейнерТестов.Строки.Добавить(Элемент); - КонецЕсли; - - Возврат Элемент; -КонецФункции - -Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыТеста = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыТеста.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыТеста; -КонецФункции -// } API нового формата - -// { Helpers -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - ИЛИ Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции -// } Helpers - -мЗначенияТиповСтроки = Новый Структура; -мЗначенияТиповСтроки.Вставить("КаталогТестов", 0); -мЗначенияТиповСтроки.Вставить("ТестовыйСлучай", 1); -мЗначенияТиповСтроки.Вставить("ТестовыйСлучайОтчет", 7); -мЗначенияТиповСтроки.Вставить("ТестовыйМетод", 2); -мЗначенияТиповСтроки.Вставить("Подсистема", 3); -мЗначенияТиповСтроки.Вставить("Ошибка", 9); -мЗначенияТиповСтроки = Новый ФиксированнаяСтруктура(мЗначенияТиповСтроки); diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" deleted file mode 100644 index 870f82efd..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" deleted file mode 100644 index 6140d8764..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" +++ /dev/null @@ -1,28 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ЗагрузчикИзПодсистемКонфигурации - - true - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Полное имя браузера тестов</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" deleted file mode 100644 index 8defe6981..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" +++ /dev/null @@ -1,409 +0,0 @@ -&НаКлиенте -Перем ПостроительДереваТестов; -&НаКлиенте -Перем ЗагружаемыйПуть; - -&НаКлиенте -Перем КонтейнерТестов; -&НаКлиенте -Перем ТекущаяГруппа; - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Loader interface - -&НаКлиенте -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - - ВыбратьПутьИнтерактивноРаботаСОкном(КонтекстЯдра); - -КонецФункции - -&НаКлиенте -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов; - - СтруктураМетаданных = СтруктураМетаданныхПоПереданномуПути(Путь); - ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); - ДеревоТестов = Неопределено; - ОбработатьОбъектМетаданных(СтруктураМетаданных, ДеревоТестов); - Возврат ДеревоТестов; -КонецФункции - -&НаКлиенте -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - Перем Контекст; - Если ЭтоПутьККлиентскомуКонтексту(Путь) Тогда - Контекст = ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь); - Иначе - Контекст = ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь); - КонецЕсли; - - Возврат Контекст; -КонецФункции -// } Loader interface - -&НаКлиенте -Функция ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь) - ИдентификаторКонтекста = ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Сред(Путь, СтрДлина(ПрефиксПутейСФормами()) + 1)); - ОписаниеКонтекста = ПолучитьФорму("Обработка." + ИдентификаторКонтекста + ".Форма", , ЭтаФорма, Новый УникальныйИдентификатор); - КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ИдентификаторКонтекста, Истина); - - Возврат ОписаниеКонтекста; -КонецФункции - -&НаКлиенте -Функция ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь) - ИдентификаторКонтекста = ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Путь); - ОписаниеКонтекста = КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ИдентификаторКонтекста, Истина); - - Возврат ОписаниеКонтекста; -КонецФункции - -&НаСервере -Функция СтруктураМетаданныхПоПереданномуПути(Путь) - ОбъектМетаданных = ЭтотОбъектНаСервере().ПолучитьОбъектМетаданныхПоПути(Путь); - Если ЭтоПодсистема(ОбъектМетаданных.ПолноеИмя()) Тогда - СтруктураМетаданных = СтруктураМетаданныхПодсистемы(ОбъектМетаданных); - Иначе - СтруктураМетаданных = СтрокаДереваМетаданных(ОбъектМетаданных); - КонецЕсли; - Возврат СтруктураМетаданных; -КонецФункции - -&НаСервере -Функция СтруктураМетаданныхПодсистемы(Подсистема) - СтруктураМетаданных = СтрокаДереваМетаданных(Подсистема); - Для Каждого ПодчиненнаяПодсистема Из Подсистема.Подсистемы Цикл - СтруктураМетаданных.Строки.Добавить(СтруктураМетаданныхПодсистемы(ПодчиненнаяПодсистема)); - КонецЦикла; - - Для Каждого ДочернееМетаданное Из Подсистема.Состав цикл - Если Метаданные.Обработки.Найти(ДочернееМетаданное.Имя) <> Неопределено - ИЛИ Метаданные.Отчеты.Найти(ДочернееМетаданное.Имя) <> Неопределено Тогда - СтруктураМетаданныхОбработки = СтрокаДереваМетаданных(ДочернееМетаданное); - СтруктураМетаданных.Строки.Добавить(СтруктураМетаданныхОбработки); - КонецЕсли; - КонецЦикла; - - Возврат СтруктураМетаданных; -КонецФункции - -&НаСервере -Функция СтрокаДереваМетаданных(ОбъектМетаданных) - СтрокаДерева = Новый Структура(); - СтрокаДерева.Вставить("Имя", ОбъектМетаданных.Имя); - СтрокаДерева.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя()); - СтрокаДерева.Вставить("Строки", Новый Массив); - - Возврат СтрокаДерева; -КонецФункции - -&НаКлиенте -Функция ОбработатьОбъектМетаданных(СтруктураМетаданных, ДеревоТестов) - Если ЭтоПодсистема(СтруктураМетаданных.ПолноеИмя) Тогда - Контейнер = ЗагрузитьПодсистему(СтруктураМетаданных, ДеревоТестов); - Иначе - Контейнер = ЗагрузитьОбработку(СтруктураМетаданных, ДеревоТестов); - КонецЕсли; - - Возврат Контейнер; -КонецФункции - -&НаКлиентеНаСервереБезКонтекста -Функция ЭтоПодсистема(ПолноеИмяОбъектаМетаданных) - Возврат (Найти(НРег(ПолноеИмяОбъектаМетаданных), НРег("Подсистема")) > 0); -КонецФункции - -&НаКлиенте -Функция ЗагрузитьПодсистему(СтруктураМетаданных, ДеревоТестов) - - Контейнер = ПостроительДереваТестов.СоздатьКонтейнер(СтруктураМетаданных.Имя, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Подсистема); - Для Каждого ПодчиненноеМетаданное Из СтруктураМетаданных.Строки Цикл - Если ЭтоПодсистема(ПодчиненноеМетаданное.ПолноеИмя) Тогда - ЗагрузитьПодсистему(ПодчиненноеМетаданное, Контейнер); - Иначе - ЗагрузитьОбработку(ПодчиненноеМетаданное, Контейнер); - КонецЕсли; - КонецЦикла; - - Если ДеревоТестов = Неопределено Тогда - ДеревоТестов = Контейнер; - ИначеЕсли Контейнер.Строки.Количество() > 0 Тогда - ДеревоТестов.Строки.Добавить(Контейнер); - КонецЕсли; - -КонецФункции - -&НаКлиенте -Функция ЗагрузитьОбработку(СтруктураМетаданных, ДеревоТестов) - ЗагружаемыйПуть = СтрЗаменить("Метаданные." + СтруктураМетаданных.ПолноеИмя, ".Обработка.", ".Обработки."); - ЗагружаемыйПуть = СтрЗаменить(ЗагружаемыйПуть, ".Отчет.", ".Отчеты."); - Контейнер = ЗагрузитьОбработкуНаСервере(ЗагружаемыйПуть); - КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьОбработкуНаКлиенте(СтруктураМетаданных); - Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда - Контейнер.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки); - КонецЕсли; - Если ДеревоТестов = Неопределено Тогда - ДеревоТестов = Контейнер; - ИначеЕсли Контейнер.Строки.Количество() > 0 Тогда - ДеревоТестов.Строки.Добавить(Контейнер); - КонецЕсли; - -КонецФункции - -&НаСервере -Функция ЗагрузитьОбработкуНаСервере(Путь) - КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере(); - - ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов"); - ЗагрузчикФайла = КонтекстЯдра.СоздатьОбъектПлагина("ЗагрузчикФайла"); - - ДеревоТестов = ЭтотОбъектНаСервере().ЗагрузитьПуть(Путь, ПостроительДереваТестов, ЗагрузчикФайла); - - Возврат ДеревоТестов; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьОбработкуНаКлиенте(СтруктураМетаданных) - ФормаОбработки = ПолучитьФорму(СтруктураМетаданных.ПолноеИмя + ".Форма"); - Попытка - Контейнер = ЗагрузитьТестыВНовомФормате_НаКлиенте(ФормаОбработки); - Исключение - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда - ВызватьИсключение; - Иначе - Контейнер = ЗагрузитьТестыВСтаромФормате_НаКлиенте(ФормаОбработки); - КонецЕсли; - КонецПопытки; - Возврат Контейнер; -КонецФункции - -&НаКлиенте -Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки) - ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов"); - - Возврат ЭтоНовыйФорматОбработки; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьТестыВНовомФормате_НаКлиенте(ФормаОбработки) - КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ПрефиксПутейСФормами() + СтрЗаменить(ЗагружаемыйПуть, "Метаданные.Обработки.", ""), ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма); - ФормаОбработки.ЗаполнитьНаборТестов(ЭтаФорма); - Результат = КонтейнерТестов; - КонтейнерТестов = Неопределено; - ТекущаяГруппа = Неопределено; - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьТестыВСтаромФормате_НаКлиенте(ФормаОбработки) - Попытка - СписокТестов = ФормаОбработки.ПолучитьСписокТестов(); - Исключение - Описание = ОписаниеОшибки(); - Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда - ВызватьИсключение "Старый формат тестов в обработке тестов <"+ЗагружаемыйПуть+">."+Символы.ПС+ - "Метод ПолучитьСписокТестов сейчас не принимает параметров"; - КонецЕсли; - - Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда - ВызватьИсключение Описание; - КонецЕсли; - КонецПопытки; - СлучайныйПорядокВыполнения = Истина; - Попытка - СлучайныйПорядокВыполнения = ФормаОбработки.РазрешенСлучайныйПорядокВыполненияТестов(); - Исключение - КонецПопытки; - - Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ПрефиксПутейСФормами() + СтрЗаменить(ЗагружаемыйПуть, "Обработка.", ""), ПрефиксПутейСФормами() + ЗагружаемыйПуть, СлучайныйПорядокВыполнения); - Контейнер.ИконкаУзла = ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма; - - Возврат Контейнер; -КонецФункции - -&НаСервере -Функция ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Путь) - ОбъектМетаданных = ЭтотОбъектНаСервере().ПолучитьОбъектМетаданныхПоПути(Путь); - - Возврат ОбъектМетаданных.Имя; -КонецФункции - -&НаСервере -Функция ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина) - КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере(); - - ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов"); - ЗагрузчикФайла = КонтекстЯдра.СоздатьОбъектПлагина("ЗагрузчикФайла"); - - Контейнер = ЭтотОбъектНаСервере().ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, ЗагрузчикФайла, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения); - - Возврат Контейнер; -КонецФункции - -&НаКлиенте -Функция ЭтоПутьККлиентскомуКонтексту(Путь) - ПрефиксПутейСФормами = ПрефиксПутейСФормами(); - Результат = (Найти(Путь, ПрефиксПутейСФормами) = 1); - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция ПрефиксПутейСФормами() - Возврат "УпрФорма # "; -КонецФункции - -// { API нового формата -&НаКлиенте -Процедура СлучайныйПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Истина; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура СтрогийПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт - ТекущаяГруппа = ПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Группа); - ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения; - КонтейнерТестов.Строки.Добавить(ТекущаяГруппа); -КонецПроцедуры - -&НаКлиенте -Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт - Элемент = ПостроительДереваТестов.СоздатьЭлемент(ПрефиксПутейСФормами() + ЗагружаемыйПуть, ИмяМетода, Представление); - Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда - Элемент.Параметры = Параметры; - КонецЕсли; - Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда - ТекущаяГруппа.Строки.Добавить(Элемент); - Иначе - КонтейнерТестов.Строки.Добавить(Элемент); - КонецЕсли; - - Возврат Элемент; -КонецФункции - -&НаКлиенте -Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыТеста = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыТеста.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыТеста; -КонецФункции -// } API нового формата - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции - -&НаКлиенте -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - Или Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции -// } Helpers - -// { Подсистема конфигурации xUnitFor1C - -&НаСервере -Функция ПолучитьКонтекстЯдраНаСервере() - - // Получаем доступ к серверному контексту обработки с использованием - // полного имени метаданных браузера тестов. Иначе нет возможности получить - // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте. - // При передаче на сервер клиентский контекст теряется. - КонтекстЯдра = Неопределено; - МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов); - Если НЕ МетаданныеЯдра = Неопределено - И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "Обработка", "Обработки"); - Выполнить("КонтекстЯдра = " + ИмяОбработкиКонекстаЯдра + ".Создать()"); - Иначе - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ВнешняяОбработка", "ВнешниеОбработки"); - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ".", Символы.ПС); - МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1); - ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2); - Выполнить("КонтекстЯдра = " + МенеджерОбъектов + ".Создать("""+ИмяОбъекта+""")"); - КонецЕсли; - - Возврат КонтекстЯдра; - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C - -// { Вспомогательные методы - -&НаКлиенте -Функция ВыбратьПутьИнтерактивноРаботаСОкном(КонтекстЯдра) Экспорт - - ПараметрыОткрытия = Новый Структура("ОтборПоИмениТеста", ""); - ИмяФормыВыбораПодсистемыУФ = СтрЗаменить(ЭтаФорма.ИмяФормы, "УправляемаяФорма", "ФормаВыбораПодсистемУФ"); - - ОткрытьФорму(ИмяФормыВыбораПодсистемыУФ, - ПараметрыОткрытия, ЭтаФорма,,,, - Новый ОписаниеОповещения("ВыбратьПутьИнтерактивноРаботаСОкномЗавершение", ЭтаФорма, КонтекстЯдра), - РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); - -КонецФункции - -&НаКлиенте -Процедура ВыбратьПутьИнтерактивноРаботаСОкномЗавершение(Результат, ДополнительныеПараметры) Экспорт - - КонтекстЯдра = ДополнительныеПараметры; - Описание = ОписаниеПлагина(КонтекстЯдра.Объект.ТипыПлагинов); - КонтекстЯдра.ЗагрузитьТесты(Описание.Идентификатор, Результат, КонтекстЯдра); - -КонецПроцедуры - -// } Вспомогательные методы \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244.xml" deleted file mode 100644 index 3a6977d1d..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - ФормаВыбораПодсистемУФ - - - ru - Форма выбора подсистем УФ - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form.xml" deleted file mode 100644 index c1670c24a..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form.xml" +++ /dev/null @@ -1,167 +0,0 @@ - -
- - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Выберите тестовый случай или всю подсистему</v8:content> - </v8:item> - - 55 - LockOwnerWindow - false - useIfNecessary - - - ПриОткрытии - ПриСозданииНаСервере - - - - Tree - true - true - true - ДеревоПодсистем - ДеревоПодсистем.ТипСтроки - - RowsPicture.png - false - - None - None - None - - - false - - - - - ДеревоПодсистем - SearchStringRepresentation - - - - - - - ДеревоПодсистем - ViewStatusRepresentation - - - - - - - ДеревоПодсистем - SearchControl - - - - - - ДеревоПодсистемВыбор - - - - ДеревоПодсистем.Имя - EnterOnInput - - - - - ДеревоПодсистем.Путь - false - EnterOnInput - - - - - ДеревоПодсистем.ТипСтроки - false - EnterOnInput - - - - -
-
- - - - cfg:DataProcessorObject.ЗагрузчикИзПодсистемКонфигурации - - true - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дерево подсистем</v8:content> - </v8:item> - - - v8:ValueTree - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Имя</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Путь</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Тип строки</v8:content> - </v8:item> - - - xs:decimal - - 10 - 0 - Any - - - - - - - - - - xs:string - - 0 - Variable - - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274/RowsPicture.png" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274/RowsPicture.png" deleted file mode 100644 index 4b74f63e9..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274/RowsPicture.png" and /dev/null differ diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Module.bsl" deleted file mode 100644 index e6fa7d841..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Module.bsl" +++ /dev/null @@ -1,26 +0,0 @@ - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - РеквизитФормыВЗначение("Объект").ЗаполнитьДеревоПодсистем(ДеревоПодсистем, Параметры.ОтборПоИмениТеста); -КонецПроцедуры - -&НаКлиенте -Процедура ПриОткрытии(Отказ) - РазвернутьСтрокиДерева(Истина); -КонецПроцедуры - -&НаКлиенте -Процедура ДеревоПодсистемВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) - СтандартнаяОбработка = Ложь; - Закрыть(ДеревоПодсистем.НайтиПоИдентификатору(ВыбраннаяСтрока).Путь); -КонецПроцедуры - -&НаКлиенте -Процедура РазвернутьСтрокиДерева(ВключаяПодчиненные = Ложь) - - Для каждого СтрокаДерева из ДеревоПодсистем.ПолучитьЭлементы() Цикл - Идентификатор = СтрокаДерева.ПолучитьИдентификатор(); - Элементы.ДеревоПодсистем.Развернуть(Идентификатор, ВключаяПодчиненные); - КонецЦикла; - -КонецПроцедуры diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213.xml" deleted file mode 100644 index cef9cf693..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - ФормаВыбораПодсистемы - - - ru - Форма выбора подсистемы - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/Ext/Form.bin" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/Ext/Form.bin" deleted file mode 100644 index 7384a1dfe..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/Ext/Form.bin" and /dev/null differ diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.xml" deleted file mode 100644 index 6cef3fd5e..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - b5d91c1a-edbb-4345-848a-49e704b023e3 - b1291eac-2edb-473c-9de4-782d7101206c - - - bc9e5f2d-1cb5-49be-900a-46f730aa3eab - d6c375b6-eddd-4b67-9664-fa6fcd7edb20 - - - - ЗагрузчикКаталога - - - ru - Загрузчик каталога - - - - false - DataProcessor.ЗагрузчикКаталога.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Ext/ObjectModule.bsl" deleted file mode 100644 index 2ca21a91b..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,88 +0,0 @@ -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Загрузчик); - Результат.Вставить("Идентификатор", "ЗагрузчикКаталога"); - Результат.Вставить("Представление", "Загрузить тесты из каталога файловой системы"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -// { Loader interface -#Если ТолстыйКлиентОбычноеПриложение Тогда -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - ДиалогВыбораКаталога = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); - ДиалогВыбораКаталога.Каталог = ТекущийПуть; - - Результат = ""; - Если ДиалогВыбораКаталога.Выбрать() Тогда - Результат = ДиалогВыбораКаталога.Каталог; - КонецЕсли; - - Возврат Результат; -КонецФункции -#КонецЕсли - -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - КаталогДляЗагрузки = Новый Файл(Путь); - Если Не (КаталогДляЗагрузки.Существует() И КаталогДляЗагрузки.ЭтоКаталог()) Тогда - ВызватьИсключение "Для загрузки передан не каталог файловой системы <" + КаталогДляЗагрузки.ПолноеИмя + ">"; - КонецЕсли; - ДеревоТестов = ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки); - ДеревоТестов.Имя = КаталогДляЗагрузки.ПолноеИмя; - - Возврат ДеревоТестов; -КонецФункции - -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - Обработка = ЗагрузчикФайла.ПолучитьКонтекстПоПути(КонтекстЯдра, Путь); - - Возврат Обработка; -КонецФункции -// } Loader interface - -Функция ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки) - КонтейнерКаталога = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьКонтейнер(КаталогДляЗагрузки.Имя); - НайденныеФайлы = НайтиФайлы(КаталогДляЗагрузки.ПолноеИмя, "*", Ложь); - Для каждого Файл из НайденныеФайлы Цикл - #Если Клиент Тогда - ОбработкаПрерыванияПользователя(); - #КонецЕсли - Если Файл.ЭтоКаталог() Тогда - КонтейнерДочернегоКаталога = ЗагрузитьКаталог(КонтекстЯдра, Файл); - Если КонтейнерДочернегоКаталога.Строки.Количество() > 0 Тогда - КонтейнерКаталога.Строки.Добавить(КонтейнерДочернегоКаталога); - КонецЕсли; - ИначеЕсли НРег(Файл.Расширение) = ".epf" - ИЛИ НРег(Файл.Расширение) = ".erf" Тогда - КонтейнерФайла = ЗагрузитьФайл(КонтекстЯдра, Файл); - Если ЗначениеЗаполнено(КонтейнерФайла) И КонтейнерФайла.Строки.Количество() > 0 Тогда - КонтейнерКаталога.Строки.Добавить(КонтейнерФайла); - КонецЕсли; - КонецЕсли; - КонецЦикла; - - Возврат КонтейнерКаталога; -КонецФункции - -Функция ЗагрузитьФайл(КонтекстЯдра, ФайлОбработки) - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - Попытка - ДеревоТестовФайла = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработки.ПолноеИмя); - Результат = ДеревоТестовФайла; - Если ДеревоТестовФайла.Строки.Количество() > 0 Тогда - Результат = ДеревоТестовФайла.Строки[0]; - КонецЕсли; - - Исключение - Сообщить("Не удалось загрузить файл " + ФайлОбработки.ПолноеИмя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Результат = Неопределено; - КонецПопытки; - - Возврат Результат; -КонецФункции diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 8e5f87731..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index ab9e4dee6..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ЗагрузчикКаталога - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index e46f19bca..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,110 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Loader interface -&НаКлиенте -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - - ДиалогВыбораКаталога = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); - ДиалогВыбораКаталога.Каталог = ТекущийПуть; - - ДиалогВыбораКаталога.Показать(Новый ОписаниеОповещения("ВыбратьПутьИнтерактивноЗавершение", ЭтаФорма, - Новый Структура("ДиалогВыбораКаталога, КонтекстЯдра", ДиалогВыбораКаталога, КонтекстЯдра))); - -КонецФункции - -&НаКлиенте -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - КаталогДляЗагрузки = Новый Файл(Путь); - Если Не (КаталогДляЗагрузки.Существует() И КаталогДляЗагрузки.ЭтоКаталог()) Тогда - ВызватьИсключение "Для загрузки передан не каталог файловой системы <" + КаталогДляЗагрузки.ПолноеИмя + ">"; - КонецЕсли; - ДеревоТестов = ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки); - ДеревоТестов.Имя = КаталогДляЗагрузки.ПолноеИмя; - - Возврат ДеревоТестов; -КонецФункции - -&НаКлиенте -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - Контекст = ЗагрузчикФайла.ПолучитьКонтекстПоПути(КонтекстЯдра, Путь); - - Возврат Контекст; -КонецФункции -// } Loader interface - -&НаКлиенте -Функция ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки) - КонтейнерКаталога = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьКонтейнер(КаталогДляЗагрузки.Имя); - НайденныеФайлы = НайтиФайлы(КаталогДляЗагрузки.ПолноеИмя, "*", Ложь); - Для каждого Файл из НайденныеФайлы Цикл - ОбработкаПрерыванияПользователя(); - Если Файл.ЭтоКаталог() Тогда - КонтейнерДочернегоКаталога = ЗагрузитьКаталог(КонтекстЯдра, Файл); - Если КонтейнерДочернегоКаталога.Строки.Количество() > 0 Тогда - КонтейнерКаталога.Строки.Добавить(КонтейнерДочернегоКаталога); - КонецЕсли; - ИначеЕсли НРег(Файл.Расширение) = ".epf" - ИЛИ НРег(Файл.Расширение) = ".erf" Тогда - КонтейнерФайла = ЗагрузитьФайл(КонтекстЯдра, Файл); - Если ЗначениеЗаполнено(КонтейнерФайла) И КонтейнерФайла.Строки.Количество() > 0 Тогда - КонтейнерКаталога.Строки.Добавить(КонтейнерФайла); - КонецЕсли; - КонецЕсли; - КонецЦикла; - - Возврат КонтейнерКаталога; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьФайл(КонтекстЯдра, ФайлОбработки) - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - Попытка - ДеревоТестовФайла = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработки.ПолноеИмя); - Результат = ДеревоТестовФайла; - Если ДеревоТестовФайла.Строки.Количество() > 0 Тогда - Результат = ДеревоТестовФайла.Строки[0]; - КонецЕсли; - - Исключение - Сообщить("Не удалось загрузить файл " + ФайлОбработки.ПолноеИмя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Результат = Неопределено; - КонецПопытки; - - Возврат Результат; -КонецФункции - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers - -// { Вспомогательные методы -&НаКлиенте -Процедура ВыбратьПутьИнтерактивноЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт - - ДиалогВыбораКаталога = ДополнительныеПараметры.ДиалогВыбораКаталога; - КонтекстЯдра = ДополнительныеПараметры.КонтекстЯдра; - - Если (ВыбранныеФайлы <> Неопределено) Тогда - Результат = ДиалогВыбораКаталога.Каталог; - КонецЕсли; - - Описание = ОписаниеПлагина(КонтекстЯдра.Объект.ТипыПлагинов); - КонтекстЯдра.ЗагрузитьТесты(Описание.Идентификатор, Результат); - -КонецПроцедуры -// } Вспомогательные методы \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.xml" deleted file mode 100644 index eea9f2f42..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 39cb1910-05d4-4795-a83b-1fede024da26 - 4660d451-74c5-48db-852a-88d87210b7b3 - - - 2ca7359f-ef20-42a2-a9d1-9d02eae50298 - e4e947f1-ea6a-4607-849c-29182fc7eff7 - - - - ЗагрузчикФайла - - - ru - Загрузчик файла - - - - false - DataProcessor.ЗагрузчикФайла.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Ext/ObjectModule.bsl" deleted file mode 100644 index f2e7189da..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,271 +0,0 @@ -Перем КэшПостроительДереваТестов; -Перем ЗагружаемыйПуть; - -Перем КонтейнерТестов; -Перем ТекущаяГруппа; - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Загрузчик); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "Загрузить тесты из файлов"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры - -// } Plugin interface - -// { Loader interface -#Если ТолстыйКлиентОбычноеПриложение Тогда -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - ДиалогВыбораТеста = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); - ДиалогВыбораТеста.Фильтр = "Обработка-тест (*.epf)|*.epf|Отчет-тест (*.erf)|*.erf|Все файлы|*"; - ДиалогВыбораТеста.МножественныйВыбор = Истина; - ДиалогВыбораТеста.ПроверятьСуществованиеФайла = Истина; - ДиалогВыбораТеста.ПолноеИмяФайла = ТекущийПуть; - - Результат = Новый ТекстовыйДокумент; - Если ДиалогВыбораТеста.Выбрать() Тогда - Для каждого ПолноеИмяФайла Из ДиалогВыбораТеста.ВыбранныеФайлы Цикл - Результат.ДобавитьСтроку(ПолноеИмяФайла); - КонецЦикла; - КонецЕсли; - Текст = Результат.ПолучитьТекст(); - - Возврат Лев(Текст, СтрДлина(Текст) - 1); -КонецФункции -#КонецЕсли - -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); - ДеревоТестов = Неопределено; - Для Сч = 1 По СтрЧислоСтрок(Путь) Цикл - ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, Сч)); - - Если ДеревоТестов = Неопределено Тогда - ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь); - КонецЕсли; - - КонтейнерСТестамиОбработки = ЗагрузитьФайл(ПостроительДереваТестов, ФайлОбработки); - Если КонтейнерСТестамиОбработки.Строки.Количество() > 0 Тогда - ДеревоТестов.Строки.Добавить(КонтейнерСТестамиОбработки); - КонецЕсли; - КонецЦикла; - - Возврат ДеревоТестов; -КонецФункции - -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - ФайлОбработки = Новый Файл(Путь); - - Обработка = ПолучитьКонтекстОбработки(ФайлОбработки); - - Возврат Обработка; -КонецФункции -// } Loader interface - -Функция ПолучитьКонтекстОбработки(ФайлОбработки) - - ЭтоФайлОтчета = (НРег(ФайлОбработки.Расширение) = ".erf"); - - Попытка - Если ЭтоФайлОтчета Тогда - Обработка = ВнешниеОтчеты.Создать(ФайлОбработки.ИмяБезРасширения, Ложь); - Иначе - Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ИмяБезРасширения, Ложь); - КонецЕсли; - Исключение - ПроверитьКорректностьФайла(ФайлОбработки); - - Если ЭтоФайлОтчета Тогда - Обработка = ВнешниеОтчеты.Создать(ФайлОбработки.ПолноеИмя, Ложь); - Иначе - Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ПолноеИмя, Ложь); - КонецЕсли; - КонецПопытки; - Возврат Обработка; - -КонецФункции - -Процедура ПроверитьКорректностьФайла(Файл) - Если Не Файл.Существует() Тогда - ВызватьИсключение "Переданный файл не существует файл <" + Файл.ПолноеИмя + ">"; - КонецЕсли; - Если Файл.ЭтоКаталог() Тогда - ВызватьИсключение "Передан каталог вместо файла <" + Файл.ПолноеИмя + ">"; - КонецЕсли; -КонецПроцедуры - -Функция ЗагрузитьФайл(ПостроительДереваТестов, ФайлОбработки) Экспорт - Обработка = ПолучитьКонтекстОбработки(ФайлОбработки); - Попытка - Контейнер = ЗагрузитьТестыВНовомФормате(ПостроительДереваТестов, Обработка, ФайлОбработки); - Исключение - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда - ВызватьИсключение; - Иначе - Контейнер = ЗагрузитьТестыВСтаромФормате(ПостроительДереваТестов, Обработка, ФайлОбработки); - КонецЕсли; - КонецПопытки; - - Возврат Контейнер; -КонецФункции - -Функция ЗагрузитьТестыВНовомФормате(ПостроительДереваТестов, Обработка, ФайлОбработки) - ЗагружаемыйПуть = ФайлОбработки.ПолноеИмя; - КэшПостроительДереваТестов = ПостроительДереваТестов; - Если НРег(ФайлОбработки.Расширение) = ".erf" Тогда - ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Отчет; - Иначе - ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Обработка; - КонецЕсли; - КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.ИмяБезРасширения, ИконкаУзла); - Обработка.ЗаполнитьНаборТестов(ЭтотОбъект); - Результат = КонтейнерТестов; - КонтейнерТестов = Неопределено; - ТекущаяГруппа = Неопределено; - - Возврат Результат; -КонецФункции - -Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки) - ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов"); - - Возврат ЭтоНовыйФорматОбработки; -КонецФункции - -Функция ЗагрузитьТестыВСтаромФормате(ПостроительДереваТестов, Обработка, ФайлОбработки) - Попытка - СписокТестов = Обработка.ПолучитьСписокТестов(); - Исключение - Описание = ОписаниеОшибки(); - Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда - ВызватьИсключение "Старый формат тестов в обработке тестов <"+ФайлОбработки.ПолноеИмя+">."+Символы.ПС+ - "Метод ПолучитьСписокТестов сейчас не принимает параметров"; - КонецЕсли; - - Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда - ВызватьИсключение Описание; - КонецЕсли; - КонецПопытки; - - СлучайныйПорядокВыполнения = Истина; - Попытка - СлучайныйПорядокВыполнения = Обработка.РазрешенСлучайныйПорядокВыполненияТестов(); - Исключение - КонецПопытки; - Результат = ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, СписокТестов, ФайлОбработки.ИмяБезРасширения, ФайлОбработки.ПолноеИмя, СлучайныйПорядокВыполнения); - - Возврат Результат; -КонецФункции - -Функция ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина) Экспорт - Контейнер = ПостроительДереваТестов.СоздатьКонтейнер(ИмяКонтейнера, ПостроительДереваТестов.ИконкиУзловДереваТестов.Обработка); - Контейнер.СлучайныйПорядокВыполнения = СлучайныйПорядокВыполнения; - Если ЗначениеЗаполнено(СписокТестов) И ТипЗнч(СписокТестов) = Тип("Массив") Тогда - Для каждого Тест Из СписокТестов Цикл - Элемент = Неопределено; - Если ТипЗнч(Тест) = Тип("Строка") Тогда - Элемент = ПостроительДереваТестов.СоздатьЭлемент(Путь, Тест); - ИначеЕсли ТипЗнч(Тест) = Тип("Структура") Тогда - ИмяМетода = Тест.ИмяТеста; - Представление = Неопределено; - Если Не Тест.Свойство("ПредставлениеТеста", Представление) Тогда - Представление = ИмяМетода; - КонецЕсли; - Элемент = ПостроительДереваТестов.СоздатьЭлемент(Путь, ИмяМетода, Представление); - Параметр = Неопределено; - Если Тест.Свойство("Параметр", Параметр) Тогда - Элемент.Параметры.Добавить(Параметр); - КонецЕсли; - Иначе - ВызватьИсключение "Тест может быть описан либо строкой либо структурой"; - КонецЕсли; - Если ЗначениеЗаполнено(Элемент) Тогда - Контейнер.Строки.Добавить(Элемент); - КонецЕсли; - КонецЦикла; - КонецЕсли; - - Возврат Контейнер; -КонецФункции - -// { API нового формата -Процедура СлучайныйПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Истина; - КонецЕсли; -КонецПроцедуры - -Процедура СтрогийПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь; - КонецЕсли; -КонецПроцедуры - -Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт - ТекущаяГруппа = КэшПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, КэшПостроительДереваТестов.ИконкиУзловДереваТестов.Группа); - ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения; - КонтейнерТестов.Строки.Добавить(ТекущаяГруппа); -КонецПроцедуры - -Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт - Элемент = КэшПостроительДереваТестов.СоздатьЭлемент(ЗагружаемыйПуть, ИмяМетода, Представление); - Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда - Элемент.Параметры = Параметры; - КонецЕсли; - Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда - ТекущаяГруппа.Строки.Добавить(Элемент); - Иначе - КонтейнерТестов.Строки.Добавить(Элемент); - КонецЕсли; - - Возврат Элемент; -КонецФункции - -Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыТеста = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыТеста.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыТеста; -КонецФункции -// } API нового формата - -// { Helpers -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - ИЛИ Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции -// } Helpers diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 3b0c27c37..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 2f2b50e10..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,28 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ЗагрузчикФайла - - true - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Полное имя браузера тестов</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 7ea532bfe..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,393 +0,0 @@ -&НаКлиенте -Перем КэшПостроительДереваТестов; -&НаКлиенте -Перем ЗагружаемыйПуть; - -&НаКлиенте -Перем КонтейнерТестов; -&НаКлиенте -Перем ТекущаяГруппа; - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Loader interface -&НаКлиенте -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - - ДиалогВыбораТеста = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); - ДиалогВыбораТеста.Фильтр = "Обработка-тест (*.epf)|*.epf|Отчет-тест (*.erf)|*.erf|Все файлы|*"; - ДиалогВыбораТеста.МножественныйВыбор = Истина; - ДиалогВыбораТеста.ПроверятьСуществованиеФайла = Истина; - ДиалогВыбораТеста.ПолноеИмяФайла = ТекущийПуть; - - Результат = Новый ТекстовыйДокумент; - ДиалогВыбораТеста.Показать(Новый ОписаниеОповещения("ВыбратьПутьИнтерактивноЗавершение", ЭтаФорма, - Новый Структура("ДиалогВыбораТеста, Результат, КонтекстЯдра", ДиалогВыбораТеста, Результат, КонтекстЯдра))); - -КонецФункции - -&НаКлиенте -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - - ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов; - - ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); - ДеревоТестов = Неопределено; - Для Сч = 1 По СтрЧислоСтрок(Путь) Цикл - ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, Сч)); - ПроверитьКорректностьФайла(ФайлОбработки); - - Если ДеревоТестов = Неопределено Тогда - ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь); - КонецЕсли; - - КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки); - - КонтейнерССервернымиТестамиОбработки = ЗагрузитьФайлНаСервере(ФайлОбработки.ПолноеИмя); - КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки); - Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда - КонтейнерССервернымиТестамиОбработки.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки); - КонецЕсли; - Если КонтейнерССервернымиТестамиОбработки.Строки.Количество() > 0 Тогда - ДеревоТестов.Строки.Добавить(КонтейнерССервернымиТестамиОбработки); - КонецЕсли; - КонецЦикла; - - Возврат ДеревоТестов; -КонецФункции - -&НаКлиенте -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - Перем Контекст; - Если ЭтоПутьККлиентскомуКонтексту(Путь) Тогда - Контекст = ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь); - Иначе - Контекст = ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь); - КонецЕсли; - - Возврат Контекст; -КонецФункции -// } Loader interface - -&НаКлиенте -Функция ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь) - ПрефиксПутейСФормами = ПрефиксПутейСФормами(); - ФайлОбработки = Новый Файл(Сред(Путь, СтрДлина(ПрефиксПутейСФормами) + 1)); - ПроверитьКорректностьФайла(ФайлОбработки); - КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки); - Контекст = ПолучитьФорму("ВнешняяОбработка." + ФайлОбработки.ИмяБезРасширения + ".Форма", , ЭтаФорма, Новый УникальныйИдентификатор); - Если ПеременнаяСодержитСвойство(Контекст, "ПутьКФайлуПолный") Тогда - Контекст.ПутьКФайлуПолный = ФайлОбработки.ПолноеИмя; - КонецЕсли; - - Возврат Контекст; -КонецФункции - -&НаКлиенте -Функция ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь) - ФайлОбработки = Новый Файл(Путь); - ПроверитьКорректностьФайла(ФайлОбработки); - КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки); - Контекст = КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ФайлОбработки.ИмяБезРасширения); - - Возврат Контекст; -КонецФункции - -&НаКлиенте -Процедура ПроверитьКорректностьФайла(Файл) - Если Не Файл.Существует() Тогда - ВызватьИсключение "Переданный файл не существует файл <" + Файл.ПолноеИмя + ">"; - КонецЕсли; - Если Файл.ЭтоКаталог() Тогда - ВызватьИсключение "Передан каталог вместо файла <" + Файл.ПолноеИмя + ">"; - КонецЕсли; -КонецПроцедуры - -&НаСервере -Функция ЗагрузитьФайлНаСервере(ПолныйПутьКОбработкеНаКлиенте) - - КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере(); - - ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов"); - ФайлОбработки = Новый Файл(ПолныйПутьКОбработкеНаКлиенте); - Контейнер = ЭтотОбъектНаСервере().ЗагрузитьФайл(ПостроительДереваТестов, ФайлОбработки); - - Возврат Контейнер; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки) - - ЭтоФайлОтчета = (НРег(ФайлОбработки.Расширение) = ".erf"); - - Если ЭтоФайлОтчета Тогда - ФормаОбработки = ПолучитьФорму("ВнешнийОтчет." + ФайлОбработки.ИмяБезРасширения + ".Форма"); - Иначе - ФормаОбработки = ПолучитьФорму("ВнешняяОбработка." + ФайлОбработки.ИмяБезРасширения + ".Форма"); - КонецЕсли; - - Попытка - Контейнер = ЗагрузитьТестыВНовомФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки); - Исключение - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда - ВызватьИсключение; - Иначе - Контейнер = ЗагрузитьТестыВСтаромФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки); - КонецЕсли; - КонецПопытки; - - Возврат Контейнер; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьТестыВНовомФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки) - ЗагружаемыйПуть = ФайлОбработки.ПолноеИмя; - КэшПостроительДереваТестов = ПостроительДереваТестов; - КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ПрефиксПутейСФормами() + ФайлОбработки.ИмяБезРасширения, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма); - ФормаОбработки.ЗаполнитьНаборТестов(ЭтаФорма); - Результат = КонтейнерТестов; - КонтейнерТестов = Неопределено; - ТекущаяГруппа = Неопределено; - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки) - ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов"); - - Возврат ЭтоНовыйФорматОбработки; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьТестыВСтаромФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки) - Попытка - СписокТестов = ФормаОбработки.ПолучитьСписокТестов(); - Исключение - Описание = ОписаниеОшибки(); - Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда - ВызватьИсключение "Старый формат тестов в обработке тестов <"+ФайлОбработки.ПолноеИмя+">."+Символы.ПС+ - "Метод ПолучитьСписокТестов сейчас не принимает параметров"; - КонецЕсли; - - Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда - ВызватьИсключение Описание; - КонецЕсли; - КонецПопытки; - СлучайныйПорядокВыполнения = Истина; - Попытка - СлучайныйПорядокВыполнения = ФормаОбработки.РазрешенСлучайныйПорядокВыполненияТестов(); - Исключение - КонецПопытки; - - ИмяКонтейнера = ПрефиксПутейСФормами() + ФайлОбработки.ИмяБезРасширения; - Путь = ПрефиксПутейСФормами() + ФайлОбработки.ПолноеИмя; - Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения); - Контейнер.ИконкаУзла = ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма; - - Возврат Контейнер; -КонецФункции - -&НаСервере -Функция ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина) - - КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере(); - - ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов"); - Контейнер = ЭтотОбъектНаСервере().ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения); - - Возврат Контейнер; -КонецФункции - -&НаКлиенте -Функция ЭтоПутьККлиентскомуКонтексту(Путь) - ПрефиксПутейСФормами = ПрефиксПутейСФормами(); - Результат = (Найти(Путь, ПрефиксПутейСФормами) = 1); - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция ПрефиксПутейСФормами() - Возврат "УпрФорма # "; -КонецФункции - -// { API нового формата -&НаКлиенте -Процедура СлучайныйПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Истина; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура СтрогийПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт - ТекущаяГруппа = КэшПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, КэшПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Группа); - ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения; - КонтейнерТестов.Строки.Добавить(ТекущаяГруппа); -КонецПроцедуры - -&НаКлиенте -Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт - Элемент = КэшПостроительДереваТестов.СоздатьЭлемент(ПрефиксПутейСФормами() + ЗагружаемыйПуть, ИмяМетода, Представление); - Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда - Элемент.Параметры = Параметры; - КонецЕсли; - Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда - ТекущаяГруппа.Строки.Добавить(Элемент); - Иначе - КонтейнерТестов.Строки.Добавить(Элемент); - КонецЕсли; - - Возврат Элемент; -КонецФункции - -&НаКлиенте -Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыТеста = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыТеста.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыТеста; -КонецФункции -// } API нового формата - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции - -&НаКлиенте -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - ИЛИ Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции -// } Helpers - -// Универсальная функция для проверки наличия -// свойств у значения любого типа данных -// Переменные: -// 1. Переменная - переменная любого типа, -// для которой необходимо проверить наличие свойства -// 2. ИмяСвойства - переменная типа "Строка", -// содержащая искомое свойства -// -&НаКлиентеНаСервереБезКонтекста -Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) - // Инициализируем структуру для теста - // с ключом (значение переменной "ИмяСвойства") - // и значением произвольного GUID'а - GUIDПроверка = Новый УникальныйИдентификатор; - СтруктураПроверка = Новый Структура; - СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка); - // Заполняем созданную структуру из переданного - // значения переменной - ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная); - // Если значение для свойства структуры осталось - // NULL, то искомое свойство не найдено, - // и наоборот. - Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда - Возврат Ложь; - Иначе - Возврат Истина; - КонецЕсли; -КонецФункции - -&НаСервере -Функция ПолучитьКонтекстЯдраНаСервере() - - // Получаем доступ к серверному контексту обработки с использованием - // полного имени метаданных браузера тестов. Иначе нет возможности получить - // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте. - // При передаче на сервер клиентский контекст теряется. - КонтекстЯдра = Неопределено; - МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов); - Если НЕ МетаданныеЯдра = Неопределено - И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "Обработка", "Обработки"); - Выполнить("КонтекстЯдра = " + ИмяОбработкиКонекстаЯдра + ".Создать()"); - Иначе - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ВнешняяОбработка", "ВнешниеОбработки"); - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ".", Символы.ПС); - МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1); - ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2); - Выполнить("КонтекстЯдра = " + МенеджерОбъектов + ".Создать("""+ИмяОбъекта+""")"); - КонецЕсли; - - Возврат КонтекстЯдра; - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C - -// { Вспомогательные методы -&НаКлиенте -Процедура ВыбратьПутьИнтерактивноЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт - - ДиалогВыбораТеста = ДополнительныеПараметры.ДиалогВыбораТеста; - Результат = ДополнительныеПараметры.Результат; - КонтекстЯдра = ДополнительныеПараметры.КонтекстЯдра; - - Если (ВыбранныеФайлы <> Неопределено) Тогда - Для каждого ПолноеИмяФайла Из ДиалогВыбораТеста.ВыбранныеФайлы Цикл - Результат.ДобавитьСтроку(ПолноеИмяФайла); - КонецЦикла; - КонецЕсли; - Текст = Результат.ПолучитьТекст(); - - Текст = Лев(Текст, СтрДлина(Текст) - 1); - - Описание = ОписаниеПлагина(КонтекстЯдра.Объект.ТипыПлагинов); - КонтекстЯдра.ЗагрузитьТесты(Описание.Идентификатор, Текст); - -КонецПроцедуры -// } Вспомогательные методы \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" deleted file mode 100644 index 8be63d09e..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 5fab865a-4384-4e3d-b8c2-8f9c92c65caa - cb644038-fe47-438d-806d-93c31854abcb - - - 25ff583c-aaa2-4a53-8947-5c46c6f40b13 - 9eafe761-cfc9-43c9-974a-f4858337649e - - - - ЗапросыИзБД - - - ru - Запросы из БД - - - - false - DataProcessor.ЗапросыИзБД.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/ObjectModule.bsl" deleted file mode 100644 index 707628c56..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,260 +0,0 @@ -//TODO раскомментировать утверждения во всех методах после решения Архитектура взаимодействия плагинов/утилит между собой #568 https://github.com/xDrivenDevelopment/xUnitFor1C/issues/568 - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "ЗапросыИзБД"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -//{ Методы проверки таблиц метаданных -Функция ПолучитьКоличествоДокументовПоОтбору(видДокумента, Дата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, структураОтбора = Неопределено) Экспорт - //ПроверитьЗаполненность(типМетаданного, "типМетаданного"); - //ПроверитьЗаполненность(видМетаданного, "видМетаданного"); - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ "+Количество+" - | * - |ИЗ - | "+типМетаданного+"."+видМетаданного+" КАК Таб - |ГДЕ - | Истина - |"; - - Если ЗначениеЗаполнено(структураОтбора) Тогда - Для каждого ключЗначение Из структураОтбора Цикл - имяРеквизита = ключЗначение.Ключ; - Запрос.Текст = Запрос.Текст + " И Таб."+имяРеквизита+" = &"+имяРеквизита+" "; - Запрос.УстановитьПараметр(имяРеквизита, ключЗначение.Значение); - КонецЦикла; - КонецЕсли; - - РезультатЗапроса = Запрос.Выполнить(); - ТЗ = РезультатЗапроса.Выгрузить(); - - Возврат ТЗ; -КонецФункции - -//} diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 5a3f06ae6..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index d52777a3c..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ЗапросыИзБД - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index c8ecf2899..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,19 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.xml" "b/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.xml" deleted file mode 100644 index 0f112afd9..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - a64d7630-e34d-44c3-96a7-2f74e52fb59b - e0ef74f8-574b-4d5c-83ee-02531ff65b1e - - - 53d7acbc-cc5a-4622-b402-a4fa191e451f - 0b3276c2-2aff-41f0-b1d4-9a6fe5b75fb2 - - - - КомандныйФайл - - - ru - Командный файл - - - - false - DataProcessor.КомандныйФайл.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Ext/ObjectModule.bsl" deleted file mode 100644 index 2d51cdf26..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,74 +0,0 @@ - -////////////////////////////////////////////////////////////////////////// -// Работа с командными файлами - -//#Использовать tempfiles - -Перем мЗаписьТекста; -Перем мПуть; - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "КомандныйФайл"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -Функция Открыть(Знач Путь = "") Экспорт - - Если ПустаяСтрока(Путь) Тогда - мПуть = ПолучитьИмяВременногоФайла(".bat"); - //мПуть = ВременныеФайлы.НовоеИмяФайла(".bat"); - Иначе - мПуть = Путь; - КонецЕсли; - - мЗаписьТекста = Новый ЗаписьТекста(мПуть, "cp866"); - - Возврат мПуть; - -КонецФункции - -Процедура Добавить(Знач Команда) Экспорт - ПроверитьЧтоФайлОткрыт(); - мЗаписьТекста.ЗаписатьСтроку(Команда); -КонецПроцедуры - -Функция ВыполнитьКоманду() Экспорт - - Закрыть(); - - ПутьПакетногоФайла = мПуть; - - СтрокаЗапуска = "cmd.exe /C """ + ПутьПакетногоФайла + """"; - - КодВозврата = ""; - ЗапуститьПриложение(СтрокаЗапуска,, Истина, КодВозврата); - - Возврат КодВозврата; - -КонецФункции - -Функция Закрыть() Экспорт - - Если мЗаписьТекста <> Неопределено Тогда - мЗаписьТекста.Закрыть(); - мЗаписьТекста = Неопределено; - КонецЕсли; - - Возврат мПуть; - -КонецФункции - -Процедура ПроверитьЧтоФайлОткрыт() - Если мЗаписьТекста = Неопределено Тогда - Открыть(); - КонецЕсли; -КонецПроцедуры diff --git "a/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index b3cc3bb8f..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 87cf36438..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.КомандныйФайл - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index c8ecf2899..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,19 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270.xml" "b/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270.xml" deleted file mode 100644 index 30b7a1a14..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270.xml" +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - 91794e78-eca2-4d8d-9525-5eb66cd4a3d5 - af3aa04f-2b24-44b8-8358-3e7a109d4784 - - - 3a637603-c3b3-49b4-9034-812a5f1a0247 - a23e0fbb-a44b-4e58-9a35-889fbe9fb549 - - - - ПарсерКоманднойСтроки - - - ru - Парсер командной строки - - - - false - DataProcessor.ПарсерКоманднойСтроки.Form.Форма - - false - - - - - - - ВозможныеКлючи - - - ru - Возможные ключи - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Ext/ObjectModule.bsl" deleted file mode 100644 index d2b7e09f5..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,145 +0,0 @@ -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - МетаданныеПлагина = Метаданные(); - Результат.Вставить("Идентификатор", МетаданныеПлагина.Имя); - Результат.Вставить("Представление", МетаданныеПлагина.Синоним); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - НачальнаяНастройка(); -КонецПроцедуры -// } Plugin interface - -Процедура НачальнаяНастройка() Экспорт - ВозможныеКлючи = ВозможныеКлючиКоманднойСтроки(); -КонецПроцедуры - -Функция Разобрать(СтрокаПараметров) Экспорт - Результат = Новый Структура; - - МассивСтрокПараметров = РазложитьСтрокуВМассивПодстрок(СтрокаПараметров, ";"); - Для каждого СтрокаПараметра Из МассивСтрокПараметров Цикл - КлючИПараметры = РаспознатьКлючИЕгоПараметры(СтрокаПараметра); - Если КлючИПараметры <> Неопределено Тогда - Результат.Вставить(КлючИПараметры.Ключ, КлючИПараметры.Параметры); - КонецЕсли; - КонецЦикла; - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) Экспорт - - Результат = Новый Массив; - - // для обеспечения обратной совместимости - Если ПропускатьПустыеСтроки = Неопределено Тогда - ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); - Если ПустаяСтрока(Строка) Тогда - Если Разделитель = " " Тогда - Результат.Добавить(""); - КонецЕсли; - Возврат Результат; - КонецЕсли; - КонецЕсли; - // - - Позиция = Найти(Строка, Разделитель); - Пока Позиция > 0 Цикл - Подстрока = Лев(Строка, Позиция - 1); - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда - Результат.Добавить(Подстрока); - КонецЕсли; - Строка = Сред(Строка, Позиция + СтрДлина(Разделитель)); - Позиция = Найти(Строка, Разделитель); - КонецЦикла; - - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда - Результат.Добавить(Строка); - КонецЕсли; - - Возврат Результат; - -КонецФункции - -Функция РаспознатьКлючИЕгоПараметры(Знач СтрокаПараметра) - Результат = Неопределено; - СтрокаПараметра = НРег(СокрЛП(СтрокаПараметра)); - Разделитель = " "; - КлючКоманднойСтроки = ПолучитьКлюч(СтрокаПараметра, Разделитель); - Если ЗначениеЗаполнено(КлючКоманднойСтроки) И ЭтоДопустимыйКлюч(КлючКоманднойСтроки) Тогда - ПараметрыКлюча = ВыделитьПараметрыКлюча(СтрокаПараметра, Разделитель); - Результат = Новый Структура("Ключ, Параметры", КлючКоманднойСтроки, ПараметрыКлюча); - КонецЕсли; - - Возврат Результат; -КонецФункции - -Функция ПолучитьКлюч(СтрокаПараметра, Разделитель) - МассивПодстрок = РазложитьСтрокуВМассивПодстрок(СтрокаПараметра, Разделитель); - КлючКоманднойСтроки = МассивПодстрок[0]; - - Возврат КлючКоманднойСтроки; -КонецФункции - -Функция ВыделитьПараметрыКлюча(Знач СтрокаПараметра, Разделитель); - Результат = Новый Массив; - Кавычка = """"; - ВнутриКавычки = Ложь; - - ИскатьПодстроки = Истина; - Пока ИскатьПодстроки Цикл - ПозицияРазделителя = Найти(СтрокаПараметра, Разделитель); - ПозицияКавычки = Найти(СтрокаПараметра, Кавычка); - ВнутриКавычки = (ПозицияКавычки > 0) И (ПозицияРазделителя > ПозицияКавычки) Или (ПозицияРазделителя = 0); - Позиция = ?(ВнутриКавычки, ПозицияКавычки, ПозицияРазделителя); - ИскатьПодстроки = Позиция > 0; - Если ИскатьПодстроки Тогда - Если ВнутриКавычки Тогда - СтрокаПараметра = Сред(СтрокаПараметра, Позиция + СтрДлина(Кавычка)); - ПозицияКонца = Найти(СтрокаПараметра, Кавычка); - Подстрока = Лев(СтрокаПараметра, ПозицияКонца - 1); - СтрокаПараметра = Сред(СтрокаПараметра, ПозицияКонца + СтрДлина(Кавычка)); - Иначе - Подстрока = Лев(СтрокаПараметра, Позиция - 1); - СтрокаПараметра = Сред(СтрокаПараметра, Позиция + СтрДлина(Разделитель)); - КонецЕсли; - Результат.Добавить(Подстрока); - КонецЕсли; - КонецЦикла; - - Если Не ПустаяСтрока(СтрокаПараметра) Тогда - Результат.Добавить(СтрокаПараметра); - КонецЕсли; - - Результат.Удалить(0); - - Возврат Новый ФиксированныйМассив(Результат); -КонецФункции - -Функция ВозможныеКлючиКоманднойСтроки() - ВозможныеКлючиКоманднойСтроки = Новый Структура; - ВозможныеКлючиКоманднойСтроки.Вставить("xddRun", "xddRun"); - ВозможныеКлючиКоманднойСтроки.Вставить("xddShutdown", "xddShutdown"); - ВозможныеКлючиКоманднойСтроки.Вставить("xddReport", "xddReport"); - - Возврат Новый ФиксированнаяСтруктура(ВозможныеКлючиКоманднойСтроки); -КонецФункции - -Функция ЭтоДопустимыйКлюч(Знач Ключ) - Результат = Истина; - ВозможныеКлючиКоманднойСтроки = ВозможныеКлючиКоманднойСтроки(); - Попытка - ПредставлениеКлюча = ВозможныеКлючиКоманднойСтроки[Ключ]; - Исключение - Результат = Ложь; - КонецПопытки; - - Возврат Результат; -КонецФункции - -НачальнаяНастройка(); diff --git "a/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 29915e231..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 4ee0eb18e..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ПарсерКоманднойСтроки - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index dc9c9f503..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,29 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -&НаКлиенте -Функция Разобрать(СтрокаПараметров) Экспорт - Возврат РазобратьНаСервере(СтрокаПараметров); -КонецФункции - -&НаСервере -Функция РазобратьНаСервере(СтрокаПараметров) - Возврат ЭтотОбъектНаСервере().Разобрать(СтрокаПараметров); -КонецФункции - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262.xml" "b/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262.xml" deleted file mode 100644 index 3d49678a0..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262.xml" +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - f61c3304-384c-4760-9816-fc6f841ba34b - 9d336a8a-8389-402b-b725-c58bbc63cc07 - - - 8ddeef82-83e4-4ee3-b16d-4b7a0764bd75 - 430c556b-a880-405b-812f-690953191b37 - - - - ПостроительДереваТестов - - - ru - Построитель дерева тестов - - - - false - DataProcessor.ПостроительДереваТестов.Form.Форма - - false - - - - - - - ИконкиУзловДереваТестов - - - ru - Иконки узлов дерева тестов - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - ТипыУзловДереваТестов - - - ru - Типы узлов дерева тестов - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Ext/ObjectModule.bsl" deleted file mode 100644 index 377977a4a..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,72 +0,0 @@ - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "Построитель дерева тестов"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - НачальнаяНастройка(); -КонецПроцедуры -// } Plugin interface - -Процедура НачальнаяНастройка() Экспорт - ЭтотОбъект.ИконкиУзловДереваТестов = ИконкиУзловДереваТестов(); - ЭтотОбъект.ТипыУзловДереваТестов = ТипыУзловДереваТестов(); -КонецПроцедуры - -Функция ИконкиУзловДереваТестов() - Результат = Новый Структура; - Результат.Вставить("Папка", 0); - Результат.Вставить("Обработка", 1); - Результат.Вставить("Функция", 2); - Результат.Вставить("Подсистема", 3); - Результат.Вставить("Форма", 4); - Результат.Вставить("ФункцияНаФорме", 5); - Результат.Вставить("Группа", 6); - Результат.Вставить("Отчет", 7); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Функция ТипыУзловДереваТестов() - Результат = Новый Структура; - Результат.Вставить("Контейнер", "Контейнер"); - Результат.Вставить("Элемент", "Элемент"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Функция СоздатьКонтейнер(ИмяКонтейнера, ИконкаУзла = Неопределено) Экспорт - Контейнер = Новый Структура; - Контейнер.Вставить("Ключ", Новый УникальныйИдентификатор); - Контейнер.Вставить("Тип", ТипыУзловДереваТестов.Контейнер); - Контейнер.Вставить("Имя", ИмяКонтейнера); - Контейнер.Вставить("Строки", Новый Массив); - Контейнер.Вставить("ИконкаУзла", ?(ИконкаУзла = Неопределено, ИконкиУзловДереваТестов.Папка, ИконкаУзла)); - Контейнер.Вставить("СлучайныйПорядокВыполнения", Истина); - Контейнер.Вставить("Контекст", Неопределено); - - Возврат Контейнер; -КонецФункции - -Функция СоздатьЭлемент(Путь, ИмяМетода, Представление = "", ИконкаУзла = Неопределено) Экспорт - Элемент = Новый Структура; - Элемент.Вставить("Ключ", Новый УникальныйИдентификатор); - Элемент.Вставить("Тип", ТипыУзловДереваТестов.Элемент); - Элемент.Вставить("Путь", Путь); - Элемент.Вставить("ИмяМетода", ИмяМетода); - Элемент.Вставить("Представление", ?(ПустаяСтрока(Представление), ИмяМетода, Представление)); - Элемент.Вставить("ИконкаУзла", ?(ИконкаУзла = Неопределено, ИконкиУзловДереваТестов.Функция, ИконкаУзла)); - Элемент.Вставить("Параметры", Новый Массив); - Элемент.Вставить("ПередЗапускомТеста", "ПередЗапускомТеста"); - Элемент.Вставить("ПослеЗапускаТеста", "ПослеЗапускаТеста"); - - Возврат Элемент; -КонецФункции - -НачальнаяНастройка(); diff --git "a/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 84465f702..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index c15015c31..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ПостроительДереваТестов - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 3be6f2963..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,39 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -&НаКлиенте -Функция СоздатьКонтейнер(ИмяКонтейнера, ИконкаУзла = Неопределено) Экспорт - Возврат СоздатьКонтейнерНаСервере(ИмяКонтейнера, ИконкаУзла); -КонецФункции - -&НаСервере -Функция СоздатьКонтейнерНаСервере(ИмяКонтейнера, ИконкаУзла) - Возврат ЭтотОбъектНаСервере().СоздатьКонтейнер(ИмяКонтейнера, ИконкаУзла); -КонецФункции - -&НаКлиенте -Функция СоздатьЭлемент(Путь, ИмяМетода, Представление = "", ИконкаУзла = Неопределено) Экспорт - Возврат СоздатьЭлементНаСервере(Путь, ИмяМетода, Представление, ИконкаУзла); -КонецФункции - -&НаСервере -Функция СоздатьЭлементНаСервере(Путь, ИмяМетода, Представление, ИконкаУзла) - Возврат ЭтотОбъектНаСервере().СоздатьЭлемент(Путь, ИмяМетода, Представление, ИконкаУзла); -КонецФункции - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers \ No newline at end of file diff --git "a/lib/CF/83xdd/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.xml" "b/lib/CF/83xdd/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.xml" deleted file mode 100644 index f26239e1e..000000000 --- "a/lib/CF/83xdd/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.xml" +++ /dev/null @@ -1,551 +0,0 @@ - - - - - - b5b2dd06-2a38-4ae3-8df1-3af7302520df - dfb232a5-8b21-4e37-9299-04e0d6af944b - - - 219d2bd2-4b55-4f10-beae-42860bfba8bd - a6611ca0-c2bb-4fc6-9364-e37786c1585a - - - - ПреобразованиеЖурналаДействийПользователя - - - en - User action log convertor - - - ru - Преобразование журнала действий пользователя - - - - false - DataProcessor.ПреобразованиеЖурналаДействийПользователя.Form.DefaultForm - - false - - - - - - - CreatedProcedures - - - en - Created procedures - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - WindowBeingProcessed - - - en - Window being processed - - - ru - Обрабатываемое окно - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - FormBeingProcessed - - - en - Form being processed - - - ru - Обрабатываемая форма - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - WindowClosed - - - en - Window was closed - - - ru - Окно было закрыто - - - - - xs:boolean - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - LastProcessedCommand - - - en - Last processed command - - - ru - Последняя обработанная команда - - - - - xs:string - - 0 - Variable - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - LastProcessedControl - - - en - Last processed control - - - ru - Последний обработанный элемент управления - - - - - xs:string - - 0 - Variable - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - MainProcedureName - - - en - Main procedure name - - - ru - Имя основной процедуры - - - - - xs:string - - 0 - Variable - - - false - - - - false - - false - false - - - ShowError - Items - - - Auto - Auto - - - Auto - - - - - GenerateClientConnectionScript - - - en - Generate client connection script - - - ru - Гененировать код подключения к клиенту - - - - - xs:boolean - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - ScriptVariant - - - ru - Генерировать сценарий в варианте встроенного языка - - - en - 1C:Enterprise script language - - - - - xs:string - - 0 - Variable - - - false - - - - false - - false - false - - - ShowError - Items - - - Auto - Auto - - - Auto - - - - - ConversionVariant - - - en - Convert - - - ru - Преобразовывать - - - - - xs:decimal - - 1 - 0 - Nonnegative - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - SplitScriptIntoProcedures - - - en - Split scenario into procedures by application windows - - - ru - Разбивать результат на процедуры по "границам" окон - - - - - xs:boolean - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - GetFullHierarchy - - - en - Get full object hierarchy - - - ru - Генерировать получение родительских объектов в иерархии - - - - - xs:boolean - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - ObjectSearch - - - en - Object search - - - ru - Поиск объектов - - - - - xs:decimal - - 1 - 0 - Nonnegative - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
DefaultForm
- - - -
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/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/Help.xml" "b/lib/CF/83xdd/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/Help.xml" deleted file mode 100644 index aaa8b4844..000000000 --- "a/lib/CF/83xdd/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/Help.xml" +++ /dev/null @@ -1,4 +0,0 @@ - - - ru - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png.png" "b/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png.png" deleted file mode 100644 index de5e79e04..000000000 Binary files "a/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png.png" and /dev/null differ diff --git "a/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png1.png" "b/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png1.png" deleted file mode 100644 index de5e79e04..000000000 Binary files "a/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png1.png" and /dev/null differ diff --git "a/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png.png" "b/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png.png" deleted file mode 100644 index b33e4a642..000000000 Binary files "a/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png.png" and /dev/null differ diff --git "a/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png1.png" "b/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png1.png" deleted file mode 100644 index b33e4a642..000000000 Binary files "a/lib/CF/83xdd/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/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png1.png" and /dev/null differ diff --git "a/lib/CF/83xdd/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/Help/ru.html" "b/lib/CF/83xdd/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/Help/ru.html" deleted file mode 100644 index bda2a269d..000000000 --- "a/lib/CF/83xdd/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/Help/ru.html" +++ /dev/null @@ -1,9 +0,0 @@ - -

Преобразование журнала действий пользователя во встроенный язык

-

Обработка предназначена для преобразования журнала действий пользователя в программу на встроенном языке.

-

Обработка позволяет преобразовывать указанные файлы или непосредственно введённый текст. Выберите нужный вам вариант в переключателе "Преобразовывать".

-

Формирование программы возможно на английском или русском варианте встроенного языка. По умолчанию используется вариант языка используемый в конфигурации. При необходимости сгенерировать программу в другом варианте укажите необходимый в поле "Генерировать сценарий в варианте встроенного языка".

-

В поле "Имя основной процедуры" указывается имя процедуры, которая будет являться точкой входа в сценарий.

-

Если планируется использовать сгенерированную процедуру самостоятельно (например, во внешней обработке), имеется возможность сгенерировать код подключения к тестируемому клиенту, отметив флажок "Генерировать код подключения к клиенту". В противном случае для процедуры будет сформирован параметр ТестируемоеПриложение, в который при вызове будет необходимо передать существующий объект типа ТестируемоеПриложение, который уже установил соединение с тестируемым клиентом.

-

Для упрощения чтения получаемого кода сгенерированная программа разбивается по "границам" окон приложения на подпрограммы. Если отметить флажок "Разбивать результат на процедуры по "границам" окон" будет сформирована одна большая процедура.

-

Отметка флажка "Генерировать получение родительских объектов в иерархии" позволяет при вызове метода какого-либо объекта сгенерировать получение всех родительских тестируемых объектов, которые находятся между текущим тестируемым объектом и формой. Если флажок сброшен - генерируется поиск объектов непосредственно через объект тестируемой формы.

\ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 937002c4a..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,1282 +0,0 @@ -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/83xdd/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/83xdd/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" deleted file mode 100644 index bb431bb1a..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,26 +0,0 @@ - - -
- - DefaultForm - - - en - Default form - - - ru - Основная форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 8cd7f7e0d..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,413 +0,0 @@ - -
- Use - useIfNecessary - - false - - - - - - - OnOpen - OnCreateAtServer - FillCheckProcessingAtServer - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Conversion parameters</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Параметры преобразования</v8:content> - </v8:item> - - - - en - Conversion parameters - - - ru - Параметры преобразования - - - Vertical - StrongSeparation - - - - Object.ScriptVariant - true - - - - ScriptVariantOnChange - ScriptVariantClearing - - - - Object.MainProcedureName - - - en - Name of the procedure required for starting the scenario. - - - ru - Имя процедуры, которую необходимо вызвать для запуска сценария. - - - - - - - Object.GenerateClientConnectionScript - - - en - Include the script to establish test client connection into the procedure. - - - ru - Вставлять процедуру код устанавливающий соединение с тестируемым клиентом. - - - Auto - - - - - Object.SplitScriptIntoProcedures - - - en - Split the script scenario into procedures. Each procedure contains actions with a single window. - - - ru - Разделять сценарий на процедуры, в каждой из которых есть только действия относящиеся к одному окну. - - - Auto - - - - - Object.GetFullHierarchy - Auto - - - - - Object.ObjectSearch - Auto - - - - - - - Object.ConversionVariant - Auto - - - - ConversionVariantOnChange - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Source data</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Исходные данные</v8:content> - </v8:item> - - - - en - Source data - - - None - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Source files</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Исходные файлы</v8:content> - </v8:item> - - - - en - Source files - - - ru - Исходные файлы - - - - - - SourceFile - true - true - - - - SourceFileOnStartChoice - SourceFileOnOpen - - - - ResultFile - true - true - - - - ResultFileOnStartChoice - ResultFileOnOpen - - - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Source texts</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Исходные тексты</v8:content> - </v8:item> - - - - en - Source texts - - - ru - Исходные тексты - - - Horizontal - - - - SourceText - - - - - ResultText - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Generate file by text</v8:content> - </v8:item> - - - - ru - Generate file by text - - - Horizontal - - - - SourceText - - - - - ResultFile - true - true - - - - ResultFileOnStartChoice - ResultFileOnOpen - - - - - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Version 1.0.3.3</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Версия 1.0.3.1</v8:content> - </v8:item> - <v8:item> - <v8:lang>sys</v8:lang> - <v8:content>Версия 1.0.3.1</v8:content> - </v8:item> - - - - - - - - - cfg:DataProcessorObject.ПреобразованиеЖурналаДействийПользователя - - true - - Object.SplitScriptIntoProcedures - Object.ScriptVariant - Object.ObjectSearch - Object.MainProcedureName - Object.GetFullHierarchy - Object.GenerateClientConnectionScript - Object.ConversionVariant - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Source file</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Преобразовывать журнал</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - SourceFile - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Result file</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Сохранять результат в</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - ResultFile - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>User action log</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Журнал действий пользователя</v8:content> - </v8:item> - - - d5p1:TextDocument - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Scenario</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Сценарий</v8:content> - </v8:item> - - - d5p1:TextDocument - - - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Convert</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Преобразовать</v8:content> - </v8:item> - - - - en - Convert the user action log into the 1C:Enterprise script scenario - - - ru - Преобразовать журнал действий во встроенный язык - - - - StdPicture.GenerateReport - true - - Convert - TextPicture - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 0c40b79b1..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,300 +0,0 @@ - -//////////////////////////////////////////////////////////////////////////////// -// 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/83xdd/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/83xdd/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" deleted file mode 100644 index 2a307ed68..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index af7ade9a3..000000000 Binary files "a/lib/CF/83xdd/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" and /dev/null differ diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index e4face994..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 1cf8a476e..000000000 Binary files "a/lib/CF/83xdd/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" and /dev/null differ diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index f7045222e..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 1aee250ab..000000000 Binary files "a/lib/CF/83xdd/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" and /dev/null differ diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 68da6ee80..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,1322 +0,0 @@ - - - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 82890d07a..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,5446 +0,0 @@ -Перем ТестовыеДанныхДляУдаления; - -Перем МассивИмен; - -Перем МетаданныеОписание Экспорт; -Перем СсылочныеТипы Экспорт; -Перем СоответствиеОбъектовМетаданныхИСсылочныхТипов; - -// массив строк дерева метаданных, имеющих признак Выгружать -Перем СоставПолнойВыгрузки Экспорт; - -Перем мВыгруженныеОбъекты; - -Перем мНаличиеВыгрузкиПодчиненныхОбъектов; -Перем мТипРезультатЗапроса; -Перем мСоответствиеКолонокДвижений; -Перем ОбработанныхКонстант Экспорт; -Перем ОбработанныхНаборовЗаписей Экспорт; -Перем СоставВспомогательнойВыгрузки; - -Перем АнглийскоеСоответствие; - - -Функция Версия() Экспорт - Возврат "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/83xdd/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/83xdd/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" deleted file mode 100644 index a6c2ddd4f..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 5bc67f154..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,926 +0,0 @@ - -
- false - useIfNecessary - - false - - - - - - - - - ПриСозданииНаСервере - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Группа настройки</v8:content> - </v8:item> - - - - ru - Группа настройки - - - Horizontal - None - false - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Группа страницы</v8:content> - </v8:item> - - - - ru - Группа страницы - - - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Metadata</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Метаданные</v8:content> - </v8:item> - - - - ru - Группа метаданные - - - - - - Horizontal - - - - Объект.ВыгружатьКод - Auto - - - - - Объект.ВыгружатьСсылку - Auto - - - - - Объект.СвязьПоГуид - Auto - - - - - Объект.ТолькоСоздание - Auto - - - - - Объект.ОбменДанными - Auto - - - - - Объект.ВариантВстроенногоЯзыкаАнглийский - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Script variant English</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Язык программирования английский</v8:content> - </v8:item> - - Auto - - - - - - - Horizontal - None - false - - - - Tree - false - false - true - ExpandAllLevels - true - true - Объект.ДеревоМетаданных - Объект.ДеревоМетаданных.ИндексКартинки - - RowsPicture.png - false - - None - None - None - - - false - - - - - - - - ДеревоМетаданных - SearchStringRepresentation - - - - - - - ДеревоМетаданных - ViewStatusRepresentation - - - - - - - ДеревоМетаданных - SearchControl - - - - - - ДеревоМетаданныхПриАктивизацииСтроки - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Группа выбора объектов</v8:content> - </v8:item> - - - - ru - Группа выбора объектов - - - InCell - - - - Объект.ДеревоМетаданных.Выгружать - EnterOnInput - false - true - - - - ДеревоМетаданныхВыгружатьПриИзменении - - - - Объект.ДеревоМетаданных.ПолноеИмяМетаданных - true - EnterOnInput - - - - - - - Объект.ДеревоМетаданных.ВыгружатьПриНеобходимости - Right - EnterOnInput - true - - - - ДеревоМетаданныхВыгружатьПриНеобходимостиПриИзменении - - - -
- - Tree - true - ExpandAllLevels - true - true - Объект.КомпоновщикНастроекКомпоновкиДанных.Settings.Filter - None - None - None - All - false - - - - - - - - - - КомпоновщикОтбор - SearchStringRepresentation - - - - - - - КомпоновщикОтбор - ViewStatusRepresentation - - - - - - - КомпоновщикОтбор - SearchControl - - - - - - КомпоновщикОтборПриОкончанииРедактирования - КомпоновщикОтборПослеУдаления - -
-
-
-
-
- - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Table of data</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Таблица данных</v8:content> - </v8:item> - - - - ru - Группа таблица данных - - - - - - List - true - true - true - Объект.ТаблицаДанных - None - None - None - - - - - - - - - - - ТаблицаДанных - SearchStringRepresentation - - - - - - - ТаблицаДанных - ViewStatusRepresentation - - - - - - - ТаблицаДанных - SearchControl - - - - - - - EnterOnInput - - - - - Объект.ТаблицаДанных.Ссылка - EnterOnInput - - - - ТаблицаДанныхСсылкаПриИзменении - - - - Объект.ТаблицаДанных.Метаданное - EnterOnInput - - - - - Объект.ТаблицаДанных.ИмяПеременной - EnterOnInput - - - - - Объект.ТаблицаДанных.ВыгружатьКод - EnterOnInput - Auto - - - - - Объект.ТаблицаДанных.РежимПоиска - EnterOnInput - - - - - Объект.ТаблицаДанных.РежимСоздания - EnterOnInput - - - - -
-
-
- - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Users of database</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пользователи ИБ</v8:content> - </v8:item> - - - - ru - Группа пользователи ИБ - - - - - - List - true - true - true - Объект.ПользователиИБ - None - None - None - - - - - - - ПользователиИнфБазы - SearchStringRepresentation - - - - - - - ПользователиИнфБазы - ViewStatusRepresentation - - - - - - - ПользователиИнфБазы - SearchControl - - - - - - - Объект.ПользователиИБ.LineNumber - EnterOnInput - - - - - Объект.ПользователиИБ.Имя - EnterOnInput - - - - - Объект.ПользователиИБ.ПолноеИмя - EnterOnInput - - - - - Объект.ПользователиИБ.Роли - EnterOnInput - - - - - Объект.ПользователиИБ.АутентификацияСтандартная - EnterOnInput - - - - - Объект.ПользователиИБ.АутентификацияОС - EnterOnInput - - - - - Объект.ПользователиИБ.ПользовательОС - EnterOnInput - - - - -
-
-
-
-
- - Top - 4 - true - true - true - Объект.ДополнительныеСвойства - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дополнительные свойства</v8:content> - </v8:item> - - None - None - None - - - - - - - ДополнительныеСвойства - SearchStringRepresentation - - - - - - - ДополнительныеСвойства - ViewStatusRepresentation - - - - - - - ДополнительныеСвойства - SearchControl - - - - - - - Объект.ДополнительныеСвойства.LineNumber - - false - - EnterOnInput - 1 - - - - - Объект.ДополнительныеСвойства.Имя - EnterOnInput - 14 - - - - - Объект.ДополнительныеСвойства.Значение - EnterOnInput - 20 - - - - -
-
-
- - Макет - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Макет данных</v8:content> - </v8:item> - - None - DontShow - true - true - true - true - WhenActive - Enable - true - - - -
- - - - cfg:DataProcessorObject.СериализаторMXL - - true - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Данные для выгрузки</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Выгружать</v8:content> - </v8:item> - - - xs:decimal - - 1 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Выгружать при необходимости</v8:content> - </v8:item> - - - xs:decimal - - 1 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Индекс картинки</v8:content> - </v8:item> - - - xs:decimal - - 2 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Развернут</v8:content> - </v8:item> - - - xs:boolean - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Настройки компоновщика</v8:content> - </v8:item> - - - dcsset:Filter - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Использовать отбор</v8:content> - </v8:item> - - - xs:boolean - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Макет</v8:content> - </v8:item> - - - mxl:SpreadsheetDocument - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дерево метаданных предыдущая строка</v8:content> - </v8:item> - - - - - - - - ДеревоМетаданныхПолноеИмяМетаданных - - - - - Объект.ДеревоМетаданных.ИспользоватьОтбор - Equal - true - - - - - Шрифт - - - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Создать макет данных</v8:content> - </v8:item> - - - - ru - Создать макет данных - - - - StdPicture.DataCompositionSettingsWizard - true - - СоздатьМакетДанных - TextPicture - true - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Сохранить макет данных в файл</v8:content> - </v8:item> - - - - ru - Сохранить макет данных в файл - - - - StdPicture.SaveFile - true - - СохранитьМакетДанныхВФайл - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Протестировать загрузку макета</v8:content> - </v8:item> - - - - ru - Протестировать загрузку макета - - - - StdPicture.Post - true - - ПротестироватьЗагрузкуМакета - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Очистить</v8:content> - </v8:item> - - - - ru - Очистить таблицу данных - - - - StdPicture.Clear - true - - ОчиститьТаблицуДанных - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пересчитать выгружаемые по ссылке</v8:content> - </v8:item> - - - - ru - Пересчитать выгружаемые по ссылке - - - - StdPicture.CheckAll - true - - ПересчитатьВыгружаемыеПоСсылке - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Показать результат отбора</v8:content> - </v8:item> - - - - ru - Показать результат отбора - - - ПоказатьРезультатОтбора - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дополнительные свойства</v8:content> - </v8:item> - - - - ru - Дополнительные свойства - - - ДополнительныеСвойства - - -
\ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index bfa6267fe..000000000 Binary files "a/lib/CF/83xdd/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" and /dev/null differ diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index faa586284..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,490 +0,0 @@ - - -// { 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/83xdd/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/83xdd/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" deleted file mode 100644 index 7ee263131..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 715929170..000000000 Binary files "a/lib/CF/83xdd/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" and /dev/null differ diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 97b1b1954..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 1b4d6e133..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,971 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 4d36921f5..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index c2c9a0bf9..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,1706 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index e6732e9ee..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index e7aab2ccb..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,1457 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 52291b1c1..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 70833130d..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,412 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 556eff31d..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 787b232ac..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,1005 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 1ace777be..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 0fb82ba57..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,1016 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index a7f467ee4..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index ade20bb50..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,484 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index f072996a1..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 1569566ad..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,860 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 96d4f3da9..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 068c93ce3..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,283 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 2603a6540..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 89e251f05..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,332 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 1c789c413..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index e955a0611..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,258 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 697e22503..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 9e0b0212d..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,258 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 19c22dfd4..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 6bf85f8d2..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,448 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 5eac5b51c..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index cfdced25c..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,332 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index d051aff78..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index e8abb48a8..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,954 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index ec5d06630..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 6eca0204f..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,334 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 4f88b818d..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 230f47b28..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,295 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 10a34be1a..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 26cfb7d4a..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,689 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index dd6e503f6..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/83xdd/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" deleted file mode 100644 index 2f61c9170..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,272 +0,0 @@ - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 3c552da46..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 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/83xdd/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/83xdd/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" deleted file mode 100644 index 9fa2ab21c..000000000 --- "a/lib/CF/83xdd/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" +++ /dev/null @@ -1,1239 +0,0 @@ - -// { 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 Цикл - ПозицияЗакрывающегоТега = Найти(Текст, ""); - Если ПозицияЗакрывающегоТега = 0 Тогда - // Не найден закрывающий тег - вырезаем оставшийся текст. - ПозицияЗакрывающегоТега = СтрДлина(Текст); - КонецЕсли; - Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 9); - ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 9); - Позиция = Найти(Текст, " 0 Цикл - ПозицияЗакрывающегоТега = Найти(Текст, ""); - Если ПозицияЗакрывающегоТега = 0 Тогда - // Не найден закрывающий тег - вырезаем оставшийся текст. - ПозицияЗакрывающегоТега = СтрДлина(Текст); - КонецЕсли; - Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 8); - ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 8); - Позиция = Найти(Текст, " 0 Цикл - Результат = Результат + Лев(ИсходныйТекст, Позиция-1); - Текст = Сред(Текст, Позиция + 1); - ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 1); - Позиция = Найти(Текст, ">"); - Если Позиция > 0 Тогда - Текст = Сред(Текст, Позиция + 1); - ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 1); - КонецЕсли; - Позиция = Найти(Текст, "<"); - КонецЦикла; - Результат = Результат + ИсходныйТекст; - МассивСтрок = РазложитьСтрокуВМассивПодстрок(Результат, Символы.ПС, Истина, Истина); - Возврат СокрЛП(СтрокаИзМассиваПодстрок(МассивСтрок, Символы.ПС)); -КонецФункции - -// Преобразует исходную строку в транслит. -Функция СтрокаЛатиницей(Знач Строка) Экспорт - - Результат = ""; - - Соответствие = СоответствиеКириллицыИЛатиницы(); - - ПредыдущийСимвол = ""; - Для Позиция = 1 По СтрДлина(Строка) Цикл - Символ = Сред(Строка, Позиция, 1); - СимволЛатиницей = Соответствие[НРег(Символ)]; // Поиск соответствия без учета регистра. - Если СимволЛатиницей = Неопределено Тогда - // Другие символы остаются "как есть". - СимволЛатиницей = Символ; - Иначе - Если Символ = ВРег(Символ) Тогда - СимволЛатиницей = ТРег(СимволЛатиницей); // восстанавливаем регистр - КонецЕсли; - КонецЕсли; - Результат = Результат + СимволЛатиницей; - ПредыдущийСимвол = СимволЛатиницей; - КонецЦикла; - - Возврат Результат; -КонецФункции - -// Форматирует строку в соответствии с заданным шаблоном. -// Возможные значения тегов выделения: -// Строка - выделяет строку жирным шрифтом -// Строка -// -// Пример: -// Минимальная версия программы 1.1. Обновите программу. -// -// Возвращаемое значение: -// ФорматированнаяСтрока -Функция ФорматированнаяСтрока(Знач Строка) Экспорт - - СтрокиСВыделением = Новый СписокЗначений; - Пока Найти(Строка, "") <> 0 Цикл - НачалоВыделения = Найти(Строка, ""); - СтрокаДоОткрывающегоТега = Лев(Строка, НачалоВыделения - 1); - СтрокиСВыделением.Добавить(СтрокаДоОткрывающегоТега); - СтрокаПослеОткрывающегоТега = Сред(Строка, НачалоВыделения + 3); - КонецВыделения = Найти(СтрокаПослеОткрывающегоТега, ""); - ВыделенныйФрагмент = Лев(СтрокаПослеОткрывающегоТега, КонецВыделения - 1); - СтрокиСВыделением.Добавить(ВыделенныйФрагмент,, Истина); - СтрокаПослеВыделения = Сред(СтрокаПослеОткрывающегоТега, КонецВыделения + 4); - Строка = СтрокаПослеВыделения; - КонецЦикла; - СтрокиСВыделением.Добавить(Строка); - - СтрокиСоСсылками = Новый СписокЗначений; - Для Каждого ЧастьСтроки Из СтрокиСВыделением Цикл - - Строка = ЧастьСтроки.Значение; - - Если ЧастьСтроки.Пометка Тогда - СтрокиСоСсылками.Добавить(Строка,, Истина); - Продолжить; - КонецЕсли; - - НачалоВыделения = Найти(Строка, ""); - - Ссылка = СокрЛП(Лев(СтрокаПослеОткрывающегоТега, ЗакрывающийТег - 2)); - Если Лев(Ссылка, 1) = """" Тогда - Ссылка = Сред(Ссылка, 2, СтрДлина(Ссылка) - 1); - КонецЕсли; - Если Прав(Ссылка, 1) = """" Тогда - Ссылка = Сред(Ссылка, 1, СтрДлина(Ссылка) - 1); - КонецЕсли; - - СтрокаПослеСсылки = Сред(СтрокаПослеОткрывающегоТега, ЗакрывающийТег + 1); - КонецВыделения = Найти(СтрокаПослеСсылки, ""); - ТекстСсылки = Лев(СтрокаПослеСсылки, КонецВыделения - 1); - СтрокиСоСсылками.Добавить(ТекстСсылки, Ссылка); - - СтрокаПослеВыделения = Сред(СтрокаПослеСсылки, КонецВыделения + 4); - Строка = СтрокаПослеВыделения; - - НачалоВыделения = Найти(Строка, " 0 Тогда - Возврат Неопределено; - КонецЕсли; - ЗнакОтрицательный = Истина; - ИначеЕсли КодСимвола = 41 Тогда // Закрывающая скобка. - Если Не ЗнакОтрицательный Или Результат = 0 Тогда // Не было открывающей скобки или нет числа. - Возврат Неопределено; - КонецЕсли; - // Пропуск (действие не требуется). - ИначеЕсли КодСимвола = 44 Или КодСимвола = 46 Тогда // Запятая или точка. - Если ЗнаковПослеЗапятой <> -1 Тогда - Возврат Неопределено; // Разделитель уже был, следовательно это не число. - КонецЕсли; - ЗнаковПослеЗапятой = 0; // Запуск отсчета знаков после запятой. - ИначеЕсли КодСимвола > 47 И КодСимвола < 58 Тогда // Число. - Если ЗнаковПослеЗапятой <> -1 Тогда - ЗнаковПослеЗапятой = ЗнаковПослеЗапятой + 1; - КонецЕсли; - Число = КодСимвола - 48; - Результат = Результат * 10 + Число; - Иначе - Возврат Неопределено; - КонецЕсли; - КонецЦикла; - - Если ЗнаковПослеЗапятой > 0 Тогда - Результат = Результат / Pow(10, ЗнаковПослеЗапятой); - КонецЕсли; - Если ЗнакОтрицательный Тогда - Результат = -Результат; - КонецЕсли; - - Возврат Результат; -КонецФункции - -// Выполняет преобразование цифры в римскую нотацию. -// -// Параметры -// Цифра - Число - цифра от 0 до 9. -// РимскаяЕдиница, РимскаяПятерка, РимскаяДесятка - Строка - символы, соответствующие римским цифрам. -// -// Возвращаемое значение -// Строка - цифра в римской нотации. -// -// Пример: -// ПреобразоватьЦифруВРимскуюНотацию(7,"I","V","X") = "VII". -// -Функция ПреобразоватьЦифруВРимскуюНотацию(Цифра, РимскаяЕдиница, РимскаяПятерка, РимскаяДесятка) - - РимскаяЦифра=""; - Если Цифра = 1 Тогда - РимскаяЦифра = РимскаяЕдиница - ИначеЕсли Цифра = 2 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 3 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 4 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяПятерка; - ИначеЕсли Цифра = 5 Тогда - РимскаяЦифра = РимскаяПятерка; - ИначеЕсли Цифра = 6 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница; - ИначеЕсли Цифра = 7 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 8 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 9 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяДесятка; - КонецЕсли; - Возврат РимскаяЦифра; - -КонецФункции - -// Вставляет параметры в строку, учитывая, что в параметрах могут использоваться подстановочные слова %1, %2 и т.д. -Функция ПодставитьПараметрыВСтрокуАльтернативныйАлгоритм(Знач СтрокаПодстановки, - Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено, - Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено, - Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) - - Результат = ""; - Позиция = Найти(СтрокаПодстановки, "%"); - Пока Позиция > 0 Цикл - Результат = Результат + Лев(СтрокаПодстановки, Позиция - 1); - СимволПослеПроцента = Сред(СтрокаПодстановки, Позиция + 1, 1); - ПодставляемыйПараметр = ""; - Если СимволПослеПроцента = "1" Тогда - ПодставляемыйПараметр = Параметр1; - ИначеЕсли СимволПослеПроцента = "2" Тогда - ПодставляемыйПараметр = Параметр2; - ИначеЕсли СимволПослеПроцента = "3" Тогда - ПодставляемыйПараметр = Параметр3; - ИначеЕсли СимволПослеПроцента = "4" Тогда - ПодставляемыйПараметр = Параметр4; - ИначеЕсли СимволПослеПроцента = "5" Тогда - ПодставляемыйПараметр = Параметр5; - ИначеЕсли СимволПослеПроцента = "6" Тогда - ПодставляемыйПараметр = Параметр6; - ИначеЕсли СимволПослеПроцента = "7" Тогда - ПодставляемыйПараметр = Параметр7 - ИначеЕсли СимволПослеПроцента = "8" Тогда - ПодставляемыйПараметр = Параметр8; - ИначеЕсли СимволПослеПроцента = "9" Тогда - ПодставляемыйПараметр = Параметр9; - КонецЕсли; - Если ПодставляемыйПараметр = "" Тогда - Результат = Результат + "%"; - СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 1); - Иначе - Результат = Результат + ПодставляемыйПараметр; - СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 2); - КонецЕсли; - Позиция = Найти(СтрокаПодстановки, "%"); - КонецЦикла; - Результат = Результат + СтрокаПодстановки; - - Возврат Результат; -КонецФункции - -Функция СоответствиеКириллицыИЛатиницы() - // Транслитерация, используемая в загранпаспортах 1997-2010. - Соответствие = Новый Соответствие; - Соответствие.Вставить("а","a"); - Соответствие.Вставить("б","b"); - Соответствие.Вставить("в","v"); - Соответствие.Вставить("г","g"); - Соответствие.Вставить("д","d"); - Соответствие.Вставить("е","e"); - Соответствие.Вставить("ё","e"); - Соответствие.Вставить("ж","zh"); - Соответствие.Вставить("з","z"); - Соответствие.Вставить("и","i"); - Соответствие.Вставить("й","y"); - Соответствие.Вставить("к","k"); - Соответствие.Вставить("л","l"); - Соответствие.Вставить("м","m"); - Соответствие.Вставить("н","n"); - Соответствие.Вставить("о","o"); - Соответствие.Вставить("п","p"); - Соответствие.Вставить("р","r"); - Соответствие.Вставить("с","s"); - Соответствие.Вставить("т","t"); - Соответствие.Вставить("у","u"); - Соответствие.Вставить("ф","f"); - Соответствие.Вставить("х","kh"); - Соответствие.Вставить("ц","ts"); - Соответствие.Вставить("ч","ch"); - Соответствие.Вставить("ш","sh"); - Соответствие.Вставить("щ","shch"); - Соответствие.Вставить("ъ",""""); - Соответствие.Вставить("ы","y"); - Соответствие.Вставить("ь",""); // пропускается - Соответствие.Вставить("э","e"); - Соответствие.Вставить("ю","yu"); - Соответствие.Вставить("я","ya"); - - Возврат Соответствие; -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// УСТАРЕВШИЕ ПРОЦЕДУРЫ И ФУНКЦИИ - -// Устарела. Следует использовать СтрокаИзМассиваПодстрок. -// -// Объединяет строки из массива в строку с разделителями. -// -// Параметры: -// Массив - Массив - массив строк которые необходимо объединить в одну строку; -// Разделитель - Строка - любой набор символов, который будет использован в качестве разделителя. -// -// Возвращаемое значение: -// Строка - строка с разделителями. -// -Функция ПолучитьСтрокуИзМассиваПодстрок(Массив, Разделитель = ",") Экспорт - - // Возвращаемое значение функции. - Результат = ""; - - Для Каждого Элемент Из Массив Цикл - - Подстрока = ?(ТипЗнч(Элемент) = Тип("Строка"), Элемент, Строка(Элемент)); - - РазделительПодстрок = ?(ПустаяСтрока(Результат), "", Разделитель); - - Результат = Результат + РазделительПодстрок + Подстрока; - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// } Функции работы со строками diff --git "a/lib/CF/83xdd/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/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/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/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 85c609cf1..000000000 --- "a/lib/CF/83xdd/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/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 573bed731..000000000 --- "a/lib/CF/83xdd/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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.СтроковыеУтилиты - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index b8115f777..000000000 --- "a/lib/CF/83xdd/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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,1274 +0,0 @@ - -// { 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 Цикл - ПозицияЗакрывающегоТега = Найти(Текст, ""); - Если ПозицияЗакрывающегоТега = 0 Тогда - // Не найден закрывающий тег - вырезаем оставшийся текст. - ПозицияЗакрывающегоТега = СтрДлина(Текст); - КонецЕсли; - Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 9); - ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 9); - Позиция = Найти(Текст, " 0 Цикл - ПозицияЗакрывающегоТега = Найти(Текст, ""); - Если ПозицияЗакрывающегоТега = 0 Тогда - // Не найден закрывающий тег - вырезаем оставшийся текст. - ПозицияЗакрывающегоТега = СтрДлина(Текст); - КонецЕсли; - Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 8); - ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 8); - Позиция = Найти(Текст, " 0 Цикл - Результат = Результат + Лев(ИсходныйТекст, Позиция-1); - Текст = Сред(Текст, Позиция + 1); - ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 1); - Позиция = Найти(Текст, ">"); - Если Позиция > 0 Тогда - Текст = Сред(Текст, Позиция + 1); - ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 1); - КонецЕсли; - Позиция = Найти(Текст, "<"); - КонецЦикла; - Результат = Результат + ИсходныйТекст; - МассивСтрок = РазложитьСтрокуВМассивПодстрок(Результат, Символы.ПС, Истина, Истина); - Возврат СокрЛП(СтрокаИзМассиваПодстрок(МассивСтрок, Символы.ПС)); -КонецФункции - -// Преобразует исходную строку в транслит. -&НаКлиенте -Функция СтрокаЛатиницей(Знач Строка) Экспорт - - Результат = ""; - - Соответствие = СоответствиеКириллицыИЛатиницы(); - - ПредыдущийСимвол = ""; - Для Позиция = 1 По СтрДлина(Строка) Цикл - Символ = Сред(Строка, Позиция, 1); - СимволЛатиницей = Соответствие[НРег(Символ)]; // Поиск соответствия без учета регистра. - Если СимволЛатиницей = Неопределено Тогда - // Другие символы остаются "как есть". - СимволЛатиницей = Символ; - Иначе - Если Символ = ВРег(Символ) Тогда - СимволЛатиницей = ТРег(СимволЛатиницей); // восстанавливаем регистр - КонецЕсли; - КонецЕсли; - Результат = Результат + СимволЛатиницей; - ПредыдущийСимвол = СимволЛатиницей; - КонецЦикла; - - Возврат Результат; -КонецФункции - -// Форматирует строку в соответствии с заданным шаблоном. -// Возможные значения тегов выделения: -// Строка - выделяет строку жирным шрифтом -//
Строка -// -// Пример: -// Минимальная версия программы 1.1. Обновите программу. -// -// Возвращаемое значение: -// ФорматированнаяСтрока -&НаКлиенте -Функция ФорматированнаяСтрока(Знач Строка) Экспорт - - СтрокиСВыделением = Новый СписокЗначений; - Пока Найти(Строка, "") <> 0 Цикл - НачалоВыделения = Найти(Строка, ""); - СтрокаДоОткрывающегоТега = Лев(Строка, НачалоВыделения - 1); - СтрокиСВыделением.Добавить(СтрокаДоОткрывающегоТега); - СтрокаПослеОткрывающегоТега = Сред(Строка, НачалоВыделения + 3); - КонецВыделения = Найти(СтрокаПослеОткрывающегоТега, ""); - ВыделенныйФрагмент = Лев(СтрокаПослеОткрывающегоТега, КонецВыделения - 1); - СтрокиСВыделением.Добавить(ВыделенныйФрагмент,, Истина); - СтрокаПослеВыделения = Сред(СтрокаПослеОткрывающегоТега, КонецВыделения + 4); - Строка = СтрокаПослеВыделения; - КонецЦикла; - СтрокиСВыделением.Добавить(Строка); - - СтрокиСоСсылками = Новый СписокЗначений; - Для Каждого ЧастьСтроки Из СтрокиСВыделением Цикл - - Строка = ЧастьСтроки.Значение; - - Если ЧастьСтроки.Пометка Тогда - СтрокиСоСсылками.Добавить(Строка,, Истина); - Продолжить; - КонецЕсли; - - НачалоВыделения = Найти(Строка, ""); - - Ссылка = СокрЛП(Лев(СтрокаПослеОткрывающегоТега, ЗакрывающийТег - 2)); - Если Лев(Ссылка, 1) = """" Тогда - Ссылка = Сред(Ссылка, 2, СтрДлина(Ссылка) - 1); - КонецЕсли; - Если Прав(Ссылка, 1) = """" Тогда - Ссылка = Сред(Ссылка, 1, СтрДлина(Ссылка) - 1); - КонецЕсли; - - СтрокаПослеСсылки = Сред(СтрокаПослеОткрывающегоТега, ЗакрывающийТег + 1); - КонецВыделения = Найти(СтрокаПослеСсылки, ""); - ТекстСсылки = Лев(СтрокаПослеСсылки, КонецВыделения - 1); - СтрокиСоСсылками.Добавить(ТекстСсылки, Ссылка); - - СтрокаПослеВыделения = Сред(СтрокаПослеСсылки, КонецВыделения + 4); - Строка = СтрокаПослеВыделения; - - НачалоВыделения = Найти(Строка, " 0 Тогда - Возврат Неопределено; - КонецЕсли; - ЗнакОтрицательный = Истина; - ИначеЕсли КодСимвола = 41 Тогда // Закрывающая скобка. - Если Не ЗнакОтрицательный Или Результат = 0 Тогда // Не было открывающей скобки или нет числа. - Возврат Неопределено; - КонецЕсли; - // Пропуск (действие не требуется). - ИначеЕсли КодСимвола = 44 Или КодСимвола = 46 Тогда // Запятая или точка. - Если ЗнаковПослеЗапятой <> -1 Тогда - Возврат Неопределено; // Разделитель уже был, следовательно это не число. - КонецЕсли; - ЗнаковПослеЗапятой = 0; // Запуск отсчета знаков после запятой. - ИначеЕсли КодСимвола > 47 И КодСимвола < 58 Тогда // Число. - Если ЗнаковПослеЗапятой <> -1 Тогда - ЗнаковПослеЗапятой = ЗнаковПослеЗапятой + 1; - КонецЕсли; - Число = КодСимвола - 48; - Результат = Результат * 10 + Число; - Иначе - Возврат Неопределено; - КонецЕсли; - КонецЦикла; - - Если ЗнаковПослеЗапятой > 0 Тогда - Результат = Результат / Pow(10, ЗнаковПослеЗапятой); - КонецЕсли; - Если ЗнакОтрицательный Тогда - Результат = -Результат; - КонецЕсли; - - Возврат Результат; -КонецФункции - -// Выполняет преобразование цифры в римскую нотацию. -// -// Параметры -// Цифра - Число - цифра от 0 до 9. -// РимскаяЕдиница, РимскаяПятерка, РимскаяДесятка - Строка - символы, соответствующие римским цифрам. -// -// Возвращаемое значение -// Строка - цифра в римской нотации. -// -// Пример: -// ПреобразоватьЦифруВРимскуюНотацию(7,"I","V","X") = "VII". -// -&НаКлиенте -Функция ПреобразоватьЦифруВРимскуюНотацию(Цифра, РимскаяЕдиница, РимскаяПятерка, РимскаяДесятка) - - РимскаяЦифра=""; - Если Цифра = 1 Тогда - РимскаяЦифра = РимскаяЕдиница - ИначеЕсли Цифра = 2 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 3 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 4 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяПятерка; - ИначеЕсли Цифра = 5 Тогда - РимскаяЦифра = РимскаяПятерка; - ИначеЕсли Цифра = 6 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница; - ИначеЕсли Цифра = 7 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 8 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 9 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяДесятка; - КонецЕсли; - Возврат РимскаяЦифра; - -КонецФункции - -// Вставляет параметры в строку, учитывая, что в параметрах могут использоваться подстановочные слова %1, %2 и т.д. -&НаКлиенте -Функция ПодставитьПараметрыВСтрокуАльтернативныйАлгоритм(Знач СтрокаПодстановки, - Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено, - Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено, - Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) - - Результат = ""; - Позиция = Найти(СтрокаПодстановки, "%"); - Пока Позиция > 0 Цикл - Результат = Результат + Лев(СтрокаПодстановки, Позиция - 1); - СимволПослеПроцента = Сред(СтрокаПодстановки, Позиция + 1, 1); - ПодставляемыйПараметр = ""; - Если СимволПослеПроцента = "1" Тогда - ПодставляемыйПараметр = Параметр1; - ИначеЕсли СимволПослеПроцента = "2" Тогда - ПодставляемыйПараметр = Параметр2; - ИначеЕсли СимволПослеПроцента = "3" Тогда - ПодставляемыйПараметр = Параметр3; - ИначеЕсли СимволПослеПроцента = "4" Тогда - ПодставляемыйПараметр = Параметр4; - ИначеЕсли СимволПослеПроцента = "5" Тогда - ПодставляемыйПараметр = Параметр5; - ИначеЕсли СимволПослеПроцента = "6" Тогда - ПодставляемыйПараметр = Параметр6; - ИначеЕсли СимволПослеПроцента = "7" Тогда - ПодставляемыйПараметр = Параметр7 - ИначеЕсли СимволПослеПроцента = "8" Тогда - ПодставляемыйПараметр = Параметр8; - ИначеЕсли СимволПослеПроцента = "9" Тогда - ПодставляемыйПараметр = Параметр9; - КонецЕсли; - Если ПодставляемыйПараметр = "" Тогда - Результат = Результат + "%"; - СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 1); - Иначе - Результат = Результат + ПодставляемыйПараметр; - СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 2); - КонецЕсли; - Позиция = Найти(СтрокаПодстановки, "%"); - КонецЦикла; - Результат = Результат + СтрокаПодстановки; - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция СоответствиеКириллицыИЛатиницы() - // Транслитерация, используемая в загранпаспортах 1997-2010. - Соответствие = Новый Соответствие; - Соответствие.Вставить("а","a"); - Соответствие.Вставить("б","b"); - Соответствие.Вставить("в","v"); - Соответствие.Вставить("г","g"); - Соответствие.Вставить("д","d"); - Соответствие.Вставить("е","e"); - Соответствие.Вставить("ё","e"); - Соответствие.Вставить("ж","zh"); - Соответствие.Вставить("з","z"); - Соответствие.Вставить("и","i"); - Соответствие.Вставить("й","y"); - Соответствие.Вставить("к","k"); - Соответствие.Вставить("л","l"); - Соответствие.Вставить("м","m"); - Соответствие.Вставить("н","n"); - Соответствие.Вставить("о","o"); - Соответствие.Вставить("п","p"); - Соответствие.Вставить("р","r"); - Соответствие.Вставить("с","s"); - Соответствие.Вставить("т","t"); - Соответствие.Вставить("у","u"); - Соответствие.Вставить("ф","f"); - Соответствие.Вставить("х","kh"); - Соответствие.Вставить("ц","ts"); - Соответствие.Вставить("ч","ch"); - Соответствие.Вставить("ш","sh"); - Соответствие.Вставить("щ","shch"); - Соответствие.Вставить("ъ",""""); - Соответствие.Вставить("ы","y"); - Соответствие.Вставить("ь",""); // пропускается - Соответствие.Вставить("э","e"); - Соответствие.Вставить("ю","yu"); - Соответствие.Вставить("я","ya"); - - Возврат Соответствие; -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// УСТАРЕВШИЕ ПРОЦЕДУРЫ И ФУНКЦИИ - -// Устарела. Следует использовать СтрокаИзМассиваПодстрок. -// -// Объединяет строки из массива в строку с разделителями. -// -// Параметры: -// Массив - Массив - массив строк которые необходимо объединить в одну строку; -// Разделитель - Строка - любой набор символов, который будет использован в качестве разделителя. -// -// Возвращаемое значение: -// Строка - строка с разделителями. -// -&НаКлиенте -Функция ПолучитьСтрокуИзМассиваПодстрок(Массив, Разделитель = ",") Экспорт - - // Возвращаемое значение функции. - Результат = ""; - - Для Каждого Элемент Из Массив Цикл - - Подстрока = ?(ТипЗнч(Элемент) = Тип("Строка"), Элемент, Строка(Элемент)); - - РазделительПодстрок = ?(ПустаяСтрока(Результат), "", Разделитель); - - Результат = Результат + РазделительПодстрок + Подстрока; - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// } Функции работы со строками - - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262.xml" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262.xml" deleted file mode 100644 index 5b3dbd6f9..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 7582deee-1eae-4083-870b-3ee5f9453245 - 4cdb2c0e-4b1a-482f-9125-a274bb438a33 - - - c1612d8f-d2dd-46ca-a6b3-da1dcfa424da - bea1e8c0-1c50-4034-bc86-3cb878aad767 - - - - Тест_ЗагрузчикИзПодсистем_НовыйAPIОбъявленияТестов - - - ru - Тесты - загрузчик из подсистем - новый API объявления тестов - - - - false - DataProcessor.Тест_ЗагрузчикИзПодсистем_НовыйAPIОбъявленияТестов.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Ext/ObjectModule.bsl" deleted file mode 100644 index 00f49e7dc..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,62 +0,0 @@ -Перем КонтекстЯдра; -Перем Ожидаем; - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); -КонецПроцедуры - -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - // Устанавливает режим выполнения для контейнера обработки - НаборТестов.СлучайныйПорядокВыполнения(); - //НаборТестов.СтрогийПорядокВыполнения(); - - НаборТестов.Добавить("ТестДолжен_ПроверитьВыполнение_ПростогоТеста"); - - НаборТестов.НачатьГруппу("Группа со случайным порядком выполнения"); - НаборТестов.Добавить("ТестДолжен_ПроверитьВыполнение_ПростогоТеста_СПроизвольнымПредставлением", , "Тест с произвольным представлением"); - НаборТестов.Добавить("ТестДолжен_ПроверитьВыполнение_ТестаСПараметром", НаборТестов.ПараметрыТеста(Истина)); - - НаборТестов.НачатьГруппу("Группа со строгим порядком выполнения", Истина); - НаборТестов.Добавить("ТестДолжен_СохранитьКонтекст"); - НаборТестов.Добавить("ТестДолжен_ПроверитьСохраненныйКонтекст"); - - НаборТестов.НачатьГруппу("Группа параметризированных тестов со строгим порядком выполнения", Истина); - НаборТестов.Добавить("ТестДолжен_СохранитьРезультатСложенияВКонтекст", НаборТестов.ПараметрыТеста(5, 7), "Тест должен сохранить результат сложения (5 + 7) в контекст"); - Тест = НаборТестов.Добавить("ТестДолжен_СравнитьКонтекстСоСвоимПараметром"); - Тест.Параметры.Добавить(12); -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьВыполнение_ПростогоТеста() Экспорт - Ожидаем.Что(Истина).ЭтоИстина(); -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьВыполнение_ПростогоТеста_СПроизвольнымПредставлением() Экспорт - Ожидаем.Что(Истина).ЭтоИстина(); -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьВыполнение_ТестаСПараметром(Параметр) Экспорт - Ожидаем.Что(Параметр).ЭтоИстина(); -КонецПроцедуры - -// { Группа со строгим режимом выполнения -Процедура ТестДолжен_СохранитьКонтекст() Экспорт - КонтекстЯдра.СохранитьКонтекст(10); -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьСохраненныйКонтекст() Экспорт - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - Ожидаем.Что(Контекст).Равно(10); -КонецПроцедуры -// } Группа со строгим режимом выполнения - -// { Группа параметризированных тестов со строгим режимом выполнения -Процедура ТестДолжен_СохранитьРезультатСложенияВКонтекст(Знач1, Знач2) Экспорт - КонтекстЯдра.СохранитьКонтекст(Знач1 + Знач2); -КонецПроцедуры - -Процедура ТестДолжен_СравнитьКонтекстСоСвоимПараметром(Результат) Экспорт - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - Ожидаем.Что(Контекст).Равно(Результат); -КонецПроцедуры -// } Группа параметризированных тестов со строгим режимом выполнения diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 8c86c0f41..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index f74101d40..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.Тест_ЗагрузчикИзПодсистем_НовыйAPIОбъявленияТестов - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 66642f7ae..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,73 +0,0 @@ -&НаКлиенте -Перем КонтекстЯдра; -&НаКлиенте -Перем Ожидаем; - -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - // Устанавливает режим выполнения для контейнера обработки - НаборТестов.СлучайныйПорядокВыполнения(); - //НаборТестов.СтрогийПорядокВыполнения(); - - НаборТестов.Добавить("ТестДолжен_ПроверитьВыполнение_ПростогоТеста"); - - НаборТестов.НачатьГруппу("Группа со случайным порядком выполнения"); - НаборТестов.Добавить("ТестДолжен_ПроверитьВыполнение_ПростогоТеста_СПроизвольнымПредставлением", , "Тест с произвольным представлением"); - НаборТестов.Добавить("ТестДолжен_ПроверитьВыполнение_ТестаСПараметром", НаборТестов.ПараметрыТеста(Истина)); - - НаборТестов.НачатьГруппу("Группа со строгим порядком выполнения", Истина); - НаборТестов.Добавить("ТестДолжен_СохранитьКонтекст"); - НаборТестов.Добавить("ТестДолжен_ПроверитьСохраненныйКонтекст"); - - НаборТестов.НачатьГруппу("Группа параметризированных тестов со строгим порядком выполнения", Истина); - НаборТестов.Добавить("ТестДолжен_СохранитьРезультатСложенияВКонтекст", НаборТестов.ПараметрыТеста(5, 7), "Тест должен сохранить результат сложения (5 + 7) в контекст"); - Тест = НаборТестов.Добавить("ТестДолжен_СравнитьКонтекстСоСвоимПараметром"); - Тест.Параметры.Добавить(12); -КонецПроцедуры - -&НаКлиенте -Процедура ТестДолжен_ПроверитьВыполнение_ПростогоТеста() Экспорт - Ожидаем.Что(Истина).ЭтоИстина(); -КонецПроцедуры - -&НаКлиенте -Процедура ТестДолжен_ПроверитьВыполнение_ПростогоТеста_СПроизвольнымПредставлением() Экспорт - Ожидаем.Что(Истина).ЭтоИстина(); -КонецПроцедуры - -&НаКлиенте -Процедура ТестДолжен_ПроверитьВыполнение_ТестаСПараметром(Параметр) Экспорт - Ожидаем.Что(Параметр).ЭтоИстина(); -КонецПроцедуры - -// { Группа со строгим режимом выполнения -&НаКлиенте -Процедура ТестДолжен_СохранитьКонтекст() Экспорт - КонтекстЯдра.СохранитьКонтекст(10); -КонецПроцедуры - -&НаКлиенте -Процедура ТестДолжен_ПроверитьСохраненныйКонтекст() Экспорт - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - Ожидаем.Что(Контекст).Равно(10); -КонецПроцедуры -// } Группа со строгим режимом выполнения - -// { Группа параметризированных тестов со строгим режимом выполнения -&НаКлиенте -Процедура ТестДолжен_СохранитьРезультатСложенияВКонтекст(Знач1, Знач2) Экспорт - КонтекстЯдра.СохранитьКонтекст(Знач1 + Знач2); -КонецПроцедуры - -&НаКлиенте -Процедура ТестДолжен_СравнитьКонтекстСоСвоимПараметром(Результат) Экспорт - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - Ожидаем.Что(Контекст).Равно(Результат); -КонецПроцедуры -// } Группа параметризированных тестов со строгим режимом выполнения diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.xml" deleted file mode 100644 index e148934e3..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - fa34483b-347a-44a4-861a-3a63dc46e515 - 60439dfc-9973-4ce1-9f6d-d5eedd48dbc7 - - - c512191d-04f1-4deb-b286-8b78d9590224 - 16965601-4cc8-4ebd-93ca-c2549ed11c1e - - - - Тест_Обработка - - - ru - Тест обработка - - - - true - DataProcessor.Тест_Обработка.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Ext/ObjectModule.bsl" deleted file mode 100644 index fa13dfa14..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,18 +0,0 @@ -Перем КонтекстЯдра; -Перем Ожидаем; - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); -КонецПроцедуры - -Функция ПолучитьСписокТестов() Экспорт - ВсеТесты = Новый Массив; - ВсеТесты.Добавить("ТестДолжен_ПроверитьДваПлюсДваРавноЧетыре"); - - Возврат ВсеТесты; -КонецФункции - -Процедура ТестДолжен_ПроверитьДваПлюсДваРавноЧетыре() Экспорт - Ожидаем.Что(2 + 2).Равно(4); -КонецПроцедуры diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index fdfa25f7b..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 88747f04d..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,12 +0,0 @@ - -
- - - - - cfg:DataProcessorObject.Тест_Обработка - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 11541518a..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,23 +0,0 @@ -&НаКлиенте -Перем КонтекстЯдра; -&НаКлиенте -Перем Ожидаем; - -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); -КонецПроцедуры - -&НаКлиенте -Функция ПолучитьСписокТестов() Экспорт - ВсеТесты = Новый Массив; - ВсеТесты.Добавить("ТестДолжен_ПроверитьДваПлюсДваРавноЧетыре_НаФорме"); - - Возврат ВсеТесты; -КонецФункции - -&НаКлиенте -Процедура ТестДолжен_ПроверитьДваПлюсДваРавноЧетыре_НаФорме() Экспорт - Ожидаем.Что(2 + 2).Равно(4); -КонецПроцедуры diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270.xml" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270.xml" deleted file mode 100644 index 4f0ba6c46..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270.xml" +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - 180ec78f-ee96-4f83-ab59-3925b9fa0459 - c7085d33-6531-4a51-8d74-7ec7d8eca33b - - - 56cc0c9c-bcb8-4a3c-bf89-ff167f1e15aa - e0c0f210-399b-4f28-9789-54e56c254095 - - - - ТестОбработка_Форма_ИсключениеПриОткрытии - - - ru - Тест обработка форма исключение при открытии - - - баг https://github.com/xDrivenDevelopment/xUnitFor1C/issues/154 - true - DataProcessor.ТестОбработка_Форма_ИсключениеПриОткрытии.Form.ОбычнаяФорма - DataProcessor.ТестОбработка_Форма_ИсключениеПриОткрытии.Form.УправляемаяФорма - false - - - - -
УправляемаяФорма
-
ОбычнаяФорма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/Ext/ObjectModule.bsl" deleted file mode 100644 index d7690f34a..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,39 +0,0 @@ - -//{ основная процедура для юнит-тестирования 1CUnit -Перем _тестируем; // для тестирования -Перем юТест; - -Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт - - юТест = ЮнитТестирование; - - ВсеТесты = Новый Массив; - - ВсеТесты.Добавить("ТестДолжен_ПроверитьДваПлюсДваРавноЧетыре"); - - Возврат ВсеТесты; - -КонецФункции -//} - -//{ ОСНОВНОЙ БЛОК - -//} КОНЕЦ ОСНОВНОГО БЛОКА - -//{ БЛОК ЮНИТ-ТЕСТОВ - сами тесты - -Процедура ПередЗапускомТеста() Экспорт - -КонецПроцедуры - -Процедура ПослеЗапускаТеста() Экспорт - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьДваПлюсДваРавноЧетыре() Экспорт - юТест.ПроверитьРавенство(2 + 2, 4); -КонецПроцедуры - -_тестируем = Ложь; - -//} КОНЕЦ БЛОКА ЮНИТ-ТЕСТОВ \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/Forms/\320\236\320\261\321\213\321\207\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/Forms/\320\236\320\261\321\213\321\207\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index a91b9eb52..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/Forms/\320\236\320\261\321\213\321\207\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - ОбычнаяФорма - - - ru - Обычная форма - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/Forms/\320\236\320\261\321\213\321\207\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/Forms/\320\236\320\261\321\213\321\207\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" deleted file mode 100644 index f00364834..000000000 Binary files "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/Forms/\320\236\320\261\321\213\321\207\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" and /dev/null differ diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/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/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/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" deleted file mode 100644 index 174efae5d..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/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" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/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/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/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" deleted file mode 100644 index 4b3040364..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/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" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ТестОбработка_Форма_ИсключениеПриОткрытии - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/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/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/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" deleted file mode 100644 index 1df71e4fa..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\244\320\276\321\200\320\274\320\260_\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\270/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" +++ /dev/null @@ -1,2 +0,0 @@ -//ВызватьИсключение "Ошибка при открытии формы"; -Специальная Синтакс-ошибка \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\237\320\260\320\264\320\260\321\216\321\211\320\270\320\271_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\237\320\260\320\264\320\260\321\216\321\211\320\270\320\271_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.xml" deleted file mode 100644 index 8002f0312..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\237\320\260\320\264\320\260\321\216\321\211\320\270\320\271_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.xml" +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - afbcd6f2-f468-449a-8f68-0aedc73cea41 - 62c7ee0e-3ce0-49b8-a6aa-ec75b1a3b13e - - - e17ac2c9-4ccb-49ec-bc84-03eba8b3ed35 - 209b6ba8-0ec5-470e-8062-941a25c93227 - - - - ТестПадающий_Обработка - - - ru - Тест падающий обработка - - - - true - - - false - - - - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\237\320\260\320\264\320\260\321\216\321\211\320\270\320\271_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\237\320\260\320\264\320\260\321\216\321\211\320\270\320\271_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Ext/ObjectModule.bsl" deleted file mode 100644 index f7b8b3786..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\242\320\265\321\201\321\202\320\237\320\260\320\264\320\260\321\216\321\211\320\270\320\271_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,39 +0,0 @@ - -//{ основная процедура для юнит-тестирования 1CUnit -Перем _тестируем; // для тестирования -Перем юТест; - -Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт - - юТест = ЮнитТестирование; - - ВсеТесты = Новый Массив; - - ВсеТесты.Добавить("ТестДолженУпасть"); - - Возврат ВсеТесты; - -КонецФункции -//} - -//{ ОСНОВНОЙ БЛОК - -//} КОНЕЦ ОСНОВНОГО БЛОКА - -//{ БЛОК ЮНИТ-ТЕСТОВ - сами тесты - -Процедура ПередЗапускомТеста() Экспорт - -КонецПроцедуры - -Процедура ПослеЗапускаТеста() Экспорт - -КонецПроцедуры - -Процедура ТестДолженУпасть() Экспорт - юТест.ПроверитьРавенство(2 + 2, 5); -КонецПроцедуры - -_тестируем = Ложь; - -//} КОНЕЦ БЛОКА ЮНИТ-ТЕСТОВ \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD.xml" "b/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD.xml" deleted file mode 100644 index 70f9ab003..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD.xml" +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - af32ecd2-3f3c-4d2c-8b67-ca6380b4f322 - ce9adda6-851a-4163-8f31-bad0f654f05d - - - d70f17da-c898-47c4-a57f-a791299d49f4 - 1f45089a-50fb-4f89-b1b1-59cdfbc2739f - - - - УтвержденияBDD - - - ru - Утверждения BDD - - - - false - DataProcessor.УтвержденияBDD.Form.Форма - - false - - - - - - - ДопСообщениеОшибки - - - ru - Доп сообщение ошибки - - - - - xs:string - - 0 - Variable - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - ИмяМетода - - - ru - Имя метода - - - - - xs:string - - 0 - Variable - - - 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 - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Ext/ObjectModule.bsl" deleted file mode 100644 index 4e8d53932..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,306 +0,0 @@ -Перем СтатусыРезультатаТестирования; -Перем ФлагОтрицанияДляСообщения; - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "УтвержденияBDD"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -Функция Что(Знач ПроверяемоеЗначение, Знач Сообщение = "") Экспорт - ЭтотОбъект.ПроверяемоеЗначение = ПроверяемоеЗначение; - ЭтотОбъект.ДопСообщениеОшибки = Сообщение; - ЭтотОбъект.ФлагОтрицания = Ложь; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Не_() Экспорт - ЭтотОбъект.ФлагОтрицания = Истина; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЭтоНе() Экспорт - Возврат Не_(); -КонецФункции - -Функция Метод(Знач ИмяМетода, Знач ПараметрыМетода = Неопределено) Экспорт - ЭтотОбъект.ИмяМетода = ИмяМетода; - ЭтотОбъект.ПараметрыМетода = ПараметрыМетода; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЭтоИстина() Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Истина) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(Формат(ПроверяемоеЗначение, "БЛ=Ложь; БИ=Истина"), "является ИСТИНОЙ."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЕстьИстина() Экспорт - Возврат ЭтоИстина(); -КонецФункции - -Функция ЭтоЛожь() Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Ложь) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(Формат(ПроверяемоеЗначение, "БЛ=Ложь; БИ=Истина"), "является ЛОЖЬЮ."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЕстьЛожь() Экспорт - Возврат ЭтоЛожь(); -КонецФункции - -Функция Равно(Знач ОжидаемоеЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = ОжидаемоеЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "РАВНО (" + ОжидаемоеЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Больше(Знач МеньшееЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение > МеньшееЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БОЛЬШЕ (" + МеньшееЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция БольшеИлиРавно(Знач МеньшееИлиРавноеЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение >= МеньшееИлиРавноеЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БОЛЬШЕ ИЛИ РАВНО (" + МеньшееИлиРавноеЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Минимум(Знач МинимальноеЗначение) Экспорт - Возврат БольшеИлиРавно(МинимальноеЗначение); -КонецФункции - -Функция МеньшеИлиРавно(Знач БольшееИлиРавноеЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение <= БольшееИлиРавноеЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕНЬШЕ ИЛИ РАВНО (" + БольшееИлиРавноеЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Максимум(Знач МаксимальноеЗначение) Экспорт - Возврат МеньшеИлиРавно(МаксимальноеЗначение); -КонецФункции - -Функция Меньше(Знач БольшееЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение < БольшееЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕНЬШЕ (" + БольшееЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Заполнено() Экспорт - Если Не ЛогическоеВыражениеВерно(ЗначениеЗаполнено(ПроверяемоеЗначение)) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "является ЗАПОЛНЕННЫМ."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Существует() Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение <> Неопределено И ПроверяемоеЗначение <> Null) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "СУЩЕСТВУЕТ."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЭтоНеопределено() Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Неопределено) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "является НЕОПРЕДЕЛЕНО."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЕстьНеопределено() Экспорт - Возврат ЭтоНеопределено(); -КонецФункции - -Функция ЭтоNull() Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Null) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "является NULL."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЕстьNull() Экспорт - Возврат ЭтоNull(); -КонецФункции - -Функция ИмеетТип(Знач ТипИлиИмяТипа) Экспорт - ОжидаемыйТип = ?(ТипЗнч(ТипИлиИмяТипа) = Тип("Строка"), Тип(ТипИлиИмяТипа), ТипИлиИмяТипа); - ТипПроверяемогоЗначения = ТипЗнч(ПроверяемоеЗначение); - Если Не ЛогическоеВыражениеВерно(ТипПроверяемогоЗначения = ОжидаемыйТип) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке("тип - " + ТипПроверяемогоЗначения, "имеет тип (" + ОжидаемыйТип + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Между(Знач НачальноеЗначение, Знач КонечноеЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение >= НачальноеЗначение И ПроверяемоеЗначение <= КонечноеЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕЖДУ (" + НачальноеЗначение + ") и (" + КонечноеЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Содержит(Знач ИскомоеЗначение) Экспорт - Перем ИскомоеЗначениеНайдено; - - ТипПроверяемоегоЗначения = ТипЗнч(ПроверяемоеЗначение); - Если ТипПроверяемоегоЗначения = Тип("Строка") Тогда - ИскомоеЗначениеНайдено = Найти(ПроверяемоеЗначение, ИскомоеЗначение) > 0; - ИначеЕсли ТипПроверяемоегоЗначения = Тип("Массив") Или ТипПроверяемоегоЗначения = Тип("ФиксированныйМассив") Тогда - ИскомоеЗначениеНайдено = ПроверяемоеЗначение.Найти(ИскомоеЗначение) <> Неопределено; - ИначеЕсли ТипПроверяемоегоЗначения = Тип("Структура") Или ТипПроверяемоегоЗначения = Тип("ФиксированнаяСтруктура") - Или ТипПроверяемоегоЗначения = Тип("Соответствие") Или ТипПроверяемоегоЗначения = Тип("ФиксированноеСоответствие") Тогда - Для каждого КлючЗначение Из ПроверяемоеЗначение Цикл - ИскомоеЗначениеНайдено = КлючЗначение.Значение = ИскомоеЗначение; - Если ИскомоеЗначениеНайдено Тогда - Прервать; - КонецЕсли; - КонецЦикла; - ИначеЕсли ТипПроверяемоегоЗначения = Тип("СписокЗначений") Тогда - ИскомоеЗначениеНайдено = ПроверяемоеЗначение.НайтиПоЗначению(ИскомоеЗначение) <> Неопределено; - КонецЕсли; - - Если ИскомоеЗначениеНайдено = Неопределено Тогда - СообщениеОшибки = "Утверждение ""Содержит"" не умеет работать с типом <" + ТипПроверяемоегоЗначения + ">." + ФорматДСО(ДопСообщениеОшибки); - ВызватьИсключение СообщениеОшибки; - КонецЕсли; - - Если Не ЛогическоеВыражениеВерно(ИскомоеЗначениеНайдено) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "СОДЕРЖИТ (" + ИскомоеЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ИмеетДлину(Знач ОжидаемаяДлина) Экспорт - Перем ФактическаяДлина; - - ТипПроверяемоегоЗначения = ТипЗнч(ПроверяемоеЗначение); - Если ТипПроверяемоегоЗначения = Тип("Строка") Тогда - ФактическаяДлина = СтрДлина(ПроверяемоеЗначение); - ИначеЕсли ТипПроверяемоегоЗначения = Тип("Массив") Или ТипПроверяемоегоЗначения = Тип("ФиксированныйМассив") - Или ТипПроверяемоегоЗначения = Тип("Структура") Или ТипПроверяемоегоЗначения = Тип("ФиксированнаяСтруктура") - Или ТипПроверяемоегоЗначения = Тип("Соответствие") Или ТипПроверяемоегоЗначения = Тип("ФиксированноеСоответствие") - Или ТипПроверяемоегоЗначения = Тип("СписокЗначений") Тогда - ФактическаяДлина = ПроверяемоеЗначение.Количество(); - КонецЕсли; - - Если ФактическаяДлина = Неопределено Тогда - СообщениеОшибки = "Утверждение ""ИмеетДлину"" не умеет работать с типом <" + ТипПроверяемоегоЗначения + ">." + ФорматДСО(ДопСообщениеОшибки); - ВызватьИсключение СообщениеОшибки; - КонецЕсли; - - Если Не ЛогическоеВыражениеВерно(ФактическаяДлина = ОжидаемаяДлина) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке("<" +ПроверяемоеЗначение + "> с длиной " + ФактическаяДлина, "ИМЕЕТ ДЛИНУ (" + ОжидаемаяДлина + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ВыбрасываетИсключение(Знач ФрагментИсключения = "") Экспорт - Контекст = ПроверяемоеЗначение; - СтрокаПараметры = ""; - Если ТипЗнч(ПараметрыМетода) = Тип("Массив") Тогда - Для Сч = 0 По ПараметрыМетода.Количество() - 1 Цикл - СтрокаПараметры = СтрокаПараметры + ",ПараметрыМетода[" + Сч + "]"; - КонецЦикла; - СтрокаПараметры = Сред(СтрокаПараметры, 2); - КонецЕсли; - СтрокаДляВыполнения = "Контекст." + ИмяМетода + "(" + СтрокаПараметры + ")"; - - ИсключениеВозникло = Ложь; - Попытка - Выполнить(СтрокаДляВыполнения); - Исключение - ИсключениеВозникло = Истина; - ТекстИсключения = ОписаниеОшибки(); - КонецПопытки; - - Если Не ЛогическоеВыражениеВерно(ИсключениеВозникло И Найти(ТекстИсключения, ФрагментИсключения) > 0) Тогда - СообщениеОшибки = "Ожидали, что " + СтрокаДляВыполнения - + ?(ФлагОтрицания, " НЕ ", " ") - + "ВЫБРОСИТ ИСКЛЮЧЕНИЕ" - + ?(ЗначениеЗаполнено(ФрагментИсключения), " СОДЕРЖАЩЕЕ ТЕКСТ <" + ФрагментИсключения + ">, а был текст <" + ТекстИсключения + ">.", ""); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -// { Helpers -Функция ФорматДСО(Знач ДопСообщениеОшибки) - Если ДопСообщениеОшибки = "" Тогда - Возврат ""; - КонецЕсли; - - Возврат Символы.ПС + ДопСообщениеОшибки; -КонецФункции - -Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки) - Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; -КонецПроцедуры - -Функция ЛогическоеВыражениеВерно(Знач ЛогическоеВыражение) - Результат = ФлагОтрицания <> ЛогическоеВыражение; - ФлагОтрицанияДляСообщения = ФлагОтрицания; - ФлагОтрицания = Ложь; - - Возврат Результат; -КонецФункции - -Функция СформироватьСообщениеОбОшибке(Знач ПроверяемоеЗначение, Знач Ожидание) - Возврат "Ожидали, что проверяемое значение (" + ПроверяемоеЗначение + ")" + ?(ФлагОтрицанияДляСообщения, " НЕ ", " ") + Ожидание + ФорматДСО(ДопСообщениеОшибки); -КонецФункции -// } Helpers - -СтатусыРезультатаТестирования = Новый Структура; -СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed"); -СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken"); -СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending"); -СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); diff --git "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 94014b583..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 8e886e956..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.УтвержденияBDD - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index e66f67731..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,208 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -&НаКлиенте -Функция Что(Знач ПроверяемоеЗначениеПараметр, Знач Сообщение = "") Экспорт - ВыполнитьМетодОбъектаНаСервере("Что", 2, ПроверяемоеЗначениеПараметр, Сообщение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Не_() Экспорт - ВыполнитьМетодОбъектаНаСервере("Не_", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЭтоНе() Экспорт - Возврат Не_(); -КонецФункции - -&НаКлиенте -Функция Метод(Знач ИмяМетода, Знач ПараметрыМетода = Неопределено) Экспорт - ВыполнитьМетодОбъектаНаСервере("Метод", 2, ИмяМетода, ПараметрыМетода); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЭтоИстина() Экспорт - ВыполнитьМетодОбъектаНаСервере("ЭтоИстина", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЕстьИстина() Экспорт - Возврат ЭтоИстина(); -КонецФункции - -&НаКлиенте -Функция ЭтоЛожь() Экспорт - ВыполнитьМетодОбъектаНаСервере("ЭтоЛожь", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЕстьЛожь() Экспорт - Возврат ЭтоЛожь(); -КонецФункции - -&НаКлиенте -Функция Равно(Знач ОжидаемоеЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("Равно", 1, ОжидаемоеЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Больше(Знач МеньшееЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("Больше", 1, МеньшееЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция БольшеИлиРавно(Знач МеньшееИлиРавноеЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("БольшеИлиРавно", 1, МеньшееИлиРавноеЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Минимум(Знач МинимальноеЗначение) Экспорт - Возврат БольшеИлиРавно(МинимальноеЗначение); -КонецФункции - -&НаКлиенте -Функция МеньшеИлиРавно(Знач БольшееИлиРавноеЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("МеньшеИлиРавно", 1, БольшееИлиРавноеЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Максимум(Знач МаксимальноеЗначение) Экспорт - Возврат МеньшеИлиРавно(МаксимальноеЗначение); -КонецФункции - -&НаКлиенте -Функция Меньше(Знач БольшееЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("Меньше", 1, БольшееЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Заполнено() Экспорт - ВыполнитьМетодОбъектаНаСервере("Заполнено", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Существует() Экспорт - ВыполнитьМетодОбъектаНаСервере("Существует", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЭтоНеопределено() Экспорт - ВыполнитьМетодОбъектаНаСервере("ЭтоНеопределено", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЕстьНеопределено() Экспорт - Возврат ЭтоНеопределено(); -КонецФункции - -&НаКлиенте -Функция ЭтоNull() Экспорт - ВыполнитьМетодОбъектаНаСервере("ЭтоNull", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЕстьNull() Экспорт - Возврат ЭтоNull(); -КонецФункции - -&НаКлиенте -Функция ИмеетТип(Знач ТипИлиИмяТипа) Экспорт - ВыполнитьМетодОбъектаНаСервере("ИмеетТип", 1, ТипИлиИмяТипа); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Между(Знач НачальноеЗначение, Знач КонечноеЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("Между", 2, НачальноеЗначение, КонечноеЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Содержит(Знач ИскомоеЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("Содержит", 1, ИскомоеЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ИмеетДлину(Знач ОжидаемаяДлина) Экспорт - ВыполнитьМетодОбъектаНаСервере("ИмеетДлину", 1, ОжидаемаяДлина); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ВыбрасываетИсключение(Знач ФрагментИсключения = "") Экспорт - ВыполнитьМетодОбъектаНаСервере("ВыбрасываетИсключение", 1, ФрагментИсключения); - - Возврат ЭтаФорма; -КонецФункции - -// { Helpers -&НаСервере -Процедура ВыполнитьМетодОбъектаНаСервере(Знач ИмяМетода, Знач КоличествоПараметров, Знач Параметр1 = Неопределено, Знач Параметр2 = Неопределено) - ОбъектНаСервере = ЭтотОбъектНаСервере(); - - СтрокаПараметры = ""; - Если КоличествоПараметров = 1 Тогда - СтрокаПараметры = "Параметр1"; - ИначеЕсли КоличествоПараметров = 2 Тогда - СтрокаПараметры = "Параметр1, Параметр2"; - КонецЕсли; - - Попытка - Выполнить("ОбъектНаСервере." + ИмяМетода + "(" + СтрокаПараметры + ")"); - Исключение - ОписаниеОшибки = ОписаниеОшибки(); - ВызватьИсключение "Вызов метода <" + ИмяМетода +">: " + ОписаниеОшибки; - КонецПопытки; - - ЗначениеВРеквизитФормы(ОбъектНаСервере, "Объект"); -КонецПроцедуры - -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" "b/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" deleted file mode 100644 index fe78d8ab6..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - 05820258-54a2-459c-9980-0219c767f3ce - eac6c3a1-43d4-4310-93ee-0e311ce6b695 - - - 3c905996-92ff-498f-b7d5-81e1264469a7 - 325cc8b8-cda1-4cf3-933a-cacdfedd2bc8 - - - - УтвержденияПроверкаТаблиц - - - ru - Утверждения проверка таблиц - - - - false - DataProcessor.УтвержденияПроверкаТаблиц.Form.Форма - - false - - - - - - - РезультатыСравненияТаблиц - - - ru - Результаты сравнения таблиц - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/ObjectModule.bsl" "b/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/ObjectModule.bsl" deleted file mode 100644 index 33f637aa9..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,219 +0,0 @@ - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "УтвержденияПроверкаТаблиц"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -Процедура ПроверитьРавенствоТаблиц(Таб1, Таб2, ДопСообщениеОшибки = "") Экспорт - - Если ТипЗнч(Таб1) <> Тип("ТаблицаЗначений") Тогда - ВызватьИсключение "ПроверитьРавенствоТаблиц: Первый параметр-таблица таблицей не является"; - КонецЕсли; - Если ТипЗнч(Таб2) <> Тип("ТаблицаЗначений") Тогда - ВызватьИсключение "ПроверитьРавенствоТаблиц: Второй параметр-таблица таблицей не является"; - КонецЕсли; - - Различия = Новый ТаблицаЗначений; - РезультатСравнения = СравнитьТаблицы(Таб1, Таб2, Различия); - - Если РезультатыСравненияТаблиц.ТаблицыСовпадают <> РезультатСравнения Тогда - - ИменаРезультатов = Новый Соответствие; - Для Каждого КлючЗначение Из РезультатыСравненияТаблиц Цикл - ИменаРезультатов.Вставить(КлючЗначение.Значение, КлючЗначение.Ключ); - КонецЦикла; - СтрокаОшибок = "Различия в таблицах:" + Символы.ПС; - СтрокаОшибок = СтрокаОшибок + "Ожидали статус <" + ИменаРезультатов[РезультатыСравненияТаблиц.ТаблицыСовпадают] + ">, а получили <" + ИменаРезультатов[РезультатСравнения] + ">" + Символы.ПС; - Для Каждого Строка Из Различия Цикл - СтрокаОшибок = СтрокаОшибок + "Значение [" + Строка.Колонка + ":" + Строка.Строка + "]. Ожидали <" + Строка.Ожидание + ">, а получили <" + Строка.Результат + ">" + Символы.ПС; - КонецЦикла; - - ВызватьОшибкуПроверки("Таблицы должны совпадать, а они различны" + Символы.ПС + СтрокаОшибок + Символы.ПС + ДопСообщениеОшибки); - - КонецЕсли; - -КонецПроцедуры - -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - - Если ТипЗнч(ТабДок1) <> Тип("ТабличныйДокумент") Тогда - ВызватьИсключение "ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям: Первый параметр-таблица не является табличным документов"; - КонецЕсли; - Если ТипЗнч(ТабДок2) <> Тип("ТабличныйДокумент") Тогда - ВызватьИсключение "ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям: Второй параметр-таблица не является табличным документов"; - КонецЕсли; - - УчитыватьТолькоВидимыеКолонки = Ложь; - Если ТипЗнч(УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки) = Тип("Булево") Тогда - УчитыватьТолькоВидимыеКолонки = УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки; - ИначеЕсли ТипЗнч(УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки; - КонецЕсли; - УчитыватьТолькоВидимыеСтроки = Ложь; - Если ТипЗнч(УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки) = Тип("Булево") Тогда - УчитыватьТолькоВидимыеСтроки = УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки; - ИначеЕсли ТипЗнч(УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки; - КонецЕсли; - - Таб1 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабДок1, УчитыватьТолькоВидимыеКолонки, УчитыватьТолькоВидимыеСтроки); - Таб2 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабДок2, УчитыватьТолькоВидимыеКолонки, УчитыватьТолькоВидимыеСтроки); - - ПроверитьРавенствоТаблиц(Таб1, Таб2, ДопСообщениеОшибки); - -КонецПроцедуры - -// портирован из Functest -Функция ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент, УчитыватьТолькоВидимыеКолонки = Ложь, УчитыватьТолькоВидимыеСтроки = Ложь) Экспорт - - ТипТабличногоДокумента = ТипЗнч(ТабличныйДокумент); - Если ТипТабличногоДокумента <> Тип("ТабличныйДокумент") И ТипТабличногоДокумента <> Тип("ПолеТабличногоДокумента") Тогда - ВызватьИсключение "ПолучитьТаблицуЗначенийИзТабличногоДокумента: Требуется тип ТабличныйДокумент или ПолеТабличногоДокумента"; - КонецЕсли; - - НомерПоследнейКолонки = ТабличныйДокумент.ШиринаТаблицы; - НомерПоследнейСтроки = ТабличныйДокумент.ВысотаТаблицы; - - НоваяТаблицаЗначений = Новый ТаблицаЗначений; - Колонки = НоваяТаблицаЗначений.Колонки; - ТипСтрока = Новый ОписаниеТипов("Строка"); - - // TODO При определении видимости не учитывается наличие нескольких форматов строк, сейчас видимоcть колонки определяется по формату первой строки - УчитываемыеКолонки = Новый Массив; - Для НомерКолонки = 1 По НомерПоследнейКолонки Цикл - ОбластьКолонки = ТабличныйДокумент.Область(0, НомерКолонки, 1, НомерКолонки); - - УчитыватьКолонку = Не УчитыватьТолькоВидимыеКолонки Или ОбластьКолонки.Видимость; - Если УчитыватьКолонку Тогда - УчитываемыеКолонки.Добавить(НомерКолонки); - ШиринаКолонки = ОбластьКолонки.ШиринаКолонки; - Если ШиринаКолонки <= 1 Тогда - ШиринаКолонки = 1; - КонецЕсли; - ИмяКолонки = "К" + Формат(Колонки.Количество() + 1, "ЧН=; ЧГ=0"); - Колонки.Добавить(ИмяКолонки, ТипСтрока, ИмяКолонки, ШиринаКолонки); - КонецЕсли; - КонецЦикла; - - ГраницаКолонок = УчитываемыеКолонки.ВГраница(); - Для НомерСтроки = 1 По НомерПоследнейСтроки Цикл - - Если УчитыватьТолькоВидимыеСтроки И Не ТабличныйДокумент.Область(НомерСтроки,, НомерСтроки).Видимость Тогда - Продолжить; - КонецЕсли; - - НоваяСтрока = НоваяТаблицаЗначений.Добавить(); - - Для Индекс = 0 По ГраницаКолонок Цикл - НомерКолонки = УчитываемыеКолонки[Индекс]; - Область = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки); - НоваяСтрока[Индекс] = Область.Текст; - КонецЦикла; - КонецЦикла; - - Возврат НоваяТаблицаЗначений; - -КонецФункции - -// портирован из Functest -Функция СравнитьТаблицы(ТаблицаОжиданий, ТаблицаРезультатов, ТаблицаРазличий) - - Если ТаблицаОжиданий.Количество() <> ТаблицаРезультатов.Количество() Тогда - Возврат РезультатыСравненияТаблиц.РазноеКоличествоСтрок; - КонецЕсли; - - Если ТаблицаОжиданий.Количество() = 0 Тогда - Возврат РезультатыСравненияТаблиц.ТаблицыСовпадают; //Пустые таблицы всегда одинаковы - КонецЕсли; - - //Проверим структуру колонок - - //TODO При этом сравнении в структуре ТаблицаРезультатов может оказаться больше колонок, чем в ТаблицаОжиданий, - // так что для абсолютного точного сравнения нужно добавить проверку совпадения количества колонок. - ОжидаемыеКолонки = ТаблицаОжиданий.Колонки; - КолонкиРезультата = ТаблицаРезультатов.Колонки; - Для Каждого Колонка Из ОжидаемыеКолонки Цикл - Если КолонкиРезультата.Найти(Колонка.Имя) = Неопределено Тогда - Возврат РезультатыСравненияТаблиц.РазличаютсяКолонки; - КонецЕсли; - КонецЦикла; - - Возврат СравнитьЗначенияТаблиц(ТаблицаОжиданий, ТаблицаРезультатов, ТаблицаРазличий); - -КонецФункции - -// портирован из Functest -Функция СравнитьЗначенияТаблиц(ТаблицаОжиданий, ТаблицаРезультатов, Различия) - - Различия = Новый ТаблицаЗначений; - Различия.Колонки.Очистить(); - Различия.Колонки.Добавить("Строка",Новый ОписаниеТипов("Число")); - Различия.Колонки.Добавить("Колонка",Новый ОписаниеТипов("Строка")); - Различия.Колонки.Добавить("Ожидание"); - Различия.Колонки.Добавить("Результат"); - - РезультатСравнения = РезультатыСравненияТаблиц.ТаблицыСовпадают; - - Колонки = ТаблицаОжиданий.Колонки; - ГраницаСтрок = ТаблицаОжиданий.Количество() - 1; - Для Индекс = 0 По ГраницаСтрок Цикл - - ОжидаемаяСтрока = ТаблицаОжиданий[Индекс]; - СтрокаРезультата = ТаблицаРезультатов[Индекс]; - - Для Каждого Колонка Из Колонки Цикл - ИмяКолонки = Колонка.Имя; - - ОжидаемоеЗначение = ОжидаемаяСтрока[ИмяКолонки]; - ЗначениеРезультата = СтрокаРезультата[ИмяКолонки]; - Если ОжидаемоеЗначение = ЗначениеРезультата - Или (Не ЗначениеЗаполнено(ОжидаемоеЗначение) И Не ЗначениеЗаполнено(ЗначениеРезультата)) Тогда //Пустые значения разных типов 1С-м не считаются равными :( - Продолжить; - КонецЕсли; - - Различие = Различия.Добавить(); - Различие.Строка = Индекс + 1; - Различие.Колонка = ИмяКолонки; - Различие.Ожидание = ОжидаемоеЗначение; - Различие.Результат = ЗначениеРезультата; - РезультатСравнения = РезультатыСравненияТаблиц.НеСовпадаютЗначенияВЯчейкеТаблицы; - - КонецЦикла; - - КонецЦикла; - - Возврат РезультатСравнения; - -КонецФункции - -Процедура ВызватьОшибкуПроверки(СообщениеОшибки = "") - - Префикс = "["+ СтатусыРезультатаТестирования().ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; - -КонецПроцедуры - -Функция СтатусыРезультатаТестирования() - СтатусыРезультатаТестирования = Новый Структура; - СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed"); - СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken"); - СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending"); - - Возврат Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); -КонецФункции - -РезультатыСравненияТаблиц = Новый Структура; -РезультатыСравненияТаблиц.Вставить("ТаблицыСовпадают", 0); -РезультатыСравненияТаблиц.Вставить("НеСовпадаютЗначенияВЯчейкеТаблицы", 1); -РезультатыСравненияТаблиц.Вставить("РазноеКоличествоСтрок", 2); -РезультатыСравненияТаблиц.Вставить("РазличаютсяКолонки", 3); -РезультатыСравненияТаблиц = Новый ФиксированнаяСтруктура(РезультатыСравненияТаблиц); diff --git "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 8a24361e5..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 7a381ffb8..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.УтвержденияПроверкаТаблиц - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 7a847029b..000000000 --- "a/lib/CF/83xdd/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,30 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers - - -&НаКлиенте -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки); -КонецПроцедуры - -&НаСервере -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - ЭтотОбъектНаСервере().ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки); -КонецПроцедуры diff --git a/lib/CF/83xdd/Ext/MainSectionCommandInterface.xml b/lib/CF/83xdd/Ext/MainSectionCommandInterface.xml index f2035d7a2..3984c6eb4 100644 --- a/lib/CF/83xdd/Ext/MainSectionCommandInterface.xml +++ b/lib/CF/83xdd/Ext/MainSectionCommandInterface.xml @@ -6,12 +6,12 @@ true - + true - + true @@ -22,11 +22,11 @@ NavigationPanelOrdinary Manual - + ActionsPanelTools Manual - + ActionsPanelTools Manual diff --git "a/lib/CF/83xdd/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" "b/lib/CF/83xdd/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" index 55145cfda..f52d59afd 100644 --- "a/lib/CF/83xdd/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" +++ "b/lib/CF/83xdd/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" @@ -180,17 +180,6 @@ true - - DataProcessor.xddGuidShow - - Use - true - - - View - true - - Catalog.ПростойСправочник2 diff --git a/lib/CF/83xdd/Subsystems/xUnitFor1C.xml b/lib/CF/83xdd/Subsystems/xUnitFor1C.xml index 44c39b412..0fa60dc54 100644 --- a/lib/CF/83xdd/Subsystems/xUnitFor1C.xml +++ b/lib/CF/83xdd/Subsystems/xUnitFor1C.xml @@ -15,7 +15,7 @@ - DataProcessor.xddTestRunner + 4fd86dc5-89d1-4884-bc05-7a0b8ce9186e diff --git a/lib/CF/83xdd/Subsystems/xUnitFor1C/Subsystems/Plugins.xml b/lib/CF/83xdd/Subsystems/xUnitFor1C/Subsystems/Plugins.xml index 4b1df3a17..438b3625f 100644 --- a/lib/CF/83xdd/Subsystems/xUnitFor1C/Subsystems/Plugins.xml +++ b/lib/CF/83xdd/Subsystems/xUnitFor1C/Subsystems/Plugins.xml @@ -15,21 +15,21 @@ - DataProcessor.БазовыеУтверждения - DataProcessor.УтвержденияПроверкаТаблиц - DataProcessor.УтвержденияBDD - DataProcessor.СтроковыеУтилиты - DataProcessor.СериализаторMXL - DataProcessor.ПостроительДереваТестов - DataProcessor.ПарсерКоманднойСтроки - DataProcessor.КомандныйФайл - DataProcessor.ЗапросыИзБД - DataProcessor.ЗагрузчикФайла - DataProcessor.ЗагрузчикКаталога - DataProcessor.ЗагрузчикИзПодсистемКонфигурации - DataProcessor.ГенераторОтчетаMXL - DataProcessor.ГенераторОтчетаJUnitXML - DataProcessor.ВременныеФайлы + dce8aa40-d869-4f56-b676-a21e1c6d463e + dac63775-7825-4d71-a1f8-bdf73d7bf54f + 3d66ae6a-ea75-43c2-b47a-9f8cb9c17b1a + 9409827b-5515-4841-9cdc-8bf76935147c + 3ef95a44-6e1f-477e-b160-030dd5dae29f + c21ecdbb-2c03-4743-98d7-c0b679c91e45 + bed67866-3c67-4196-8119-50cc06252df7 + ae8dfa79-d9f9-47e3-b706-134289c1b7a1 + 8a71b3b9-e920-4f70-a79c-edcab37d6e22 + 74f67557-b49a-48d7-be59-65e6b5bb7c34 + 370c7cdd-2009-45f5-b8b5-ff1c84add1ad + a3884279-6609-40dd-a446-04e4269ddd18 + d41c5f0f-e918-4b33-9fc2-ff63e59bada6 + cbd2bc2f-0ffa-401f-b734-8c81b5783fdf + d4a8a2b9-9627-4cf4-b252-a02c8a670867 diff --git a/lib/CF/83xdd/Subsystems/xUnitFor1C/Subsystems/Utils.xml b/lib/CF/83xdd/Subsystems/xUnitFor1C/Subsystems/Utils.xml index b009a4253..a213ae5d7 100644 --- a/lib/CF/83xdd/Subsystems/xUnitFor1C/Subsystems/Utils.xml +++ b/lib/CF/83xdd/Subsystems/xUnitFor1C/Subsystems/Utils.xml @@ -15,9 +15,9 @@ - DataProcessor.xddGuidShow - DataProcessor.xddTestsConvertIntoRebornFormat - DataProcessor.ПреобразованиеЖурналаДействийПользователя + 9a427b8a-73d0-4c03-adb8-9eb0137cb57a + 7263f762-cb10-4976-bed6-a4666118bb0f + 93f7289d-468d-4ffc-9e3c-9b066cf8dae0 diff --git "a/lib/CF/83xdd/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217.xml" "b/lib/CF/83xdd/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217.xml" index 3d47ff4bb..b5aeaf446 100644 --- "a/lib/CF/83xdd/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217.xml" +++ "b/lib/CF/83xdd/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217.xml" @@ -16,9 +16,9 @@ DataProcessor.Тест_Обработка - DataProcessor.xddGuidShow + 9a427b8a-73d0-4c03-adb8-9eb0137cb57a DataProcessor.Тест_ЗагрузчикИзПодсистем_НовыйAPIОбъявленияТестов - DataProcessor.xddTestRunner + 4fd86dc5-89d1-4884-bc05-7a0b8ce9186e Report.Тест_Отчет 2754acfc-5916-4952-9fea-dbbc69db9399 Report.Отчет2 diff --git "a/lib/CF/83xdd/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217/Subsystems/\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\2601.xml" "b/lib/CF/83xdd/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217/Subsystems/\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\2601.xml" index 000b2b519..df60cbcd9 100644 --- "a/lib/CF/83xdd/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217/Subsystems/\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\2601.xml" +++ "b/lib/CF/83xdd/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217/Subsystems/\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\2601.xml" @@ -10,7 +10,7 @@ - DataProcessor.xddGuidShow + 9a427b8a-73d0-4c03-adb8-9eb0137cb57a DataProcessor.Тест_Обработка Role.Роль1 Report.Тест_Отчет diff --git a/lib/CF/83xddNoSync/Configuration.xml b/lib/CF/83xddNoSync/Configuration.xml index b931100bf..988b0deb6 100644 --- a/lib/CF/83xddNoSync/Configuration.xml +++ b/lib/CF/83xddNoSync/Configuration.xml @@ -151,29 +151,10 @@ ТестовыйОтчетСКДДляСравнениеСЭталоном Тест_Отчет Отчет2 - xddGuidShow Тест_Обработка ТестОбработка_Форма_ИсключениеПриОткрытии ТестПадающий_Обработка Тест_ЗагрузчикИзПодсистем_НовыйAPIОбъявленияТестов - xddTestRunner - БазовыеУтверждения - ВременныеФайлы - ГенераторОтчетаJUnitXML - ГенераторОтчетаMXL - ЗагрузчикИзПодсистемКонфигурации - ЗагрузчикКаталога - ЗагрузчикФайла - ЗапросыИзБД - КомандныйФайл - ПарсерКоманднойСтроки - ПостроительДереваТестов - СериализаторMXL - СтроковыеУтилиты - УтвержденияBDD - УтвержденияПроверкаТаблиц - ПреобразованиеЖурналаДействийПользователя - xddTestsConvertIntoRebornFormat РегистрСведений1 РСПодчиненныйРегистратору РегистрНакопления2 diff --git a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow.xml b/lib/CF/83xddNoSync/DataProcessors/xddGuidShow.xml deleted file mode 100644 index a5a5198ae..000000000 --- a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow.xml +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - 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 deleted file mode 100644 index 5f282702b..000000000 --- a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Ext/ObjectModule.bsl +++ /dev/null @@ -1 +0,0 @@ - \ 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" deleted file mode 100644 index be0cbae8a..000000000 --- "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" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ 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" deleted file mode 100644 index 92ed83a9b..000000000 --- "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" +++ /dev/null @@ -1,65 +0,0 @@ - -
- None - useIfNecessary - - - - Объект.Ссылка - - - - СсылкаПриИзменении - - - - Horizontal - None - false - - - - Объект.ГУИД - true - - - - - - - - - - - cfg:DataProcessorObject.xddGuidShow - - true - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Показать ГУИД</v8:content> - </v8:item> - - - - ru - Показать ГУИД - - - - StdPicture.Refresh - true - - ПоказатьГУИД - Picture - - - \ 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" deleted file mode 100644 index 6b9d048b8..000000000 --- "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" +++ /dev/null @@ -1,20 +0,0 @@ - -&НаКлиенте -Процедура ПоказатьГУИД(Команда) - - Если ПроверитьЗаполнение() Тогда - Объект.ГУИД = Объект.Ссылка.УникальныйИдентификатор(); - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура СсылкаПриИзменении(Элемент) - - Если ЗначениеЗаполнено(Объект.Ссылка) Тогда - Объект.ГУИД = Объект.Ссылка.УникальныйИдентификатор(); - Иначе - ГУИД = ""; - КонецЕсли; - -КонецПроцедуры 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" deleted file mode 100644 index d7681f5ca..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
-
\ 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" deleted file mode 100644 index 46db8ebaf..000000000 Binary files "a/lib/CF/83xddNoSync/DataProcessors/xddGuidShow/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" and /dev/null differ diff --git a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner.xml b/lib/CF/83xddNoSync/DataProcessors/xddTestRunner.xml deleted file mode 100644 index ba8d6b914..000000000 --- a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner.xml +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - 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 deleted file mode 100644 index aaa8b4844..000000000 --- a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Ext/Help.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 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 deleted file mode 100644 index d174560d9..000000000 --- a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Ext/Help/ru.html +++ /dev/null @@ -1,99 +0,0 @@ - -

https://github.com/xDrivenDevelopment/xUnitFor1C/wiki

-

-

xUnitFor1C - набор инструментов для выполнения тестирования (модульного/юнит, приемочного, сценарного для 1С 8.3, интеграционного) в 1С:Предприятии 8.

-

xUnitFor1C работает с любыми конфигурациями, полностью независима, но может быть встроена в конфигурацию.

-

Позволяет открывать/тестировать в разных режимах - обычное приложение, тонкий и толстый клиент управляемого приложения.

-

Тесты могут быть как во внешних обработках, так и во встроенных обработках.

-

Любые наборы тестов могут прогоняться в полностью автоматическом режиме через специальную командную строку запуска. Автозапуск используется в различных build-серверах и в системах Continuous Integration.

-

Для дополнительной информации см. Wiki проекта

-

Что к чему

-
    -
  • xddTestRunner.epf - браузер и исполнитель тестов для обычного приложения и управляемого приложения 1С:Предприятия 8 (толстый и тонкий клиенты) -
  • xddDataFixtureGen.epf - генерация макета данных для использования в тестах. Макет можно генерить из боевой базы на основе реальных данных. -
  • xddTestRunner.js - скрипт для Снегопата, позволяющий выполнять тесты прямо из конфигуратора -
  • Tests/ - каталог с примерами тестов и с тестами для самотестирования xddTestRunner.epf (подпапка selftests) -
  • Tests\CommonApp\тесты_ОткрытиеФормКонфигурации.epf - тесты открытия всех форм справочников, документов, отчетов и обработок. Для справочников и документов в транзакции создаются новые или копируются или перезаписываются существующие элементы. -
  • Tests\CommonApp\Тест_ЗапускТестовВСеансеДругихПользователей.epf - примеры запуска тестов для пользователей с ограниченными правами. Пользователи создаются на лету из простых макетов. -
  • Tests\CommonApp\Тест_ПроверитьОтчетНаСоответствиеЭталону.epf - пример теста отчета путем сравнения с эталонным ожиданием из макета.

Как помочь проекту

-

Мы рады любой помощи:

-
  1. -

    Если вы занимаетесь разработкой на 1С:Преприятии 8 пробуйте писать и выполнять тесты при помощи xUnitFor1C, сообщайте нам об обнаруженных ошибках, пишите пожелания. Для управления сообщениями об ошибках и пожеланиями мы используем баг-трекер GitHub'а.

    -
  2. -

    Если у вас есть время разобраться в исходном коде, вы можете взять на себя реализацию одной из открытых задач.

    -
  3. -

    Если вы уже используете 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/xddTestRunner/Ext/ObjectModule.bsl b/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Ext/ObjectModule.bsl deleted file mode 100644 index 2b5962365..000000000 --- a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Ext/ObjectModule.bsl +++ /dev/null @@ -1,727 +0,0 @@ - -Процедура Инициализация() - - ЭтоВстроеннаяОбработка = ОбработкаЯвляетсяВстроеннойВКонфигурацию(); - Если ЭтоВстроеннаяОбработка Тогда - // Для встроенной в состав конфигурации обработки - // может быть использван префикс, который определяет имена объектов - // фреймворка xUnitFor1C в составе конфигурации - // Например: Обработки.<префикс>xddTestRunner - // Если префикс не задан, то должны использоваться оригинальные - // имена обработок и подсистем. - // Для подсистем нужно добавлять префикс тольяо для главной - "xUnitFor1C" - ИспользуемыйПрефиксПодсистемы = ""; - Иначе - ПолныйПутьКФайлуБраузераТестов = ЭтотОбъект["ИспользуемоеИмяФайла"]; - КонецЕсли; - ПолноеИмяБраузераТестов = Метаданные().ПолноеИмя(); - - ТипыПлагинов = ТипыПлагинов(); - СостоянияТестов = СостоянияТестов(); - СтатусыРезультатаТестирования = СтатусыРезультатаТестирования(); - ВозможныеСобытия = ВозможныеСобытия(); - ВозможныеИсключения = ВозможныеИсключения(); - - ЗагрузитьНастройки(); -КонецПроцедуры - -Функция Версия() Экспорт - Возврат "4.1.0.0"; -КонецФункции - -Функция ЗаголовокФормы() Экспорт - Возврат СокрЛП(Метаданные().Синоним) + ", версия " + Версия(); -КонецФункции - -// { Plugins -Функция ТипыПлагинов() - Результат = Новый Структура; - Результат.Вставить("Загрузчик", "Загрузчик"); - Результат.Вставить("Утилита", "Утилита"); - Результат.Вставить("ГенераторОтчета", "ГенераторОтчета"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Функция Плагин(Знач Идентификатор) Экспорт - - ИдентификаторПлагинаСПрефиксомПодсистемы = ДополнитьИдентификаторПрефиксомПодсистемы(Идентификатор); - ИдентификаторПлагинаБезПрефиксаПодсистемы = ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор); - Плагин = Плагины[ИдентификаторПлагинаБезПрефиксаПодсистемы]; - Если ТипЗнч(Плагин) = Тип("Строка") Тогда - Плагин = СоздатьОбъектПлагина(Плагин); - КонецЕсли; - - Возврат Плагин; - -КонецФункции - -Функция ПолучитьОписанияПлагиновПоТипу(Знач ТипПлагина) Экспорт - Результат = Новый Массив; - Для каждого КлючЗначение Из Плагины Цикл - Плагин = Плагин(КлючЗначение.Ключ); - Плагин.Инициализация(ЭтотОбъект); - ОписаниеПлагина = Плагин.ОписаниеПлагина(ТипыПлагинов); - Если ОписаниеПлагина.Тип = ТипПлагина Тогда - Результат.Добавить(ОписаниеПлагина); - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции - -Функция ЗагрузчикПоУмолчанию() Экспорт - Возврат Плагин("ЗагрузчикКаталога"); -КонецФункции -// } Plugins - -// { Выполнение тестов -Функция ПолучитьКоличествоТестовыхМетодов(Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено) Экспорт - КоличествоТестовыхМетодов = 0; - ФильтрДляДочернихУзлов = Неопределено; - Если Не УзелДереваТестовУдовлетворяетФильтру(КонтейнерДереваТестов, Фильтр) Тогда - ФильтрДляДочернихУзлов = Фильтр; - КонецЕсли; - Для каждого ДочернийУзел Из КонтейнерДереваТестов.Строки Цикл - КоличествоДочернихТестовыхМетодов = 0; - Если ДочернийУзел.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Контейнер Тогда - КоличествоДочернихТестовыхМетодов = ПолучитьКоличествоТестовыхМетодов(ДочернийУзел, ФильтрДляДочернихУзлов); - ИначеЕсли ДочернийУзел.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Элемент Тогда - Если УзелДереваТестовУдовлетворяетФильтру(ДочернийУзел, ФильтрДляДочернихУзлов) Тогда - КоличествоДочернихТестовыхМетодов = 1; - КонецЕсли; - КонецЕсли; - КоличествоТестовыхМетодов = КоличествоТестовыхМетодов + КоличествоДочернихТестовыхМетодов; - КонецЦикла; - - Возврат КоличествоТестовыхМетодов; -КонецФункции - -Функция ВыполнитьТесты(Знач Загрузчик, Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено, Знач Подписчик = Неопределено) Экспорт - РезультатТестирования = СоздатьКонтейнерРезультатовТестирования(КонтейнерДереваТестов); - ФильтрДляДочернихУзлов = Неопределено; - Если Не УзелДереваТестовУдовлетворяетФильтру(КонтейнерДереваТестов, Фильтр) Тогда - ФильтрДляДочернихУзлов = Фильтр; - КонецЕсли; - - Если КонтейнерДереваТестов.СлучайныйПорядокВыполнения Тогда - СтрокиКонтейнера = ПеремешатьМассив(КонтейнерДереваТестов.Строки); - Иначе - СтрокиКонтейнера = КонтейнерДереваТестов.Строки; - КонецЕсли; - - Для каждого ДочернийУзел Из СтрокиКонтейнера Цикл - ДочернийРезультатТестирования = Неопределено; - Если ДочернийУзел.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Контейнер Тогда - ДочернийРезультатТестирования = ВыполнитьТесты(Загрузчик, ДочернийУзел, ФильтрДляДочернихУзлов, Подписчик); - ИначеЕсли ДочернийУзел.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Элемент Тогда - Если УзелДереваТестовУдовлетворяетФильтру(ДочернийУзел, ФильтрДляДочернихУзлов) Тогда - Контекст = Загрузчик.ПолучитьКонтекстПоПути(ЭтотОбъект, ДочернийУзел.Путь); - // Заполняем служебные поля, если они имеются - ЗаполнитьСвойствоПриНаличии(Контекст, "ПутьКФайлуПолный", ДочернийУзел.Путь); - ЭтотОбъект.ТекущийКонтейнер = КонтейнерДереваТестов; - ДочернийРезультатТестирования = ВыполнитьТестовыйМетод(Контекст, ДочернийУзел); - - Если Подписчик <> Неопределено Тогда - ОповеститьОСобытии(Подписчик, ЭтотОбъект.ВозможныеСобытия.ВыполненТестовыйМетод, ДочернийРезультатТестирования); - КонецЕсли; - КонецЕсли; - КонецЕсли; - Если ДочернийРезультатТестирования <> Неопределено Тогда - РезультатТестирования.Строки.Добавить(ДочернийРезультатТестирования); - РезультатТестирования.Состояние = ВыбратьХудшееСостояниеВыполненияТестов(РезультатТестирования.Состояние, ДочернийРезультатТестирования.Состояние); - ЗаполнитьДанныеСтатистики(РезультатТестирования, ДочернийРезультатТестирования); - Если Не КонтейнерДереваТестов.СлучайныйПорядокВыполнения И ДочернийРезультатТестирования.Состояние <> ЭтотОбъект.СостоянияТестов.Пройден Тогда - Прервать; - КонецЕсли; - КонецЕсли; - КонецЦикла; - Если РезультатТестирования.Строки.Количество() = 0 Тогда - РезультатТестирования = Неопределено; - КонецЕсли; - - Возврат РезультатТестирования; -КонецФункции - -Функция УзелДереваТестовУдовлетворяетФильтру(Знач УзелДереваТестов, Знач Фильтр) - Возврат (Фильтр = Неопределено) Или (Фильтр.Найти(УзелДереваТестов.Ключ) <> Неопределено); -КонецФункции - -Процедура ЗаполнитьДанныеСтатистики(РезультатТестирования, Знач ДочернийРезультатТестирования) Экспорт - Если ДочернийРезультатТестирования.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Контейнер Тогда - РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + ДочернийРезультатТестирования.КоличествоТестов; - РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + ДочернийРезультатТестирования.КоличествоСломанныхТестов; - РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + ДочернийРезультатТестирования.КоличествоНеРеализованныхТестов; - РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + ДочернийРезультатТестирования.КоличествоОшибочныхТестов; - - ИначеЕсли ДочернийРезультатТестирования.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Элемент Тогда - РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + 1; - Если ДочернийРезультатТестирования.Состояние = СостоянияТестов.Сломан Тогда - РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + 1; - ИначеЕсли ДочернийРезультатТестирования.Состояние = СостоянияТестов.НеРеализован Тогда - РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + 1; - ИначеЕсли ДочернийРезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка Тогда - РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + 1; - КонецЕсли; - КонецЕсли; - РезультатТестирования.ВремяВыполнения = РезультатТестирования.ВремяВыполнения + ДочернийРезультатТестирования.ВремяВыполнения; -КонецПроцедуры - -Функция ВыбратьХудшееСостояниеВыполненияТестов(Знач Состояние1, Знач Состояние2) - Возврат Макс(Состояние1, Состояние2); -КонецФункции - -Функция ВыполнитьТестовыйМетод(Знач КонтекстВыполнения, Знач ЭлементДереваТестов) Экспорт - РезультатТестирования = СоздатьЭлементРезультатовТестирования(ЭлементДереваТестов); - НачалоВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах(); - - Если ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования) Тогда - - Попытка - ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПередЗапускомТеста); - ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ЭлементДереваТестов.ИмяМетода, ЭлементДереваТестов.Параметры); - - РезультатТестирования.Состояние = СостоянияТестов.Пройден; - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); - КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - Если ЕстьОшибка_МетодОбъектаНеОбнаружен(КраткийТекстОшибки, ЭлементДереваТестов.ИмяМетода) Тогда - РезультатТестирования.Состояние = СостоянияТестов.НеРеализован; - Сообщение = НСтр("ru = 'Отсутствует реализация тестового метода (%1).'"); - РезультатТестирования.Сообщение = СтрЗаменить(Сообщение, "%1", ЭлементДереваТестов.ИмяМетода); - Иначе - РезультатТестирования.Сообщение = ТекстОшибки; - Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда - РезультатТестирования.Состояние = СостоянияТестов.Сломан; - ИначеЕсли ЭтоПропущенныйТест(КраткийТекстОшибки) Тогда - РезультатТестирования.Состояние = СостоянияТестов.НеРеализован; - Иначе - РезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка; - КонецЕсли; - КонецЕсли; - КонецПопытки; - Попытка - ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПослеЗапускаТеста); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); - - КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - Если ЭтоОшибкаПроверки(ТекстОшибки) Тогда - РезультатТестирования.Состояние = СостоянияТестов.Сломан; - Иначе - РезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка; - КонецЕсли; - КонецПопытки; - КонецЕсли; - - ОкончаниеВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах(); - РезультатТестирования.ВремяВыполнения = (ОкончаниеВыполнения - НачалоВыполнения) / 1000; - - Возврат РезультатТестирования; -КонецФункции - -Функция ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования) - Попытка - КонтекстВыполнения.Инициализация(ЭтотОбъект); - Возврат Истина; - Исключение - РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - РезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка; - КонецПопытки; - Возврат Ложь; -КонецФункции - -Процедура ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(Знач КонтекстВыполнения, Знач ИмяПроцедуры) - Попытка - ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ИмяПроцедуры); - Исключение - ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, ИмяПроцедуры) Тогда - ВызватьИсключение; - КонецЕсли; - КонецПопытки; -КонецПроцедуры - -Процедура ВыполнитьПроцедуруКонтекста(Знач КонтекстВыполнения, Знач ПроцедураКонтекста, Знач Параметры = Неопределено) - СтрокаПараметров = СформироватьСтрокуПараметров(Параметры); - ИcполняемыйКод = "КонтекстВыполнения." + ПроцедураКонтекста + "(" + СтрокаПараметров + ");"; - Выполнить(ИcполняемыйКод); -КонецПроцедуры - -Функция СформироватьСтрокуПараметров(Знач Параметры) - СтрокаПараметров = ""; - Если ТипЗнч(Параметры) = Тип("Массив") Тогда - Для Сч = 0 По Параметры.Количество() - 1 Цикл - СтрокаПараметров = СтрокаПараметров + ",Параметры[" + Формат(Сч, "ЧН=0; ЧГ=") + "]"; - КонецЦикла; - КонецЕсли; - - Возврат Сред(СтрокаПараметров, 2); -КонецФункции - -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - ИЛИ Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции - -Функция ЭтоОшибкаПроверки(ТекстОшибки) - - Возврат Найти(ТекстОшибки, "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]") = 1; - -КонецФункции - -Функция ЭтоПропущенныйТест(ТекстОшибки) - - Возврат Найти(ТекстОшибки, "["+ СтатусыРезультатаТестирования.ТестПропущен + "]") > 0; - -КонецФункции - -// } Выполнение тестов - -// { Генерация результатов тестирования -Функция СостоянияТестов() - СостоянияТестов = Новый Структура; - СостоянияТестов.Вставить("НеВыполнен", 0); - СостоянияТестов.Вставить("Пройден", 1); - СостоянияТестов.Вставить("НеРеализован", 2); - СостоянияТестов.Вставить("Сломан", 3); - СостоянияТестов.Вставить("НеизвестнаяОшибка", 4); - - Возврат Новый ФиксированнаяСтруктура(СостоянияТестов); -КонецФункции - -Функция СтатусыРезультатаТестирования() - СтатусыРезультатаТестирования = Новый Структура; - СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed"); - СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken"); - СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending"); - - Возврат Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); -КонецФункции - -Функция СоздатьКонтейнерРезультатовТестирования(Знач КонтейнерДереваТестов) - ГруппаРезультатовТестирования = Новый Структура; - ГруппаРезультатовТестирования.Вставить("Ключ", КонтейнерДереваТестов.Ключ); - ГруппаРезультатовТестирования.Вставить("Тип", КонтейнерДереваТестов.Тип); - ГруппаРезультатовТестирования.Вставить("Имя", КонтейнерДереваТестов.Имя); - ГруппаРезультатовТестирования.Вставить("Состояние", СостоянияТестов.НеВыполнен); - ГруппаРезультатовТестирования.Вставить("КоличествоТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоСломанныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоНеРеализованныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоОшибочныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("ВремяВыполнения", 0); - ГруппаРезультатовТестирования.Вставить("Строки", Новый Массив); - - Возврат ГруппаРезультатовТестирования; -КонецФункции - -Функция СоздатьЭлементРезультатовТестирования(Знач ЭлементДереваТестов) - РезультатТестирования = Новый Структура; - РезультатТестирования.Вставить("Ключ", ЭлементДереваТестов.Ключ); - РезультатТестирования.Вставить("Тип", ЭлементДереваТестов.Тип); - РезультатТестирования.Вставить("Путь", ЭлементДереваТестов.Путь); - РезультатТестирования.Вставить("ИмяМетода", ЭлементДереваТестов.ИмяМетода); - РезультатТестирования.Вставить("Представление", ЭлементДереваТестов.Представление); - РезультатТестирования.Вставить("Параметры", ЭлементДереваТестов.Параметры); - РезультатТестирования.Вставить("Состояние", СостоянияТестов.НеВыполнен); - РезультатТестирования.Вставить("ВремяВыполнения", 0); - РезультатТестирования.Вставить("Сообщение", ""); - - Возврат РезультатТестирования; -КонецФункции -// } Генерация результатов тестирования - -// { Настройки браузера тестирования -Процедура ЗагрузитьНастройки() Экспорт - ЭтотОбъект.Настройки = ПолучитьПустыеНастройкиБраузераТестирования(); - // Ключом настроек должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки - // может совпадать с именем обработки, встроенной в состав конфигурации - СчитанныеНастройки = ХранилищеОбщихНастроек.Загрузить(ЭтотОбъект.Метаданные().ПолноеИмя()); - Если ТипЗнч(СчитанныеНастройки) = Тип("Структура") Тогда - Для каждого СчитанныеКлючЗначение Из СчитанныеНастройки Цикл - Если ЭтотОбъект.Настройки.Свойство(СчитанныеКлючЗначение.Ключ) И ТипЗнч(СчитанныеКлючЗначение.Значение) = ТипЗнч(ЭтотОбъект.Настройки[СчитанныеКлючЗначение.Ключ]) Тогда - ЭтотОбъект.Настройки[СчитанныеКлючЗначение.Ключ] = СчитанныеКлючЗначение.Значение; - КонецЕсли; - КонецЦикла; - КонецЕсли; -КонецПроцедуры - -Процедура СохранитьНастройки() Экспорт - Попытка - // Ключом настроек должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки - // может совпадать с именем обработки, встроенной в состав конфигурации - ХранилищеОбщихНастроек.Сохранить(ЭтотОбъект.Метаданные().ПолноеИмя(), , ЭтотОбъект.Настройки); - Исключение - // TODO: При пакетном запуске и тестировании в тонком клиенте возникает ошибка типа XDTO - // Могут возникнуть ошибки, пропускаем - КонецПопытки; -КонецПроцедуры - -Функция ПолучитьПустыеНастройкиБраузераТестирования() - Результат = Новый Структура; - Результат.Вставить("ИсторияЗагрузкиТестов", Новый Массив); - - Возврат Результат; -КонецФункции - -Процедура СохранитьВИсториюЗагрузкиТестов(Знач ИдентификаторЗагрузчика, Знач Путь) Экспорт - ИсторияЗагрузкиТестов = ЭтотОбъект.Настройки.ИсторияЗагрузкиТестов; - Для Сч = - ИсторияЗагрузкиТестов.Количество() + 1 По 0 Цикл - Индекс = -Сч; - ЭлементИстории = ИсторияЗагрузкиТестов[Индекс]; - Если ЭлементИстории.ИдентификаторЗагрузчика = ИдентификаторЗагрузчика И ЭлементИстории.Путь = Путь Тогда - ИсторияЗагрузкиТестов.Удалить(Индекс); - КонецЕсли; - КонецЦикла; - - ИсторияЗагрузкиТестов.Вставить(0, Новый Структура("ИдентификаторЗагрузчика, Путь", ИдентификаторЗагрузчика, Путь)); - ДлинаИстории = 10; - Пока ИсторияЗагрузкиТестов.Количество() > ДлинаИстории Цикл - ИсторияЗагрузкиТестов.Удалить(ДлинаИстории); - КонецЦикла; -КонецПроцедуры -// } Настройки браузера тестирования - -// { Оповещения -Функция ВозможныеСобытия() Экспорт - ИмяФреймворка = Метаданные().Имя; - ВозможныеСобытия = Новый Структура; - ВозможныеСобытия.Вставить("ВыполненТестовыйМетод", ИмяФреймворка + "_ВыполненТестовыйМетод"); - - Возврат Новый ФиксированнаяСтруктура(ВозможныеСобытия); -КонецФункции - -Процедура ОповеститьОСобытии(Знач Подписчик, Знач Событие, Знач ПараметрыСобытия) - Выполнить("Подписчик.ОбработатьСобытиеВыполненияТестов(Событие, ПараметрыСобытия);"); -КонецПроцедуры -// } Оповещения - -// { Контекст -Процедура СохранитьКонтекст(Знач Контекст) Экспорт - Если ЭтотОбъект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда - ВызватьИсключение ЭтотОбъект.ВозможныеИсключения.СохранятьКонтекстТолькоВСтрогомРежиме; - КонецЕсли; - ЭтотОбъект.ТекущийКонтейнер.Контекст = Контекст; -КонецПроцедуры - -Функция ПолучитьКонтекст() Экспорт - Если ЭтотОбъект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда - ВызватьИсключение ЭтотОбъект.ВозможныеИсключения.ПолучатьКонтекстТолькоВСтрогомРежиме; - КонецЕсли; - Возврат ЭтотОбъект.ТекущийКонтейнер.Контекст; -КонецФункции -// } Контекст - -Процедура ВызватьОшибкуПроверки(СообщениеОшибки = "") Экспорт - - Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; - -КонецПроцедуры - -Процедура ПропуститьТест(Знач Сообщение = "") Экспорт - - Префикс = "[" + СтатусыРезультатаТестирования.ТестПропущен + "]"; - Если ПустаяСтрока(Сообщение) Тогда - Сообщение = НСтр("ru = 'Тест пропущен'"); - КонецЕсли; - ВызватьИсключение Префикс + " " + Сообщение; - -КонецПроцедуры - -// Выводит сообщение. В тестах ВСЕГДА должна использоваться ВМЕСТО метода Сообщить(). -// -Функция ВывестиСообщение(ТекстСообщения, Статус=Неопределено) Экспорт - - Сообщить(ТекстСообщения, Статус); - -КонецФункции - -// { Helpers -Функция ВозможныеИсключения() - ВозможныеИсключения = Новый Структура; - ВозможныеИсключения.Вставить("СохранятьКонтекстТолькоВСтрогомРежиме", "Сохранять контекст можно только в рамках контейнеров со строгим порядком выполнения"); - ВозможныеИсключения.Вставить("ПолучатьКонтекстТолькоВСтрогомРежиме", "Получать контекст можно только в рамках контейнеров со строгим порядком выполнения"); - - Возврат Новый ФиксированнаяСтруктура(ВозможныеИсключения); -КонецФункции - -Функция ПеремешатьМассив(Знач ИсходныйМассив) - Результат = Новый Массив; - Для Каждого Элемент Из ИсходныйМассив Цикл - Результат.Добавить(Элемент); - КонецЦикла; - - // алгоритм перемешивания взят из книги Кнута "Искусство программирования" т.2 - ГСЧ = Новый ГенераторСлучайныхЧисел(); - ПоследнийИндекс = Результат.ВГраница(); - Для Индекс = 1 По ПоследнийИндекс Цикл - ТекущийИндекс = ПоследнийИндекс - Индекс + 1; - НовыйИндекс = ГСЧ.СлучайноеЧисло(0, ТекущийИндекс); - Если НовыйИндекс <> ТекущийИндекс Тогда - Значение = Результат[НовыйИндекс]; - Результат[НовыйИндекс] = Результат[ТекущийИндекс]; - Результат[ТекущийИндекс] = Значение; - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции - -Функция НайтиРезультатТестированияПоИдентификатору(Знач КонтейнерРезультатовТестирования, Знач ИдентификаторТеста, Знач ВключатьПодчиненные = Ложь) Экспорт - Перем Результат; - - Для каждого ДочернийРезультатТестирования Из КонтейнерРезультатовТестирования.Строки Цикл - Если ДочернийРезультатТестирования.Ключ = ИдентификаторТеста Тогда - Результат = ДочернийРезультатТестирования; - ИначеЕсли ЗначениеЗаполнено(Результат) И ВключатьПодчиненные И ДочернийРезультатТестирования.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Контейнер Тогда - Результат = НайтиРезультатТестированияПоИдентификатору(ДочернийРезультатТестирования, ИдентификаторТеста, ВключатьПодчиненные); - КонецЕсли; - Если ЗначениеЗаполнено(Результат) Тогда - Прервать; - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции - -Функция ПараметрыМетода(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыМетода = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыМетода.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыМетода; -КонецФункции -// } Helpers - -// { Подсистема конфигурации xUnitFor1C - -Функция ПолучитьГлавнуюПодсистему() Экспорт - - КоллекцияПодсистем = Метаданные.Подсистемы; - - ГлавнаяПодсистема = Неопределено; - - ИмяГлавнойПодсистемы = ИспользуемыйПрефиксПодсистемы + "xUnitFor1C"; - Для Каждого Подсистема Из КоллекцияПодсистем Цикл - Если Подсистема.Имя = ИмяГлавнойПодсистемы Тогда - ГлавнаяПодсистема = Подсистема; - Прервать; - Иначе - ГлавнаяПодсистема = НайтиПодсистемуПоИмени(Подсистема.Подсистемы, ИмяГлавнойПодсистемы); - Если ЗначениеЗаполнено(ГлавнаяПодсистема) Тогда - Прервать; - КонецЕсли; - КонецЕсли; - КонецЦикла; - - Если ГлавнаяПодсистема = Неопределено Тогда - ВызватьИсключение "Не удалось главную подсистему """ + ИмяГлавнойПодсистемы + """!"; - КонецЕсли; - - Возврат ГлавнаяПодсистема; - -КонецФункции - -Функция НайтиПодсистемуПоИмени(КоллекцияПодсистем, ИмяПодсистемыДляПоиска) - - Для Каждого Подсистема Из КоллекцияПодсистем Цикл - Если Подсистема.Имя = ИмяПодсистемыДляПоиска Тогда - Возврат Подсистема; - Иначе - Возврат НайтиПодсистемуПоИмени(Подсистема.Подсистемы, ИмяПодсистемыДляПоиска); - КонецЕсли; - КонецЦикла; - -КонецФункции - -Функция ПолучитьПлагины() Экспорт - - ГлавнаяПодсистема = ПолучитьГлавнуюПодсистему(); - - СтруктураПлагинов = Новый Структура; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - - КоллекцияПлагинов = ГлавнаяПодсистема.Подсистемы.Plugins.Состав; - Для Каждого Плагин Из КоллекцияПлагинов Цикл - ИмяПлагина = Прав(Плагин.Имя, СтрДлина(Плагин.Имя) - ДлинаПрефикса); - СтруктураПлагинов.Вставить(ИмяПлагина, Плагин.Имя); - КонецЦикла; - - Возврат СтруктураПлагинов; - -КонецФункции - -Функция ПолучитьУтилиты() Экспорт - - ГлавнаяПодсистема = ПолучитьГлавнуюПодсистему(); - - СтруктураПлагинов = Новый Структура; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - - КоллекцияПлагинов = ГлавнаяПодсистема.Подсистемы.Utils.Состав; - Для Каждого Плагин Из КоллекцияПлагинов Цикл - ИмяПлагина = Прав(Плагин.Имя, СтрДлина(Плагин.Имя) - ДлинаПрефикса); - СтруктураПлагинов.Вставить(ИмяПлагина, Плагин.Имя); - КонецЦикла; - - Возврат СтруктураПлагинов; - -КонецФункции - -Функция ОбработкаЯвляетсяВстроеннойВКонфигурацию() Экспорт - - ПолноеИмяТекущейОбработки = ЭтотОбъект.Метаданные().ПолноеИмя(); - ВстроеннаяВКонфигурациюОбработка = Метаданные.НайтиПоПолномуИмени(ПолноеИмяТекущейОбработки); - - ОбработкаВстроенаяВСоставКонфигурации = НЕ (ВстроеннаяВКонфигурациюОбработка = Неопределено); - - Возврат ОбработкаВстроенаяВСоставКонфигурации; - -КонецФункции - -Функция СлужебныеПараметрыОбработки() Экспорт - - СтруктураПараметров = Новый Структура; - СтруктураПараметров.Вставить("ПолноеИмяБраузераТестов", ПолноеИмяБраузераТестов); - СтруктураПараметров.Вставить("ПолныйПутьКФайлуБраузераТестов", ПолныйПутьКФайлуБраузераТестов); - - Возврат СтруктураПараметров; - -КонецФункции - -// Универсальная функция для проверки наличия -// свойств у значения любого типа данных -// Переменные: -// 1. Переменная - переменная любого типа, -// для которой необходимо проверить наличие свойства -// 2. ИмяСвойства - переменная типа "Строка", -// содержащая искомое свойства -// -Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) - // Инициализируем структуру для теста - // с ключом (значение переменной "ИмяСвойства") - // и значением произвольного GUID'а - GUIDПроверка = Новый УникальныйИдентификатор; - СтруктураПроверка = Новый Структура; - СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка); - // Заполняем созданную структуру из переданного - // значения переменной - ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная); - // Если значение для свойства структуры осталось - // NULL, то искомое свойство не найдено, - // и наоборот. - Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда - Возврат Ложь; - Иначе - Возврат Истина; - КонецЕсли; -КонецФункции -Функция ЗаполнитьСвойствоПриНаличии(ОбъектЗаполнения, ИмяСвойство, ЗначениеСвойства) - - Если ПеременнаяСодержитСвойство(ОбъектЗаполнения, ИмяСвойство) Тогда - ОбъектЗаполнения[ИмяСвойство] = ЗначениеСвойства; - КонецЕсли; - -КонецФункции - -Функция ДополнитьИдентификаторПрефиксомПодсистемы(Знач Идентификатор) Экспорт - - Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда - Возврат Идентификатор; - КонецЕсли; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда - Возврат Идентификатор; - Иначе - Возврат ИспользуемыйПрефиксПодсистемы + Идентификатор; - КонецЕсли; - -КонецФункции -Функция ПолучитьИдентификаторБезПрефиксаПодсистемы(Знач Идентификатор) Экспорт - - Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда - Возврат Идентификатор; - КонецЕсли; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда - Возврат Прав(Идентификатор, СтрДлина(Идентификатор) - ДлинаПрефикса); - Иначе - Возврат Идентификатор; - КонецЕсли; - -КонецФункции - -Функция СоздатьОбъектПлагина(Идентификатор, ВстроенаВКонфигурацию = Ложь, ЭтоОтчет = Ложь) Экспорт - - ОбъектПлагина = Неопределено; - - Если ЭтотОбъект.ЭтоВстроеннаяОбработка - ИЛИ ВстроенаВКонфигурацию = Истина Тогда - - ИдентификаторСПрефиксомПодсистемы = ДополнитьИдентификаторПрефиксомПодсистемы(Идентификатор); - ИдентификаторБезПрефиксаПодсистемы = ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор); - - Если ЭтоОтчет = Истина Тогда - МенеджерВидаОбъектов = Отчеты; - МетаданныеВидаОбъектов = Метаданные.Отчеты; - Иначе - МенеджерВидаОбъектов = Обработки; - МетаданныеВидаОбъектов = Метаданные.Обработки; - КонецЕсли; - - Если НЕ МетаданныеВидаОбъектов.Найти(ИдентификаторСПрефиксомПодсистемы) = Неопределено Тогда - ОбъектПлагина = МенеджерВидаОбъектов[ИдентификаторСПрефиксомПодсистемы].Создать(); - ИначеЕсли НЕ МетаданныеВидаОбъектов.Найти(ИдентификаторБезПрефиксаПодсистемы) = Неопределено Тогда - ОбъектПлагина = МенеджерВидаОбъектов[ИдентификаторБезПрефиксаПодсистемы].Создать(); - КонецЕсли; - - КонецЕсли; - - Если ОбъектПлагина = Неопределено Тогда - Если ЭтоОтчет = Истина Тогда - ОбъектПлагина = ВнешниеОтчеты.Создать(Идентификатор, Ложь); - Иначе - ОбъектПлагина = ВнешниеОбработки.Создать(Идентификатор, Ложь); - КонецЕсли; - КонецЕсли; - - Возврат ОбъектПлагина; - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C - -Инициализация(); diff --git "a/lib/CF/83xddNoSync/DataProcessors/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.xml" "b/lib/CF/83xddNoSync/DataProcessors/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.xml" deleted file mode 100644 index 098668691..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/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.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/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/lib/CF/83xddNoSync/DataProcessors/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" deleted file mode 100644 index 59005adc0..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/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" +++ /dev/null @@ -1,645 +0,0 @@ - -
- false - useIfNecessary - - false - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Загрузить ...</v8:content> - </v8:item> - - - - ru - Подменю загрузить тесты - - - - Picture.png - false - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Плагины загрузчики</v8:content> - </v8:item> - - - - ru - Плагины загрузчики - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Подменю история загрузки тестов</v8:content> - </v8:item> - - - - ru - История загрузки тестов - - - - - - - - - - - true - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Внешние инструменты</v8:content> - </v8:item> - - - - ru - Внешние инструменты - - - - - - - - - - - - - - - - ПриОткрытии - ПриСозданииНаСервере - ПриЗакрытии - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дерево тестов</v8:content> - </v8:item> - - - - ru - Дерево тестов - - - Vertical - None - false - - - - Tree - true - false - false - 3 - Row - true - ExpandAllLevels - ДеревоТестов - ДеревоТестов.ИконкаУзла - - RowsPicture.png - false - - None - None - None - - false - - - - - - false - - - - - ДеревоТестов - SearchStringRepresentation - - - - - - - ДеревоТестов - ViewStatusRepresentation - - - - - - - ДеревоТестов - SearchControl - - - - - - - ДеревоТестов.Состояние - None - EnterOnInput - - ValuesPicture.png - false - - - - - - ДеревоТестов.Имя - EnterOnInput - - - - - ДеревоТестов.КоличествоТестов - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Кол-во</v8:content> - </v8:item> - - EnterOnInput - - - - - ДеревоТестов.ВремяВыполнения - EnterOnInput - - - - - ДеревоТестов.Путь - EnterOnInput - - - - -
-
-
- - ИндикаторВыполнения - None - Broken - true - - - -
- - - - cfg:DataProcessorObject.xddTestRunner - - true - - 1/0:e46a4b91-3cc7-4188-b6f0-96c31aa42e19 - 1/0:a2724854-2f5c-4048-b7b2-02cbb9cb7fa3 - 1/0:092b3fc1-7ced-4d20-8a28-79b535f8a9c4 - 1/0:07f739b4-709b-41bf-8096-032bddefd0f9 - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Индикатор выполнения</v8:content> - </v8:item> - - - xs:decimal - - 10 - 0 - Any - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дерево тестов</v8:content> - </v8:item> - - - v8:ValueTree - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Количество тестов</v8:content> - </v8:item> - - - xs:decimal - - 10 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Состояние</v8:content> - </v8:item> - - - xs:decimal - - 1 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Имя</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Время выполнения</v8:content> - </v8:item> - - - xs:decimal - - 10 - 3 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Путь</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Иконка узла</v8:content> - </v8:item> - - - xs:decimal - - 1 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Ключ</v8:content> - </v8:item> - - - v8:UUID - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Используемое имя файла</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Идентификатор загрузчика</v8:content> - </v8:item> - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дерево от загрузчика</v8:content> - </v8:item> - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Это пакетный запуск</v8:content> - </v8:item> - - - xs:boolean - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Выполнить все тесты (F7)</v8:content> - </v8:item> - - - - ru - Команда выполнить все тесты - - - F7 - КомандаВыполнитьВсеТесты - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Перезагрузить</v8:content> - </v8:item> - - - - ru - Команда перезагрузить все тесты - - - Ctrl+R - ПерезагрузитьПоследниеТестыПоИстории - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Выполнить выделенные (Ctrl+Enter)</v8:content> - </v8:item> - - - - ru - Команда выполнить выделенные тесты - - - - StdPicture.GenerateReport - true - - КомандаВыполнитьВыделенныеТесты - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Генератор макетов данных</v8:content> - </v8:item> - - - - ru - Генератор макетов данных на базе реальных данных - - - ГенераторМакетовДанных - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Показать ГУИД</v8:content> - </v8:item> - - - - ru - Показать ГУИД - - - ПоказатьГУИД - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Загрузить только выделенные тесты</v8:content> - </v8:item> - - - - ru - Команда загрузить только выделенные тесты - - - КомандаЗагрузитьТолькоВыделенныеТесты - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Перезагрузить браузер тестирования</v8:content> - </v8:item> - - - - ru - Команда перезагрузить форму - - - КомандаПерезагрузитьФорму - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Загрузить тесты по умолчанию</v8:content> - </v8:item> - - - - ru - Загрузить тесты по умолчанию - - - ЗагрузитьТестыПоУмолчанию - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Конвертер тестов в формат 4-й версии</v8:content> - </v8:item> - - - - ru - Конвертер тестов - - - КонвертерТестов - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Преобразовать журнал действий пользователя в тест</v8:content> - </v8:item> - - - - ru - Преобразовать журнал действий пользователя в тест - - - ПреобразоватьЖурналДействийПользователяВТест - - - - - - v8:ValueListType - - - -
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262/RowsPicture.png" "b/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262/RowsPicture.png" deleted file mode 100644 index 4b74f63e9..000000000 Binary files "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262/RowsPicture.png" and /dev/null differ diff --git "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265/ValuesPicture.png" "b/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265/ValuesPicture.png" deleted file mode 100644 index bafa4a172..000000000 Binary files "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\242\320\265\321\201\321\202\320\276\320\262\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265/ValuesPicture.png" and /dev/null differ diff --git "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\222\321\201\320\265\320\242\320\265\321\201\321\202\321\213/Picture.png" "b/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\222\321\201\320\265\320\242\320\265\321\201\321\202\321\213/Picture.png" deleted file mode 100644 index 800aa1674..000000000 Binary files "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\222\321\201\320\265\320\242\320\265\321\201\321\202\321\213/Picture.png" and /dev/null differ diff --git "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\320\265\321\200\320\265\320\267\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" "b/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\320\265\321\200\320\265\320\267\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" deleted file mode 100644 index 8cd2ce115..000000000 Binary files "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\320\265\321\200\320\265\320\267\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" and /dev/null differ diff --git "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\237\320\276\320\264\320\274\320\265\320\275\321\216\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" "b/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\237\320\276\320\264\320\274\320\265\320\275\321\216\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" deleted file mode 100644 index 30ddd6b31..000000000 Binary files "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\237\320\276\320\264\320\274\320\265\320\275\321\216\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213/Picture.png" and /dev/null differ diff --git "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216/Picture.png" "b/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216/Picture.png" deleted file mode 100644 index 30ddd6b31..000000000 Binary files "a/lib/CF/83xddNoSync/DataProcessors/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/Items/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216/Picture.png" and /dev/null differ diff --git "a/lib/CF/83xddNoSync/DataProcessors/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/lib/CF/83xddNoSync/DataProcessors/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" deleted file mode 100644 index b53f29f43..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/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" +++ /dev/null @@ -1,1192 +0,0 @@ -&НаКлиенте -Перем КэшФормПлагинов; -&НаКлиенте -Перем ПодключенныеВнешниеОбработки; - -// { События формы -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - ОбъектНаСервере = РеквизитФормыВЗначение("Объект"); - - ЭтаФорма.Заголовок = ОбъектНаСервере.ЗаголовокФормы(); - - Если НЕ Объект.ЭтоВстроеннаяОбработка Тогда // Используемое имя файла меняется в зависимости от того - // встроена обработка в конфигурацию или нет - ИспользуемоеИмяФайла = ОбъектНаСервере.ИспользуемоеИмяФайла; - КонецЕсли; - - ОбновитьКомандыИсторииЗагрузкиТестов(); -КонецПроцедуры - -&НаКлиенте -Процедура ПриОткрытии() - ЗагрузитьПлагины(); - КэшироватьПеречисленияПлагинов(); - СброситьПодключенныеВнешниеОбработки(); - - ЭтоПакетныйЗапуск = ЗначениеЗаполнено(ПараметрЗапуска); - Если ЭтоПакетныйЗапуск Тогда - ВыполнитьПакетныйЗапуск(ПараметрЗапуска); - Иначе - ПерезагрузитьПоследниеТестыПоИстории(); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПриЗакрытии() - - // Для пакетного запуска нет смысла вызывать это событие, - Если НЕ ЭтоПакетныйЗапуск Тогда - ПриЗакрытииНаСервере(); - КонецЕсли; - -КонецПроцедуры - -&НаСервере -Процедура ПриЗакрытииНаСервере() - ЭтотОбъектНаСервере().СохранитьНастройки(); -КонецПроцедуры - -&НаКлиенте -Процедура ОбработатьСобытиеВыполненияТестов(Знач ИмяСобытия, Знач Параметр) Экспорт - Если ИмяСобытия = Объект.ВозможныеСобытия.ВыполненТестовыйМетод Тогда - Если Параметр.Состояние = Объект.СостоянияТестов.НеРеализован Тогда - Если Элементы.ИндикаторВыполнения.ЦветРамки <> WebЦвета.Красный Тогда - Элементы.ИндикаторВыполнения.ЦветРамки = WebЦвета.Золотой; - КонецЕсли; - ИначеЕсли Параметр.Состояние = Объект.СостоянияТестов.Сломан Тогда - Элементы.ИндикаторВыполнения.ЦветРамки = WebЦвета.Красный; - КонецЕсли; - ИндикаторВыполнения = ИндикаторВыполнения + 1; - КонецЕсли; - ОбновитьОтображениеДанных(); -КонецПроцедуры -// } События формы - -// { Управляющие воздействия пользователя -&НаКлиенте -Процедура ЗагрузитьТестыПоУмолчанию(Команда) - ЗагрузчикПоУмолчанию = ЗагрузчикПоУмолчанию(); - ИдентификаторЗагрузчикаПоУмолчанию = ЗагрузчикПоУмолчанию.ОписаниеПлагина(Объект.ТипыПлагинов).Идентификатор; - Подключаемый_ИнтерактивныйВызовЗагрузчика(Новый Структура("Имя", ИдентификаторЗагрузчикаПоУмолчанию)); -КонецПроцедуры - -&НаКлиенте -Процедура КомандаВыполнитьВсеТесты(Команда) - ВыполнитьТестыНаКлиенте(); -КонецПроцедуры - -&НаКлиенте -Процедура ВыполнитьТестыНаКлиенте(Знач Фильтр = Неопределено) - Если ЗначениеЗаполнено(ЭтаФорма.ДеревоОтЗагрузчика) Тогда - ОчиститьСообщения(); - - КоличествоТестовыхМетодов = ПолучитьКоличествоТестовыхМетодов(ЭтаФорма.ДеревоОтЗагрузчика, Фильтр); - ИнициализироватьИндикаторВыполнения(КоличествоТестовыхМетодов); - - СброситьПодключенныеВнешниеОбработки(); - РезультатыТестирования = ВыполнитьТесты(Плагин(ИдентификаторЗагрузчика), ЭтаФорма.ДеревоОтЗагрузчика, Фильтр, ЭтаФорма); - - ОбновитьДеревоТестовНаОснованииРезультатовТестирования(ДеревоТестов.ПолучитьЭлементы()[0], РезультатыТестирования); - - ГенераторОтчетаMXL = Плагин("ГенераторОтчетаMXL"); - Отчет = ГенераторОтчетаMXL.СоздатьОтчет(ЭтаФорма, РезультатыТестирования); - ГенераторОтчетаMXL.Показать(Отчет); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура КомандаВыполнитьВыделенныеТесты(Команда) - Фильтр = Новый Массив; - ВыделенныеСтроки = Элементы.ДеревоТестов.ВыделенныеСтроки; - Для каждого ИдентификаторВыделеннойСтроки Из ВыделенныеСтроки Цикл - ВыделеннаяСтрока = ДеревоТестов.НайтиПоИдентификатору(ИдентификаторВыделеннойСтроки); - Фильтр.Добавить(Новый УникальныйИдентификатор(ВыделеннаяСтрока.Ключ)); - КонецЦикла; - Если Фильтр.Количество() > 0 Тогда - ВыполнитьТестыНаКлиенте(Фильтр); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура КомандаПерезагрузитьФорму(Команда) - Перем АдресХранилища; - - Закрыть(); - - Если Объект.ЭтоВстроеннаяОбработка Тогда // Для встроенной в конф. обработки открываем форму - ОткрытьФорму(ЭтаФорма.ИмяФормы); - Иначе - - Оповещение = Новый ОписаниеОповещения("КомандаПерезагрузитьФормуЗавершение", ЭтаФорма); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ЭтаФорма.ИспользуемоеИмяФайла , Ложь, ЭтаФорма.УникальныйИдентификатор); - - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура ПерезагрузитьПоследниеТестыПоИстории(Команда = Неопределено) - ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов; - Если ИсторияЗагрузкиТестов.Количество() > 0 Тогда - ЭлементИстории = ИсторияЗагрузкиТестов[0]; - Попытка - ЗагрузитьТесты(ЭлементИстории.ИдентификаторЗагрузчика, ЭлементИстории.Путь); - Исключение - // TODO - Сообщить("Не удалось загрузить тесты из истории <" + ЭлементИстории.ИдентификаторЗагрузчика + ": " + ЭлементИстории.Путь + ">" + Символы.ПС + ОписаниеОшибки()); - КонецПопытки; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ГенераторМакетовДанных(Команда) - ОткрытьИнструмент("СериализаторMXL", ПолучитьПутьКПлагинам()); -КонецПроцедуры - -&НаКлиенте -Процедура ПоказатьГУИД(Команда) - ОткрытьИнструмент("xddGuidShow"); -КонецПроцедуры - -&НаКлиенте -Процедура КонвертерТестов(Команда) - ОткрытьИнструмент("xddTestsConvertIntoRebornFormat"); -КонецПроцедуры - -&НаКлиенте -Процедура ПреобразоватьЖурналДействийПользователяВТест(Команда) - ОткрытьИнструмент("UILogToScript"); -КонецПроцедуры -// } Управляющие воздействия пользователя - -// { Плагины -&НаКлиенте -Процедура ЗагрузитьПлагины() - Объект.Плагины = Новый Структура; - КэшФормПлагинов = Новый Структура; - - // Для встроенного в состав конфигурации браузера тестов - // плагины также загружаем из встроенных обработок - Если Объект.ЭтоВстроеннаяОбработка Тогда - ЗагрузитьВстроенныеПлагины(); - Для Каждого Плагин Из Объект.Плагины Цикл - КэшФормПлагинов.Вставить(Плагин.Ключ, Истина); - КонецЦикла; - Иначе - КаталогПлагинов = ПолучитьПутьКПлагинам(); - НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь); - ПомещаемыеФайлы = Новый Массив; - ИдентификаторыПлагинов = Новый Соответствие; - Для каждого ФайлОбработки Из НайденныеФайлы Цикл - - ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); - ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); - - ИмяПлагина = ФайлОбработки.ИмяБезРасширения; - ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - - КонецЦикла; - - ЗагруженныеФайлы = Новый Массив; - Если ПомещаемыеФайлы.Количество() Тогда - ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор); - КонецЕсли; - - ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); - - Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл - ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; - - ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя]; - Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); - КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); - - КонецЦикла; - КонецЕсли; - - ДобавитьКомандыЗагрузчиковНаФорме(); - -КонецПроцедуры - -&НаСервере -Функция ПодключитьПлагиныНаСервере(Знач ЗагружаемыеФайлы) - - ОписанияПлагинов = Новый Соответствие; - - Для Каждого ОписаниеФайла Из ЗагружаемыеФайлы Цикл - ФайлОбъект = Новый Файл(ОписаниеФайла.Имя); - ИмяПлагина = ФайлОбъект.ИмяБезРасширения; - ПодключитьФайлОбработкиНаСервере(ОписаниеФайла.Хранение, ИмяПлагина); - - Попытка - ОбъектОбработки = ВнешниеОбработки.Создать(ИмяПлагина, Ложь); - ОбъектОбработки.Инициализация(ЭтотОбъектНаСервере()); - ОписанияПлагинов.Вставить(ОписаниеФайла.Имя, ОбъектОбработки.ОписаниеПлагина(Объект.ТипыПлагинов)); - Исключение - Ошибка = "Возникла ошибка при загрузке плагина: "+ОписаниеФайла.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Сообщить(Ошибка); - Продолжить; - КонецПопытки; - - КонецЦикла; - - Возврат Новый ФиксированноеСоответствие(ОписанияПлагинов); - -КонецФункции // ПодключитьПлагиныНаСервере() - -&НаКлиенте -Процедура КэшироватьПеречисленияПлагинов() - Объект.ТипыУзловДереваТестов = Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов; -КонецПроцедуры - -&НаКлиенте -Функция Плагин(Знач Идентификатор) Экспорт - - ОбъектПлагин = Неопределено; - ИдентификаторБезПрефиксовПодсистемы = ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор, Объект.ИспользуемыйПрефиксПодсистемы); - Если КэшФормПлагинов.Свойство(ИдентификаторБезПрефиксовПодсистемы) Тогда - ОбъектПлагин = КэшФормПлагинов[ИдентификаторБезПрефиксовПодсистемы]; - КонецЕсли; - - Если ОбъектПлагин = Неопределено Тогда - ВызватьИсключение НСтр("ru = 'Неизвестный идентификатор плагина: <"+Идентификатор+">'"); - ИначеЕсли ОбъектПлагин = Истина Тогда - // загрузка клиентского плагина "По требованию" - ИмяПлагина = Объект.Плагины[ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор, Объект.ИспользуемыйПрефиксПодсистемы)]; - Попытка - Если Объект.ЭтоВстроеннаяОбработка Тогда - ОбъектПлагин = ПолучитьФорму("Обработка." + ДополнитьИдентификаторПрефиксомПодсистемы(ИмяПлагина, Объект.ИспользуемыйПрефиксПодсистемы) + ".Форма", , ЭтаФорма); - Иначе - ОбъектПлагин = ПолучитьФорму("ВнешняяОбработка." + ИмяПлагина + ".Форма", , ЭтаФорма); - КонецЕсли; - КэшФормПлагинов.Вставить(ИдентификаторБезПрефиксовПодсистемы, ОбъектПлагин); - Исключение - // TODO добавить поведение при отсутствии управляемой формы у плагина - ВызватьИсключение; - КонецПопытки; - - КонецЕсли; - - Возврат ОбъектПлагин; -КонецФункции - -&НаСервере -Процедура ДобавитьКомандыЗагрузчиковНаФорме() - ОписанияЗагрузчиков = ПолучитьОписанияЗагрузчиковНаСервере(); - Для каждого Описание Из ОписанияЗагрузчиков Цикл - Команда = ЭтаФорма.Команды.Добавить(Описание.Идентификатор); - Команда.Действие = "Подключаемый_ИнтерактивныйВызовЗагрузчика"; - ПунктМеню = ЭтаФорма.Элементы.Добавить(Команда.Имя, Тип("КнопкаФормы"), ЭтаФорма.Элементы.ПлагиныЗагрузчики); - ПунктМеню.Заголовок = Описание.Представление; - ПунктМеню.ИмяКоманды = Команда.Имя; - КонецЦикла; -КонецПроцедуры - -&НаКлиенте -Функция ПолучитьОписанияПлагиновПоТипу(Знач ТипПлагина) Экспорт - Результат = ПолучитьОписанияПлагиновПоТипуНаСервере(ТипПлагина); - - Возврат Результат; -КонецФункции - -&НаСервере -Функция ПолучитьОписанияПлагиновПоТипуНаСервере(Знач ТипПлагина) - ОбъектНаСервере = РеквизитФормыВЗначение("Объект"); - Результат = ОбъектНаСервере.ПолучитьОписанияПлагиновПоТипу(ТипПлагина); - - Возврат Результат; -КонецФункции - -&НаСервере -Функция ПолучитьОписанияЗагрузчиковНаСервере() - ОбъектНаСервере = РеквизитФормыВЗначение("Объект"); - ОписанияЗагрузчиков = ОбъектНаСервере.ПолучитьОписанияПлагиновПоТипу(ОбъектНаСервере.ТипыПлагинов.Загрузчик); - - Возврат ОписанияЗагрузчиков; -КонецФункции - -&НаКлиенте -Функция ЗагрузчикПоУмолчанию() Экспорт - Возврат Плагин("ЗагрузчикКаталога"); -КонецФункции -// } Плагины - -// { Работа с деревом тестов -&НаКлиенте -Процедура Подключаемый_ИнтерактивныйВызовЗагрузчика(Команда) - ИдентификаторВыбранногоЗагрузчика = Команда.Имя; - Плагин(ИдентификаторВыбранногоЗагрузчика).ВыбратьПутьИнтерактивно(ЭтаФорма); -КонецПроцедуры - -&НаКлиенте -Процедура ЗагрузитьТесты(Знач ИдентификаторВыбранногоЗагрузчика, Знач Путь) Экспорт - ИнициализироватьИндикаторВыполнения(); - - ЭтаФорма.ИдентификаторЗагрузчика = ИдентификаторВыбранногоЗагрузчика; - ФормаЗагрузчика = Плагин(ИдентификаторВыбранногоЗагрузчика); - - Попытка - ЭтаФорма.ДеревоОтЗагрузчика = ФормаЗагрузчика.Загрузить(ЭтаФорма, Путь); - Исключение - Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Возврат; - КонецПопытки; - - ЭлементыДереваТестов = ЭтаФорма.ДеревоТестов.ПолучитьЭлементы(); - ЭлементыДереваТестов.Очистить(); - ЗаполнитьДеревоТестов(ЭтаФорма.ДеревоТестов, ДеревоОтЗагрузчика); - - КоличествоТестовыхСлучаев = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(ЭтаФорма.ДеревоТестов); - РазвернутьСтрокиДерева(КоличествоТестовыхСлучаев < 30); - - СохранитьВИсториюЗагрузкиТестовНаСервере(ИдентификаторВыбранногоЗагрузчика, Путь); - ОбновитьКомандыИсторииЗагрузкиТестов(); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьДеревоТестов(РодительскаяСтрокаДереваТестов, Знач КонтейнерДереваТестовЗагрузчика) - СтрокаКонтейнера = РодительскаяСтрокаДереваТестов.ПолучитьЭлементы().Добавить(); - СтрокаКонтейнера.Имя = КонтейнерДереваТестовЗагрузчика.Имя; - СтрокаКонтейнера.ИконкаУзла = КонтейнерДереваТестовЗагрузчика.ИконкаУзла; - СтрокаКонтейнера.Ключ = КонтейнерДереваТестовЗагрузчика.Ключ; - - Для каждого ЭлементКоллекции Из КонтейнерДереваТестовЗагрузчика.Строки Цикл - Если ЭлементКоллекции.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда - ЗаполнитьДеревоТестов(СтрокаКонтейнера, ЭлементКоллекции); - ИначеЕсли ЭлементКоллекции.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда - СтрокаЭлемента = СтрокаКонтейнера.ПолучитьЭлементы().Добавить(); - СтрокаЭлемента.Имя = ЭлементКоллекции.Представление; - СтрокаЭлемента.Путь = ЭлементКоллекции.Путь; - СтрокаЭлемента.ИконкаУзла = ЭлементКоллекции.ИконкаУзла; - СтрокаЭлемента.Ключ = ЭлементКоллекции.Ключ; - КонецЕсли; - КонецЦикла; -КонецПроцедуры - -&НаКлиенте -Функция ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(РодительскаяСтрока) - КоллекцияСтрок = РодительскаяСтрока.ПолучитьЭлементы(); - Если КоллекцияСтрок.Количество() = 0 Тогда - Возврат 1; - КонецЕсли; - ОбщееКоличествоТестов = 0; - Для каждого СтрокаДерева из КоллекцияСтрок Цикл - КоличествоТестовВСтроке = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(СтрокаДерева); - СтрокаДерева.КоличествоТестов = КоличествоТестовВСтроке; - ОбщееКоличествоТестов = ОбщееКоличествоТестов + КоличествоТестовВСтроке; - КонецЦикла; - - Возврат ОбщееКоличествоТестов; -КонецФункции - -&НаКлиенте -Процедура РазвернутьСтрокиДерева(Знач ВключаяПодчиненные = Ложь) - Для каждого СтрокаДерева из ДеревоТестов.ПолучитьЭлементы() Цикл - Идентификатор = СтрокаДерева.ПолучитьИдентификатор(); - Элементы.ДеревоТестов.Развернуть(Идентификатор, ВключаяПодчиненные); - КонецЦикла; -КонецПроцедуры - -&НаКлиенте -Процедура ОбновитьДеревоТестовНаОснованииРезультатовТестирования(УзелДереваТестов, Знач РезультатТестирования) - УзелДереваТестов.Состояние = РезультатТестирования.Состояние; - УзелДереваТестов.ВремяВыполнения = РезультатТестирования.ВремяВыполнения; - Если РезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда - Для каждого ДочернийРезультатТестирования Из РезультатТестирования.Строки Цикл - ДочернийУзелДереваТестов = НайтиСтрокуВДеревеТестовПоКлючу(УзелДереваТестов, ДочернийРезультатТестирования.Ключ); - ОбновитьДеревоТестовНаОснованииРезультатовТестирования(ДочернийУзелДереваТестов, ДочернийРезультатТестирования); - КонецЦикла; - ИначеЕсли РезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда - Если РезультатТестирования.Свойство("Сообщение") И ЗначениеЗаполнено(РезультатТестирования.Сообщение) Тогда - Сообщить(РезультатТестирования.Сообщение, СтатусСообщения.ОченьВажное); - КонецЕсли; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Функция НайтиСтрокуВДеревеТестовПоКлючу(УзелДереваТестов, Знач Ключ) - Результат = Неопределено; - Для каждого ЭлементКоллекции Из УзелДереваТестов.ПолучитьЭлементы() Цикл - Если ЭлементКоллекции.Ключ = Ключ Тогда - Результат = ЭлементКоллекции; - Прервать; - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции -// } Работа с деревом тестов - -// { Выполнение тестов -&НаКлиенте -Функция ПолучитьКоличествоТестовыхМетодов(Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено) Экспорт - Возврат ПолучитьКоличествоТестовыхМетодовНаСервере(КонтейнерДереваТестов, Фильтр); -КонецФункции - -&НаСервере -Функция ПолучитьКоличествоТестовыхМетодовНаСервере(Знач КонтейнерДереваТестов, Знач Фильтр) - Возврат ЭтотОбъектНаСервере().ПолучитьКоличествоТестовыхМетодов(КонтейнерДереваТестов, Фильтр); -КонецФункции - -&НаКлиенте -Функция ВыполнитьТесты(Знач Загрузчик, Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено, Знач Подписчик = Неопределено) Экспорт - РезультатТестирования = СоздатьКонтейнерРезультатовТестирования(КонтейнерДереваТестов); - ФильтрДляДочернихУзлов = Неопределено; - Если Не УзелДереваТестовУдовлетворяетФильтру(КонтейнерДереваТестов, Фильтр) Тогда - ФильтрДляДочернихУзлов = Фильтр; - КонецЕсли; - - Если КонтейнерДереваТестов.СлучайныйПорядокВыполнения Тогда - СтрокиКонтейнера = ПеремешатьМассив(КонтейнерДереваТестов.Строки); - Иначе - СтрокиКонтейнера = КонтейнерДереваТестов.Строки; - КонецЕсли; - - Для каждого ДочернийУзел Из СтрокиКонтейнера Цикл - ДочернийРезультатТестирования = Неопределено; - Если ДочернийУзел.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда - ДочернийРезультатТестирования = ВыполнитьТесты(Загрузчик, ДочернийУзел, ФильтрДляДочернихУзлов, Подписчик); - ИначеЕсли ДочернийУзел.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда - Если УзелДереваТестовУдовлетворяетФильтру(ДочернийУзел, ФильтрДляДочернихУзлов) Тогда - КонтекстВыполнения = ПолучитьКонтекстВыполненияПоПути(Загрузчик, ДочернийУзел.Путь); - // Заполняем служебные поля, если они имеются - Если ПеременнаяСодержитСвойство(КонтекстВыполнения, "ИспользуемыйПрефиксПодсистемы") Тогда - КонтекстВыполнения.ИспользуемыйПрефиксПодсистемы = Объект.ИспользуемыйПрефиксПодсистемы; - КонецЕсли; - Объект.ТекущийКонтейнер = КонтейнерДереваТестов; - ДочернийРезультатТестирования = ВыполнитьТестовыйМетод(КонтекстВыполнения, ДочернийУзел); - КонтейнерДереваТестов.Контекст = Объект.ТекущийКонтейнер.Контекст; - - Если Подписчик <> Неопределено Тогда - ОповеститьОСобытии(Подписчик, Объект.ВозможныеСобытия.ВыполненТестовыйМетод, ДочернийРезультатТестирования); - КонецЕсли; - КонецЕсли; - КонецЕсли; - Если ДочернийРезультатТестирования <> Неопределено Тогда - РезультатТестирования.Строки.Добавить(ДочернийРезультатТестирования); - РезультатТестирования.Состояние = ВыбратьХудшееСостояниеВыполненияТестов(РезультатТестирования.Состояние, ДочернийРезультатТестирования.Состояние); - ЗаполнитьДанныеСтатистики(РезультатТестирования, ДочернийРезультатТестирования); - Если Не КонтейнерДереваТестов.СлучайныйПорядокВыполнения И ДочернийРезультатТестирования.Состояние <> Объект.СостоянияТестов.Пройден Тогда - Прервать; - КонецЕсли; - КонецЕсли; - КонецЦикла; - Если РезультатТестирования.Строки.Количество() = 0 Тогда - РезультатТестирования = Неопределено; - КонецЕсли; - - Возврат РезультатТестирования; -КонецФункции - -&НаКлиенте -Функция УзелДереваТестовУдовлетворяетФильтру(Знач УзелДереваТестов, Знач Фильтр) - Возврат (Фильтр = Неопределено) Или (Фильтр.Найти(УзелДереваТестов.Ключ) <> Неопределено); -КонецФункции - -&НаКлиенте -Функция ПолучитьКонтекстВыполненияПоПути(Знач Загрузчик, Знач Путь) - КонтекстВыполнения = Загрузчик.ПолучитьКонтекстПоПути(ЭтаФорма, Путь); - - Возврат КонтекстВыполнения; -КонецФункции - -&НаКлиенте -Функция ЭтоСерверныйКонтекстВыполнения(Знач КонтекстВыполнения) - Результат = ТипЗнч(КонтекстВыполнения) = Тип("ФиксированнаяСтруктура"); - - Возврат Результат; -КонецФункции - -&НаКлиенте -Процедура ЗаполнитьДанныеСтатистики(РезультатТестирования, Знач ДочернийРезультатТестирования) - Если ДочернийРезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда - РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + ДочернийРезультатТестирования.КоличествоТестов; - РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + ДочернийРезультатТестирования.КоличествоСломанныхТестов; - РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + ДочернийРезультатТестирования.КоличествоНеРеализованныхТестов; - РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + ДочернийРезультатТестирования.КоличествоОшибочныхТестов; - - ИначеЕсли ДочернийРезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда - РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + 1; - Если ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан Тогда - РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + 1; - ИначеЕсли ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован Тогда - РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + 1; - ИначеЕсли ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка Тогда - РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + 1; - КонецЕсли; - КонецЕсли; - РезультатТестирования.ВремяВыполнения = РезультатТестирования.ВремяВыполнения + ДочернийРезультатТестирования.ВремяВыполнения; -КонецПроцедуры - -&НаКлиенте -Функция ВыбратьХудшееСостояниеВыполненияТестов(Знач Состояние1, Знач Состояние2) - Возврат Макс(Состояние1, Состояние2); -КонецФункции - -&НаКлиенте -Функция ВыполнитьТестовыйМетод(Знач КонтекстВыполнения, Знач ЭлементДереваТестов) - Перем РезультатТестирования; - - Если ЭтоСерверныйКонтекстВыполнения(КонтекстВыполнения) Тогда - РезультатТестирования = ВыделитьТестовыйМетодНаСервереСОбработкойОшибокПередачиМеждуНаКлиентомИСервером(КонтекстВыполнения, ЭлементДереваТестов); - Иначе - РезультатТестирования = ВыполнитьТестовыйМетодНаКлиенте(КонтекстВыполнения, ЭлементДереваТестов); - КонецЕсли; - - Возврат РезультатТестирования; -КонецФункции - -&НаКлиенте -Функция ВыполнитьТестовыйМетодНаКлиенте(Знач КонтекстВыполнения, Знач ЭлементДереваТестов) Экспорт - - РезультатТестирования = СоздатьЭлементРезультатовТестирования(ЭлементДереваТестов); - НачалоВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах(); - - Если ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования) Тогда - - Попытка - ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПередЗапускомТеста); - ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ЭлементДереваТестов.ИмяМетода, ЭлементДереваТестов.Параметры); - - РезультатТестирования.Состояние = Объект.СостоянияТестов.Пройден; - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); - КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - Если ЕстьОшибка_МетодОбъектаНеОбнаружен(КраткийТекстОшибки, ЭлементДереваТестов.ИмяМетода) Тогда - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован; - Сообщение = НСтр("ru = 'Отсутствует реализация тестового метода (%1).'"); - РезультатТестирования.Сообщение = СтрЗаменить(Сообщение, "%1", ЭлементДереваТестов.ИмяМетода); - Иначе - РезультатТестирования.Сообщение = ТекстОшибки; - Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда - РезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан; - ИначеЕсли ЭтоПропущенныйТест(КраткийТекстОшибки) Тогда - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован; - Иначе - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка; - КонецЕсли; - КонецЕсли; - КонецПопытки; - Попытка - ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПослеЗапускаТеста); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); - - КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда - РезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан; - Иначе - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка; - КонецЕсли; - - КонецПопытки; - КонецЕсли; - - ОкончаниеВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах(); - РезультатТестирования.ВремяВыполнения = (ОкончаниеВыполнения - НачалоВыполнения) / 1000; - - Возврат РезультатТестирования; -КонецФункции - -&НаКлиенте -Функция ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования) - Попытка - КонтекстВыполнения.Инициализация(ЭтаФорма); - Возврат Истина; - Исключение - РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка; - КонецПопытки; - Возврат Ложь; -КонецФункции - -&НаКлиенте -Функция ВыделитьТестовыйМетодНаСервереСОбработкойОшибокПередачиМеждуНаКлиентомИСервером(Знач КонтекстВыполнения, Знач ЭлементДереваТестов) - - Перем ПолныйТекстОшибки, РезультатТестирования; - - Попытка - РезультатТестирования = ВыполнитьТестовыйМетодНаСервере(КонтекстВыполнения, ЭлементДереваТестов); - Исключение - ПолныйТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - РезультатТестирования = СоздатьЭлементРезультатовТестирования(ЭлементДереваТестов); - РезультатТестирования.Сообщение = ПолныйТекстОшибки; - РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка; - КонецПопытки; - - Возврат РезультатТестирования; -КонецФункции - -&НаСервере -Функция ВыполнитьТестовыйМетодНаСервере(Знач ОписаниеКонтекста, Знач ЭлементДереваТестов) - ОбъектНаСервере = ЭтотОбъектНаСервере(); - - Если ОписаниеКонтекста.ЭтоВнутренняяОбработка Тогда - ЭтоОтчет = (Метаданные.Отчеты.Найти(ОписаниеКонтекста.Идентификатор) <> Неопределено); - Иначе - ФайлОбработки = Новый Файл(ЭлементДереваТестов.Путь); - ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = ".erf"); - КонецЕсли; - - КонтекстВыполнения = СоздатьОбъектПлагина(ОписаниеКонтекста.Идентификатор, ОписаниеКонтекста.ЭтоВнутренняяОбработка, ЭтоОтчет); - КонтекстВыполнения.Инициализация(ОбъектНаСервере); - - // Заполняем служебные поля, если они имеются - ЗаполнитьСвойствоПриНаличии(КонтекстВыполнения, "ПутьКФайлуПолный", ЭлементДереваТестов.Путь); - - РезультатТестирования = ОбъектНаСервере.ВыполнитьТестовыйМетод(КонтекстВыполнения, ЭлементДереваТестов); - - Возврат РезультатТестирования; -КонецФункции - -&НаКлиенте -Процедура ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(Знач КонтекстВыполнения, Знач ИмяПроцедуры) - Попытка - ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ИмяПроцедуры); - Исключение - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, ИмяПроцедуры) Тогда - ВызватьИсключение; - КонецЕсли; - КонецПопытки; -КонецПроцедуры - -&НаКлиенте -Процедура ВыполнитьПроцедуруКонтекста(Знач КонтекстВыполнения, Знач ПроцедураКонтекста, Знач Параметры = Неопределено) - СтрокаПараметров = СформироватьСтрокуПараметров(Параметры); - ИcполняемыйКод = "КонтекстВыполнения." + ПроцедураКонтекста + "(" + СтрокаПараметров + ");"; - Выполнить(ИcполняемыйКод); -КонецПроцедуры - -&НаКлиенте -Функция СформироватьСтрокуПараметров(Знач Параметры) - СтрокаПараметров = ""; - Если ТипЗнч(Параметры) = Тип("Массив") Тогда - Для Сч = 0 По Параметры.Количество() - 1 Цикл - СтрокаПараметров = СтрокаПараметров + ",Параметры[" + Формат(Сч, "ЧН=0; ЧГ=") + "]"; - КонецЦикла; - КонецЕсли; - - Возврат Сред(СтрокаПараметров, 2); -КонецФункции - -&НаКлиенте -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(ТекстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - ИЛИ Найти(ТекстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции - -Функция ЭтоОшибкаПроверки(ТекстОшибки) - - Возврат Найти(ТекстОшибки, "["+ Объект.СтатусыРезультатаТестирования.ОшибкаПроверки + "]") = 1; - -КонецФункции - -Функция ЭтоПропущенныйТест(ТекстОшибки) - - Возврат Найти(ТекстОшибки, "["+ Объект.СтатусыРезультатаТестирования.ТестПропущен + "]") > 0; - -КонецФункции - -// } Выполнение тестов - -// { Генерация результатов тестирования -&НаКлиенте -Функция СоздатьКонтейнерРезультатовТестирования(Знач КонтейнерДереваТестов) - ГруппаРезультатовТестирования = Новый Структура; - ГруппаРезультатовТестирования.Вставить("Ключ", КонтейнерДереваТестов.Ключ); - ГруппаРезультатовТестирования.Вставить("Тип", КонтейнерДереваТестов.Тип); - ГруппаРезультатовТестирования.Вставить("Имя", КонтейнерДереваТестов.Имя); - ГруппаРезультатовТестирования.Вставить("Состояние", Объект.СостоянияТестов.НеВыполнен); - ГруппаРезультатовТестирования.Вставить("КоличествоТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоСломанныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоОшибочныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("КоличествоНеРеализованныхТестов", 0); - ГруппаРезультатовТестирования.Вставить("ВремяВыполнения", 0); - ГруппаРезультатовТестирования.Вставить("Строки", Новый Массив); - - Возврат ГруппаРезультатовТестирования; -КонецФункции - -&НаКлиенте -Функция СоздатьЭлементРезультатовТестирования(Знач ЭлементДереваТестов) - РезультатТестирования = Новый Структура; - РезультатТестирования.Вставить("Ключ", ЭлементДереваТестов.Ключ); - РезультатТестирования.Вставить("Тип", ЭлементДереваТестов.Тип); - РезультатТестирования.Вставить("Путь", ЭлементДереваТестов.Путь); - РезультатТестирования.Вставить("ИмяМетода", ЭлементДереваТестов.ИмяМетода); - РезультатТестирования.Вставить("Представление", ЭлементДереваТестов.Представление); - РезультатТестирования.Вставить("Параметры", ЭлементДереваТестов.Параметры); - РезультатТестирования.Вставить("Состояние", Объект.СостоянияТестов.НеВыполнен); - РезультатТестирования.Вставить("ВремяВыполнения", 0); - РезультатТестирования.Вставить("Сообщение", ""); - - Возврат РезультатТестирования; -КонецФункции -// } Генерация результатов тестирования - -// { История загрузки тестов -&НаСервере -Процедура СохранитьВИсториюЗагрузкиТестовНаСервере(Знач ИдентификаторЗагрузчика, Знач Путь) - ЭтотОбъектНаСервере = ЭтотОбъектНаСервере(); - ЭтотОбъектНаСервере.СохранитьВИсториюЗагрузкиТестов(ИдентификаторЗагрузчика, Путь); - ЗначениеВРеквизитФормы(ЭтотОбъектНаСервере, "Объект"); -КонецПроцедуры - -&НаСервере -Процедура ОбновитьКомандыИсторииЗагрузкиТестов() - ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов; - ПодменюИсторияЗагрузкиТестов = Элементы.ПодменюИсторияЗагрузкиТестов; - Для Сч = 0 По ИсторияЗагрузкиТестов.Количество() - 1 Цикл - ИмяКоманды = "История_" + Сч; - НайденнаяКоманда = Команды.Найти(ИмяКоманды); - Если НайденнаяКоманда = Неопределено Тогда - НоваяКоманда = Команды.Добавить(ИмяКоманды); - НоваяКоманда.Действие = "Подключаемый_ЗагрузитьТестыИзИстории"; - ПунктМеню = Элементы.Добавить(НоваяКоманда.Имя, Тип("КнопкаФормы"), ПодменюИсторияЗагрузкиТестов); - ПунктМеню.ИмяКоманды = НоваяКоманда.Имя; - Иначе - ПунктМеню = Элементы.Найти(ИмяКоманды); - КонецЕсли; - ЭлементИстории = ИсторияЗагрузкиТестов[Сч]; - ПунктМеню.Заголовок = ЭлементИстории.ИдентификаторЗагрузчика + ": " + ЭлементИстории.Путь; - КонецЦикла; -КонецПроцедуры - -&НаКлиенте -Процедура Подключаемый_ЗагрузитьТестыИзИстории(Команда) - ИндексИстории = Число(Сред(Команда.Имя, Найти(Команда.Имя, "_") + 1)); - ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов; - ЭлементИстории = ИсторияЗагрузкиТестов[ИндексИстории]; - ЗагрузитьТесты(ЭлементИстории.ИдентификаторЗагрузчика, ЭлементИстории.Путь); -КонецПроцедуры -// } История загрузки тестов - -// { Пакетный запуск -&НаКлиенте -Процедура ВыполнитьПакетныйЗапуск(Знач ПараметрЗапуска) - Перем РезультатыТестирования; - - ПарсерКоманднойСтроки = ЭтаФорма.Плагин("ПарсерКоманднойСтроки"); - ПараметрыЗапуска = ПарсерКоманднойСтроки.Разобрать(ПараметрЗапуска); - - Параметры_xddRun = Неопределено; - Если ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun, Параметры_xddRun) Тогда - РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Параметры_xddRun); - КонецЕсли; - - Параметры_xddReport = Неопределено; - Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddReport, Параметры_xddReport) Тогда - СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Параметры_xddReport, РезультатыТестирования); - КонецЕсли; - - Если ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddShutdown) Тогда - ЗавершитьРаботуСистемы(Ложь); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Функция ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Знач Параметры_xddRun) - Попытка - ИдентификаторЗагрузчика = Параметры_xddRun[0]; - Загрузчик = ЭтаФорма.Плагин(ИдентификаторЗагрузчика); - - ПутьКТестам = Параметры_xddRun[1]; - ДеревоТестовОтЗагрузчика = Загрузчик.Загрузить(ЭтаФорма, ПутьКТестам); - - РезультатыТестирования = ЭтаФорма.ВыполнитьТесты(Загрузчик, ДеревоТестовОтЗагрузчика); - Исключение - ОписаниеОшибки = "Ошибка загрузки и выполнения тестов в пакетном режиме - |" + ОписаниеОшибки(); - ЗафиксироватьОшибкуВЖурналеРегистрации(ОписаниеОшибки); - КонецПопытки; - - Возврат РезультатыТестирования; -КонецФункции - -&НаКлиенте -Процедура СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Знач Параметры_xddReport, Знач РезультатыТестирования) - Попытка - ИдентификаторГенератораОтчета = Параметры_xddReport[0]; - ГенераторОтчета = ЭтаФорма.Плагин(ИдентификаторГенератораОтчета); - - Отчет = ГенераторОтчета.СоздатьОтчет(ЭтаФорма, РезультатыТестирования); - - ПутьКОтчету = Параметры_xddReport[1]; - ГенераторОтчета.Экспортировать(Отчет, ПутьКОтчету); - Исключение - ОписаниеОшибки = "Ошибка формирования и экспорта отчета о тестировании в пакетном режиме - |" + ОписаниеОшибки(); - ЗафиксироватьОшибкуВЖурналеРегистрации(ОписаниеОшибки); - КонецПопытки; -КонецПроцедуры - -&НаСервере -Процедура ЗафиксироватьОшибкуВЖурналеРегистрации(Знач ОписаниеОшибки) - ЗаписьЖурналаРегистрации(ЭтотОбъектНаСервере().Метаданные().Имя, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки); -КонецПроцедуры -// } Пакетный запуск - -// { Контекст -&НаКлиенте -Процедура СохранитьКонтекст(Знач Контекст) Экспорт - Если Объект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда - ВызватьИсключение Объект.ВозможныеИсключения.СохранятьКонтекстТолькоВСтрогомРежиме; - КонецЕсли; - Объект.ТекущийКонтейнер.Контекст = Контекст; -КонецПроцедуры - -&НаКлиенте -Функция ПолучитьКонтекст() Экспорт - Если Объект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда - ВызватьИсключение Объект.ВозможныеИсключения.ПолучатьКонтекстТолькоВСтрогомРежиме; - КонецЕсли; - - Возврат Объект.ТекущийКонтейнер.Контекст; -КонецФункции -// } Контекст - -Процедура ВызватьОшибкуПроверки(СообщениеОшибки = "") Экспорт - - Префикс = "["+ Объект.СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; - -КонецПроцедуры - -Процедура ПропуститьТест(Знач Сообщение = "") Экспорт - - Префикс = "[" + Объект.СтатусыРезультатаТестирования.ТестПропущен + "]"; - Если ПустаяСтрока(Сообщение) Тогда - Сообщение = НСтр("ru = 'Тест пропущен'"); - КонецЕсли; - ВызватьИсключение Префикс + " " + Сообщение; - -КонецПроцедуры - -// Выводит сообщение. В тестах ВСЕГДА должна использоваться ВМЕСТО метода Сообщить(). -// -Функция ВывестиСообщение(ТекстСообщения, Статус=Неопределено) Экспорт - - Сообщить(ТекстСообщения, Статус); - -КонецФункции - -// { Внешние интерфейсные инструменты -&НаКлиенте -Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = "", Знач ИмяФормы = "Форма") - Перем АдресХранилища; - - // Для встроенного в состав конфигурации браузера тестов - // инструменты находятся также в составке конфигурации - Если Объект.ЭтоВстроеннаяОбработка Тогда - // Преобразование имени инструмента к имени обработки - Если ИмяИнструмента = "UILogToScript" Тогда - ИмяИнструмента = "ПреобразованиеЖурналаДействийПользователя"; - КонецЕсли; - ИмяИнструмента = ДополнитьИдентификаторПрефиксомПодсистемы(ИмяИнструмента, Объект.ИспользуемыйПрефиксПодсистемы); - ФормаИнструмента = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормы); - ФормаИнструмента.Открыть(); - ФормаИнструмента = Неопределено; - - Иначе - Если Не ПустаяСтрока(ПутьИнструмента) Тогда - ПутьКВнешнимИнструментам = ПутьИнструмента + "\"; - Иначе - ПутьКВнешнимИнструментам = ПолучитьПутьКВнешнимИнструментам(); - КонецЕсли; - ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + ".epf"; - ФайлИнструмента = Новый Файл(ПутьИнструмента); - Если Не ФайлИнструмента.Существует() Тогда - Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">"); - Возврат; - КонецЕсли; - - Оповещение = Новый ОписаниеОповещения("ОткрытьИнструментЗавершение", ЭтаФорма, Новый Структура("ИмяИнструмента, ИмяФормыИнструмента", ИмяИнструмента, ИмяФормы)); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); - - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Функция ПолучитьПутьКПлагинам() - // Для встроенного в состав конфигурации браузера тестов - // используемое имя файла не используется - Если НЕ Объект.ЭтоВстроеннаяОбработка Тогда - ФайлЯдра = Новый Файл(ЭтаФорма["ИспользуемоеИмяФайла"]); - Результат = ФайлЯдра.Путь + "Plugins\"; - КонецЕсли; - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция ПолучитьПутьКВнешнимИнструментам() - ФайлЯдра = Новый Файл(ЭтаФорма.ИспользуемоеИмяФайла); - Результат = ФайлЯдра.Путь + "Utils\"; - - Возврат Результат; -КонецФункции -// } Внешние интерфейстные инструменты - -// { Helpers -&НаКлиенте -Процедура ПодключитьВнешнююОбработку(ФайлОбработки) Экспорт - Перем АдресХранилища; - - Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда - ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = ".erf"); - Оп = Новый ОписаниеОповещения("ПодключитьВнешнююОбработкуЗавершение", ЭтаФорма, Новый Структура("ФайлОбработки, ЭтоОтчет", ФайлОбработки, ЭтоОтчет)); - НачатьПомещениеФайла(Оп, АдресХранилища, ФайлОбработки.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); - КонецЕсли; -КонецПроцедуры - -&НаСервереБезКонтекста -Процедура ПодключитьФайлОбработкиНаСервере(Знач АдресХранилища, Знач ИдентификаторОбработки, ЭтоОтчет = Ложь) - Если ЭтоОтчет = Истина Тогда - ВнешниеОтчеты.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь); - Иначе - ВнешниеОбработки.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Функция ПолучитьОписаниеКонтекстаВыполнения(Знач Идентификатор, Знач ЭтоВнутренняяОбработка = Ложь) Экспорт - ОписаниеКонтекстаВыполнения = Новый Структура("Идентификатор, ЭтоВнутренняяОбработка", Идентификатор, ЭтоВнутренняяОбработка); - - Возврат Новый ФиксированнаяСтруктура(ОписаниеКонтекстаВыполнения); -КонецФункции - -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции - -&НаКлиенте -Процедура ИнициализироватьИндикаторВыполнения(Знач КоличествоТестовыхМетодов = 0) - Элементы.ИндикаторВыполнения.МаксимальноеЗначение = КоличествоТестовыхМетодов; - ИндикаторВыполнения = 0; - Элементы.ИндикаторВыполнения.ЦветРамки = Новый Цвет(0, 174, 0); // Зеленый -КонецПроцедуры - -&НаКлиенте -Процедура ОповеститьОСобытии(Знач Подписчик, Знач Событие, Знач ПараметрыСобытия) - Выполнить("Подписчик.ОбработатьСобытиеВыполненияТестов(Событие, ПараметрыСобытия);"); -КонецПроцедуры - -&НаКлиенте -Функция ПеремешатьМассив(Знач ИсходныйМассив) Экспорт - Результат = Новый Массив; - Для Каждого Элемент Из ИсходныйМассив Цикл - Результат.Добавить(Элемент); - КонецЦикла; - - // алгоритм перемешивания взят из книги Кнута "Искусство программирования" т.2 - ГСЧ = Новый ГенераторСлучайныхЧисел(); - ПоследнийИндекс = Результат.ВГраница(); - Для Индекс = 1 По ПоследнийИндекс Цикл - ТекущийИндекс = ПоследнийИндекс - Индекс + 1; - НовыйИндекс = ГСЧ.СлучайноеЧисло(0, ТекущийИндекс); - Если НовыйИндекс <> ТекущийИндекс Тогда - Значение = Результат[НовыйИндекс]; - Результат[НовыйИндекс] = Результат[ТекущийИндекс]; - Результат[ТекущийИндекс] = Значение; - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция НайтиРезультатТестированияПоИдентификатору(Знач КонтейнерРезультатовТестирования, Знач ИдентификаторТеста, Знач ВключатьПодчиненные = Ложь) Экспорт - Результат = НайтиРезультатТестированияПоИдентификатору_НаСервере(КонтейнерРезультатовТестирования, ИдентификаторТеста, ВключатьПодчиненные); - - Возврат Результат; -КонецФункции - -&НаСервере -Функция НайтиРезультатТестированияПоИдентификатору_НаСервере(Знач КонтейнерРезультатовТестирования, Знач ИдентификаторТеста, Знач ВключатьПодчиненные) Экспорт - Результат = ЭтотОбъектНаСервере().НайтиРезультатТестированияПоИдентификатору(КонтейнерРезультатовТестирования, ИдентификаторТеста, ВключатьПодчиненные); - - Возврат Результат; -КонецФункции - -&НаКлиенте -Процедура СброситьПодключенныеВнешниеОбработки() - ПодключенныеВнешниеОбработки = Новый Соответствие; -КонецПроцедуры - -&НаКлиенте -Функция ПараметрыМетода(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыМетода = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыМетода.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыМетода; -КонецФункции - -&НаСервере -Процедура ЗагрузитьВстроенныеПлагины() - - ОбъектНаСервере = ЭтотОбъектНаСервере(); - Объект.Плагины = ОбъектНаСервере.ПолучитьПлагины(); - -КонецПроцедуры - -// } Helpers - -// { Подсистема конфигурации xUnitFor1C - -// Универсальная функция для проверки наличия -// свойств у значения любого типа данных -// Переменные: -// 1. Переменная - переменная любого типа, -// для которой необходимо проверить наличие свойства -// 2. ИмяСвойства - переменная типа "Строка", -// содержащая искомое свойства -// -&НаКлиентеНаСервереБезКонтекста -Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) - // Инициализируем структуру для теста - // с ключом (значение переменной "ИмяСвойства") - // и значением произвольного GUID'а - GUIDПроверка = Новый УникальныйИдентификатор; - СтруктураПроверка = Новый Структура; - СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка); - // Заполняем созданную структуру из переданного - // значения переменной - ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная); - // Если значение для свойства структуры осталось - // NULL, то искомое свойство не найдено, - // и наоборот. - Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда - Возврат Ложь; - Иначе - Возврат Истина; - КонецЕсли; -КонецФункции -&НаКлиентеНаСервереБезКонтекста -Функция ЗаполнитьСвойствоПриНаличии(ОбъектЗаполнения, ИмяСвойство, ЗначениеСвойства) - - Если ПеременнаяСодержитСвойство(ОбъектЗаполнения, ИмяСвойство) Тогда - ОбъектЗаполнения[ИмяСвойство] = ЗначениеСвойства; - КонецЕсли; - -КонецФункции - -&НаКлиенте -Функция ДополнитьИдентификаторПрефиксомПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы) Экспорт - - Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда - Возврат Идентификатор; - КонецЕсли; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда - Возврат Идентификатор; - Иначе - Возврат ИспользуемыйПрефиксПодсистемы + Идентификатор; - КонецЕсли; - -КонецФункции -&НаКлиенте -Функция ПолучитьИдентификаторБезПрефиксаПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы) Экспорт - - Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда - Возврат Идентификатор; - КонецЕсли; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда - Возврат Прав(Идентификатор, СтрДлина(Идентификатор) - ДлинаПрефикса); - Иначе - Возврат Идентификатор; - КонецЕсли; - -КонецФункции - -&НаСервере -Функция СоздатьОбъектПлагина(Идентификатор, ВстроенаВКонфигурацию = Ложь, ЭтоОтчет = Ложь) - - ОбъектНаСервере = ЭтотОбъектНаСервере(); - - Возврат ОбъектНаСервере.СоздатьОбъектПлагина(Идентификатор, ВстроенаВКонфигурацию, ЭтоОтчет); - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C - -// { Вспомогательные методы - -&НаКлиенте -Процедура ПодключитьВнешнююОбработкуЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт - - - ФайлОбработки = ДополнительныеПараметры.ФайлОбработки; - ЭтоОтчет = ДополнительныеПараметры.ЭтоОтчет; - - ПодключитьФайлОбработкиНаСервере(Адрес, ФайлОбработки.ИмяБезРасширения, ЭтоОтчет); - - ПодключенныеВнешниеОбработки.Вставить(ФайлОбработки.ИмяБезРасширения, Истина); - -КонецПроцедуры - -&НаКлиенте -Процедура ОткрытьИнструментЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт - - ИмяИнструмента = ДополнительныеПараметры.ИмяИнструмента; - ИмяФормыИнструмента = ДополнительныеПараметры.ИмяФормыИнструмента; - - ПодключитьФайлОбработкиНаСервере(Адрес, ИмяИнструмента); - - ФормаИнструмента = ПолучитьФорму("ВнешняяОбработка." + ИмяИнструмента + "." + ИмяФормыИнструмента); - Если ФормаИнструмента = Неопределено Тогда - Сообщить("Инструмент <" + ИмяИнструмента + ">: не удалось получить основную форму!"); - Возврат; - КонецЕсли; - - ФормаИнструмента.Открыть(); - ФормаИнструмента = Неопределено; - -КонецПроцедуры - -&НаКлиенте -Процедура КомандаПерезагрузитьФормуЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт - - ПодключитьФайлОбработкиНаСервере(Адрес, Неопределено); - - НоваяФорма = ПолучитьФорму(ЭтаФорма.ИмяФормы,,,Истина); - НоваяФорма.ИспользуемоеИмяФайла = ЭтаФорма.ИспользуемоеИмяФайла; - НоваяФорма.Открыть(); - -КонецПроцедуры - -// } Вспомогательные методы \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index c10139354..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" "b/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" deleted file mode 100644 index c1a714472..000000000 Binary files "a/lib/CF/83xddNoSync/DataProcessors/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" and /dev/null differ diff --git a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat.xml b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat.xml deleted file mode 100644 index 310e8a541..000000000 --- a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - 708e0251-9a7c-4ba1-bf67-b81769161a18 - 2e229ff5-a332-4c33-9674-0474dd90fb2d - - - f94f5915-9170-4dd1-a719-56545bf9b594 - 9f6c7f4c-44ee-47d9-84a2-bbc161f33db5 - - - - xddTestsConvertIntoRebornFormat - - - ru - Конвертация тестов xUnitFor1C в версию4 из формата версии 3 - - - - false - DataProcessor.xddTestsConvertIntoRebornFormat.Form.Форма - DataProcessor.xddTestsConvertIntoRebornFormat.Form.УправляемаяФорма - false - - - - -
Форма
-
УправляемаяФорма
- - - - - - - -
-
-
\ No newline at end of file diff --git a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Ext/ObjectModule.bsl b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Ext/ObjectModule.bsl deleted file mode 100644 index 1a93dbf9c..000000000 --- a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Ext/ObjectModule.bsl +++ /dev/null @@ -1,790 +0,0 @@ -//Перем КонтекстЯдра; -Перем Ожидаем; -Перем ВременныеФайлы; -Перем КомандныйФайл; - -Перем Лог; -Перем ЛогВключен; - -Перем RegExp_ПолучитьСписокТестов; -Перем RegExp_КонецФункции_ПолучитьСписокТестов; - -Перем ПолноеИмяБраузераТестов; -Перем ПолныйПутьКФайлуБраузераТестов; - -//{ Интерфейс конвертера - -Функция Инициализация(СлужебныеПараметрыЯдра = Неопределено) Экспорт - - Если ТипЗнч(СлужебныеПараметрыЯдра) = Тип("Структура") Тогда - СлужебныеПараметрыЯдра.Свойство("ПолноеИмяБраузераТестов", ПолноеИмяБраузераТестов); - СлужебныеПараметрыЯдра.Свойство("ПолныйПутьКФайлуБраузераТестов", ПолныйПутьКФайлуБраузераТестов); - КонецЕсли; - - ВременныеФайлы = СоздатьУтилиту("ВременныеФайлы"); - КомандныйФайл = СоздатьУтилиту("КомандныйФайл"); - Ожидаем = СоздатьУтилиту("УтвержденияBDD"); - - РегулярныеВыражения_Инициализация (RegExp_ПолучитьСписокТестов, "^\s*((?:procedure)|(?:function)|(?:процедура)|(?:функция))\s+(получитьсписоктестов)\s*\(([\wА-яёЁ\d]+)\s*\)\s+экспорт"); - РегулярныеВыражения_Инициализация (RegExp_КонецФункции_ПолучитьСписокТестов, "^\s*конецфункции"); - - ВключитьЛог(Ложь); - Лог = ""; - -КонецФункции - -Функция ПреобразоватьКаталог(КаталогТестов, ИскатьВПодкаталогах = Ложь) Экспорт - Рез = СоздатьСтруктуруРезультатаПреобразования(); - - Файлы = НайтиФайлы(КаталогТестов, "*.epf", ИскатьВПодкаталогах); - Возврат ПреобразоватьФайлы(Файлы, Истина); -КонецФункции - -Функция ПреобразоватьФайлы(НаборФайлов, НужноДелатьКопию = Истина) Экспорт - Рез = СоздатьСтруктуруРезультатаПреобразования(); - - Если НаборФайлов.Количество() = 0 Тогда - Возврат Рез; - КонецЕсли; - Для Каждого Файл Из НаборФайлов Цикл - Попытка - РезультатыПоФайлу = ПреобразоватьФайл(Файл, Истина); - ДобавитьЧислаВНаборИзДругогоНабора(Рез, РезультатыПоФайлу); - Исключение - Сообщить(Файл.ПолноеИмя + " : " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - КонецЦикла; - Возврат Рез; -КонецФункции - -Функция ПреобразоватьФайл(ИсходныйФайл, НужноДелатьКопию = Истина) Экспорт - Рез = СоздатьСтруктуруРезультатаПреобразования(); - Рез.НайденоВнешнихОбработок = 1; - - ИмяКаталогаСборки = ПодготовитьВременныйКаталогДляСборкиРазборки(); - - ФайлУтилиты = ПолучитьУтилитуСборкиРазборки(ИмяКаталогаСборки); - МассивОписанийФайловМодулей = РазобратьФайлТестаНаИсходники(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты); - НовыйМассивОписанийФайловМодулей = НайтиФайлыМодуляТестаВИсходниках(МассивОписанийФайловМодулей); - Если НовыйМассивОписанийФайловМодулей.Количество() = 0 Тогда - Возврат Рез; - КонецЕсли; - Рез.НайденоФайловТестов = 1; - - Для Каждого ОписаниеФайлаМодуля Из НовыйМассивОписанийФайловМодулей Цикл - ФайлМодуляТеста = ОписаниеФайлаМодуля.Файл; - ИсходныйТекст = ПолучитьИсходныйТекстМодуляТеста(ФайлМодуляТеста); - ЭтоОбычнаяФорма = ОписаниеФайлаМодуля.БылРазборДополнительногоКонтейнера; - КонечныйТекст = ПреобразоватьТекстМодуляТестаВФормат_v4_reborn(ИсходныйТекст, ЭтоОбычнаяФорма); - ЗаписатьНовыйТекстМодуляТестаВИсходникМодуляФайлТеста(ФайлМодуляТеста, КонечныйТекст); - КонецЦикла; - Если НужноДелатьКопию Тогда - ФайлКопии = СделатьКопиюФайла(ИсходныйФайл); - КонецЕсли; - ПодменитьФайлВерсийВИсходниках(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты); - - СобратьФайлТеста(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты, МассивОписанийФайловМодулей); - Рез.КонвертированоТестов = 1; - - УдалитьВременныеФайлы(); - Возврат Рез; -КонецФункции - -Процедура УдалитьВременныеФайлы() Экспорт - ВременныеФайлы.Удалить(); -КонецПроцедуры - -Процедура ВключитьЛог(НовоеЗначение = Истина) Экспорт - ЛогВключен = НовоеЗначение = Истина; -КонецПроцедуры - -Функция ПолучитьЛог() Экспорт - Возврат Лог; -КонецФункции - -//} - -//{ приватные методы - -Функция СоздатьУтилиту(ИмяУтилиты) - - КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере(); - - Возврат КонтекстЯдра.СоздатьОбъектПлагина(ИмяУтилиты); - -КонецФункции - -Функция ПодготовитьВременныйКаталогДляСборкиРазборки() - ИмяКаталогаСборки = ВременныеФайлы.СоздатьКаталог_(); - Возврат ИмяКаталогаСборки; -КонецФункции - -Функция ПолучитьУтилитуСборкиРазборки(ИмяКаталогаСборки) - МакетУтилиты = ПолучитьМакет("v8unpack"); - - Файл = Новый Файл(ИмяКаталогаСборки+"\v8unpack.exe"); - - МакетУтилиты.Записать(Файл.ПолноеИмя); - Возврат Файл; -КонецФункции - -Функция РазобратьФайлТестаНаИсходники(ИмяКаталогаСборки, ФайлТеста, ФайлУтилиты) - МассивОписанийФайловМодулей = Новый Массив; - - ИмяКаталогаИсходниковФайла = ФайлТеста.ИмяБезРасширения; - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + ИмяКаталогаСборки); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -unpack """ + ФайлТеста.ПолноеИмя + """ " + ИмяКаталогаИсходниковФайла + " > "+ИмяКаталогаИсходниковФайла+".unpack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата первый -unpack").Равно(0); - - Файлы = НайтиФайлы(ИмяКаталогаСборки+"/"+ИмяКаталогаИсходниковФайла, "*.0.data"); - Ожидаем.Что(Файлы.Количество(), "Должны быть файлы, а их нет").Больше(0); - Для Каждого БинарныйФайл Из Файлы Цикл - ИмяФайлаИсходников = БинарныйФайл.Имя + ".txt"; - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + БинарныйФайл.Путь); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -undeflate " + БинарныйФайл.Имя + " " + ИмяФайлаИсходников + " > "+БинарныйФайл.ИмяБезРасширения+".unpack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата -undeflate "+БинарныйФайл.Имя).Равно(0); - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + БинарныйФайл.Путь); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -unpack " + ИмяФайлаИсходников + " " + БинарныйФайл.ИмяБезРасширения + " > "+БинарныйФайл.ИмяБезРасширения+".unpack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - - ОписаниеИсходника = Новый Структура("ИсходныйФайл", БинарныйФайл); - ОписаниеИсходника.Вставить("ФайлДополнительногоКонтейнера", Новый Файл(БинарныйФайл.Путь +"/"+ИмяФайлаИсходников)); - Если КодВозврата = 4294967245 Тогда //UnpackToFolder. This is not V8 file! - ОписаниеИсходника.Вставить("БылРазборДополнительногоКонтейнера", Ложь); - ОписаниеИсходника.Вставить("Файл", Новый Файл(БинарныйФайл.Путь +"/"+ИмяФайлаИсходников)); - МассивОписанийФайловМодулей.Добавить(ОписаниеИсходника); - Продолжить; - ИначеЕсли КодВозврата = 0 Тогда - ОписаниеИсходника.Вставить("БылРазборДополнительногоКонтейнера", Истина); - НужныйФайл = Новый Файл(БинарныйФайл.Путь +"/"+БинарныйФайл.ИмяБезРасширения+"/text.data"); - Если НужныйФайл.Существует() Тогда - ОписаниеИсходника.Вставить("Файл", НужныйФайл); - МассивОписанийФайловМодулей.Добавить(ОписаниеИсходника); - КонецЕсли; - Продолжить; - КонецЕсли; - Ожидаем.Что(КодВозврата, "КодВозврата второй -unpack "+БинарныйФайл.Имя).Равно(0); - КонецЦикла; - Возврат МассивОписанийФайловМодулей; - - //разборка - //@echo off - //v8unpack.exe -unpack ШаблонТестаУФ.epf .\ШаблонТестаУФ - //v8unpack.exe -undeflate .\ШаблонТестаУФ\727eda5f-558c-428b-86d2-3421c52f4c50.0.data .\ШаблонТестаУФ\Module.txt - //v8unpack.exe -unpack .\ШаблонТестаУФ\Module.txt .\ШаблонТестаУФ\Module - - //v8unpack.exe -undeflate .\ШаблонТестаУФ\ba335523-e6ff-4049-91a9-5f97f7ab0a0b.0.data .\ШаблонТестаУФ\UF.txt - //rem v8unpack.exe -unpack .\ШаблонТестаУФ\UF.txt .\ШаблонТеста\UF - - //сборка - //rem @echo off - //v8unpack.exe -pack .\ШаблонТеста\Module .\ШаблонТеста\NewModule.txt - //v8unpack.exe -deflate .\ШаблонТеста\NewModule.txt .\ШаблонТеста\727eda5f-558c-428b-86d2-3421c52f4c50.0.data - //v8unpack.exe -pack .\ШаблонТеста ШаблонТеста2.epf -КонецФункции - -Функция ПолучитьИмяКонтейнераИзФайла(БинарныйФайл) - Возврат БинарныйФайл.Имя + ".txt"; -КонецФункции - -Функция НайтиФайлыМодуляТестаВИсходниках(МассивОписанийФайловМодулей) - НовыйМассивОписанийФайловМодулей = Новый Массив; - Для Каждого ОписаниеИсходника Из МассивОписанийФайловМодулей Цикл - Файл = ОписаниеИсходника.Файл; - Текст = Новый ЧтениеТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8); - Стр = Текст.ПрочитатьСтроку(); - Пока Стр <> Неопределено Цикл - Если РегулярныеВыражения_Проверка(RegExp_ПолучитьСписокТестов, Стр) Тогда - НовыйМассивОписанийФайловМодулей.Добавить(ОписаниеИсходника); - Прервать; - КонецЕсли; - Стр = Текст.ПрочитатьСтроку(); - КонецЦикла; - КонецЦикла; - Возврат НовыйМассивОписанийФайловМодулей;; -КонецФункции - -Функция ПолучитьИсходныйТекстМодуляТеста(ФайлМодуляТеста) - Возврат ПолучитьТекстФайла(ФайлМодуляТеста); -КонецФункции - -Функция ПреобразоватьТекстМодуляТестаВФормат_v4_reborn(ИсходныйТекст, ЭтоОбычнаяФорма) - ЕстьДвеДвойныеКавычки = Не ЭтоОбычнаяФорма; - Возврат ПреобразоватьТекст(ИсходныйТекст, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки); -КонецФункции - -Функция ЗаписатьНовыйТекстМодуляТестаВИсходникМодуляФайлТеста(ФайлМодуляТеста, КонечныйТекст) - ЗаписатьТекстВФайл(ФайлМодуляТеста, КонечныйТекст); -КонецФункции - -Функция СделатьКопиюФайла(ИсходныйФайл) - ФайлКопии = Новый Файл(ИсходныйФайл.Путь+"/"+ИсходныйФайл.ИмяБезРасширения +".orig.epf"); - КопироватьФайл(ИсходныйФайл.ПолноеИмя, ФайлКопии.ПолноеИмя); - Ожидаем.Что(ФайлКопии.Существует(), "не удалось сделать копию-файла для файла "+ИсходныйФайл.ПолноеИмя +", ожидали файл копии "+ФайлКопии.ПолноеИмя).ЭтоИстина(); - Возврат ФайлКопии; -КонецФункции - -Процедура ПодменитьФайлВерсийВИсходниках(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты) - НовыйФайлВерсий = Новый Файл(ВременныеФайлы.НовоеИмяФайла("txt")); - ЗаписатьТекстВФайл(НовыйФайлВерсий, "{1,0}"); - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + ИмяКаталогаСборки+"/"+ИсходныйФайл.ИмяБезРасширения); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -deflate " + НовыйФайлВерсий.ПолноеИмя + " versions.data >> versions.data.pack.log"); - - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата versions -pack").Равно(0); -КонецПроцедуры - -Функция СобратьФайлТеста(ИмяКаталогаСборки, ФайлТеста, ФайлУтилиты, МассивОписанийФайловМодулей) - УдалитьФайлы(ФайлТеста.ПолноеИмя); - Ожидаем.Что(ФайлТеста.Существует(), "исходный файл теста не удалось удалить "+ФайлТеста.ПолноеИмя).ЭтоЛожь(); - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + ИмяКаталогаСборки+"/"+ФайлТеста.ИмяБезРасширения); - Для Каждого ОписаниеИсходника Из МассивОписанийФайловМодулей Цикл - РазобранныйФайл = ОписаниеИсходника.Файл; - ИсходныйФайл = ОписаниеИсходника.ИсходныйФайл; - ФайлДополнительногоКонтейнера = ОписаниеИсходника.ФайлДополнительногоКонтейнера; - Если ОписаниеИсходника.БылРазборДополнительногоКонтейнера Тогда - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -pack " + РазобранныйФайл.Путь + " " + ФайлДополнительногоКонтейнера.Имя + " > "+РазобранныйФайл.Имя +".pack.log"); - КонецЕсли; - - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -deflate " + ФайлДополнительногоКонтейнера.Имя + " " + ИсходныйФайл.Имя + " >> "+РазобранныйФайл.Имя +".pack.log"); - КонецЦикла; - ИмяКаталогаИсходниковФайла = ФайлТеста.ИмяБезРасширения; - - КомандныйФайл.Добавить("cd .."); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -pack " + ИмяКаталогаИсходниковФайла + " """ + ФайлТеста.ПолноеИмя + """ > "+ИмяКаталогаИсходниковФайла+".pack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата первый -pack").Равно(0); -КонецФункции - -Функция ПреобразоватьТекст(Знач Исходный, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки) Экспорт - - ОписаниеМетодаПолучитьСписокТестов = ПолучитьОписаниеМетода_ПолучитьСписокТестов(Исходный); - Если Не ЗначениеЗаполнено(ОписаниеМетодаПолучитьСписокТестов) Тогда - Возврат ""; - КонецЕсли; - - СтрокаРез = ИсправитьОписаниеТестов(Исходный, ОписаниеМетодаПолучитьСписокТестов, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки); - СтрокаРез = ПодменитьБазовыеУтверждения(СтрокаРез, ОписаниеМетодаПолучитьСписокТестов); - Возврат СтрокаРез; -КонецФункции - -Функция ПолучитьОписаниеМетода_ПолучитьСписокТестов(Знач ИсходныйТекст) Экспорт - ОписаниеМетода = Новый Структура("Начало, Конец, ИмяПараметра_КонтекстЯдра, ТелоМетода, КоллекцияТестов"); - - Группировки = РегулярныеВыражения_Выполнить(RegExp_ПолучитьСписокТестов, ИсходныйТекст); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ДобавитьЛог("Не удалось найти экспортную процедуру ПолучитьСписокТестов с одним параметром."); - Возврат Неопределено; - КонецЕсли; - - Группировка_Процедура = Группировки[0]; - Ожидаем.Что(Группировка_Процедура.ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ПолучитьСписокТестов равно образцу, а это не так").Равно(3); - Если Сред(ИсходныйТекст, Группировка_Процедура.Начало, 1) = Символы.ПС Тогда - Начало = Группировка_Процедура.Начало + 1; - КонецЕсли; - Если Сред(ИсходныйТекст, Начало, 1) = Символы.ПС Тогда - Начало = Начало + 1; - КонецЕсли; - ОписаниеМетода.Вставить("Начало", Начало); - ОписаниеМетода.Вставить("ИмяПараметра_КонтекстЯдра", Группировка_Процедура.ПодВыражения[2]); - ДобавитьЛог("ОписаниеМетода.ИмяПараметра_КонтекстЯдра "+ОписаниеМетода.ИмяПараметра_КонтекстЯдра); - - НачалоКодаПроцедуры = Группировка_Процедура.Начало + Группировка_Процедура.Длина + 2; - - Группировки_КонецПроцедуры = РегулярныеВыражения_Выполнить(RegExp_КонецФункции_ПолучитьСписокТестов, Сред(ИсходныйТекст, НачалоКодаПроцедуры)); - Если Не ЗначениеЗаполнено(Группировки_КонецПроцедуры) Тогда - ВызватьИсключение "Не удалось найти конец процедуры для процедуры ПолучитьСписокТестов с одним параметром."; - КонецЕсли; - - ГруппировкаДляКонецПроцедуры = Группировки_КонецПроцедуры[0]; - ТекстМетодаПолучитьСписокТестов = Сред(ИсходныйТекст, НачалоКодаПроцедуры, ГруппировкаДляКонецПроцедуры.Начало - 1); - - ОписаниеМетода.Вставить("Конец", НачалоКодаПроцедуры + ГруппировкаДляКонецПроцедуры.Начало + ГруппировкаДляКонецПроцедуры.Длина + 2); - ОписаниеМетода.Вставить("ТелоМетода", ТекстМетодаПолучитьСписокТестов); - - ДобавитьЛог("ТелоМетода ПолучитьСписокТестов <"+ОписаниеМетода.ТелоМетода+">"); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра = ПолучитьОписаниеГлобальнойПеременнойКонтекстаЯдра(ИсходныйТекст, ОписаниеМетода); - ПодтвердитьИмяГлобальнойПеременнойКонтекстаЯдра(ИсходныйТекст, ОписаниеМетода, ОписаниеГлобальнойПеременнойКонтекстаЯдра); - ОписаниеМетода.Вставить("ОписаниеГлобальнойПеременнойКонтекстаЯдра", ОписаниеГлобальнойПеременнойКонтекстаЯдра); - - КоллекцияТестов = ПолучитьКоллекциюТестов(ИсходныйТекст, ОписаниеМетода); - ОписаниеМетода.Вставить("КоллекцияТестов", КоллекцияТестов); - - Возврат ОписаниеМетода; -КонецФункции - -Функция ПолучитьОписаниеГлобальнойПеременнойКонтекстаЯдра(Знач ИсходныйТекст, ОписаниеМетода) - RegExp_ПрисваиваниеКонтекстаЯдра = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ПрисваиваниеКонтекстаЯдра, "^\s*([\wА-яёЁ\d]+)\s*=\s*" + ОписаниеМетода.ИмяПараметра_КонтекстЯдра + "\s*;"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ПрисваиваниеКонтекстаЯдра, ОписаниеМетода.ТелоМетода); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ВызватьИсключение "Не удалось найти присваивание параметра контекста ядра."; - КонецЕсли; - Группировка = Группировки[0]; - - Ожидаем.Что(Группировка.ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра = Новый Структура("Имя, НачалоОписания, КонецОписания"); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра.Вставить("Имя", Группировка.ПодВыражения[0]); - - ДобавитьЛог("предварительно ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя = " + ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя); - Возврат ОписаниеГлобальнойПеременнойКонтекстаЯдра; -КонецФункции - -Процедура ПодтвердитьИмяГлобальнойПеременнойКонтекстаЯдра(Знач ИсходныйТекст, ОписаниеМетода, ОписаниеГлобальнойПеременнойКонтекстаЯдра) - RegExp_ОбъявлениеГлобальнойПеременнойКонтекстаЯдра = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ОбъявлениеГлобальнойПеременнойКонтекстаЯдра, "^\s*Перем\s+(" + ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя + ")\s*[;,]"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ОбъявлениеГлобальнойПеременнойКонтекстаЯдра, ИсходныйТекст); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ВызватьИсключение ("Не удалось найти глобальную переменную контекста ядра."); - КонецЕсли; - Группировка = Группировки[0]; - - Ожидаем.Что(Группировка.ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при проверке ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - ДобавитьЛог("подтверждено ИмяГлобальнойПеременнойКонтекстаЯдра = "+Группировка.ПодВыражения[0]); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра.Вставить("НачалоОписания", Группировка.Начало); - ОписаниеГлобальнойПеременнойКонтекстаЯдра.Вставить("КонецОписания", Группировка.Начало + Группировка.Длина); -КонецПроцедуры - -Функция ПолучитьКоллекциюТестов(Знач ИсходныйТекст, ОписаниеМетода) - RegExp_ИмяКоллекцииТестов = Неопределено; - //РегулярныеВыражения_Инициализация (RegExp_ИмяКоллекцииТестов, "\s*([\wА-яёЁ\d]+)\s*=\s*Новый\s+Массив\s*[;\(]([.\s].+)+Возврат\s+([\wА-яёЁ\d]+)"); - РегулярныеВыражения_Инициализация (RegExp_ИмяКоллекцииТестов, "^\s*Возврат\s+([\wА-яёЁ\d]+)"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ИмяКоллекцииТестов, ОписаниеМетода.ТелоМетода); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ВызватьИсключение "Не удалось найти создание коллекции тестов."; - КонецЕсли; - Ожидаем.Что(Группировки[0].ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - ИмяПеременнойКоллекцииСпискаТестов = Группировки[0].ПодВыражения[0]; - ДобавитьЛог("ИмяПеременнойКоллекцииСпискаТестов = "+ИмяПеременнойКоллекцииСпискаТестов); - - RegExp_ДобавлениеТеста = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ДобавлениеТеста, "^\s*" + ИмяПеременнойКоллекцииСпискаТестов + "\s*\.\s*Добавить\(\s*""{1,2}([\wА-яёЁ\d]+)""{1,2}\s*\)\s*;"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ДобавлениеТеста, ОписаниеМетода.ТелоМетода); - - КоллекцияТестов = Новый Массив; - Если Не ЗначениеЗаполнено(Группировки) Тогда - Возврат КоллекцияТестов; - КонецЕсли; - Ожидаем.Что(Группировки[0].ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - - Для Каждого Группировка Из Группировки Цикл - ИмяТеста = Группировка.ПодВыражения[0]; - ДобавитьЛог("добавляем имя теста = "+ИмяТеста); - КоллекцияТестов.Добавить(ИмяТеста); - КонецЦикла; - - Возврат КоллекцияТестов; -КонецФункции - -Функция ИсправитьОписаниеТестов(Знач Исходный, ОписаниеМетодаПолучитьСписокТестов, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки) - Ожидаем.Что(Не ЭтоОбычнаяФорма ИЛИ ЭтоОбычнаяФорма И Не ЕстьДвеДвойныеКавычки, "Ожидаем, что ЕстьДвеДвойныеКавычки только в режиме УФ, а сейчас наоборот").ЭтоИстина(); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра = ОписаниеМетодаПолучитьСписокТестов.ОписаниеГлобальнойПеременнойКонтекстаЯдра; - ИмяГлобальнойПеременнойКонтекстаЯдра = ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя; - - Макет = ПолучитьМакет("ШаблонТеста"); - - ОбластьПеременныеТестирования = ?(ЭтоОбычнаяФорма, Макет.ПолучитьОбласть("ПеременныеТестирования"), Макет.ПолучитьОбласть("ПеременныеТестирования_УФ")); - ОбластьОписанияТестов = ?(ЭтоОбычнаяФорма, Макет.ПолучитьОбласть("ОписанияТестов"), Макет.ПолучитьОбласть("ОписанияТестов_УФ")); - Если ЕстьДвеДвойныеКавычки Тогда - ОбластьОписанияТестов = Макет.ПолучитьОбласть("ОписанияТестов_УФ_ДвеДвойныеКавычки"); - КонецЕсли; - - ОбластьДобавитьИмяТеста = Макет.ПолучитьОбласть("ДобавитьИмяТеста"); - ОбластьЗавершениеСпискаТестов = Макет.ПолучитьОбласть("ЗавершениеСпискаТестов"); - ОбластьУФ_НаКлиенте = Макет.ПолучитьОбласть("УФ_НаКлиенте"); - - ИтоговыйТекст = Новый ТекстовыйДокумент; - - ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = СокрЛП(Лев(Исходный, ОписаниеГлобальнойПеременнойКонтекстаЯдра.НачалоОписания-1)); - СтрЧислоСтрок_ТекстДо = СтрЧислоСтрок(ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра); - Если СтрЧислоСтрок_ТекстДо > 0 и СтрПолучитьСтроку(ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра, СтрЧислоСтрок_ТекстДо) = "&НаКлиенте" Тогда - ТекстДо = ""; - Для к = 1 По СтрЧислоСтрок_ТекстДо-1 Цикл - ТекстДо = ТекстДо + СтрПолучитьСтроку(ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра, к) + Символы.ПС; - КонецЦикла; - ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = ТекстДо; - //Если ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = "&НаКлиенте" Тогда - // ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = ""; - КонецЕсли; - ДобавитьЛог("текст до описания глобальной переменной контекста "+Символы.ПС+ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра +"=========="+Символы.ПС); - - ДобавитьНепустуюСтрокуКТексту(ИтоговыйТекст, ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра); - - ИтоговыйТекст.Вывести(ОбластьПеременныеТестирования); - ИтоговыйТекст.ДобавитьСтроку(""); - - ТекстДоМетодаПолучитьСписокТестов = СокрЛП(Сред(Исходный, ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания + 1, ОписаниеМетодаПолучитьСписокТестов.Начало-1 - ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания - 1)); - Если ТекстДоМетодаПолучитьСписокТестов = "&НаКлиенте" Тогда - ТекстДоМетодаПолучитьСписокТестов = ""; - КонецЕсли; - ДобавитьЛог("текст до ПолучитьСписокТестов"+Символы.ПС+ТекстДоМетодаПолучитьСписокТестов +"=========="+Символы.ПС); - ДобавитьНепустуюСтрокуКТексту(ИтоговыйТекст, ТекстДоМетодаПолучитьСписокТестов); - Если Не ПустаяСтрока(ТекстДоМетодаПолучитьСписокТестов) Тогда - ИтоговыйТекст.ДобавитьСтроку(""); - КонецЕсли; - - ИтоговыйТекст.ДобавитьСтроку(ДобавитьКомментарии("Перем " + ИмяГлобальнойПеременнойКонтекстаЯдра + ";")); - - ИсходныйТекстВКомментарии = ДобавитьКомментарии(Сред(Исходный, ОписаниеМетодаПолучитьСписокТестов.Начало, ОписаниеМетодаПолучитьСписокТестов.Конец-ОписаниеМетодаПолучитьСписокТестов.Начало - 2)); - - ИтоговыйТекст.ДобавитьСтроку(ИсходныйТекстВКомментарии); - ИтоговыйТекст.ДобавитьСтроку(""); - - ИтоговыйТекст.Вывести(ОбластьОписанияТестов); - - Для Каждого ИмяТеста Из ОписаниеМетодаПолучитьСписокТестов.КоллекцияТестов Цикл - // из-за невозможности управлять длиной строки-параметра при установке параметра не использую параметры макета текстового документа - НужныеКавычки = ?(ЕстьДвеДвойныеКавычки, """"+"""", """"); - ВставляемоеИмяТеста = НужныеКавычки + ИмяТеста + НужныеКавычки; - ДобавляемыйТекст = СтрЗаменить(ОбластьДобавитьИмяТеста.ПолучитьСтроку(2), "%ИмяТеста%", ВставляемоеИмяТеста); - ИтоговыйТекст.ДобавитьСтроку(ДобавляемыйТекст); - КонецЦикла; - ИтоговыйТекст.Вывести(ОбластьЗавершениеСпискаТестов); - - ОсновнойТекст = Сред(Исходный, ОписаниеМетодаПолучитьСписокТестов.Конец); - ИтоговыйТекст.ДобавитьСтроку(ОсновнойТекст); - - ДобавитьЛог("ИтоговыйТекст.ПолучитьТекст() = "+Символы.ПС + ИтоговыйТекст.ПолучитьТекст()+"=========="+Символы.ПС); - - Возврат ИтоговыйТекст.ПолучитьТекст(); -КонецФункции - -Функция ПодменитьБазовыеУтверждения(Знач Исходный, ОписаниеМетодаПолучитьСписокТестов) - НаборОписанийУтвержденийДляЗамены = Новый Структура; - НаборОписанийУтвержденийДляЗамены.Вставить("БазовыеУтверждения", "Утверждения"); - НаборОписанийУтвержденийДляЗамены.Вставить("ГенераторТестовыхДанных", "ГенераторТестовыхДанных"); - НаборОписанийУтвержденийДляЗамены.Вставить("ЗапросыИзБД", "ЗапросыИзБД"); - НаборОписанийУтвержденийДляЗамены.Вставить("УтвержденияПроверкаТаблиц", "УтвержденияПроверкаТаблиц"); - НаборОписанийУтвержденийДляЗамены.Вставить("КонтекстЯдра", "КонтекстЯдра"); - - Для Каждого ОписаниеУтверждения Из НаборОписанийУтвержденийДляЗамены Цикл - НаборБазовыхУтверждений = ПолучитьНаборБазовыхУтверждений(ОписаниеУтверждения.Ключ); - Исходный = ЗаменитьБазовыеУтвержденияИзНабораУтверждений(Исходный, ОписаниеМетодаПолучитьСписокТестов.ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя, НаборБазовыхУтверждений, ОписаниеУтверждения.Значение); - КонецЦикла; - Возврат Исходный; -КонецФункции - -Функция ПолучитьНаборБазовыхУтверждений(ИмяМакетаУтверждений) - ТекстУтверждений = ПолучитьМакет(ИмяМакетаУтверждений); - НаборБазовыхУтверждений = Новый Структура; - Для к = 1 По ТекстУтверждений.КоличествоСтрок() Цикл - ТекстУтверждения = СокрЛП(ТекстУтверждений.ПолучитьСтроку(к)); - Если ПустаяСтрока(ТекстУтверждения) Тогда - Продолжить; - КонецЕсли; - Описание = ПолучитьОписаниеБазовогоУтверждения(ТекстУтверждения); - НаборБазовыхУтверждений.Вставить(Описание.Исходное, Описание); - КонецЦикла; - Возврат НаборБазовыхУтверждений; -КонецФункции - -Функция ПолучитьОписаниеБазовогоУтверждения(ТекстУтверждения) - Результат = Новый Структура("Исходное, Результирующее, ЕстьЗамена"); - - МассивСтрок = РазложитьСтрокуВМассивПодстрок(ТекстУтверждения, "="); - - Если МассивСтрок.Количество() = 1 Тогда - Результат.Вставить("Исходное", ТекстУтверждения); - Результат.Вставить("Результирующее", ТекстУтверждения); - Результат.Вставить("ЕстьЗамена", Ложь); - ИначеЕсли МассивСтрок.Количество() = 2 Тогда - Результат.Вставить("Исходное", МассивСтрок[0]); - Результат.Вставить("Результирующее", МассивСтрок[1]); - Результат.Вставить("ЕстьЗамена", Истина); - Иначе - ВызватьИсключение "Неверный формат базового утверждения. В макете разрешено либо название утверждения (например, ПроверитьРавенство) либо описание замены (например, ПрерватьТест=КонтекстЯдра.ВызватьОшибкуПроверки)"; - КонецЕсли; - - Возврат Результат; -КонецФункции - -Функция ЗаменитьБазовыеУтвержденияИзНабораУтверждений(Знач Исходный, ОписаниеГлобальнойПеременнойКонтекстаЯдра, НаборБазовыхУтверждений, ИмяНовойПеременнойУтверждений) - - НаборЗамен = Новый Соответствие; - ШаблонУтверждений = "("; - Для Каждого Структура Из НаборБазовыхУтверждений Цикл - ИсходноеУтверждение = Структура.Ключ; - ОписаниеУтверждения = Структура.Значение; - - ШаблонУтверждений = ШаблонУтверждений + "(" + ОписаниеГлобальнойПеременнойКонтекстаЯдра + "\s*\.\s*("+ИсходноеУтверждение+")\s*\()|"; - - Если ОписаниеУтверждения.ЕстьЗамена Тогда - НаборЗамен.Вставить(НРег(ОписаниеГлобальнойПеременнойКонтекстаЯдра + "." + ИсходноеУтверждение + "("), ОписаниеУтверждения.Результирующее + "("); - Иначе - НаборЗамен.Вставить(НРег(ОписаниеГлобальнойПеременнойКонтекстаЯдра + "." + ИсходноеУтверждение + "("), ИмяНовойПеременнойУтверждений + "." + ИсходноеУтверждение + "("); - КонецЕсли; - КонецЦикла; - НаборЗамен = Новый ФиксированноеСоответствие(НаборЗамен); // для точной проверки свойств через НаборЗамен[ТекстУтверждения], а не переустановки значения свойство в Неопределено - - ШаблонУтверждений = Лев(ШаблонУтверждений, СтрДлина(ШаблонУтверждений) - 1); - ШаблонУтверждений = ШаблонУтверждений + ")+"; - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " ШаблонУтверждений " + ШаблонУтверждений); - - RegExp_ШаблонУтверждений = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ШаблонУтверждений, ШаблонУтверждений); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ШаблонУтверждений, Исходный); - - Если Не ЗначениеЗаполнено(Группировки) Тогда - ДобавитьЛог("Не удалось найти использование утверждений в тексте теста"); - Возврат Исходный; - КонецЕсли; - - //обход в обратном порядке, чтобы не было проблем с индексом по строке в Лев, Сред - Для н = -Группировки.Количество()+1 По 0 Цикл - к = -н; - Группировка = Группировки[к]; - - ТекстУтверждения = Группировка.ПодВыражения[0]; - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " найден текст утверждения имя теста = "+ТекстУтверждения); - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " найден НаборЗамен["+НРег(ТекстУтверждения)+"] = "+НаборЗамен[НРег(ТекстУтверждения)]); - ЛеваяЧасть = Лев(Исходный, Группировка.Начало); - ПраваяЧасть = Сред(Исходный, Группировка.Начало + Группировка.Длина + 1); - - Исходный = ЛеваяЧасть + НаборЗамен[НРег(ТекстУтверждения)] + ПраваяЧасть; - КонецЦикла; - - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " После ЗаменитьБазовыеУтвержденияИзНабораУтверждений ============== "+Символы.ПС + Исходный); - Возврат Исходный; -КонецФункции - -Функция ДобавитьКомментарии(Строка) - Рез = Новый ТекстовыйДокумент; - Для к=1 По СтрЧислоСтрок(Строка) Цикл - Рез.ДобавитьСтроку("//"+СтрПолучитьСтроку(Строка, к)); - КонецЦикла; - Возврат СокрЛП(Рез.ПолучитьТекст()); -КонецФункции - -Процедура ДобавитьНепустуюСтрокуКТексту(Текст, Строка) - Если Не ПустаяСтрока(Строка) Тогда - Текст.ДобавитьСтроку(Строка); - КонецЕсли; -КонецПроцедуры - -Функция ПолучитьТекстФайла(Файл) - Текст = Новый ЧтениеТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8); - Стр = Текст.Прочитать(); - Возврат Стр; -КонецФункции - -Процедура ЗаписатьТекстВФайл(Файл, Строка) - Текст = Новый ЗаписьТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8); - Текст.Записать(Строка); - Текст.Закрыть(); -КонецПроцедуры - -Процедура ДобавитьЛог(Сообщение) - Если ЛогВключен Тогда - Лог = Лог + Сообщение + Символы.ПС; - КонецЕсли; -КонецПроцедуры - -Функция СоздатьСтруктуруРезультатаПреобразования() - Возврат Новый Структура("НайденоВнешнихОбработок,НайденоФайловТестов,КонвертированоТестов",0,0,0); -КонецФункции - -Процедура ДобавитьЧислаВНаборИзДругогоНабора(ИсходныйНабор, ДобавляемыйНабор) - Для Каждого КлючЗначение Из ДобавляемыйНабор Цикл - Ключ = КлючЗначение.Ключ; - ИсходныйНабор.Вставить(Ключ, ИсходныйНабор[Ключ] + КлючЗначение.Значение); - КонецЦикла; -КонецПроцедуры - -// Разбивает строку на несколько строк по разделителю. Разделитель может иметь любую длину. -// Общий модуль СтроковыеФункцииКлиентСервер. -// -// Параметры: -// Строка - Строка - текст с разделителями; -// Разделитель - Строка - разделитель строк текста, минимум 1 символ; -// ПропускатьПустыеСтроки - Булево - признак необходимости включения в результат пустых строк. -// Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией: -// - для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки -// включаются в результат. -// - если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в -// случае разделителя-пробела результатом функции будет массив, содержащий одно значение "" (пустая строка), а -// при других разделителях результатом функции будет пустой массив. -// -// -// Возвращаемое значение: -// Массив - массив строк. -// -// Примеры: -// РазложитьСтрокуВМассивПодстрок(",один,,два,", ",") - возвратит массив из 5 элементов, три из которых - пустые строки; -// РазложитьСтрокуВМассивПодстрок(",один,,два,", ",", Истина) - возвратит массив из двух элементов; -// РазложитьСтрокуВМассивПодстрок(" один два ", " ") - возвратит массив из двух элементов; -// РазложитьСтрокуВМассивПодстрок("") - возвратит пустой массив; -// РазложитьСтрокуВМассивПодстрок("",,Ложь) - возвратит массив с одним элементом "" (пустой строкой); -// РазложитьСтрокуВМассивПодстрок("", " ") - возвратит массив с одним элементом "" (пустой строкой); -// -Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) - - Результат = Новый Массив; - - // для обеспечения обратной совместимости - Если ПропускатьПустыеСтроки = Неопределено Тогда - ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); - Если ПустаяСтрока(Строка) Тогда - Если Разделитель = " " Тогда - Результат.Добавить(""); - КонецЕсли; - Возврат Результат; - КонецЕсли; - КонецЕсли; - // - - Позиция = Найти(Строка, Разделитель); - Пока Позиция > 0 Цикл - Подстрока = Лев(Строка, Позиция - 1); - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда - Результат.Добавить(Подстрока); - КонецЕсли; - Строка = Сред(Строка, Позиция + СтрДлина(Разделитель)); - Позиция = Найти(Строка, Разделитель); - КонецЦикла; - - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда - Результат.Добавить(Строка); - КонецЕсли; - - Возврат Результат; - -КонецФункции - -//} - -//{ RegExp - -Процедура РегулярныеВыражения_Инициализация (RegExp, Шаблон, ИскатьДоПервогоСовпадения = Ложь, МногоСтрок = Истина, ИгнорироватьРегистр = Истина) Экспорт - - Если RegExp = Неопределено Тогда - RegExp = Новый COMОбъект("VBScript.RegExp"); - КонецЕсли; - - RegExp.MultiLine = МногоСтрок; // истина — текст многострочный, ложь — одна строка - RegExp.Global = Не ИскатьДоПервогоСовпадения; // истина — поиск по всей строке, ложь — до первого совпадения - RegExp.IgnoreCase = ИгнорироватьРегистр; // истина — игнорировать регистр строки при поиске - RegExp.Pattern = Шаблон; // шаблон (регулярное выражение) - -КонецПроцедуры - -Функция РегулярныеВыражения_Проверка(RegExp, ПроверяемыйТекст) - - Возврат RegExp.Test(ПроверяемыйТекст); - -КонецФункции - -Функция РегулярныеВыражения_Выполнить(RegExp, АнализируемыйТекст) Экспорт - - РезультатАнализаСтроки = RegExp.Execute(АнализируемыйТекст); - - Группировки = Новый Массив; - - Для Каждого Выражение Из РезультатАнализаСтроки Цикл - СтруктураВыражение = Новый Структура ("Начало, Длина, Значение, ПодВыражения", Выражение.FirstIndex, Выражение.Length,Выражение.Value); - - МассивПодВыражений = Новый Массив; - Для Каждого ПодВыражение Из Выражение.SubMatches Цикл - МассивПодВыражений.Добавить(ПодВыражение); - КонецЦикла; - СтруктураВыражение.ПодВыражения = МассивПодВыражений; - - Группировки.Добавить (СтруктураВыражение); - - КонецЦикла; - - Возврат Группировки; - -КонецФункции - -Функция РегулярныеВыражения_Заменить(RegExp, АнализируемыйТекст, ЗаменяемыйТекст) Экспорт - - Рез = RegExp.Replace(АнализируемыйТекст, ЗаменяемыйТекст); - Возврат Рез; - -КонецФункции - -//} - -// { Подсистема конфигурации xUnitFor1C - -Функция ПолучитьКорневойКаталогФреймворка(Знач АнализируемыйПутьККаталогу) - - РезультатПоиска = НайтиФайлы(АнализируемыйПутьККаталогу, "xddTestRunner.epf"); - Если РезультатПоиска.Количество() = 0 Тогда - ВышестоящийКаталог = ПолучитьПутьВышестоящегоКаталога(АнализируемыйПутьККаталогу); - Возврат ПолучитьКорневойКаталогФреймворка(ВышестоящийКаталог); - Иначе - Возврат РезультатПоиска.Получить(0).Путь; - КонецЕсли; - -КонецФункции -Функция ПолучитьПутьВышестоящегоКаталога(Знач ТекущийПутьККаталогу) - - МассивРазделителей = Новый Массив; - МассивРазделителей.Добавить("/"); - МассивРазделителей.Добавить("\"); - - ПоследнийСимвол = Прав(ТекущийПутьККаталогу, 1); - Если НЕ МассивРазделителей.Найти(ПоследнийСимвол) = Неопределено Тогда - ДлинаПутьБезПоследнегоРазделителя = СтрДлина(ТекущийПутьККаталогу) - 1; - ТекущийПутьККаталогу = Лев(ТекущийПутьККаталогу, ДлинаПутьБезПоследнегоРазделителя); - КонецЕсли; - - Пока СтрДлина(ТекущийПутьККаталогу) > 0 Цикл - - ПоследнийСимвол = Прав(ТекущийПутьККаталогу, 1); - Если НЕ МассивРазделителей.Найти(ПоследнийСимвол) = Неопределено Тогда - Прервать; - Иначе - ДлинаПутьБезПоследнегоСимвола = СтрДлина(ТекущийПутьККаталогу) - 1; - ТекущийПутьККаталогу = Лев(ТекущийПутьККаталогу, ДлинаПутьБезПоследнегоСимвола); - КонецЕсли; - - КонецЦикла; - - Возврат ТекущийПутьККаталогу; - -КонецФункции - -Функция ПолучитьКонтекстЯдраНаСервере() - - // Получаем доступ к серверному контексту обработки с использованием - // полного имени метаданных браузера тестов. Иначе нет возможности получить - // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте. - // При передаче на сервер клиентский контекст теряется. - КонтекстЯдра = Неопределено; - МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов); - Если НЕ МетаданныеЯдра = Неопределено - И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "Обработка", "Обработки"); - Выполнить("КонтекстЯдра = " + ИмяОбработкиКонекстаЯдра + ".Создать()"); - Иначе - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ВнешняяОбработка", "ВнешниеОбработки"); - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ".", Символы.ПС); - МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1); - ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2); - Выполнить("КонтекстЯдра = " + МенеджерОбъектов + ".Создать("""+ИмяОбъекта+""")"); - КонецЕсли; - - Возврат КонтекстЯдра; - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/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/xddTestsConvertIntoRebornFormat/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" deleted file mode 100644 index 63f0f1c25..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/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" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/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/xddTestsConvertIntoRebornFormat/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" deleted file mode 100644 index 099f57a6a..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/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" +++ /dev/null @@ -1,29 +0,0 @@ - -
- useIfNecessary - - - - web:DarkCyan - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Конвертация тестов из формата 3.Х в новый формат (4.Х) работает только в режиме обычного приложения. - -Запустите 1С в указанном приложении!</v8:content> - </v8:item> - - - - - - - - - cfg:DataProcessorObject.xddTestsConvertIntoRebornFormat - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 4d97b9715..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" deleted file mode 100644 index 9bf93d1cb..000000000 Binary files "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" and /dev/null differ diff --git a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack.xml b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack.xml deleted file mode 100644 index 60c08103f..000000000 --- a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack/Ext/Template.bin b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack/Ext/Template.bin deleted file mode 100644 index 59496ab38..000000000 Binary files a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/v8unpack/Ext/Template.bin and /dev/null differ diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" deleted file mode 100644 index 8727d091b..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" deleted file mode 100644 index 096e10ae6..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" +++ /dev/null @@ -1,24 +0,0 @@ -Проверить -ПроверитьИстину -ПроверитьЛожь -ПроверитьДату -ПроверитьРавенствоДатСТочностью2Секунды -ПроверитьРавенство -ПроверитьНеРавенство -ПроверитьБольше -ПроверитьБольшеИлиРавно -ПроверитьМеньше -ПроверитьМеньшеИлиРавно -ПроверитьВыполнилось -ПроверитьМетодВыполнился -ПроверитьНеВыполнилось -ПроверитьМетодНеВыполнился -ПроверитьЗаполненность -ПроверитьНеЗаполненность -ПроверитьТип -ПроверитьВхождение -ПроверитьВхождениеВКоллекцию -ПроверитьВалидностьЗапросаСКД -ПроверитьНаличиеОбъектаИБ -ПроверитьРавенствоФайлов -ПропуститьТест \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.xml" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.xml" deleted file mode 100644 index 8f343e4e4..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Ext/Template.txt" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Ext/Template.txt" deleted file mode 100644 index 2cf09194f..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Ext/Template.txt" +++ /dev/null @@ -1,5 +0,0 @@ -СоздатьДанныеПоМакетам -СоздатьДанныеПоТабличномуДокументу -УдалитьСозданныеДанные -СоздатьПользователяИБ -РазложитьСтрокуВМассивПодстрок \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" deleted file mode 100644 index 360f8d6ee..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/Template.txt" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/Template.txt" deleted file mode 100644 index 20982aa63..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/Template.txt" +++ /dev/null @@ -1,10 +0,0 @@ -ПолучитьКоличествоДокументовПоОтбору -ПолучитьКоличествоЭлементовСправочникаПоОтбору -ПолучитьКоличествоСтрокВДокументахПоОтбору -ПолучитьИтоговуюСуммуТабличнойЧастиДокументовПоОтбору -ПолучитьИтоговуюСуммуДокументовПоОтбору -ПолучитьКоличествоЭлементовМетаданногоПоОтбору -ПолучитьКоличествоБизнесПроцессовПоОтбору -ПолучитьКоличествоЗадачПоОтбору -ПолучитьКоличествоЭлементовРегистраПоОтбору -ПолучитьЭлементыМетаданногоПоОтбору \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260.xml" deleted file mode 100644 index d556e41b0..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260/Ext/Template.txt" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260/Ext/Template.txt" deleted file mode 100644 index 341a1519d..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260/Ext/Template.txt" +++ /dev/null @@ -1,2 +0,0 @@ -ВывестиСообщение -ПрерватьТест=КонтекстЯдра.ВызватьОшибкуПроверки \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" deleted file mode 100644 index 805b6763a..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/Template.txt" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/Template.txt" deleted file mode 100644 index 665228224..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/Template.txt" +++ /dev/null @@ -1,3 +0,0 @@ -ПроверитьРавенствоТаблиц -ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям -ПолучитьТаблицуЗначенийИзТабличногоДокумента \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260.xml" deleted file mode 100644 index 808e5fc87..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" "b/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" deleted file mode 100644 index 0a533b325..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" +++ /dev/null @@ -1,79 +0,0 @@ -#Область ПеременныеТестирования -Перем КонтекстЯдра; -Перем Ожидаем; -Перем Утверждения; -Перем ГенераторТестовыхДанных; -Перем ЗапросыИзБД; -Перем УтвержденияПроверкаТаблиц; -#КонецОбласти - -#Область ПеременныеТестирования_УФ -&НаКлиенте -Перем КонтекстЯдра; -&НаКлиенте -Перем Ожидаем; -&НаКлиенте -Перем Утверждения; -&НаКлиенте -Перем ГенераторТестовыхДанных; -&НаКлиенте -Перем ЗапросыИзБД; -&НаКлиенте -Перем УтвержденияПроверкаТаблиц; -#КонецОбласти - -#Область ОписанияТестов -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт -#КонецОбласти - -#Область ОписанияТестов_УФ -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт -#КонецОбласти - -#Область ОписанияТестов_УФ_ДвеДвойныеКавычки -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD""); - Утверждения = КонтекстЯдра.Плагин(""БазовыеУтверждения""); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин(""СериализаторMXL""); - ЗапросыИзБД = КонтекстЯдра.Плагин(""ЗапросыИзБД""); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин(""УтвержденияПроверкаТаблиц""); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт -#КонецОбласти - -#Область ДобавитьИмяТеста - НаборТестов.Добавить(%ИмяТеста%); -#КонецОбласти - -#Область ЗавершениеСпискаТестов -КонецПроцедуры - -#КонецОбласти - -#Область УФ_НаКлиенте -&НаКлиенте -#КонецОбласти diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" deleted file mode 100644 index ef5469a36..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 824a7f81-6e79-492d-8c40-2f6d36f77bc3 - 420e4203-7737-419e-951c-3b79e2bb75ff - - - fab045ed-8db6-4a8f-9c32-9d0cadd47e0c - dace8333-7cb2-4bbe-881c-76e08ad28f0d - - - - БазовыеУтверждения - - - ru - Базовые утверждения - - - - false - DataProcessor.БазовыеУтверждения.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/ObjectModule.bsl" deleted file mode 100644 index 0f8e1d620..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,386 +0,0 @@ -Перем СтатусыРезультатаТестирования; - -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", "БазовыеУтверждения"); - Результат.Вставить("Представление", "Базовый набор утверждений"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры - -//{ МЕТОДЫ ДЛЯ ПРОВЕРКИ ЗНАЧЕНИЙ (assertions). - -Процедура Проверить(_Истина, ДопСообщениеОшибки = "") Экспорт - Если Не _Истина Тогда - СообщениеОшибки = "Переданный параметр ("+Формат(_Истина, "БЛ=ложь; БИ=истина")+") не является Истиной, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьИстину(_Истина, ДопСообщениеОшибки = "") Экспорт - Проверить(_Истина, ДопСообщениеОшибки); -КонецПроцедуры - -Процедура ПроверитьЛожь(_Ложь, ДопСообщениеОшибки = "") Экспорт - Если _Ложь Тогда - СообщениеОшибки = "Переданный параметр ("+Формат(_Ложь, "БЛ=ложь; БИ=истина")+") не является Ложью, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьДату(_Дата, _Период, ДопСообщениеОшибки = "") Экспорт - Если _Дата < _Период.ДатаНачала или _Дата > _Период.ДатаОкончания Тогда - представление = ПредставлениеПериода(_Период.ДатаНачала, _Период.ДатаОкончания, "ФП = Истина"); - СообщениеОшибки = "Переданный параметр ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не входит в период "+представление+", а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьРавенствоДатСТочностью2Секунды(_Дата, _Дата2, ДопСообщениеОшибки = "") Экспорт - Если _Дата < _Дата2-2 или _Дата > _Дата2+2 Тогда - СообщениеОшибки = "Переданная дата ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не равна дате ("+Формат(_Дата2, "ДФ='dd.MM.yyyy HH:mm:ss'")+") с точностью до 2-х секунд, а хотели, чтобы они равнялись." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт - Если _1 <> _2 Тогда - СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") не равны, а хотели, чтобы были равны." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьНеРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт - Если _1 = _2 Тогда - СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") равны, а хотели, чтобы были не равны." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьБольше(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт - Если _Больше <= _Меньше Тогда - СообщениеОшибки = "Первый параметр ("+_Больше+") меньше или равен второму ("+_Меньше+") а хотели, чтобы был больше." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьБольшеИлиРавно(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт - Если _Больше < _Меньше Тогда - СообщениеОшибки = "Первый параметр ("+_Больше+") меньше второго ("+_Меньше+") а хотели, чтобы был больше или равен." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьМеньше(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт - Если проверяемоеЗначение1 >= проверяемоеЗначение2 Тогда - СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше или равно, чем <"+проверяемоеЗначение2+">, а ожидалось меньше"+ - ФорматДСО(СообщениеОбОшибке); - ВызватьОшибкуПроверки(СообщениеОшибки) - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьМеньшеИлиРавно(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт - Если проверяемоеЗначение1 > проверяемоеЗначение2 Тогда - СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше, чем <"+проверяемоеЗначение2+">, а ожидалось меньше или равно"+ - ФорматДСО(СообщениеОбОшибке); - ВызватьОшибкуПроверки(СообщениеОшибки) - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры; - - Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиДопСообщениеОшибки; - КонецЕсли; - Попытка - Выполнить(СтрокаАлгоритм); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - СообщениеОшибки = "Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - -КонецПроцедуры - -Процедура ПроверитьМетодВыполнился(Объект, Знач ИмяМетода, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры; - - Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиДопСообщениеОшибки; - Если Параметры <> Неопределено Тогда - ТипПараметра = ТипЗнч(Параметры); - Если ТипПараметра <> Тип("Массив") Тогда - ВызватьИсключение ("Ожидали, что вторым параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">"); - КонецЕсли; - КонецЕсли; - КонецЕсли; - - ПараметрыСтрока = ПараметрыСтрокой(Параметры); - - СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")"; - - Попытка - Выполнить(СтрокаВыполнения); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - СообщениеОшибки = "Хотели, чтобы код """+СтрокаВыполнения+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - -КонецПроцедуры - -Функция ПараметрыСтрокой(Параметры) - ПараметрыСтрока = ""; - Если ЗначениеЗаполнено(Параметры) Тогда - Для Индекс = 0 По Параметры.ВГраница() Цикл - ПараметрыСтрока = ПараметрыСтрока + ", Параметры[" + Формат(Индекс, "ЧН=0; ЧГ=0") + "]"; - КонецЦикла; - КонецЕсли; - Возврат Сред(ПараметрыСтрока, 3); -КонецФункции - -Процедура ПроверитьНеВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры, ОжидаемоеОписаниеОшибки; - Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда - ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки; - ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки; - ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - КонецЕсли; - Попытка - Выполнить(СтрокаАлгоритм); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда - ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Возврат; - КонецПопытки; - - ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки)); - -КонецПроцедуры - -Процедура ПроверитьМетодНеВыполнился(Объект, ИмяМетода, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры, ОжидаемоеОписаниеОшибки; - - Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда - ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки; - ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки; - Если Параметры <> Неопределено Тогда - ТипПараметра = ТипЗнч(Параметры); - Если ТипПараметра <> Тип("Массив") Тогда - ВызватьИсключение ("Ожидали, что третьим параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">"); - КонецЕсли; - КонецЕсли; - ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - КонецЕсли; - - ПараметрыСтрока = ПараметрыСтрокой(Параметры); - - СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")"; - - Попытка - Выполнить(СтрокаВыполнения); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда - ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Возврат; - КонецПопытки; - - ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки)); - -КонецПроцедуры - -// проверка идет через ЗначениеЗаполнено, но мутабельные значение всегда считаем заполненными -Процедура ПроверитьЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт - Попытка - фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение); - Исключение - Возврат; - КонецПопытки; - Если НЕ фЗаполнено Тогда - ВызватьОшибкуПроверки("Значение ("+ПроверяемоеЗначение+") не заполнено, а ожидалась заполненность" + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьНеЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт - СообщениеОшибки = "Значение ("+ПроверяемоеЗначение+") заполнено, а ожидалась незаполненность" + ФорматДСО(ДопСообщениеОшибки); - Попытка - фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение); - Исключение - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - Если фЗаполнено Тогда - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьТип(значение, ТипИлиИмяТипа, ДопСообщениеОшибки = "") Экспорт - Если ТипЗнч(ТипИлиИмяТипа) = Тип("Строка") Тогда - искомыйТип = Тип(ТипИлиИмяТипа); - ИначеЕсли ТипЗнч(ТипИлиИмяТипа) = Тип("Тип") Тогда - искомыйТип = ТипИлиИмяТипа; - Иначе - ВызватьИсключение ("ПроверитьТип: Тип значения параметра ТипИлиИмяТипа должен быть <Тип> или <Строка>, а получили <"+ ТипЗнч(ТипИлиИмяТипа) + ">" + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Если ТипЗнч(значение) <> искомыйТип Тогда - ВызватьОшибкуПроверки("Типом значения <"+значение+"> является <"+ТипЗнч(значение)+">, а ожидался тип <"+ТипИлиИмяТипа+">."+ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьВхождение(строка, подстрокаПоиска, ДопСообщениеОшибки = "") Экспорт - Если Найти(строка, подстрокаПоиска) = 0 Тогда - ПредставлениеСтроки = "<"+строка+">"; - Если СтрДлина(строка) > 20 Тогда - ПредставлениеСтроки = ПредставлениеСтроки + Символы.ПС; - КонецЕсли; - ПредставлениеПодСтроки = "<"+подстрокаПоиска+">"; - Если СтрДлина(подстрокаПоиска) > 20 Тогда - ПредставлениеПодСтроки = ПредставлениеПодСтроки + Символы.ПС; - КонецЕсли; - СообщениеОшибки = "Искали в "+ПредставлениеСтроки+" подстроку "+ПредставлениеПодСтроки+", но не нашли." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -//Коллекция - Массив, Структура, Соответствие, ФиксированныйМассив, ФиксированнаяСтруктура, ФиксированноеСоответствие, СписокЗначений -Процедура ПроверитьВхождениеВКоллекцию(Элемент, Коллекция, ДопСообщениеОшибки = "") Экспорт - Нашли = Неопределено; - ТипКоллекции = ТипЗнч(Коллекция); - Если ТипКоллекции = Тип("Массив") или ТипКоллекции = Тип("ФиксированныйМассив") Тогда - Нашли = Коллекция.Найти(Элемент) <> Неопределено; - ИначеЕсли ТипКоллекции = Тип("Структура") или ТипКоллекции = Тип("Соответствие") - или ТипКоллекции = Тип("ФиксированнаяСтруктура") или ТипКоллекции = Тип("ФиксированноеСоответствие") Тогда - Для каждого КлючЗначение Из Коллекция Цикл - Нашли = КлючЗначение.Значение = Элемент; - Если Нашли Тогда - Прервать; - КонецЕсли; - КонецЦикла; - ИначеЕсли ТипКоллекции = Тип("СписокЗначений") Тогда - Нашли = Коллекция.НайтиПоЗначению(Элемент) <> Неопределено; - КонецЕсли; - Если Нашли = Неопределено Тогда - СообщениеОшибки = "Утверждение ""ПроверитьВхождениеВКоллекцию"" не умеет работать с типом коллекции <"+ТипКоллекции+">." + ФорматДСО(ДопСообщениеОшибки); - ВызватьИсключение СообщениеОшибки; - КонецЕсли; - Если Не Нашли Тогда - СообщениеОшибки = "Не нашли элемент <"+Элемент+"> в коллекции, а хотели, чтобы он был в коллекции." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -Процедура ПроверитьВалидностьЗапросаСКД(ТекстЗапроса, ДопСообщениеОшибки = "") Экспорт - - СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных; - - ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить(); - ИсточникДанных.Имя = "ИсточникДанных"; - ИсточникДанных.СтрокаСоединения = ""; - ИсточникДанных.ТипИсточникаДанных = "Local"; - - НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); - НаборДанных.Имя = "НаборДанных"; - НаборДанных.ИсточникДанных = "ИсточникДанных"; - НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина; - НаборДанных.Запрос = ТекстЗапроса; - - КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; - Попытка - КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); - Исключение - СообщениеОшибки = ОписаниеОшибки() + "." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - -КонецПроцедуры // ПроверитьВалидностьЗапросаСКД() - -Процедура ПроверитьНаличиеОбъектаИБ(ссылка, ДопСообщениеОшибки = "") Экспорт - Если Не ЗначениеЗаполнено(ссылка) Тогда - СообщениеОшибки = "Ожидали заполненность ссылки, а получили пустую ссылку." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - лОбъект = ссылка.ПолучитьОбъект(); - Если лОбъект = Неопределено Тогда - СообщениеОшибки = "Ожидали существование объекта в ИБ, а получили объект не найден <" + ссылка + "> ." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -// Проеряет равенство файлов -// Параметры: -// ПутьФайла1, ПутьФайла2 - полные пути к фалйам -// ПарамСравнениеФайлов - структура с ключами: -// ИгнорироватьПустоеПространство -// СпособСравнения -// УчитыватьРазделителиСтрок -// УчитыватьРегистр -// ПоказатьРазличия - в случае ошибки появляется окно сравнеия (для отладки) -Процедура ПроверитьРавенствоФайлов(ПутьФайла1, ПутьФайла2, ДопСообщениеОшибки = "", ПарамСравнениеФайлов = Неопределено, ПоказатьРазличия = Ложь) Экспорт -#Если ТолстыйКлиентОбычноеПриложение или ТолстыйКлиентУправляемоеПриложение Тогда - Если ПарамСравнениеФайлов = Неопределено Тогда - ПарамСравнениеФайлов = Новый Структура; - КонецЕсли; - СравнениеФайлов = Новый СравнениеФайлов; - СравнениеФайлов.ПервыйФайл = ПутьФайла1; - СравнениеФайлов.ВторойФайл = ПутьФайла2; - Если Не ПарамСравнениеФайлов.Свойство("СпособСравнения") Тогда - Файл = Новый Файл(ПутьФайла1); - ТипФайла = НРег(Файл.Расширение); - ТекстовыеТипы = ".txt,.xml"; - Если ТипФайла = ".mxl" Тогда - ПарамСравнениеФайлов.Вставить("СпособСравнения", СпособСравненияФайлов.ТабличныйДокумент); - ИначеЕсли Найти(ТекстовыеТипы, ТипФайла) > 0 Тогда - ПарамСравнениеФайлов.Вставить("СпособСравнения", СпособСравненияФайлов.ТекстовыйДокумент); - КонецЕсли; - КонецЕсли; - ЗаполнитьЗначенияСвойств(СравнениеФайлов, ПарамСравнениеФайлов); - ФайлыИдентичны = СравнениеФайлов.Сравнить(); - Если Не ФайлыИдентичны Тогда - Если ПоказатьРазличия Тогда // для удобства отладки и расследования ошибок - СравнениеФайлов.ПоказатьРазличия(); - КонецЕсли; - СообщениеОшибки = "Ожидали идентичность файлов, а получили, что они различны." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -#Иначе - ВызватьИсключение "Утверждение ПроверитьРавенствоФайлов можно использовать только в толстом клиенте!"; -#КонецЕсли -КонецПроцедуры -//} - -Процедура ВызватьОшибкуПроверки(СообщениеОшибки) - - Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; - -КонецПроцедуры - -Функция ФорматДСО(ДопСообщениеОшибки) - Если ДопСообщениеОшибки = "" Тогда - Возврат ""; - КонецЕсли; - - Возврат Символы.ПС + ДопСообщениеОшибки; -КонецФункции - -СтатусыРезультатаТестирования = Новый Структура; -СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed"); -СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken"); -СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending"); -СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 30f4aedce..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 6fb087216..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.БазовыеУтверждения - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 28e144457..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,366 +0,0 @@ -&НаКлиенте -Перем СтатусыРезультатаТестирования; - -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат Объект().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции - -// { функции утверждения- проверки значений. - -&НаКлиенте -Процедура Проверить(_Истина, ДопСообщениеОшибки = "") Экспорт - Если Не _Истина Тогда - СообщениеОшибки = "Переданный параметр ("+Формат(_Истина, "БЛ=ложь; БИ=истина")+") не является Истиной, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьИстину(_Истина, ДопСообщениеОшибки = "") Экспорт - Проверить(_Истина, ДопСообщениеОшибки); -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьЛожь(_Ложь, ДопСообщениеОшибки = "") Экспорт - Если _Ложь Тогда - СообщениеОшибки = "Переданный параметр ("+Формат(_Ложь, "БЛ=ложь; БИ=истина")+") не является Ложью, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьДату(_Дата, _Период, ДопСообщениеОшибки = "") Экспорт - Если _Дата < _Период.ДатаНачала или _Дата > _Период.ДатаОкончания Тогда - представление = ПредставлениеПериода(_Период.ДатаНачала, _Период.ДатаОкончания, "ФП = Истина"); - СообщениеОшибки = "Переданный параметр ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не входит в период "+представление+", а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьРавенствоДатСТочностью2Секунды(_Дата, _Дата2, ДопСообщениеОшибки = "") Экспорт - Если _Дата < _Дата2-2 или _Дата > _Дата2+2 Тогда - СообщениеОшибки = "Переданная дата ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не равна дате ("+Формат(_Дата2, "ДФ='dd.MM.yyyy HH:mm:ss'")+") с точностью до 2-х секунд, а хотели, чтобы они равнялись." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт - Если _1 <> _2 Тогда - СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") не равны, а хотели, чтобы были равны." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьНеРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт - Если _1 = _2 Тогда - СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") равны, а хотели, чтобы были не равны." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьБольше(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт - Если _Больше <= _Меньше Тогда - СообщениеОшибки = "Первый параметр ("+_Больше+") меньше или равен второму ("+_Меньше+") а хотели, чтобы был больше." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьБольшеИлиРавно(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт - Если _Больше < _Меньше Тогда - СообщениеОшибки = "Первый параметр ("+_Больше+") меньше второго ("+_Меньше+") а хотели, чтобы был больше или равен." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьМеньше(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт - Если проверяемоеЗначение1 >= проверяемоеЗначение2 Тогда - СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше или равно, чем <"+проверяемоеЗначение2+">, а ожидалось меньше"+ - ФорматДСО(СообщениеОбОшибке); - ВызватьОшибкуПроверки(СообщениеОшибки) - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьМеньшеИлиРавно(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт - Если проверяемоеЗначение1 > проверяемоеЗначение2 Тогда - СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше, чем <"+проверяемоеЗначение2+">, а ожидалось меньше или равно"+ - ФорматДСО(СообщениеОбОшибке); - ВызватьОшибкуПроверки(СообщениеОшибки) - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры; - - Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиДопСообщениеОшибки; - КонецЕсли; - Попытка - Выполнить(СтрокаАлгоритм); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - СообщениеОшибки = "Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьМетодВыполнился(Объект, Знач ИмяМетода, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры; - - Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиДопСообщениеОшибки; - Если Параметры <> Неопределено Тогда - ТипПараметра = ТипЗнч(Параметры); - Если ТипПараметра <> Тип("Массив") Тогда - ВызватьИсключение ("Ожидали, что вторым параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">"); - КонецЕсли; - КонецЕсли; - КонецЕсли; - - ПараметрыСтрока = ПараметрыСтрокой(Параметры); - - СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")"; - - Попытка - Выполнить(СтрокаВыполнения); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - СообщениеОшибки = "Хотели, чтобы код """+СтрокаВыполнения+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - -КонецПроцедуры - -&НаКлиенте -Функция ПараметрыСтрокой(Параметры) - ПараметрыСтрока = ""; - Если ЗначениеЗаполнено(Параметры) Тогда - Для Индекс = 0 По Параметры.ВГраница() Цикл - ПараметрыСтрока = ПараметрыСтрока + ", Параметры[" + Формат(Индекс, "ЧН=0; ЧГ=0") + "]"; - КонецЦикла; - КонецЕсли; - Возврат Сред(ПараметрыСтрока, 3); -КонецФункции - -&НаКлиенте -Процедура ПроверитьНеВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры, ОжидаемоеОписаниеОшибки; - Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда - ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки; - ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки; - ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - КонецЕсли; - Попытка - Выполнить(СтрокаАлгоритм); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда - ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Возврат; - КонецПопытки; - - ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки)); - -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьМетодНеВыполнился(Объект, ИмяМетода, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры, ОжидаемоеОписаниеОшибки; - - Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда - ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки; - ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - Иначе - Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки; - Если Параметры <> Неопределено Тогда - ТипПараметра = ТипЗнч(Параметры); - Если ТипПараметра <> Тип("Массив") Тогда - ВызватьИсключение ("Ожидали, что третьим параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">"); - КонецЕсли; - КонецЕсли; - ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; - КонецЕсли; - - ПараметрыСтрока = ПараметрыСтрокой(Параметры); - - СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")"; - - Попытка - Выполнить(СтрокаВыполнения); - Исключение - ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда - ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Возврат; - КонецПопытки; - - ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки)); - -КонецПроцедуры - -// проверка идет через ЗначениеЗаполнено, но мутабельные значение всегда считаем заполненными -&НаКлиенте -Процедура ПроверитьЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт - Попытка - фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение); - Исключение - Возврат; - КонецПопытки; - Если НЕ фЗаполнено Тогда - ВызватьОшибкуПроверки("Значение ("+ПроверяемоеЗначение+") не заполнено, а ожидалась заполненность" + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьНеЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт - СообщениеОшибки = "Значение ("+ПроверяемоеЗначение+") заполнено, а ожидалась незаполненность" + ФорматДСО(ДопСообщениеОшибки); - Попытка - фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение); - Исключение - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецПопытки; - Если фЗаполнено Тогда - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьТип(значение, ТипИлиИмяТипа, ДопСообщениеОшибки = "") Экспорт - Если ТипЗнч(ТипИлиИмяТипа) = Тип("Строка") Тогда - искомыйТип = Тип(ТипИлиИмяТипа); - ИначеЕсли ТипЗнч(ТипИлиИмяТипа) = Тип("Тип") Тогда - искомыйТип = ТипИлиИмяТипа; - Иначе - ВызватьИсключение ("ПроверитьТип: Тип значения параметра ТипИлиИмяТипа должен быть <Тип> или <Строка>, а получили <"+ ТипЗнч(ТипИлиИмяТипа) + ">" + ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; - Если ТипЗнч(значение) <> искомыйТип Тогда - ВызватьОшибкуПроверки("Типом значения <"+значение+"> является <"+ТипЗнч(значение)+">, а ожидался тип <"+ТипИлиИмяТипа+">."+ФорматДСО(ДопСообщениеОшибки)); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьВхождение(строка, подстрокаПоиска, ДопСообщениеОшибки = "") Экспорт - Если Найти(строка, подстрокаПоиска) = 0 Тогда - ПредставлениеСтроки = "<"+строка+">"; - Если СтрДлина(строка) > 20 Тогда - ПредставлениеСтроки = ПредставлениеСтроки + Символы.ПС; - КонецЕсли; - ПредставлениеПодСтроки = "<"+подстрокаПоиска+">"; - Если СтрДлина(подстрокаПоиска) > 20 Тогда - ПредставлениеПодСтроки = ПредставлениеПодСтроки + Символы.ПС; - КонецЕсли; - СообщениеОшибки = "Искали в "+ПредставлениеСтроки+" подстроку "+ПредставлениеПодСтроки+", но не нашли." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -//Коллекция - Массив, Структура, Соответствие, ФиксированныйМассив, ФиксированнаяСтруктура, ФиксированноеСоответствие, СписокЗначений -&НаКлиенте -Процедура ПроверитьВхождениеВКоллекцию(Элемент, Коллекция, ДопСообщениеОшибки = "") Экспорт - Нашли = Неопределено; - ТипКоллекции = ТипЗнч(Коллекция); - Если ТипКоллекции = Тип("Массив") или ТипКоллекции = Тип("ФиксированныйМассив") Тогда - Нашли = Коллекция.Найти(Элемент) <> Неопределено; - ИначеЕсли ТипКоллекции = Тип("Структура") или ТипКоллекции = Тип("Соответствие") - или ТипКоллекции = Тип("ФиксированнаяСтруктура") или ТипКоллекции = Тип("ФиксированноеСоответствие") Тогда - Для каждого КлючЗначение Из Коллекция Цикл - Нашли = КлючЗначение.Значение = Элемент; - Если Нашли Тогда - Прервать; - КонецЕсли; - КонецЦикла; - ИначеЕсли ТипКоллекции = Тип("СписокЗначений") Тогда - Нашли = Коллекция.НайтиПоЗначению(Элемент) <> Неопределено; - КонецЕсли; - Если Нашли = Неопределено Тогда - СообщениеОшибки = "Утверждение ""ПроверитьВхождениеВКоллекцию"" не умеет работать с типом коллекции <"+ТипКоллекции+">." + ФорматДСО(ДопСообщениеОшибки); - ВызватьИсключение СообщениеОшибки; - КонецЕсли; - Если Не Нашли Тогда - СообщениеОшибки = "Не нашли элемент <"+Элемент+"> в коллекции, а хотели, чтобы он был в коллекции." + ФорматДСО(ДопСообщениеОшибки); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьВалидностьЗапросаСКД(ТекстЗапроса, ДопСообщениеОшибки = "") Экспорт - ПроверитьВалидностьЗапросаСКДНаСервере(ТекстЗапроса, ДопСообщениеОшибки); -КонецПроцедуры - -&НаКлиенте -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки); -КонецПроцедуры - -&НаСервере -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - Объект().ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки); -КонецПроцедуры - -&НаКлиенте -Процедура ВызватьОшибкуПроверки(СообщениеОшибки) - - Префикс = "[" + СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; - -КонецПроцедуры - -&НаКлиенте -Процедура ПропуститьТест(Знач Сообщение = "") Экспорт - - Префикс = "[" + СтатусыРезультатаТестирования.ТестПропущен + "]"; - Если ПустаяСтрока(Сообщение) Тогда - Сообщение = НСтр("ru = 'Тест пропущен'"); - КонецЕсли; - ВызватьИсключение Префикс + " " + Сообщение; - -КонецПроцедуры - -&НаСервере -Процедура ПроверитьВалидностьЗапросаСКДНаСервере(ТекстЗапроса, ДопСообщениеОшибки = "") - Объект().ПроверитьВалидностьЗапросаСКД(ТекстЗапроса, ДопСообщениеОшибки); -КонецПроцедуры -// } - -&НаКлиенте -Функция ФорматДСО(ДопСообщениеОшибки) - Если ДопСообщениеОшибки = "" Тогда - Возврат ""; - КонецЕсли; - - Возврат Символы.ПС + ДопСообщениеОшибки; -КонецФункции - -&НаСервере -Функция Объект() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции - -СтатусыРезультатаТестирования = Новый Структура; -СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed"); -СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken"); -СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending"); -СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.xml" deleted file mode 100644 index 8eea79b0b..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 61246342-9a0f-49d6-9b9e-726b5f607d44 - 777524cb-341e-4fc4-80b3-582edf19b399 - - - 41a92690-ab41-487e-9a10-c964a0a71bab - 5eeffb20-0ba8-490c-bfc9-7658a6c1a529 - - - - ВременныеФайлы - - - ru - Временные файлы - - - - false - DataProcessor.ВременныеФайлы.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Ext/ObjectModule.bsl" deleted file mode 100644 index a6be3506f..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,102 +0,0 @@ - -////////////////////////////////////////////////////////////////// -// -// Простой хелпер создания временных файлов и каталогов -// -////////////////////////////////////////////////////////////////// - -//#Использовать logos - -Перем мВременныеФайлы; -//Перем Лог; - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "ВременныеФайлы"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -///////////////////////////////////////////////////////////////////////// -// Программный интерфейс - -Функция НовоеИмяФайла(Знач Расширение = "tmp") Экспорт - - ИмяВремФайла = ПолучитьИмяВременногоФайла(Расширение); - мВременныеФайлы.Добавить(ИмяВремФайла); - - Возврат ИмяВремФайла; - -КонецФункции - -Функция СоздатьФайл(Знач Расширение = "tmp") Экспорт - - ИмяФайла = НовоеИмяФайла(Расширение); - ЗаписьТекста = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI); - ЗаписьТекста.Закрыть(); - Возврат ИмяФайла; - -КонецФункции - -Функция СоздатьКаталог_(Знач Расширение = "tmp") Экспорт - - ИмяФайла = НовоеИмяФайла(Расширение); - СоздатьКаталог(ИмяФайла); - - Возврат ИмяФайла; - -КонецФункции - -Процедура Удалить() Экспорт - - КрайнийИндекс = мВременныеФайлы.Количество()-1; - Для Сч = 0 По КрайнийИндекс Цикл - - Индекс = КрайнийИндекс-Сч; - ИмяВременногоФайла = мВременныеФайлы[Индекс]; - Если БезопасноУдалитьФайл(ИмяВременногоФайла) Тогда - мВременныеФайлы.Удалить(Индекс); - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -Функция УдалитьФайл(Знач Путь) Экспорт - Возврат БезопасноУдалитьФайл(Путь); -КонецФункции - -Функция БезопасноУдалитьФайл(Знач Путь) Экспорт - - Попытка - УдалитьФайлы(Путь); - Возврат Истина; - Исключение - ТекстОшибки = "Попытка удаления "+Путь+" закончилась неудачей, по причине "+ОписаниеОшибки(); - УдаляемыйФайл = Новый Файл(Путь); - Если УдаляемыйФайл.ЭтоФайл() и УдаляемыйФайл.ПолучитьТолькоЧтение() Тогда - УдаляемыйФайл.УстановитьТолькоЧтение(Ложь); - Попытка - УдалитьФайлы(Путь); - Возврат Истина; - Исключение - //Лог.Предупреждение(ТекстОшибки); - КонецПопытки; - Иначе - //Лог.Предупреждение(ТекстОшибки); - КонецЕсли; - КонецПопытки; - - Возврат Ложь; - -КонецФункции - -мВременныеФайлы = Новый Массив; -//Лог = Логирование.ПолучитьЛог("oscript.app.tempfiles"); \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 4566918e2..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 1e76386ce..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ВременныеФайлы - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index c8ecf2899..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,19 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.xml" deleted file mode 100644 index de1da74ab..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.xml" +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - 34d3e7a1-d956-4b27-b02f-72da65b7b961 - 0098a90c-15f5-49cb-b685-df792b2c4b30 - - - 24518f9a-7802-4cfb-a587-80f522fc1f97 - 531d1ba5-bbcf-43c8-9112-90e30eefea16 - - - - ГенераторОтчетаJUnitXML - - - ru - Генератор отчета JUnit XML - - - - false - DataProcessor.ГенераторОтчетаJUnitXML.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 - - - - - СтатусыJUnit - - - ru - Статусы junit - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
Форма
- -
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Ext/ObjectModule.bsl" deleted file mode 100644 index 63a27256e..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,115 +0,0 @@ - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.ГенераторОтчета); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "Отчет о тестировании в формате MXL"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -// { Report generator interface -Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт - ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); - ЭтотОбъект.ТипыУзловДереваТестов = ПостроительДереваТестов.ТипыУзловДереваТестов; - ЭтотОбъект.СостоянияТестов = КонтекстЯдра.СостоянияТестов; - Отчет = СоздатьОтчетНаСервере(РезультатыТестирования); - - Возврат Отчет; -КонецФункции - -Функция СоздатьОтчетНаСервере(РезультатыТестирования) Экспорт - ЗаписьXML = Новый ЗаписьXML; - ЗаписьXML.УстановитьСтроку("UTF-8"); - ЗаписьXML.ЗаписатьОбъявлениеXML(); - - ЗаписьXML.ЗаписатьНачалоЭлемента("testsuites"); - ЗаписьXML.ЗаписатьАтрибут("name", XMLСтрока(РезультатыТестирования.Имя)); - ЗаписьXML.ЗаписатьАтрибут("time", XMLСтрока(РезультатыТестирования.ВремяВыполнения)); - ЗаписьXML.ЗаписатьАтрибут("tests", XMLСтрока(РезультатыТестирования.КоличествоТестов)); - ЗаписьXML.ЗаписатьАтрибут("failures", XMLСтрока(РезультатыТестирования.КоличествоСломанныхТестов)); - ЗаписьXML.ЗаписатьАтрибут("errors", XMLСтрока(РезультатыТестирования.КоличествоОшибочныхТестов)); - ЗаписьXML.ЗаписатьАтрибут("skipped", XMLСтрока(РезультатыТестирования.КоличествоНеРеализованныхТестов)); - - ВывестиДанныеОтчетаТестированияРекурсивно(ЗаписьXML, РезультатыТестирования); - - ЗаписьXML.ЗаписатьКонецЭлемента(); - - СтрокаXML = ЗаписьXML.Закрыть(); - Отчет = Новый ТекстовыйДокумент; - Отчет.ДобавитьСтроку(СтрокаXML); - - Возврат Отчет; -КонецФункции - -Процедура ВывестиДанныеОтчетаТестированияРекурсивно(ЗаписьXML, РезультатыТестирования, ИмяРодителя = "") - Если РезультатыТестирования.Тип = ТипыУзловДереваТестов.Контейнер Тогда - ЗаписьXML.ЗаписатьНачалоЭлемента("testsuite"); - ЗаписьXML.ЗаписатьАтрибут("name", РезультатыТестирования.Имя); - Для Каждого ЭлементКоллекции Из РезультатыТестирования.Строки Цикл - ВывестиДанныеОтчетаТестированияРекурсивно(ЗаписьXML, ЭлементКоллекции, РезультатыТестирования.Имя); - КонецЦикла; - ЗаписьXML.ЗаписатьКонецЭлемента(); - Иначе - ВывестиРезультатЭлемента(ЗаписьXML, РезультатыТестирования, ИмяРодителя); - КонецЕсли; -КонецПроцедуры - -Процедура ВывестиРезультатЭлемента(ЗаписьXML, РезультатыТестирования, ИмяРодителя) - ЗаписьXML.ЗаписатьНачалоЭлемента("testcase"); - ЗаписьXML.ЗаписатьАтрибут("classname", XMLСтрока(ИмяРодителя)); - ЗаписьXML.ЗаписатьАтрибут("name", XMLСтрока(РезультатыТестирования.Представление)); - ЗаписьXML.ЗаписатьАтрибут("time", XMLСтрока(РезультатыТестирования.ВремяВыполнения)); - - Если РезультатыТестирования.Состояние = СостоянияТестов.Пройден Тогда - ЗаписьXML.ЗаписатьАтрибут("status", "passed"); - ИначеЕсли РезультатыТестирования.Состояние = СостоянияТестов.НеРеализован Тогда - СтатусJUnit = "skipped"; - ЗаписьXML.ЗаписатьАтрибут("status", СтатусJUnit); - ЗаписьXML.ЗаписатьНачалоЭлемента(СтатусJUnit); - ЗаписьXML.ЗаписатьКонецЭлемента(); - ИначеЕсли РезультатыТестирования.Состояние = СостоянияТестов.Сломан Тогда - СтатусJUnit = "failure"; - ЗаписьXML.ЗаписатьАтрибут("status", СтатусJUnit); - ЗаписьXML.ЗаписатьНачалоЭлемента(СтатусJUnit); - Сообщение = УдалитьНедопустимыеСимволыXML(РезультатыТестирования.Сообщение); - ЗаписьXML.ЗаписатьАтрибут("message", XMLСтрока(Сообщение)); - ЗаписьXML.ЗаписатьКонецЭлемента(); - ИначеЕсли РезультатыТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка Тогда - СтатусJUnit = "error"; - ЗаписьXML.ЗаписатьАтрибут("status", СтатусJUnit); - ЗаписьXML.ЗаписатьНачалоЭлемента(СтатусJUnit); - Сообщение = УдалитьНедопустимыеСимволыXML(РезультатыТестирования.Сообщение); - ЗаписьXML.ЗаписатьАтрибут("message", XMLСтрока(Сообщение)); - ЗаписьXML.ЗаписатьКонецЭлемента(); - КонецЕсли; - ЗаписьXML.ЗаписатьКонецЭлемента(); -КонецПроцедуры - -#Если ТолстыйКлиентОбычноеПриложение Тогда -Процедура Показать(Отчет) Экспорт - Отчет.Показать(); -КонецПроцедуры -#КонецЕсли - -Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт - Отчет.Записать(ПолныйПутьФайла); -КонецПроцедуры -// } Report generator interface - -// { Helpers -Функция УдалитьНедопустимыеСимволыXML(Знач Результат) - Позиция = НайтиНедопустимыеСимволыXML(Результат); - Пока Позиция > 0 Цикл - Результат = Лев(Результат, Позиция - 1) + Сред(Результат, Позиция + 1); - Позиция = НайтиНедопустимыеСимволыXML(Результат, Позиция); - КонецЦикла; - - Возврат Результат; -КонецФункции -// } Helpers diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 4e7ece186..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index da3afde50..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ГенераторОтчетаJUnitXML - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 9f00ea34d..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,44 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Report generator interface -&НаКлиенте -Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт - Объект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов; - Объект.СостоянияТестов = КонтекстЯдра.Объект.СостоянияТестов; - Возврат СоздатьОтчетНаСервере(РезультатыТестирования); -КонецФункции - -&НаСервере -Функция СоздатьОтчетНаСервере(РезультатыТестирования) - Возврат ЭтотОбъектНаСервере().СоздатьОтчетНаСервере(РезультатыТестирования); -КонецФункции - -&НаКлиенте -Процедура Показать(Отчет) Экспорт - Отчет.Показать(); -КонецПроцедуры - -&НаКлиенте -Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт - Отчет.Записать(ПолныйПутьФайла); -КонецПроцедуры -// } Report generator interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers - diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4.xml" deleted file mode 100644 index b3b7d8e02..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4/Ext/Template.txt" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4/Ext/Template.txt" deleted file mode 100644 index 77cab717c..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Templates/\320\241\321\205\320\265\320\274\320\260JUnit4/Ext/Template.txt" +++ /dev/null @@ -1,206 +0,0 @@ - - - - - JUnit test result schema for the Apache Ant JUnit and JUnitReport tasks -Copyright © 2011, Windy Road Technology Pty. Limited -The Apache Ant JUnit XML Schema is distributed under the terms of the GNU Lesser General Public License (LGPL) http://www.gnu.org/licenses/lgpl.html -Permission to waive conditions of this license may be requested from Windy Road Support (http://windyroad.org/support). - - - - - - - - - - Contains an aggregation of testsuite results - - - - - - - - - - Derived from testsuite/@name in the non-aggregated documents - - - - - Starts at '0' for the first testsuite and is incremented by 1 for each following testsuite - - - - - - - - - - - - Contains the results of exexuting a testsuite - - - - - Properties (e.g., environment settings) set during test execution - - - - - - - - - - - - - - - - - - - - - - - - Indicates that the test errored. An errored test is one that had an unanticipated problem. e.g., an unchecked throwable; or a problem with the implementation of the test. Contains as a text node relevant data for the error, e.g., a stack trace - - - - - - - The error message. e.g., if a java exception is thrown, the return value of getMessage() - - - - - The type of error that occured. e.g., if a java execption is thrown the full class name of the exception. - - - - - - - - - Indicates that the test failed. A failure is a test which the code has explicitly failed by using the mechanisms for that purpose. e.g., via an assertEquals. Contains as a text node relevant data for the failure, e.g., a stack trace - - - - - - - The message specified in the assert - - - - - The type of the assert. - - - - - - - - - - Name of the test method - - - - - Full class name for the class the test method is in. - - - - - Time taken (in seconds) to execute the test - - - - - - - Data that was written to standard out while the test was executed - - - - - - - - - - Data that was written to standard error while the test was executed - - - - - - - - - - - Full class name of the test for non-aggregated testsuite documents. Class name without the package for aggregated testsuites documents - - - - - - - - - - when the test was executed. Timezone may not be specified. - - - - - Host on which the tests were executed. 'localhost' should be used if the hostname cannot be determined. - - - - - - - - - - The total number of tests in the suite - - - - - The total number of tests in the suite that failed. A failure is a test which the code has explicitly failed by using the mechanisms for that purpose. e.g., via an assertEquals - - - - - The total number of tests in the suite that errorrd. An errored test is one that had an unanticipated problem. e.g., an unchecked throwable; or a problem with the implementation of the test. - - - - - Time taken (in seconds) to execute the tests in the suite - - - - - - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.xml" deleted file mode 100644 index a2a5e72ca..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.xml" +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - a04f8187-ec37-4bc7-a9e7-094a9f9f4782 - a2f8dce6-6d9c-44ad-be59-5bbb0bfc6ff1 - - - 6c288d37-5757-40b7-8204-90e6dd3cce64 - 8a890cc3-0df9-4550-ab0d-21213a4b1245 - - - - ГенераторОтчетаMXL - - - ru - Генератор отчета MXL - - - - false - DataProcessor.ГенераторОтчетаMXL.Form.Форма - - false - - - - - - - ТипыУзловДереваТестов - - - ru - Типы узлов дерева тестов - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - СостоянияТестов - - - ru - Состояния тестов - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
Форма
- -
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Ext/ObjectModule.bsl" deleted file mode 100644 index 4be4b5044..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,81 +0,0 @@ - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.ГенераторОтчета); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "Отчет о тестировании в формате MXL"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -// { Report generator interface -Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт - ЭтотОбъект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").ТипыУзловДереваТестов; - ЭтотОбъект.СостоянияТестов = КонтекстЯдра.СостоянияТестов; - Отчет = СоздатьОтчетНаСервере(РезультатыТестирования); - - Возврат Отчет; -КонецФункции - -Функция СоздатьОтчетНаСервере(РезультатыТестирования) Экспорт - Если (РезультатыТестирования.КоличествоСломанныхТестов = 0) И (РезультатыТестирования.КоличествоОшибочныхТестов = 0) И (РезультатыТестирования.КоличествоНеРеализованныхТестов = 0) Тогда - Возврат Неопределено; - КонецЕсли; - - МакетОтчетТестирования = ПолучитьМакет("ОтчетТестирования"); - Отчет = Новый ТабличныйДокумент; - ОбластьЗаголовок = МакетОтчетТестирования.ПолучитьОбласть("Заголовок"); - ЗаполнитьЗначенияСвойств(ОбластьЗаголовок.Параметры, РезультатыТестирования); - ОбластьЗаголовок.Параметры.ВремяВыполненияСтрока = Формат(Дата(1, 1, 1) + РезультатыТестирования.ВремяВыполнения, "ДЛФ=T"); - Отчет.Вывести(ОбластьЗаголовок); - - Отчет.НачатьАвтогруппировкуСтрок(); - ВывестиДанныеОтчетаТестированияРекурсивно(ТипыУзловДереваТестов, СостоянияТестов, РезультатыТестирования, МакетОтчетТестирования, Отчет); - Отчет.ЗакончитьАвтогруппировкуСтрок(); - - Отчет.ОтображатьСетку = Ложь; - Отчет.Защита = Ложь; - Отчет.ТолькоПросмотр = Ложь; - Отчет.ОтображатьЗаголовки = Ложь; - - Возврат Отчет; -КонецФункции - -Процедура ВывестиДанныеОтчетаТестированияРекурсивно(ТипыУзловДереваТестов, СостоянияТестов, РезультатыТестирования, МакетОтчетТестирования, Отчет, Уровень = 0) - Если РезультатыТестирования.Состояние <> СостоянияТестов.Пройден Тогда - Если РезультатыТестирования.Тип = ТипыУзловДереваТестов.Контейнер Тогда - ОбластьКонтейнер = МакетОтчетТестирования.ПолучитьОбласть("Контейнер"); - ОбластьКонтейнер.Параметры.ИмяКонтейнера = РезультатыТестирования.Имя; - Отчет.Вывести(ОбластьКонтейнер, Уровень); - Для каждого ЭлементКоллекции Из РезультатыТестирования.Строки Цикл - ВывестиДанныеОтчетаТестированияРекурсивно(ТипыУзловДереваТестов, СостоянияТестов, ЭлементКоллекции, МакетОтчетТестирования, Отчет, Уровень + 1); - КонецЦикла; - Иначе - ОбластьЭлемент = МакетОтчетТестирования.ПолучитьОбласть("Элемент"); - ОбластьЭлемент.Параметры.ИмяМетода = РезультатыТестирования.Представление; - ОбластьЭлемент.Параметры.Путь = РезультатыТестирования.Путь; - ОбластьЭлемент.Параметры.Сообщение = РезультатыТестирования.Сообщение; - ОбластьЭлемент.Области.Элемент.Отступ = Уровень * 2; - Отчет.Вывести(ОбластьЭлемент, Уровень); - КонецЕсли; - КонецЕсли; -КонецПроцедуры - -#Если ТолстыйКлиентОбычноеПриложение Тогда -Процедура Показать(Отчет) Экспорт - Если Отчет <> Неопределено Тогда - ЗаголовокОкнаОтчета = НСтр("ru = 'Отчет об автоматическом тестировании'"); - Отчет.Показать(ЗаголовокОкнаОтчета); - КонецЕсли; -КонецПроцедуры -#КонецЕсли - -Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт - ВызватьИсключение "Метод не реализован"; -КонецПроцедуры -// } Report generator interface diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 3e7149b16..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 1bf4c9c49..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ГенераторОтчетаMXL - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 793020bfd..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,46 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Report generator interface -&НаКлиенте -Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт - Объект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов; - Объект.СостоянияТестов = КонтекстЯдра.Объект.СостоянияТестов; - Возврат СоздатьОтчетНаСервере(РезультатыТестирования); -КонецФункции - -&НаСервере -Функция СоздатьОтчетНаСервере(РезультатыТестирования) - Возврат ЭтотОбъектНаСервере().СоздатьОтчетНаСервере(РезультатыТестирования); -КонецФункции - -&НаКлиенте -Процедура Показать(Отчет) Экспорт - Если Отчет <> Неопределено Тогда - ЗаголовокОкнаОтчета = НСтр("ru = 'Отчет об автоматическом тестировании'"); - Отчет.Показать(ЗаголовокОкнаОтчета); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт - ВызватьИсключение "Метод не реализован"; -КонецПроцедуры -// } Report generator interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.xml" deleted file mode 100644 index c8c488168..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217/Ext/Template.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217/Ext/Template.xml" deleted file mode 100644 index 2ae3b3d68..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Templates/\320\236\321\202\321\207\320\265\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217/Ext/Template.xml" +++ /dev/null @@ -1,184 +0,0 @@ - - - - ru - ru - - ru - Русский - Русский - - - - 1 - - 0 - - 1 - - - - - 1 - - 2 - - - 3 - - - ru - Запущено тестов - [КоличествоТестов], ошибочных тестов - [КоличествоОшибочныхТестов], не прошло проверку - [КоличествоСломанныхТестов], пропущено - [КоличествоНеРеализованныхТестов] - - - - - - - - 2 - - 2 - - - 4 - - - ru - Общее время выполнения: [ВремяВыполнения] ( [ВремяВыполненияСтрока] сек. ) - - - - - - - - 5 - - - - 5 - - - ru - [ИмяКонтейнера] - - - - - - - - 8 - - 6 - - - 7 - - - ru - [ИмяМетода], путь [Путь] - - - - - - - - 9 - - 2 - - - 0 - - - - - - 10 - - - - 2 - - - ru - [Сообщение] - - - - - - - true - 8 - 11 - 11 - - Заголовок - - Rows - 1 - 2 - -1 - -1 - - - - Контейнер - - Rows - 4 - 5 - -1 - -1 - - - - Элемент - - Rows - 7 - 10 - -1 - -1 - - - - - 946 - - - Template - - - 0 - d3p1:FireBrick - Template - - - 0 - Template - - - 0 - Template - 2 - - - 0 - d3p1:IndianRed - Template - - - 0 - 72 - d3p1:IndianRed - Template - - - 72 - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml" deleted file mode 100644 index 63fdc8663..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml" +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - b6e00ba1-9825-4b58-b46a-a7c8fd541c73 - 423f3c29-65bb-4e60-b669-d84cf743dd12 - - - f621c2b2-9619-4955-8dbd-440f5c92a04f - 6efa2dd9-e8a4-4f64-907a-c898be2f6996 - - - - ЗагрузчикИзПодсистемКонфигурации - - - ru - Загрузчик из подсистем конфигурации - - - - false - DataProcessor.ЗагрузчикИзПодсистемКонфигурации.Form.УправляемаяФорма - - false - - - - -
УправляемаяФорма
-
ФормаВыбораПодсистемы
-
ФормаВыбораПодсистемУФ
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" deleted file mode 100644 index 9c5a0a312..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,332 +0,0 @@ -Перем мЗначенияТиповСтроки Экспорт; - -Перем КэшПостроительДереваТестов; -Перем ЗагружаемыйПуть; - -Перем КонтейнерТестов; -Перем ТекущаяГруппа; - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Загрузчик); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "Загрузить тесты из конфигурации"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -// { Loader interface -#Если ТолстыйКлиентОбычноеПриложение Тогда -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - ФормаВыбораПодсистем = ЭтотОбъект.ПолучитьФорму("ФормаВыбораПодсистемы"); - ФормаВыбораПодсистем.РежимВыбора = Истина; - ФормаВыбораПодсистем.ОтборПоИмениТеста = ""; - ВыбранныйПуть = ФормаВыбораПодсистем.ОткрытьМодально(); - - Возврат ВыбранныйПуть; -КонецФункции -#КонецЕсли - -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - Перем ДеревоТестов; - - ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - - ДеревоТестов = ЗагрузитьПуть(Путь, ПостроительДереваТестов, ЗагрузчикФайла); - - Возврат ДеревоТестов; -КонецФункции - -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - ОбъектМетаданных = ПолучитьОбъектМетаданныхПоПути(Путь); - Контекст = СоздатьОбработкуПоМетаданным(ОбъектМетаданных); - - Возврат Контекст; -КонецФункции -// } Loader interface - -Функция ЗагрузитьПуть(Путь, ПостроительДереваТестов, ЗагрузчикФайла) Экспорт - ОбъектМетаданных = ПолучитьОбъектМетаданныхПоПути(Путь); - ДеревоТестов = ОбработатьОбъектМетаданных(ОбъектМетаданных, ПостроительДереваТестов, ЗагрузчикФайла); - - Возврат ДеревоТестов; -КонецФункции - -Функция ПолучитьОбъектМетаданныхПоПути(Путь) Экспорт - Перем ОбъектКонфигурации; - Попытка - Выполнить("ОбъектКонфигурации = " + Путь); - Исключение - ВызватьИсключение "Передан невалидный путь <" + Путь + ">"; - КонецПопытки; - - Возврат ОбъектКонфигурации; -КонецФункции - -Функция ОбработатьОбъектМетаданных(ОбъектМетаданных, ПостроительДереваТестов, ЗагрузчикФайла) - Если ЭтоПодсистема(ОбъектМетаданных) Тогда - Контейнер = ЗагрузитьПодсистему(ОбъектМетаданных, ПостроительДереваТестов, ЗагрузчикФайла); - Иначе - Контейнер = ЗагрузитьОбработку(ОбъектМетаданных, ПостроительДереваТестов, ЗагрузчикФайла); - КонецЕсли; - - Возврат Контейнер; -КонецФункции - -Функция ЭтоПодсистема(ОбъектМетаданных) - Возврат (Найти(НРег(ОбъектМетаданных.ПолноеИмя()), НРег("Подсистема")) > 0); -КонецФункции - -Функция ЗагрузитьПодсистему(Подсистема, ПостроительДереваТестов, ЗагрузчикФайла) - Контейнер = ПостроительДереваТестов.СоздатьКонтейнер(Подсистема.Имя, ПостроительДереваТестов.ИконкиУзловДереваТестов.Подсистема); - Для каждого ПодчиненнаяПодсистема Из Подсистема.Подсистемы цикл - КонтейнерПодчиненнойПодсистемы = ЗагрузитьПодсистему(ПодчиненнаяПодсистема, ПостроительДереваТестов, ЗагрузчикФайла); - Если КонтейнерПодчиненнойПодсистемы.Строки.Количество() > 0 Тогда - Контейнер.Строки.Добавить(КонтейнерПодчиненнойПодсистемы); - КонецЕсли; - КонецЦикла; - - Для каждого ДочернееМетаданное Из Подсистема.Состав цикл - Если Метаданные.Обработки.Найти(ДочернееМетаданное.Имя) <> Неопределено - ИЛИ Метаданные.Отчеты.Найти(ДочернееМетаданное.Имя) <> Неопределено Тогда - КонтейнерСТестамиОбработки = ЗагрузитьОбработку(ДочернееМетаданное, ПостроительДереваТестов, ЗагрузчикФайла); - Если КонтейнерСТестамиОбработки.Строки.Количество() > 0 Тогда - Контейнер.Строки.Добавить(КонтейнерСТестамиОбработки); - КонецЕсли; - КонецЕсли; - КонецЦикла; - - Возврат Контейнер; -КонецФункции - -Функция ЗагрузитьОбработку(МетаданныеОбработки, ПостроительДереваТестов, ЗагрузчикФайла) Экспорт - Обработка = СоздатьОбработкуПоМетаданным(МетаданныеОбработки); - Попытка - Контейнер = ЗагрузитьТестыВНовомФормате(ПостроительДереваТестов, Обработка, МетаданныеОбработки, ЗагрузчикФайла); - Исключение - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда - ВызватьИсключение; - Иначе - Контейнер = ЗагрузитьТестыВСтаромФормате(ПостроительДереваТестов, Обработка, МетаданныеОбработки, ЗагрузчикФайла); - КонецЕсли; - КонецПопытки; - - Возврат Контейнер; -КонецФункции - -Функция ЗагрузитьТестыВНовомФормате(ПостроительДереваТестов, Обработка, МетаданныеОбработки, ЗагрузчикФайла) - КэшПостроительДереваТестов = ПостроительДереваТестов; - Если Метаданные.Обработки.Содержит(МетаданныеОбработки) Тогда - ЗагружаемыйПуть = СтрЗаменить("Метаданные." + МетаданныеОбработки.ПолноеИмя(), ".Обработка.", ".Обработки."); - ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Обработка; - ИначеЕсли Метаданные.Отчеты.Содержит(МетаданныеОбработки) Тогда - ЗагружаемыйПуть = СтрЗаменить("Метаданные." + МетаданныеОбработки.ПолноеИмя(), ".Отчет.", ".Отчеты."); - ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Отчет; - КонецЕсли; - КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(МетаданныеОбработки.Имя, ИконкаУзла); - Обработка.ЗаполнитьНаборТестов(ЭтотОбъект); - Результат = КонтейнерТестов; - КонтейнерТестов = Неопределено; - ТекущаяГруппа = Неопределено; - - Возврат Результат; -КонецФункции - -Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки) - ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов"); - - Возврат ЭтоНовыйФорматОбработки; -КонецФункции - -Функция ЗагрузитьТестыВСтаромФормате(ПостроительДереваТестов, Обработка, МетаданныеОбработки, ЗагрузчикФайла) - - Обработка = СоздатьОбработкуПоМетаданным(МетаданныеОбработки); - Попытка - СписокТестов = Обработка.ПолучитьСписокТестов(); - Исключение - Описание = ОписаниеОшибки(); - Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда - ВызватьИсключение "Старый формат тестов в обработке тестов <"+МетаданныеОбработки.Имя+">."+Символы.ПС+ - "Метод ПолучитьСписокТестов сейчас не принимает параметров"; - КонецЕсли; - - Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда - ВызватьИсключение Описание; - КонецЕсли; - КонецПопытки; - - СлучайныйПорядокВыполнения = Истина; - Попытка - СлучайныйПорядокВыполнения = Обработка.РазрешенСлучайныйПорядокВыполненияТестов(); - Исключение - КонецПопытки; - Путь = СтрЗаменить("Метаданные." + МетаданныеОбработки.ПолноеИмя(), ".Обработка.", ".Обработки."); - Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, ЗагрузчикФайла, СписокТестов, МетаданныеОбработки.Имя, Путь, СлучайныйПорядокВыполнения); - - Возврат Контейнер; -КонецФункции - -Функция ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, ЗагрузчикФайла, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина) Экспорт - - Контейнер = ЗагрузчикФайла.ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения); - - Возврат Контейнер; - -КонецФункции - -Функция СоздатьОбработкуПоМетаданным(МетаданныеОбработки) - Если Метаданные.Обработки.Найти(МетаданныеОбработки.Имя) <> Неопределено Тогда - Возврат Обработки[МетаданныеОбработки.Имя].Создать(); - ИначеЕсли Метаданные.Отчеты.Найти(МетаданныеОбработки.Имя) <> Неопределено Тогда - Возврат Отчеты[МетаданныеОбработки.Имя].Создать(); - Иначе - ВызватьИсключение "Не удалось найти обработку / отчет с идентификатором """+МетаданныеОбработки.Имя+""""; - КонецЕсли; -КонецФункции - -//{ Работа со встроенными в конфигурацию тестами и подсистемами -Процедура ЗаполнитьДеревоПодсистем(ДеревоПодсистем, ОтборПоИмениТеста) Экспорт - Для каждого МетаПодсистема из Метаданные.Подсистемы цикл - ДобавитьПодсистемуВДерево(МетаПодсистема, ДеревоПодсистем, ЭтотОбъект, ОтборПоИмениТеста); - КонецЦикла; -КонецПроцедуры - -Функция ДобавитьПодсистемуВДерево(ТекМетаПодсистема, РодительскаяСтрока, ОбработкаОбъект, ОтборПоИмениТеста) - СтрокаПодсистемы = ПодчиненныеСтроки(РодительскаяСтрока).Добавить(); - СтрокаПодсистемы.Имя = ТекМетаПодсистема.Имя; - СтрокаПодсистемы.Путь = "Метаданные."+СтрЗаменить(ТекМетаПодсистема.ПолноеИмя(), "Подсистема.", "Подсистемы."); - СтрокаПодсистемы.ТипСтроки = мЗначенияТиповСтроки.Подсистема; - Для Каждого Подсистема из ТекМетаПодсистема.Подсистемы Цикл - ДобавитьПодсистемуВДерево(Подсистема,СтрокаПодсистемы, ОбработкаОбъект, ОтборПоИмениТеста); - КонецЦикла; - - Для каждого ОбъектМетаданных из ТекМетаПодсистема.Состав цикл - Если Найти(ОбъектМетаданных.ПолноеИмя(), "Обработка."+ОтборПоИмениТеста) = 1 Тогда - СтрокаТеста = ПодчиненныеСтроки(СтрокаПодсистемы).Добавить(); - СтрокаТеста.Имя = ОбъектМетаданных.Имя; - СтрокаТеста.Путь = "Метаданные."+СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), "Обработка.", "Обработки."); - СтрокаТеста.ТипСтроки = мЗначенияТиповСтроки.ТестовыйСлучай; - ИначеЕсли Найти(ОбъектМетаданных.ПолноеИмя(), "Отчет."+ОтборПоИмениТеста) = 1 Тогда - СтрокаТеста = ПодчиненныеСтроки(СтрокаПодсистемы).Добавить(); - СтрокаТеста.Имя = ОбъектМетаданных.Имя; - СтрокаТеста.Путь = "Метаданные."+СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), "Отчет.", "Отчеты."); - СтрокаТеста.ТипСтроки = мЗначенияТиповСтроки.ТестовыйСлучайОтчет; - КонецЕсли; - КонецЦикла; - - Если ПодчиненныеСтроки(СтрокаПодсистемы).Количество() = 0 Тогда - ПодчиненныеСтроки(РодительскаяСтрока).Удалить(СтрокаПодсистемы); - КонецЕсли; - -КонецФункции - -Функция ПодчиненныеСтроки(СтрокаДерева, РезЭтоСтрокаДереваУФ = Ложь) Экспорт - РезЭтоСтрокаДереваУФ = ЭтоСтрокаДереваУФ(СтрокаДерева); - Если Не РезЭтоСтрокаДереваУФ Тогда - Строки = СтрокаДерева.Строки; - Иначе - Строки = СтрокаДерева.ПолучитьЭлементы(); - КонецЕсли; - Возврат Строки; -КонецФункции - -Функция ЭтоСтрокаДереваУФ(СтрокаДерева) - Рез = Ложь; - Если ТипЗнч(СтрокаДерева) = Тип("СтрокаДереваЗначений") ИЛИ ТипЗнч(СтрокаДерева) = Тип("ДеревоЗначений") Тогда - ИначеЕсли ТипЗнч(СтрокаДерева) = Тип("ДанныеФормыЭлементДерева") ИЛИ ТипЗнч(СтрокаДерева) = Тип("ДанныеФормыДерево") Тогда - Рез = Истина; - КонецЕсли; - Возврат Рез; -КонецФункции -//} - -// { API нового формата -Процедура СлучайныйПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Истина; - КонецЕсли; -КонецПроцедуры - -Процедура СтрогийПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь; - КонецЕсли; -КонецПроцедуры - -Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт - ТекущаяГруппа = КэшПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, КэшПостроительДереваТестов.ИконкиУзловДереваТестов.Группа); - ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения; - КонтейнерТестов.Строки.Добавить(ТекущаяГруппа); -КонецПроцедуры - -Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт - Элемент = КэшПостроительДереваТестов.СоздатьЭлемент(ЗагружаемыйПуть, ИмяМетода, Представление); - Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда - Элемент.Параметры = Параметры; - КонецЕсли; - Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда - ТекущаяГруппа.Строки.Добавить(Элемент); - Иначе - КонтейнерТестов.Строки.Добавить(Элемент); - КонецЕсли; - - Возврат Элемент; -КонецФункции - -Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыТеста = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыТеста.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыТеста; -КонецФункции -// } API нового формата - -// { Helpers -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - ИЛИ Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции -// } Helpers - -мЗначенияТиповСтроки = Новый Структура; -мЗначенияТиповСтроки.Вставить("КаталогТестов", 0); -мЗначенияТиповСтроки.Вставить("ТестовыйСлучай", 1); -мЗначенияТиповСтроки.Вставить("ТестовыйСлучайОтчет", 7); -мЗначенияТиповСтроки.Вставить("ТестовыйМетод", 2); -мЗначенияТиповСтроки.Вставить("Подсистема", 3); -мЗначенияТиповСтроки.Вставить("Ошибка", 9); -мЗначенияТиповСтроки = Новый ФиксированнаяСтруктура(мЗначенияТиповСтроки); diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" deleted file mode 100644 index 870f82efd..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" deleted file mode 100644 index 6140d8764..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" +++ /dev/null @@ -1,28 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ЗагрузчикИзПодсистемКонфигурации - - true - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Полное имя браузера тестов</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" deleted file mode 100644 index 8defe6981..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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" +++ /dev/null @@ -1,409 +0,0 @@ -&НаКлиенте -Перем ПостроительДереваТестов; -&НаКлиенте -Перем ЗагружаемыйПуть; - -&НаКлиенте -Перем КонтейнерТестов; -&НаКлиенте -Перем ТекущаяГруппа; - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Loader interface - -&НаКлиенте -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - - ВыбратьПутьИнтерактивноРаботаСОкном(КонтекстЯдра); - -КонецФункции - -&НаКлиенте -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов; - - СтруктураМетаданных = СтруктураМетаданныхПоПереданномуПути(Путь); - ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); - ДеревоТестов = Неопределено; - ОбработатьОбъектМетаданных(СтруктураМетаданных, ДеревоТестов); - Возврат ДеревоТестов; -КонецФункции - -&НаКлиенте -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - Перем Контекст; - Если ЭтоПутьККлиентскомуКонтексту(Путь) Тогда - Контекст = ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь); - Иначе - Контекст = ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь); - КонецЕсли; - - Возврат Контекст; -КонецФункции -// } Loader interface - -&НаКлиенте -Функция ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь) - ИдентификаторКонтекста = ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Сред(Путь, СтрДлина(ПрефиксПутейСФормами()) + 1)); - ОписаниеКонтекста = ПолучитьФорму("Обработка." + ИдентификаторКонтекста + ".Форма", , ЭтаФорма, Новый УникальныйИдентификатор); - КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ИдентификаторКонтекста, Истина); - - Возврат ОписаниеКонтекста; -КонецФункции - -&НаКлиенте -Функция ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь) - ИдентификаторКонтекста = ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Путь); - ОписаниеКонтекста = КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ИдентификаторКонтекста, Истина); - - Возврат ОписаниеКонтекста; -КонецФункции - -&НаСервере -Функция СтруктураМетаданныхПоПереданномуПути(Путь) - ОбъектМетаданных = ЭтотОбъектНаСервере().ПолучитьОбъектМетаданныхПоПути(Путь); - Если ЭтоПодсистема(ОбъектМетаданных.ПолноеИмя()) Тогда - СтруктураМетаданных = СтруктураМетаданныхПодсистемы(ОбъектМетаданных); - Иначе - СтруктураМетаданных = СтрокаДереваМетаданных(ОбъектМетаданных); - КонецЕсли; - Возврат СтруктураМетаданных; -КонецФункции - -&НаСервере -Функция СтруктураМетаданныхПодсистемы(Подсистема) - СтруктураМетаданных = СтрокаДереваМетаданных(Подсистема); - Для Каждого ПодчиненнаяПодсистема Из Подсистема.Подсистемы Цикл - СтруктураМетаданных.Строки.Добавить(СтруктураМетаданныхПодсистемы(ПодчиненнаяПодсистема)); - КонецЦикла; - - Для Каждого ДочернееМетаданное Из Подсистема.Состав цикл - Если Метаданные.Обработки.Найти(ДочернееМетаданное.Имя) <> Неопределено - ИЛИ Метаданные.Отчеты.Найти(ДочернееМетаданное.Имя) <> Неопределено Тогда - СтруктураМетаданныхОбработки = СтрокаДереваМетаданных(ДочернееМетаданное); - СтруктураМетаданных.Строки.Добавить(СтруктураМетаданныхОбработки); - КонецЕсли; - КонецЦикла; - - Возврат СтруктураМетаданных; -КонецФункции - -&НаСервере -Функция СтрокаДереваМетаданных(ОбъектМетаданных) - СтрокаДерева = Новый Структура(); - СтрокаДерева.Вставить("Имя", ОбъектМетаданных.Имя); - СтрокаДерева.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя()); - СтрокаДерева.Вставить("Строки", Новый Массив); - - Возврат СтрокаДерева; -КонецФункции - -&НаКлиенте -Функция ОбработатьОбъектМетаданных(СтруктураМетаданных, ДеревоТестов) - Если ЭтоПодсистема(СтруктураМетаданных.ПолноеИмя) Тогда - Контейнер = ЗагрузитьПодсистему(СтруктураМетаданных, ДеревоТестов); - Иначе - Контейнер = ЗагрузитьОбработку(СтруктураМетаданных, ДеревоТестов); - КонецЕсли; - - Возврат Контейнер; -КонецФункции - -&НаКлиентеНаСервереБезКонтекста -Функция ЭтоПодсистема(ПолноеИмяОбъектаМетаданных) - Возврат (Найти(НРег(ПолноеИмяОбъектаМетаданных), НРег("Подсистема")) > 0); -КонецФункции - -&НаКлиенте -Функция ЗагрузитьПодсистему(СтруктураМетаданных, ДеревоТестов) - - Контейнер = ПостроительДереваТестов.СоздатьКонтейнер(СтруктураМетаданных.Имя, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Подсистема); - Для Каждого ПодчиненноеМетаданное Из СтруктураМетаданных.Строки Цикл - Если ЭтоПодсистема(ПодчиненноеМетаданное.ПолноеИмя) Тогда - ЗагрузитьПодсистему(ПодчиненноеМетаданное, Контейнер); - Иначе - ЗагрузитьОбработку(ПодчиненноеМетаданное, Контейнер); - КонецЕсли; - КонецЦикла; - - Если ДеревоТестов = Неопределено Тогда - ДеревоТестов = Контейнер; - ИначеЕсли Контейнер.Строки.Количество() > 0 Тогда - ДеревоТестов.Строки.Добавить(Контейнер); - КонецЕсли; - -КонецФункции - -&НаКлиенте -Функция ЗагрузитьОбработку(СтруктураМетаданных, ДеревоТестов) - ЗагружаемыйПуть = СтрЗаменить("Метаданные." + СтруктураМетаданных.ПолноеИмя, ".Обработка.", ".Обработки."); - ЗагружаемыйПуть = СтрЗаменить(ЗагружаемыйПуть, ".Отчет.", ".Отчеты."); - Контейнер = ЗагрузитьОбработкуНаСервере(ЗагружаемыйПуть); - КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьОбработкуНаКлиенте(СтруктураМетаданных); - Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда - Контейнер.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки); - КонецЕсли; - Если ДеревоТестов = Неопределено Тогда - ДеревоТестов = Контейнер; - ИначеЕсли Контейнер.Строки.Количество() > 0 Тогда - ДеревоТестов.Строки.Добавить(Контейнер); - КонецЕсли; - -КонецФункции - -&НаСервере -Функция ЗагрузитьОбработкуНаСервере(Путь) - КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере(); - - ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов"); - ЗагрузчикФайла = КонтекстЯдра.СоздатьОбъектПлагина("ЗагрузчикФайла"); - - ДеревоТестов = ЭтотОбъектНаСервере().ЗагрузитьПуть(Путь, ПостроительДереваТестов, ЗагрузчикФайла); - - Возврат ДеревоТестов; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьОбработкуНаКлиенте(СтруктураМетаданных) - ФормаОбработки = ПолучитьФорму(СтруктураМетаданных.ПолноеИмя + ".Форма"); - Попытка - Контейнер = ЗагрузитьТестыВНовомФормате_НаКлиенте(ФормаОбработки); - Исключение - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда - ВызватьИсключение; - Иначе - Контейнер = ЗагрузитьТестыВСтаромФормате_НаКлиенте(ФормаОбработки); - КонецЕсли; - КонецПопытки; - Возврат Контейнер; -КонецФункции - -&НаКлиенте -Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки) - ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов"); - - Возврат ЭтоНовыйФорматОбработки; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьТестыВНовомФормате_НаКлиенте(ФормаОбработки) - КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ПрефиксПутейСФормами() + СтрЗаменить(ЗагружаемыйПуть, "Метаданные.Обработки.", ""), ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма); - ФормаОбработки.ЗаполнитьНаборТестов(ЭтаФорма); - Результат = КонтейнерТестов; - КонтейнерТестов = Неопределено; - ТекущаяГруппа = Неопределено; - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьТестыВСтаромФормате_НаКлиенте(ФормаОбработки) - Попытка - СписокТестов = ФормаОбработки.ПолучитьСписокТестов(); - Исключение - Описание = ОписаниеОшибки(); - Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда - ВызватьИсключение "Старый формат тестов в обработке тестов <"+ЗагружаемыйПуть+">."+Символы.ПС+ - "Метод ПолучитьСписокТестов сейчас не принимает параметров"; - КонецЕсли; - - Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда - ВызватьИсключение Описание; - КонецЕсли; - КонецПопытки; - СлучайныйПорядокВыполнения = Истина; - Попытка - СлучайныйПорядокВыполнения = ФормаОбработки.РазрешенСлучайныйПорядокВыполненияТестов(); - Исключение - КонецПопытки; - - Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ПрефиксПутейСФормами() + СтрЗаменить(ЗагружаемыйПуть, "Обработка.", ""), ПрефиксПутейСФормами() + ЗагружаемыйПуть, СлучайныйПорядокВыполнения); - Контейнер.ИконкаУзла = ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма; - - Возврат Контейнер; -КонецФункции - -&НаСервере -Функция ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Путь) - ОбъектМетаданных = ЭтотОбъектНаСервере().ПолучитьОбъектМетаданныхПоПути(Путь); - - Возврат ОбъектМетаданных.Имя; -КонецФункции - -&НаСервере -Функция ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина) - КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере(); - - ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов"); - ЗагрузчикФайла = КонтекстЯдра.СоздатьОбъектПлагина("ЗагрузчикФайла"); - - Контейнер = ЭтотОбъектНаСервере().ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, ЗагрузчикФайла, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения); - - Возврат Контейнер; -КонецФункции - -&НаКлиенте -Функция ЭтоПутьККлиентскомуКонтексту(Путь) - ПрефиксПутейСФормами = ПрефиксПутейСФормами(); - Результат = (Найти(Путь, ПрефиксПутейСФормами) = 1); - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция ПрефиксПутейСФормами() - Возврат "УпрФорма # "; -КонецФункции - -// { API нового формата -&НаКлиенте -Процедура СлучайныйПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Истина; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура СтрогийПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт - ТекущаяГруппа = ПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Группа); - ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения; - КонтейнерТестов.Строки.Добавить(ТекущаяГруппа); -КонецПроцедуры - -&НаКлиенте -Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт - Элемент = ПостроительДереваТестов.СоздатьЭлемент(ПрефиксПутейСФормами() + ЗагружаемыйПуть, ИмяМетода, Представление); - Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда - Элемент.Параметры = Параметры; - КонецЕсли; - Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда - ТекущаяГруппа.Строки.Добавить(Элемент); - Иначе - КонтейнерТестов.Строки.Добавить(Элемент); - КонецЕсли; - - Возврат Элемент; -КонецФункции - -&НаКлиенте -Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыТеста = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыТеста.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыТеста; -КонецФункции -// } API нового формата - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции - -&НаКлиенте -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - Или Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции -// } Helpers - -// { Подсистема конфигурации xUnitFor1C - -&НаСервере -Функция ПолучитьКонтекстЯдраНаСервере() - - // Получаем доступ к серверному контексту обработки с использованием - // полного имени метаданных браузера тестов. Иначе нет возможности получить - // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте. - // При передаче на сервер клиентский контекст теряется. - КонтекстЯдра = Неопределено; - МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов); - Если НЕ МетаданныеЯдра = Неопределено - И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "Обработка", "Обработки"); - Выполнить("КонтекстЯдра = " + ИмяОбработкиКонекстаЯдра + ".Создать()"); - Иначе - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ВнешняяОбработка", "ВнешниеОбработки"); - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ".", Символы.ПС); - МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1); - ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2); - Выполнить("КонтекстЯдра = " + МенеджерОбъектов + ".Создать("""+ИмяОбъекта+""")"); - КонецЕсли; - - Возврат КонтекстЯдра; - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C - -// { Вспомогательные методы - -&НаКлиенте -Функция ВыбратьПутьИнтерактивноРаботаСОкном(КонтекстЯдра) Экспорт - - ПараметрыОткрытия = Новый Структура("ОтборПоИмениТеста", ""); - ИмяФормыВыбораПодсистемыУФ = СтрЗаменить(ЭтаФорма.ИмяФормы, "УправляемаяФорма", "ФормаВыбораПодсистемУФ"); - - ОткрытьФорму(ИмяФормыВыбораПодсистемыУФ, - ПараметрыОткрытия, ЭтаФорма,,,, - Новый ОписаниеОповещения("ВыбратьПутьИнтерактивноРаботаСОкномЗавершение", ЭтаФорма, КонтекстЯдра), - РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); - -КонецФункции - -&НаКлиенте -Процедура ВыбратьПутьИнтерактивноРаботаСОкномЗавершение(Результат, ДополнительныеПараметры) Экспорт - - КонтекстЯдра = ДополнительныеПараметры; - Описание = ОписаниеПлагина(КонтекстЯдра.Объект.ТипыПлагинов); - КонтекстЯдра.ЗагрузитьТесты(Описание.Идентификатор, Результат, КонтекстЯдра); - -КонецПроцедуры - -// } Вспомогательные методы \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244.xml" deleted file mode 100644 index 3a6977d1d..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - ФормаВыбораПодсистемУФ - - - ru - Форма выбора подсистем УФ - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form.xml" deleted file mode 100644 index c1670c24a..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form.xml" +++ /dev/null @@ -1,167 +0,0 @@ - -
- - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Выберите тестовый случай или всю подсистему</v8:content> - </v8:item> - - 55 - LockOwnerWindow - false - useIfNecessary - - - ПриОткрытии - ПриСозданииНаСервере - - - - Tree - true - true - true - ДеревоПодсистем - ДеревоПодсистем.ТипСтроки - - RowsPicture.png - false - - None - None - None - - - false - - - - - ДеревоПодсистем - SearchStringRepresentation - - - - - - - ДеревоПодсистем - ViewStatusRepresentation - - - - - - - ДеревоПодсистем - SearchControl - - - - - - ДеревоПодсистемВыбор - - - - ДеревоПодсистем.Имя - EnterOnInput - - - - - ДеревоПодсистем.Путь - false - EnterOnInput - - - - - ДеревоПодсистем.ТипСтроки - false - EnterOnInput - - - - -
-
- - - - cfg:DataProcessorObject.ЗагрузчикИзПодсистемКонфигурации - - true - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дерево подсистем</v8:content> - </v8:item> - - - v8:ValueTree - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Имя</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Путь</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Тип строки</v8:content> - </v8:item> - - - xs:decimal - - 10 - 0 - Any - - - - - - - - - - xs:string - - 0 - Variable - - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274/RowsPicture.png" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274/RowsPicture.png" deleted file mode 100644 index 4b74f63e9..000000000 Binary files "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Items/\320\224\320\265\321\200\320\265\320\262\320\276\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274/RowsPicture.png" and /dev/null differ diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Module.bsl" deleted file mode 100644 index e6fa7d841..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/Ext/Form/Module.bsl" +++ /dev/null @@ -1,26 +0,0 @@ - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - РеквизитФормыВЗначение("Объект").ЗаполнитьДеревоПодсистем(ДеревоПодсистем, Параметры.ОтборПоИмениТеста); -КонецПроцедуры - -&НаКлиенте -Процедура ПриОткрытии(Отказ) - РазвернутьСтрокиДерева(Истина); -КонецПроцедуры - -&НаКлиенте -Процедура ДеревоПодсистемВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) - СтандартнаяОбработка = Ложь; - Закрыть(ДеревоПодсистем.НайтиПоИдентификатору(ВыбраннаяСтрока).Путь); -КонецПроцедуры - -&НаКлиенте -Процедура РазвернутьСтрокиДерева(ВключаяПодчиненные = Ложь) - - Для каждого СтрокаДерева из ДеревоПодсистем.ПолучитьЭлементы() Цикл - Идентификатор = СтрокаДерева.ПолучитьИдентификатор(); - Элементы.ДеревоПодсистем.Развернуть(Идентификатор, ВключаяПодчиненные); - КонецЦикла; - -КонецПроцедуры diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213.xml" deleted file mode 100644 index cef9cf693..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - ФормаВыбораПодсистемы - - - ru - Форма выбора подсистемы - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/Ext/Form.bin" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/Ext/Form.bin" deleted file mode 100644 index 7384a1dfe..000000000 Binary files "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/Ext/Form.bin" and /dev/null differ diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.xml" deleted file mode 100644 index 6cef3fd5e..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - b5d91c1a-edbb-4345-848a-49e704b023e3 - b1291eac-2edb-473c-9de4-782d7101206c - - - bc9e5f2d-1cb5-49be-900a-46f730aa3eab - d6c375b6-eddd-4b67-9664-fa6fcd7edb20 - - - - ЗагрузчикКаталога - - - ru - Загрузчик каталога - - - - false - DataProcessor.ЗагрузчикКаталога.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Ext/ObjectModule.bsl" deleted file mode 100644 index 2ca21a91b..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,88 +0,0 @@ -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Загрузчик); - Результат.Вставить("Идентификатор", "ЗагрузчикКаталога"); - Результат.Вставить("Представление", "Загрузить тесты из каталога файловой системы"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -// { Loader interface -#Если ТолстыйКлиентОбычноеПриложение Тогда -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - ДиалогВыбораКаталога = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); - ДиалогВыбораКаталога.Каталог = ТекущийПуть; - - Результат = ""; - Если ДиалогВыбораКаталога.Выбрать() Тогда - Результат = ДиалогВыбораКаталога.Каталог; - КонецЕсли; - - Возврат Результат; -КонецФункции -#КонецЕсли - -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - КаталогДляЗагрузки = Новый Файл(Путь); - Если Не (КаталогДляЗагрузки.Существует() И КаталогДляЗагрузки.ЭтоКаталог()) Тогда - ВызватьИсключение "Для загрузки передан не каталог файловой системы <" + КаталогДляЗагрузки.ПолноеИмя + ">"; - КонецЕсли; - ДеревоТестов = ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки); - ДеревоТестов.Имя = КаталогДляЗагрузки.ПолноеИмя; - - Возврат ДеревоТестов; -КонецФункции - -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - Обработка = ЗагрузчикФайла.ПолучитьКонтекстПоПути(КонтекстЯдра, Путь); - - Возврат Обработка; -КонецФункции -// } Loader interface - -Функция ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки) - КонтейнерКаталога = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьКонтейнер(КаталогДляЗагрузки.Имя); - НайденныеФайлы = НайтиФайлы(КаталогДляЗагрузки.ПолноеИмя, "*", Ложь); - Для каждого Файл из НайденныеФайлы Цикл - #Если Клиент Тогда - ОбработкаПрерыванияПользователя(); - #КонецЕсли - Если Файл.ЭтоКаталог() Тогда - КонтейнерДочернегоКаталога = ЗагрузитьКаталог(КонтекстЯдра, Файл); - Если КонтейнерДочернегоКаталога.Строки.Количество() > 0 Тогда - КонтейнерКаталога.Строки.Добавить(КонтейнерДочернегоКаталога); - КонецЕсли; - ИначеЕсли НРег(Файл.Расширение) = ".epf" - ИЛИ НРег(Файл.Расширение) = ".erf" Тогда - КонтейнерФайла = ЗагрузитьФайл(КонтекстЯдра, Файл); - Если ЗначениеЗаполнено(КонтейнерФайла) И КонтейнерФайла.Строки.Количество() > 0 Тогда - КонтейнерКаталога.Строки.Добавить(КонтейнерФайла); - КонецЕсли; - КонецЕсли; - КонецЦикла; - - Возврат КонтейнерКаталога; -КонецФункции - -Функция ЗагрузитьФайл(КонтекстЯдра, ФайлОбработки) - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - Попытка - ДеревоТестовФайла = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработки.ПолноеИмя); - Результат = ДеревоТестовФайла; - Если ДеревоТестовФайла.Строки.Количество() > 0 Тогда - Результат = ДеревоТестовФайла.Строки[0]; - КонецЕсли; - - Исключение - Сообщить("Не удалось загрузить файл " + ФайлОбработки.ПолноеИмя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Результат = Неопределено; - КонецПопытки; - - Возврат Результат; -КонецФункции diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 8e5f87731..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index ab9e4dee6..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ЗагрузчикКаталога - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index e46f19bca..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,110 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Loader interface -&НаКлиенте -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - - ДиалогВыбораКаталога = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); - ДиалогВыбораКаталога.Каталог = ТекущийПуть; - - ДиалогВыбораКаталога.Показать(Новый ОписаниеОповещения("ВыбратьПутьИнтерактивноЗавершение", ЭтаФорма, - Новый Структура("ДиалогВыбораКаталога, КонтекстЯдра", ДиалогВыбораКаталога, КонтекстЯдра))); - -КонецФункции - -&НаКлиенте -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - КаталогДляЗагрузки = Новый Файл(Путь); - Если Не (КаталогДляЗагрузки.Существует() И КаталогДляЗагрузки.ЭтоКаталог()) Тогда - ВызватьИсключение "Для загрузки передан не каталог файловой системы <" + КаталогДляЗагрузки.ПолноеИмя + ">"; - КонецЕсли; - ДеревоТестов = ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки); - ДеревоТестов.Имя = КаталогДляЗагрузки.ПолноеИмя; - - Возврат ДеревоТестов; -КонецФункции - -&НаКлиенте -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - Контекст = ЗагрузчикФайла.ПолучитьКонтекстПоПути(КонтекстЯдра, Путь); - - Возврат Контекст; -КонецФункции -// } Loader interface - -&НаКлиенте -Функция ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки) - КонтейнерКаталога = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьКонтейнер(КаталогДляЗагрузки.Имя); - НайденныеФайлы = НайтиФайлы(КаталогДляЗагрузки.ПолноеИмя, "*", Ложь); - Для каждого Файл из НайденныеФайлы Цикл - ОбработкаПрерыванияПользователя(); - Если Файл.ЭтоКаталог() Тогда - КонтейнерДочернегоКаталога = ЗагрузитьКаталог(КонтекстЯдра, Файл); - Если КонтейнерДочернегоКаталога.Строки.Количество() > 0 Тогда - КонтейнерКаталога.Строки.Добавить(КонтейнерДочернегоКаталога); - КонецЕсли; - ИначеЕсли НРег(Файл.Расширение) = ".epf" - ИЛИ НРег(Файл.Расширение) = ".erf" Тогда - КонтейнерФайла = ЗагрузитьФайл(КонтекстЯдра, Файл); - Если ЗначениеЗаполнено(КонтейнерФайла) И КонтейнерФайла.Строки.Количество() > 0 Тогда - КонтейнерКаталога.Строки.Добавить(КонтейнерФайла); - КонецЕсли; - КонецЕсли; - КонецЦикла; - - Возврат КонтейнерКаталога; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьФайл(КонтекстЯдра, ФайлОбработки) - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - Попытка - ДеревоТестовФайла = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработки.ПолноеИмя); - Результат = ДеревоТестовФайла; - Если ДеревоТестовФайла.Строки.Количество() > 0 Тогда - Результат = ДеревоТестовФайла.Строки[0]; - КонецЕсли; - - Исключение - Сообщить("Не удалось загрузить файл " + ФайлОбработки.ПолноеИмя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Результат = Неопределено; - КонецПопытки; - - Возврат Результат; -КонецФункции - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers - -// { Вспомогательные методы -&НаКлиенте -Процедура ВыбратьПутьИнтерактивноЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт - - ДиалогВыбораКаталога = ДополнительныеПараметры.ДиалогВыбораКаталога; - КонтекстЯдра = ДополнительныеПараметры.КонтекстЯдра; - - Если (ВыбранныеФайлы <> Неопределено) Тогда - Результат = ДиалогВыбораКаталога.Каталог; - КонецЕсли; - - Описание = ОписаниеПлагина(КонтекстЯдра.Объект.ТипыПлагинов); - КонтекстЯдра.ЗагрузитьТесты(Описание.Идентификатор, Результат); - -КонецПроцедуры -// } Вспомогательные методы \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.xml" deleted file mode 100644 index eea9f2f42..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 39cb1910-05d4-4795-a83b-1fede024da26 - 4660d451-74c5-48db-852a-88d87210b7b3 - - - 2ca7359f-ef20-42a2-a9d1-9d02eae50298 - e4e947f1-ea6a-4607-849c-29182fc7eff7 - - - - ЗагрузчикФайла - - - ru - Загрузчик файла - - - - false - DataProcessor.ЗагрузчикФайла.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Ext/ObjectModule.bsl" deleted file mode 100644 index f2e7189da..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,271 +0,0 @@ -Перем КэшПостроительДереваТестов; -Перем ЗагружаемыйПуть; - -Перем КонтейнерТестов; -Перем ТекущаяГруппа; - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Загрузчик); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "Загрузить тесты из файлов"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры - -// } Plugin interface - -// { Loader interface -#Если ТолстыйКлиентОбычноеПриложение Тогда -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - ДиалогВыбораТеста = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); - ДиалогВыбораТеста.Фильтр = "Обработка-тест (*.epf)|*.epf|Отчет-тест (*.erf)|*.erf|Все файлы|*"; - ДиалогВыбораТеста.МножественныйВыбор = Истина; - ДиалогВыбораТеста.ПроверятьСуществованиеФайла = Истина; - ДиалогВыбораТеста.ПолноеИмяФайла = ТекущийПуть; - - Результат = Новый ТекстовыйДокумент; - Если ДиалогВыбораТеста.Выбрать() Тогда - Для каждого ПолноеИмяФайла Из ДиалогВыбораТеста.ВыбранныеФайлы Цикл - Результат.ДобавитьСтроку(ПолноеИмяФайла); - КонецЦикла; - КонецЕсли; - Текст = Результат.ПолучитьТекст(); - - Возврат Лев(Текст, СтрДлина(Текст) - 1); -КонецФункции -#КонецЕсли - -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); - ДеревоТестов = Неопределено; - Для Сч = 1 По СтрЧислоСтрок(Путь) Цикл - ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, Сч)); - - Если ДеревоТестов = Неопределено Тогда - ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь); - КонецЕсли; - - КонтейнерСТестамиОбработки = ЗагрузитьФайл(ПостроительДереваТестов, ФайлОбработки); - Если КонтейнерСТестамиОбработки.Строки.Количество() > 0 Тогда - ДеревоТестов.Строки.Добавить(КонтейнерСТестамиОбработки); - КонецЕсли; - КонецЦикла; - - Возврат ДеревоТестов; -КонецФункции - -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - ФайлОбработки = Новый Файл(Путь); - - Обработка = ПолучитьКонтекстОбработки(ФайлОбработки); - - Возврат Обработка; -КонецФункции -// } Loader interface - -Функция ПолучитьКонтекстОбработки(ФайлОбработки) - - ЭтоФайлОтчета = (НРег(ФайлОбработки.Расширение) = ".erf"); - - Попытка - Если ЭтоФайлОтчета Тогда - Обработка = ВнешниеОтчеты.Создать(ФайлОбработки.ИмяБезРасширения, Ложь); - Иначе - Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ИмяБезРасширения, Ложь); - КонецЕсли; - Исключение - ПроверитьКорректностьФайла(ФайлОбработки); - - Если ЭтоФайлОтчета Тогда - Обработка = ВнешниеОтчеты.Создать(ФайлОбработки.ПолноеИмя, Ложь); - Иначе - Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ПолноеИмя, Ложь); - КонецЕсли; - КонецПопытки; - Возврат Обработка; - -КонецФункции - -Процедура ПроверитьКорректностьФайла(Файл) - Если Не Файл.Существует() Тогда - ВызватьИсключение "Переданный файл не существует файл <" + Файл.ПолноеИмя + ">"; - КонецЕсли; - Если Файл.ЭтоКаталог() Тогда - ВызватьИсключение "Передан каталог вместо файла <" + Файл.ПолноеИмя + ">"; - КонецЕсли; -КонецПроцедуры - -Функция ЗагрузитьФайл(ПостроительДереваТестов, ФайлОбработки) Экспорт - Обработка = ПолучитьКонтекстОбработки(ФайлОбработки); - Попытка - Контейнер = ЗагрузитьТестыВНовомФормате(ПостроительДереваТестов, Обработка, ФайлОбработки); - Исключение - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда - ВызватьИсключение; - Иначе - Контейнер = ЗагрузитьТестыВСтаромФормате(ПостроительДереваТестов, Обработка, ФайлОбработки); - КонецЕсли; - КонецПопытки; - - Возврат Контейнер; -КонецФункции - -Функция ЗагрузитьТестыВНовомФормате(ПостроительДереваТестов, Обработка, ФайлОбработки) - ЗагружаемыйПуть = ФайлОбработки.ПолноеИмя; - КэшПостроительДереваТестов = ПостроительДереваТестов; - Если НРег(ФайлОбработки.Расширение) = ".erf" Тогда - ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Отчет; - Иначе - ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Обработка; - КонецЕсли; - КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.ИмяБезРасширения, ИконкаУзла); - Обработка.ЗаполнитьНаборТестов(ЭтотОбъект); - Результат = КонтейнерТестов; - КонтейнерТестов = Неопределено; - ТекущаяГруппа = Неопределено; - - Возврат Результат; -КонецФункции - -Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки) - ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов"); - - Возврат ЭтоНовыйФорматОбработки; -КонецФункции - -Функция ЗагрузитьТестыВСтаромФормате(ПостроительДереваТестов, Обработка, ФайлОбработки) - Попытка - СписокТестов = Обработка.ПолучитьСписокТестов(); - Исключение - Описание = ОписаниеОшибки(); - Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда - ВызватьИсключение "Старый формат тестов в обработке тестов <"+ФайлОбработки.ПолноеИмя+">."+Символы.ПС+ - "Метод ПолучитьСписокТестов сейчас не принимает параметров"; - КонецЕсли; - - Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда - ВызватьИсключение Описание; - КонецЕсли; - КонецПопытки; - - СлучайныйПорядокВыполнения = Истина; - Попытка - СлучайныйПорядокВыполнения = Обработка.РазрешенСлучайныйПорядокВыполненияТестов(); - Исключение - КонецПопытки; - Результат = ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, СписокТестов, ФайлОбработки.ИмяБезРасширения, ФайлОбработки.ПолноеИмя, СлучайныйПорядокВыполнения); - - Возврат Результат; -КонецФункции - -Функция ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина) Экспорт - Контейнер = ПостроительДереваТестов.СоздатьКонтейнер(ИмяКонтейнера, ПостроительДереваТестов.ИконкиУзловДереваТестов.Обработка); - Контейнер.СлучайныйПорядокВыполнения = СлучайныйПорядокВыполнения; - Если ЗначениеЗаполнено(СписокТестов) И ТипЗнч(СписокТестов) = Тип("Массив") Тогда - Для каждого Тест Из СписокТестов Цикл - Элемент = Неопределено; - Если ТипЗнч(Тест) = Тип("Строка") Тогда - Элемент = ПостроительДереваТестов.СоздатьЭлемент(Путь, Тест); - ИначеЕсли ТипЗнч(Тест) = Тип("Структура") Тогда - ИмяМетода = Тест.ИмяТеста; - Представление = Неопределено; - Если Не Тест.Свойство("ПредставлениеТеста", Представление) Тогда - Представление = ИмяМетода; - КонецЕсли; - Элемент = ПостроительДереваТестов.СоздатьЭлемент(Путь, ИмяМетода, Представление); - Параметр = Неопределено; - Если Тест.Свойство("Параметр", Параметр) Тогда - Элемент.Параметры.Добавить(Параметр); - КонецЕсли; - Иначе - ВызватьИсключение "Тест может быть описан либо строкой либо структурой"; - КонецЕсли; - Если ЗначениеЗаполнено(Элемент) Тогда - Контейнер.Строки.Добавить(Элемент); - КонецЕсли; - КонецЦикла; - КонецЕсли; - - Возврат Контейнер; -КонецФункции - -// { API нового формата -Процедура СлучайныйПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Истина; - КонецЕсли; -КонецПроцедуры - -Процедура СтрогийПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь; - КонецЕсли; -КонецПроцедуры - -Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт - ТекущаяГруппа = КэшПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, КэшПостроительДереваТестов.ИконкиУзловДереваТестов.Группа); - ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения; - КонтейнерТестов.Строки.Добавить(ТекущаяГруппа); -КонецПроцедуры - -Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт - Элемент = КэшПостроительДереваТестов.СоздатьЭлемент(ЗагружаемыйПуть, ИмяМетода, Представление); - Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда - Элемент.Параметры = Параметры; - КонецЕсли; - Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда - ТекущаяГруппа.Строки.Добавить(Элемент); - Иначе - КонтейнерТестов.Строки.Добавить(Элемент); - КонецЕсли; - - Возврат Элемент; -КонецФункции - -Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыТеста = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыТеста.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыТеста; -КонецФункции -// } API нового формата - -// { Helpers -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - ИЛИ Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции -// } Helpers diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 3b0c27c37..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 2f2b50e10..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,28 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ЗагрузчикФайла - - true - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Полное имя браузера тестов</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 7ea532bfe..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,393 +0,0 @@ -&НаКлиенте -Перем КэшПостроительДереваТестов; -&НаКлиенте -Перем ЗагружаемыйПуть; - -&НаКлиенте -Перем КонтейнерТестов; -&НаКлиенте -Перем ТекущаяГруппа; - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Loader interface -&НаКлиенте -Функция ВыбратьПутьИнтерактивно(КонтекстЯдра, ТекущийПуть = "") Экспорт - - ДиалогВыбораТеста = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); - ДиалогВыбораТеста.Фильтр = "Обработка-тест (*.epf)|*.epf|Отчет-тест (*.erf)|*.erf|Все файлы|*"; - ДиалогВыбораТеста.МножественныйВыбор = Истина; - ДиалогВыбораТеста.ПроверятьСуществованиеФайла = Истина; - ДиалогВыбораТеста.ПолноеИмяФайла = ТекущийПуть; - - Результат = Новый ТекстовыйДокумент; - ДиалогВыбораТеста.Показать(Новый ОписаниеОповещения("ВыбратьПутьИнтерактивноЗавершение", ЭтаФорма, - Новый Структура("ДиалогВыбораТеста, Результат, КонтекстЯдра", ДиалогВыбораТеста, Результат, КонтекстЯдра))); - -КонецФункции - -&НаКлиенте -Функция Загрузить(КонтекстЯдра, Путь) Экспорт - - ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов; - - ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); - ДеревоТестов = Неопределено; - Для Сч = 1 По СтрЧислоСтрок(Путь) Цикл - ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, Сч)); - ПроверитьКорректностьФайла(ФайлОбработки); - - Если ДеревоТестов = Неопределено Тогда - ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь); - КонецЕсли; - - КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки); - - КонтейнерССервернымиТестамиОбработки = ЗагрузитьФайлНаСервере(ФайлОбработки.ПолноеИмя); - КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки); - Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда - КонтейнерССервернымиТестамиОбработки.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки); - КонецЕсли; - Если КонтейнерССервернымиТестамиОбработки.Строки.Количество() > 0 Тогда - ДеревоТестов.Строки.Добавить(КонтейнерССервернымиТестамиОбработки); - КонецЕсли; - КонецЦикла; - - Возврат ДеревоТестов; -КонецФункции - -&НаКлиенте -Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт - Перем Контекст; - Если ЭтоПутьККлиентскомуКонтексту(Путь) Тогда - Контекст = ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь); - Иначе - Контекст = ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь); - КонецЕсли; - - Возврат Контекст; -КонецФункции -// } Loader interface - -&НаКлиенте -Функция ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь) - ПрефиксПутейСФормами = ПрефиксПутейСФормами(); - ФайлОбработки = Новый Файл(Сред(Путь, СтрДлина(ПрефиксПутейСФормами) + 1)); - ПроверитьКорректностьФайла(ФайлОбработки); - КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки); - Контекст = ПолучитьФорму("ВнешняяОбработка." + ФайлОбработки.ИмяБезРасширения + ".Форма", , ЭтаФорма, Новый УникальныйИдентификатор); - Если ПеременнаяСодержитСвойство(Контекст, "ПутьКФайлуПолный") Тогда - Контекст.ПутьКФайлуПолный = ФайлОбработки.ПолноеИмя; - КонецЕсли; - - Возврат Контекст; -КонецФункции - -&НаКлиенте -Функция ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь) - ФайлОбработки = Новый Файл(Путь); - ПроверитьКорректностьФайла(ФайлОбработки); - КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки); - Контекст = КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ФайлОбработки.ИмяБезРасширения); - - Возврат Контекст; -КонецФункции - -&НаКлиенте -Процедура ПроверитьКорректностьФайла(Файл) - Если Не Файл.Существует() Тогда - ВызватьИсключение "Переданный файл не существует файл <" + Файл.ПолноеИмя + ">"; - КонецЕсли; - Если Файл.ЭтоКаталог() Тогда - ВызватьИсключение "Передан каталог вместо файла <" + Файл.ПолноеИмя + ">"; - КонецЕсли; -КонецПроцедуры - -&НаСервере -Функция ЗагрузитьФайлНаСервере(ПолныйПутьКОбработкеНаКлиенте) - - КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере(); - - ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов"); - ФайлОбработки = Новый Файл(ПолныйПутьКОбработкеНаКлиенте); - Контейнер = ЭтотОбъектНаСервере().ЗагрузитьФайл(ПостроительДереваТестов, ФайлОбработки); - - Возврат Контейнер; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки) - - ЭтоФайлОтчета = (НРег(ФайлОбработки.Расширение) = ".erf"); - - Если ЭтоФайлОтчета Тогда - ФормаОбработки = ПолучитьФорму("ВнешнийОтчет." + ФайлОбработки.ИмяБезРасширения + ".Форма"); - Иначе - ФормаОбработки = ПолучитьФорму("ВнешняяОбработка." + ФайлОбработки.ИмяБезРасширения + ".Форма"); - КонецЕсли; - - Попытка - Контейнер = ЗагрузитьТестыВНовомФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки); - Исключение - ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда - ВызватьИсключение; - Иначе - Контейнер = ЗагрузитьТестыВСтаромФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки); - КонецЕсли; - КонецПопытки; - - Возврат Контейнер; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьТестыВНовомФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки) - ЗагружаемыйПуть = ФайлОбработки.ПолноеИмя; - КэшПостроительДереваТестов = ПостроительДереваТестов; - КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ПрефиксПутейСФормами() + ФайлОбработки.ИмяБезРасширения, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма); - ФормаОбработки.ЗаполнитьНаборТестов(ЭтаФорма); - Результат = КонтейнерТестов; - КонтейнерТестов = Неопределено; - ТекущаяГруппа = Неопределено; - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки) - ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов"); - - Возврат ЭтоНовыйФорматОбработки; -КонецФункции - -&НаКлиенте -Функция ЗагрузитьТестыВСтаромФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки) - Попытка - СписокТестов = ФормаОбработки.ПолучитьСписокТестов(); - Исключение - Описание = ОписаниеОшибки(); - Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда - ВызватьИсключение "Старый формат тестов в обработке тестов <"+ФайлОбработки.ПолноеИмя+">."+Символы.ПС+ - "Метод ПолучитьСписокТестов сейчас не принимает параметров"; - КонецЕсли; - - Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда - ВызватьИсключение Описание; - КонецЕсли; - КонецПопытки; - СлучайныйПорядокВыполнения = Истина; - Попытка - СлучайныйПорядокВыполнения = ФормаОбработки.РазрешенСлучайныйПорядокВыполненияТестов(); - Исключение - КонецПопытки; - - ИмяКонтейнера = ПрефиксПутейСФормами() + ФайлОбработки.ИмяБезРасширения; - Путь = ПрефиксПутейСФормами() + ФайлОбработки.ПолноеИмя; - Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения); - Контейнер.ИконкаУзла = ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма; - - Возврат Контейнер; -КонецФункции - -&НаСервере -Функция ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина) - - КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере(); - - ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов"); - Контейнер = ЭтотОбъектНаСервере().ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения); - - Возврат Контейнер; -КонецФункции - -&НаКлиенте -Функция ЭтоПутьККлиентскомуКонтексту(Путь) - ПрефиксПутейСФормами = ПрефиксПутейСФормами(); - Результат = (Найти(Путь, ПрефиксПутейСФормами) = 1); - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция ПрефиксПутейСФормами() - Возврат "УпрФорма # "; -КонецФункции - -// { API нового формата -&НаКлиенте -Процедура СлучайныйПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Истина; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура СтрогийПорядокВыполнения() Экспорт - Если ЗначениеЗаполнено(КонтейнерТестов) Тогда - КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт - ТекущаяГруппа = КэшПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, КэшПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Группа); - ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения; - КонтейнерТестов.Строки.Добавить(ТекущаяГруппа); -КонецПроцедуры - -&НаКлиенте -Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт - Элемент = КэшПостроительДереваТестов.СоздатьЭлемент(ПрефиксПутейСФормами() + ЗагружаемыйПуть, ИмяМетода, Представление); - Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда - Элемент.Параметры = Параметры; - КонецЕсли; - Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда - ТекущаяГруппа.Строки.Добавить(Элемент); - Иначе - КонтейнерТестов.Строки.Добавить(Элемент); - КонецЕсли; - - Возврат Элемент; -КонецФункции - -&НаКлиенте -Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт - ВсеПараметры = Новый Массив; - ВсеПараметры.Добавить(Парам1); - ВсеПараметры.Добавить(Парам2); - ВсеПараметры.Добавить(Парам3); - ВсеПараметры.Добавить(Парам4); - ВсеПараметры.Добавить(Парам5); - ВсеПараметры.Добавить(Парам6); - ВсеПараметры.Добавить(Парам7); - ВсеПараметры.Добавить(Парам8); - ВсеПараметры.Добавить(Парам9); - - ИндексСПоследнимПараметром = 0; - Для Сч = 0 По ВсеПараметры.ВГраница() Цикл - Индекс = ВсеПараметры.ВГраница() - Сч; - Если ВсеПараметры[Индекс] <> Неопределено Тогда - ИндексСПоследнимПараметром = Индекс; - Прервать; - КонецЕсли; - КонецЦикла; - - ПараметрыТеста = Новый Массив; - Для Сч = 0 По ИндексСПоследнимПараметром Цикл - ПараметрыТеста.Добавить(ВсеПараметры[Сч]); - КонецЦикла; - - Возврат ПараметрыТеста; -КонецФункции -// } API нового формата - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции - -&НаКлиенте -Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода) - Результат = Ложь; - Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0 - ИЛИ Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда - Результат = Истина; - КонецЕсли; - - Возврат Результат; -КонецФункции -// } Helpers - -// Универсальная функция для проверки наличия -// свойств у значения любого типа данных -// Переменные: -// 1. Переменная - переменная любого типа, -// для которой необходимо проверить наличие свойства -// 2. ИмяСвойства - переменная типа "Строка", -// содержащая искомое свойства -// -&НаКлиентеНаСервереБезКонтекста -Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) - // Инициализируем структуру для теста - // с ключом (значение переменной "ИмяСвойства") - // и значением произвольного GUID'а - GUIDПроверка = Новый УникальныйИдентификатор; - СтруктураПроверка = Новый Структура; - СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка); - // Заполняем созданную структуру из переданного - // значения переменной - ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная); - // Если значение для свойства структуры осталось - // NULL, то искомое свойство не найдено, - // и наоборот. - Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда - Возврат Ложь; - Иначе - Возврат Истина; - КонецЕсли; -КонецФункции - -&НаСервере -Функция ПолучитьКонтекстЯдраНаСервере() - - // Получаем доступ к серверному контексту обработки с использованием - // полного имени метаданных браузера тестов. Иначе нет возможности получить - // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте. - // При передаче на сервер клиентский контекст теряется. - КонтекстЯдра = Неопределено; - МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов); - Если НЕ МетаданныеЯдра = Неопределено - И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "Обработка", "Обработки"); - Выполнить("КонтекстЯдра = " + ИмяОбработкиКонекстаЯдра + ".Создать()"); - Иначе - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ВнешняяОбработка", "ВнешниеОбработки"); - ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ".", Символы.ПС); - МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1); - ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2); - Выполнить("КонтекстЯдра = " + МенеджерОбъектов + ".Создать("""+ИмяОбъекта+""")"); - КонецЕсли; - - Возврат КонтекстЯдра; - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C - -// { Вспомогательные методы -&НаКлиенте -Процедура ВыбратьПутьИнтерактивноЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт - - ДиалогВыбораТеста = ДополнительныеПараметры.ДиалогВыбораТеста; - Результат = ДополнительныеПараметры.Результат; - КонтекстЯдра = ДополнительныеПараметры.КонтекстЯдра; - - Если (ВыбранныеФайлы <> Неопределено) Тогда - Для каждого ПолноеИмяФайла Из ДиалогВыбораТеста.ВыбранныеФайлы Цикл - Результат.ДобавитьСтроку(ПолноеИмяФайла); - КонецЦикла; - КонецЕсли; - Текст = Результат.ПолучитьТекст(); - - Текст = Лев(Текст, СтрДлина(Текст) - 1); - - Описание = ОписаниеПлагина(КонтекстЯдра.Объект.ТипыПлагинов); - КонтекстЯдра.ЗагрузитьТесты(Описание.Идентификатор, Текст); - -КонецПроцедуры -// } Вспомогательные методы \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" deleted file mode 100644 index 8be63d09e..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 5fab865a-4384-4e3d-b8c2-8f9c92c65caa - cb644038-fe47-438d-806d-93c31854abcb - - - 25ff583c-aaa2-4a53-8947-5c46c6f40b13 - 9eafe761-cfc9-43c9-974a-f4858337649e - - - - ЗапросыИзБД - - - ru - Запросы из БД - - - - false - DataProcessor.ЗапросыИзБД.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/ObjectModule.bsl" deleted file mode 100644 index 707628c56..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,260 +0,0 @@ -//TODO раскомментировать утверждения во всех методах после решения Архитектура взаимодействия плагинов/утилит между собой #568 https://github.com/xDrivenDevelopment/xUnitFor1C/issues/568 - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "ЗапросыИзБД"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -//{ Методы проверки таблиц метаданных -Функция ПолучитьКоличествоДокументовПоОтбору(видДокумента, Дата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, структураОтбора = Неопределено) Экспорт - //ПроверитьЗаполненность(типМетаданного, "типМетаданного"); - //ПроверитьЗаполненность(видМетаданного, "видМетаданного"); - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ "+Количество+" - | * - |ИЗ - | "+типМетаданного+"."+видМетаданного+" КАК Таб - |ГДЕ - | Истина - |"; - - Если ЗначениеЗаполнено(структураОтбора) Тогда - Для каждого ключЗначение Из структураОтбора Цикл - имяРеквизита = ключЗначение.Ключ; - Запрос.Текст = Запрос.Текст + " И Таб."+имяРеквизита+" = &"+имяРеквизита+" "; - Запрос.УстановитьПараметр(имяРеквизита, ключЗначение.Значение); - КонецЦикла; - КонецЕсли; - - РезультатЗапроса = Запрос.Выполнить(); - ТЗ = РезультатЗапроса.Выгрузить(); - - Возврат ТЗ; -КонецФункции - -//} diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 5a3f06ae6..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index d52777a3c..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ЗапросыИзБД - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index c8ecf2899..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,19 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.xml" deleted file mode 100644 index 0f112afd9..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.xml" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - a64d7630-e34d-44c3-96a7-2f74e52fb59b - e0ef74f8-574b-4d5c-83ee-02531ff65b1e - - - 53d7acbc-cc5a-4622-b402-a4fa191e451f - 0b3276c2-2aff-41f0-b1d4-9a6fe5b75fb2 - - - - КомандныйФайл - - - ru - Командный файл - - - - false - DataProcessor.КомандныйФайл.Form.Форма - - false - - - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Ext/ObjectModule.bsl" deleted file mode 100644 index 2d51cdf26..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,74 +0,0 @@ - -////////////////////////////////////////////////////////////////////////// -// Работа с командными файлами - -//#Использовать tempfiles - -Перем мЗаписьТекста; -Перем мПуть; - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "КомандныйФайл"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -Функция Открыть(Знач Путь = "") Экспорт - - Если ПустаяСтрока(Путь) Тогда - мПуть = ПолучитьИмяВременногоФайла(".bat"); - //мПуть = ВременныеФайлы.НовоеИмяФайла(".bat"); - Иначе - мПуть = Путь; - КонецЕсли; - - мЗаписьТекста = Новый ЗаписьТекста(мПуть, "cp866"); - - Возврат мПуть; - -КонецФункции - -Процедура Добавить(Знач Команда) Экспорт - ПроверитьЧтоФайлОткрыт(); - мЗаписьТекста.ЗаписатьСтроку(Команда); -КонецПроцедуры - -Функция ВыполнитьКоманду() Экспорт - - Закрыть(); - - ПутьПакетногоФайла = мПуть; - - СтрокаЗапуска = "cmd.exe /C """ + ПутьПакетногоФайла + """"; - - КодВозврата = ""; - ЗапуститьПриложение(СтрокаЗапуска,, Истина, КодВозврата); - - Возврат КодВозврата; - -КонецФункции - -Функция Закрыть() Экспорт - - Если мЗаписьТекста <> Неопределено Тогда - мЗаписьТекста.Закрыть(); - мЗаписьТекста = Неопределено; - КонецЕсли; - - Возврат мПуть; - -КонецФункции - -Процедура ПроверитьЧтоФайлОткрыт() - Если мЗаписьТекста = Неопределено Тогда - Открыть(); - КонецЕсли; -КонецПроцедуры diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index b3cc3bb8f..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 87cf36438..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.КомандныйФайл - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index c8ecf2899..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,19 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270.xml" deleted file mode 100644 index 30b7a1a14..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270.xml" +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - 91794e78-eca2-4d8d-9525-5eb66cd4a3d5 - af3aa04f-2b24-44b8-8358-3e7a109d4784 - - - 3a637603-c3b3-49b4-9034-812a5f1a0247 - a23e0fbb-a44b-4e58-9a35-889fbe9fb549 - - - - ПарсерКоманднойСтроки - - - ru - Парсер командной строки - - - - false - DataProcessor.ПарсерКоманднойСтроки.Form.Форма - - false - - - - - - - ВозможныеКлючи - - - ru - Возможные ключи - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Ext/ObjectModule.bsl" deleted file mode 100644 index d2b7e09f5..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,145 +0,0 @@ -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - МетаданныеПлагина = Метаданные(); - Результат.Вставить("Идентификатор", МетаданныеПлагина.Имя); - Результат.Вставить("Представление", МетаданныеПлагина.Синоним); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - НачальнаяНастройка(); -КонецПроцедуры -// } Plugin interface - -Процедура НачальнаяНастройка() Экспорт - ВозможныеКлючи = ВозможныеКлючиКоманднойСтроки(); -КонецПроцедуры - -Функция Разобрать(СтрокаПараметров) Экспорт - Результат = Новый Структура; - - МассивСтрокПараметров = РазложитьСтрокуВМассивПодстрок(СтрокаПараметров, ";"); - Для каждого СтрокаПараметра Из МассивСтрокПараметров Цикл - КлючИПараметры = РаспознатьКлючИЕгоПараметры(СтрокаПараметра); - Если КлючИПараметры <> Неопределено Тогда - Результат.Вставить(КлючИПараметры.Ключ, КлючИПараметры.Параметры); - КонецЕсли; - КонецЦикла; - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) Экспорт - - Результат = Новый Массив; - - // для обеспечения обратной совместимости - Если ПропускатьПустыеСтроки = Неопределено Тогда - ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); - Если ПустаяСтрока(Строка) Тогда - Если Разделитель = " " Тогда - Результат.Добавить(""); - КонецЕсли; - Возврат Результат; - КонецЕсли; - КонецЕсли; - // - - Позиция = Найти(Строка, Разделитель); - Пока Позиция > 0 Цикл - Подстрока = Лев(Строка, Позиция - 1); - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда - Результат.Добавить(Подстрока); - КонецЕсли; - Строка = Сред(Строка, Позиция + СтрДлина(Разделитель)); - Позиция = Найти(Строка, Разделитель); - КонецЦикла; - - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда - Результат.Добавить(Строка); - КонецЕсли; - - Возврат Результат; - -КонецФункции - -Функция РаспознатьКлючИЕгоПараметры(Знач СтрокаПараметра) - Результат = Неопределено; - СтрокаПараметра = НРег(СокрЛП(СтрокаПараметра)); - Разделитель = " "; - КлючКоманднойСтроки = ПолучитьКлюч(СтрокаПараметра, Разделитель); - Если ЗначениеЗаполнено(КлючКоманднойСтроки) И ЭтоДопустимыйКлюч(КлючКоманднойСтроки) Тогда - ПараметрыКлюча = ВыделитьПараметрыКлюча(СтрокаПараметра, Разделитель); - Результат = Новый Структура("Ключ, Параметры", КлючКоманднойСтроки, ПараметрыКлюча); - КонецЕсли; - - Возврат Результат; -КонецФункции - -Функция ПолучитьКлюч(СтрокаПараметра, Разделитель) - МассивПодстрок = РазложитьСтрокуВМассивПодстрок(СтрокаПараметра, Разделитель); - КлючКоманднойСтроки = МассивПодстрок[0]; - - Возврат КлючКоманднойСтроки; -КонецФункции - -Функция ВыделитьПараметрыКлюча(Знач СтрокаПараметра, Разделитель); - Результат = Новый Массив; - Кавычка = """"; - ВнутриКавычки = Ложь; - - ИскатьПодстроки = Истина; - Пока ИскатьПодстроки Цикл - ПозицияРазделителя = Найти(СтрокаПараметра, Разделитель); - ПозицияКавычки = Найти(СтрокаПараметра, Кавычка); - ВнутриКавычки = (ПозицияКавычки > 0) И (ПозицияРазделителя > ПозицияКавычки) Или (ПозицияРазделителя = 0); - Позиция = ?(ВнутриКавычки, ПозицияКавычки, ПозицияРазделителя); - ИскатьПодстроки = Позиция > 0; - Если ИскатьПодстроки Тогда - Если ВнутриКавычки Тогда - СтрокаПараметра = Сред(СтрокаПараметра, Позиция + СтрДлина(Кавычка)); - ПозицияКонца = Найти(СтрокаПараметра, Кавычка); - Подстрока = Лев(СтрокаПараметра, ПозицияКонца - 1); - СтрокаПараметра = Сред(СтрокаПараметра, ПозицияКонца + СтрДлина(Кавычка)); - Иначе - Подстрока = Лев(СтрокаПараметра, Позиция - 1); - СтрокаПараметра = Сред(СтрокаПараметра, Позиция + СтрДлина(Разделитель)); - КонецЕсли; - Результат.Добавить(Подстрока); - КонецЕсли; - КонецЦикла; - - Если Не ПустаяСтрока(СтрокаПараметра) Тогда - Результат.Добавить(СтрокаПараметра); - КонецЕсли; - - Результат.Удалить(0); - - Возврат Новый ФиксированныйМассив(Результат); -КонецФункции - -Функция ВозможныеКлючиКоманднойСтроки() - ВозможныеКлючиКоманднойСтроки = Новый Структура; - ВозможныеКлючиКоманднойСтроки.Вставить("xddRun", "xddRun"); - ВозможныеКлючиКоманднойСтроки.Вставить("xddShutdown", "xddShutdown"); - ВозможныеКлючиКоманднойСтроки.Вставить("xddReport", "xddReport"); - - Возврат Новый ФиксированнаяСтруктура(ВозможныеКлючиКоманднойСтроки); -КонецФункции - -Функция ЭтоДопустимыйКлюч(Знач Ключ) - Результат = Истина; - ВозможныеКлючиКоманднойСтроки = ВозможныеКлючиКоманднойСтроки(); - Попытка - ПредставлениеКлюча = ВозможныеКлючиКоманднойСтроки[Ключ]; - Исключение - Результат = Ложь; - КонецПопытки; - - Возврат Результат; -КонецФункции - -НачальнаяНастройка(); diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 29915e231..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 4ee0eb18e..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ПарсерКоманднойСтроки - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index dc9c9f503..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,29 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -&НаКлиенте -Функция Разобрать(СтрокаПараметров) Экспорт - Возврат РазобратьНаСервере(СтрокаПараметров); -КонецФункции - -&НаСервере -Функция РазобратьНаСервере(СтрокаПараметров) - Возврат ЭтотОбъектНаСервере().Разобрать(СтрокаПараметров); -КонецФункции - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262.xml" deleted file mode 100644 index 3d49678a0..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262.xml" +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - f61c3304-384c-4760-9816-fc6f841ba34b - 9d336a8a-8389-402b-b725-c58bbc63cc07 - - - 8ddeef82-83e4-4ee3-b16d-4b7a0764bd75 - 430c556b-a880-405b-812f-690953191b37 - - - - ПостроительДереваТестов - - - ru - Построитель дерева тестов - - - - false - DataProcessor.ПостроительДереваТестов.Form.Форма - - false - - - - - - - ИконкиУзловДереваТестов - - - ru - Иконки узлов дерева тестов - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - ТипыУзловДереваТестов - - - ru - Типы узлов дерева тестов - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Ext/ObjectModule.bsl" deleted file mode 100644 index 377977a4a..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,72 +0,0 @@ - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "Построитель дерева тестов"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - НачальнаяНастройка(); -КонецПроцедуры -// } Plugin interface - -Процедура НачальнаяНастройка() Экспорт - ЭтотОбъект.ИконкиУзловДереваТестов = ИконкиУзловДереваТестов(); - ЭтотОбъект.ТипыУзловДереваТестов = ТипыУзловДереваТестов(); -КонецПроцедуры - -Функция ИконкиУзловДереваТестов() - Результат = Новый Структура; - Результат.Вставить("Папка", 0); - Результат.Вставить("Обработка", 1); - Результат.Вставить("Функция", 2); - Результат.Вставить("Подсистема", 3); - Результат.Вставить("Форма", 4); - Результат.Вставить("ФункцияНаФорме", 5); - Результат.Вставить("Группа", 6); - Результат.Вставить("Отчет", 7); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Функция ТипыУзловДереваТестов() - Результат = Новый Структура; - Результат.Вставить("Контейнер", "Контейнер"); - Результат.Вставить("Элемент", "Элемент"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Функция СоздатьКонтейнер(ИмяКонтейнера, ИконкаУзла = Неопределено) Экспорт - Контейнер = Новый Структура; - Контейнер.Вставить("Ключ", Новый УникальныйИдентификатор); - Контейнер.Вставить("Тип", ТипыУзловДереваТестов.Контейнер); - Контейнер.Вставить("Имя", ИмяКонтейнера); - Контейнер.Вставить("Строки", Новый Массив); - Контейнер.Вставить("ИконкаУзла", ?(ИконкаУзла = Неопределено, ИконкиУзловДереваТестов.Папка, ИконкаУзла)); - Контейнер.Вставить("СлучайныйПорядокВыполнения", Истина); - Контейнер.Вставить("Контекст", Неопределено); - - Возврат Контейнер; -КонецФункции - -Функция СоздатьЭлемент(Путь, ИмяМетода, Представление = "", ИконкаУзла = Неопределено) Экспорт - Элемент = Новый Структура; - Элемент.Вставить("Ключ", Новый УникальныйИдентификатор); - Элемент.Вставить("Тип", ТипыУзловДереваТестов.Элемент); - Элемент.Вставить("Путь", Путь); - Элемент.Вставить("ИмяМетода", ИмяМетода); - Элемент.Вставить("Представление", ?(ПустаяСтрока(Представление), ИмяМетода, Представление)); - Элемент.Вставить("ИконкаУзла", ?(ИконкаУзла = Неопределено, ИконкиУзловДереваТестов.Функция, ИконкаУзла)); - Элемент.Вставить("Параметры", Новый Массив); - Элемент.Вставить("ПередЗапускомТеста", "ПередЗапускомТеста"); - Элемент.Вставить("ПослеЗапускаТеста", "ПослеЗапускаТеста"); - - Возврат Элемент; -КонецФункции - -НачальнаяНастройка(); diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 84465f702..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index c15015c31..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.ПостроительДереваТестов - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 3be6f2963..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,39 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -&НаКлиенте -Функция СоздатьКонтейнер(ИмяКонтейнера, ИконкаУзла = Неопределено) Экспорт - Возврат СоздатьКонтейнерНаСервере(ИмяКонтейнера, ИконкаУзла); -КонецФункции - -&НаСервере -Функция СоздатьКонтейнерНаСервере(ИмяКонтейнера, ИконкаУзла) - Возврат ЭтотОбъектНаСервере().СоздатьКонтейнер(ИмяКонтейнера, ИконкаУзла); -КонецФункции - -&НаКлиенте -Функция СоздатьЭлемент(Путь, ИмяМетода, Представление = "", ИконкаУзла = Неопределено) Экспорт - Возврат СоздатьЭлементНаСервере(Путь, ИмяМетода, Представление, ИконкаУзла); -КонецФункции - -&НаСервере -Функция СоздатьЭлементНаСервере(Путь, ИмяМетода, Представление, ИконкаУзла) - Возврат ЭтотОбъектНаСервере().СоздатьЭлемент(Путь, ИмяМетода, Представление, ИконкаУзла); -КонецФункции - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers \ 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.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.xml" deleted file mode 100644 index f26239e1e..000000000 --- "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.xml" +++ /dev/null @@ -1,551 +0,0 @@ - - - - - - b5b2dd06-2a38-4ae3-8df1-3af7302520df - dfb232a5-8b21-4e37-9299-04e0d6af944b - - - 219d2bd2-4b55-4f10-beae-42860bfba8bd - a6611ca0-c2bb-4fc6-9364-e37786c1585a - - - - ПреобразованиеЖурналаДействийПользователя - - - en - User action log convertor - - - ru - Преобразование журнала действий пользователя - - - - false - DataProcessor.ПреобразованиеЖурналаДействийПользователя.Form.DefaultForm - - false - - - - - - - CreatedProcedures - - - en - Created procedures - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - WindowBeingProcessed - - - en - Window being processed - - - ru - Обрабатываемое окно - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - FormBeingProcessed - - - en - Form being processed - - - ru - Обрабатываемая форма - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - WindowClosed - - - en - Window was closed - - - ru - Окно было закрыто - - - - - xs:boolean - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - LastProcessedCommand - - - en - Last processed command - - - ru - Последняя обработанная команда - - - - - xs:string - - 0 - Variable - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - LastProcessedControl - - - en - Last processed control - - - ru - Последний обработанный элемент управления - - - - - xs:string - - 0 - Variable - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - MainProcedureName - - - en - Main procedure name - - - ru - Имя основной процедуры - - - - - xs:string - - 0 - Variable - - - false - - - - false - - false - false - - - ShowError - Items - - - Auto - Auto - - - Auto - - - - - GenerateClientConnectionScript - - - en - Generate client connection script - - - ru - Гененировать код подключения к клиенту - - - - - xs:boolean - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - ScriptVariant - - - ru - Генерировать сценарий в варианте встроенного языка - - - en - 1C:Enterprise script language - - - - - xs:string - - 0 - Variable - - - false - - - - false - - false - false - - - ShowError - Items - - - Auto - Auto - - - Auto - - - - - ConversionVariant - - - en - Convert - - - ru - Преобразовывать - - - - - xs:decimal - - 1 - 0 - Nonnegative - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - SplitScriptIntoProcedures - - - en - Split scenario into procedures by application windows - - - ru - Разбивать результат на процедуры по "границам" окон - - - - - xs:boolean - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - GetFullHierarchy - - - en - Get full object hierarchy - - - ru - Генерировать получение родительских объектов в иерархии - - - - - xs:boolean - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - ObjectSearch - - - en - Object search - - - ru - Поиск объектов - - - - - xs:decimal - - 1 - 0 - Nonnegative - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
DefaultForm
- - - -
-
-
\ 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/Help.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/Ext/Help.xml" deleted file mode 100644 index aaa8b4844..000000000 --- "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/Help.xml" +++ /dev/null @@ -1,4 +0,0 @@ - - - ru - \ 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/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png.png" "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/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png.png" deleted file mode 100644 index de5e79e04..000000000 Binary files "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/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png.png" and /dev/null 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/Ext/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png1.png" "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/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png1.png" deleted file mode 100644 index de5e79e04..000000000 Binary files "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/Help/_files/DataProcessor.UserActionLogConversion.Help.Start.png1.png" and /dev/null 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/Ext/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png.png" "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/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png.png" deleted file mode 100644 index b33e4a642..000000000 Binary files "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/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png.png" and /dev/null 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/Ext/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png1.png" "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/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png1.png" deleted file mode 100644 index b33e4a642..000000000 Binary files "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/Help/_files/DataProcessor.UserActionLogConversion.Help.Stop.png1.png" and /dev/null 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/Ext/Help/ru.html" "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/Help/ru.html" deleted file mode 100644 index bda2a269d..000000000 --- "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/Help/ru.html" +++ /dev/null @@ -1,9 +0,0 @@ - -

Преобразование журнала действий пользователя во встроенный язык

-

Обработка предназначена для преобразования журнала действий пользователя в программу на встроенном языке.

-

Обработка позволяет преобразовывать указанные файлы или непосредственно введённый текст. Выберите нужный вам вариант в переключателе "Преобразовывать".

-

Формирование программы возможно на английском или русском варианте встроенного языка. По умолчанию используется вариант языка используемый в конфигурации. При необходимости сгенерировать программу в другом варианте укажите необходимый в поле "Генерировать сценарий в варианте встроенного языка".

-

В поле "Имя основной процедуры" указывается имя процедуры, которая будет являться точкой входа в сценарий.

-

Если планируется использовать сгенерированную процедуру самостоятельно (например, во внешней обработке), имеется возможность сгенерировать код подключения к тестируемому клиенту, отметив флажок "Генерировать код подключения к клиенту". В противном случае для процедуры будет сформирован параметр ТестируемоеПриложение, в который при вызове будет необходимо передать существующий объект типа ТестируемоеПриложение, который уже установил соединение с тестируемым клиентом.

-

Для упрощения чтения получаемого кода сгенерированная программа разбивается по "границам" окон приложения на подпрограммы. Если отметить флажок "Разбивать результат на процедуры по "границам" окон" будет сформирована одна большая процедура.

-

Отметка флажка "Генерировать получение родительских объектов в иерархии" позволяет при вызове метода какого-либо объекта сгенерировать получение всех родительских тестируемых объектов, которые находятся между текущим тестируемым объектом и формой. Если флажок сброшен - генерируется поиск объектов непосредственно через объект тестируемой формы.

\ 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" deleted file mode 100644 index 937002c4a..000000000 --- "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" +++ /dev/null @@ -1,1282 +0,0 @@ -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" deleted file mode 100644 index bb431bb1a..000000000 --- "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" +++ /dev/null @@ -1,26 +0,0 @@ - - -
- - DefaultForm - - - en - Default form - - - ru - Основная форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ 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" deleted file mode 100644 index 8cd7f7e0d..000000000 --- "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" +++ /dev/null @@ -1,413 +0,0 @@ - -
- Use - useIfNecessary - - false - - - - - - - OnOpen - OnCreateAtServer - FillCheckProcessingAtServer - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Conversion parameters</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Параметры преобразования</v8:content> - </v8:item> - - - - en - Conversion parameters - - - ru - Параметры преобразования - - - Vertical - StrongSeparation - - - - Object.ScriptVariant - true - - - - ScriptVariantOnChange - ScriptVariantClearing - - - - Object.MainProcedureName - - - en - Name of the procedure required for starting the scenario. - - - ru - Имя процедуры, которую необходимо вызвать для запуска сценария. - - - - - - - Object.GenerateClientConnectionScript - - - en - Include the script to establish test client connection into the procedure. - - - ru - Вставлять процедуру код устанавливающий соединение с тестируемым клиентом. - - - Auto - - - - - Object.SplitScriptIntoProcedures - - - en - Split the script scenario into procedures. Each procedure contains actions with a single window. - - - ru - Разделять сценарий на процедуры, в каждой из которых есть только действия относящиеся к одному окну. - - - Auto - - - - - Object.GetFullHierarchy - Auto - - - - - Object.ObjectSearch - Auto - - - - - - - Object.ConversionVariant - Auto - - - - ConversionVariantOnChange - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Source data</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Исходные данные</v8:content> - </v8:item> - - - - en - Source data - - - None - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Source files</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Исходные файлы</v8:content> - </v8:item> - - - - en - Source files - - - ru - Исходные файлы - - - - - - SourceFile - true - true - - - - SourceFileOnStartChoice - SourceFileOnOpen - - - - ResultFile - true - true - - - - ResultFileOnStartChoice - ResultFileOnOpen - - - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Source texts</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Исходные тексты</v8:content> - </v8:item> - - - - en - Source texts - - - ru - Исходные тексты - - - Horizontal - - - - SourceText - - - - - ResultText - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Generate file by text</v8:content> - </v8:item> - - - - ru - Generate file by text - - - Horizontal - - - - SourceText - - - - - ResultFile - true - true - - - - ResultFileOnStartChoice - ResultFileOnOpen - - - - - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Version 1.0.3.3</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Версия 1.0.3.1</v8:content> - </v8:item> - <v8:item> - <v8:lang>sys</v8:lang> - <v8:content>Версия 1.0.3.1</v8:content> - </v8:item> - - - - - - - - - cfg:DataProcessorObject.ПреобразованиеЖурналаДействийПользователя - - true - - Object.SplitScriptIntoProcedures - Object.ScriptVariant - Object.ObjectSearch - Object.MainProcedureName - Object.GetFullHierarchy - Object.GenerateClientConnectionScript - Object.ConversionVariant - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Source file</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Преобразовывать журнал</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - SourceFile - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Result file</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Сохранять результат в</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - ResultFile - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>User action log</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Журнал действий пользователя</v8:content> - </v8:item> - - - d5p1:TextDocument - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Scenario</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Сценарий</v8:content> - </v8:item> - - - d5p1:TextDocument - - - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Convert</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Преобразовать</v8:content> - </v8:item> - - - - en - Convert the user action log into the 1C:Enterprise script scenario - - - ru - Преобразовать журнал действий во встроенный язык - - - - StdPicture.GenerateReport - true - - Convert - TextPicture - - - \ 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" deleted file mode 100644 index 0c40b79b1..000000000 --- "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" +++ /dev/null @@ -1,300 +0,0 @@ - -//////////////////////////////////////////////////////////////////////////////// -// 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" deleted file mode 100644 index 2a307ed68..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index af7ade9a3..000000000 Binary files "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" and /dev/null 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" deleted file mode 100644 index e4face994..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 1cf8a476e..000000000 Binary files "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" and /dev/null 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" deleted file mode 100644 index f7045222e..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 1aee250ab..000000000 Binary files "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" and /dev/null 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" deleted file mode 100644 index 68da6ee80..000000000 --- "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" +++ /dev/null @@ -1,1322 +0,0 @@ - - - - - - 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" deleted file mode 100644 index 82890d07a..000000000 --- "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" +++ /dev/null @@ -1,5446 +0,0 @@ -Перем ТестовыеДанныхДляУдаления; - -Перем МассивИмен; - -Перем МетаданныеОписание Экспорт; -Перем СсылочныеТипы Экспорт; -Перем СоответствиеОбъектовМетаданныхИСсылочныхТипов; - -// массив строк дерева метаданных, имеющих признак Выгружать -Перем СоставПолнойВыгрузки Экспорт; - -Перем мВыгруженныеОбъекты; - -Перем мНаличиеВыгрузкиПодчиненныхОбъектов; -Перем мТипРезультатЗапроса; -Перем мСоответствиеКолонокДвижений; -Перем ОбработанныхКонстант Экспорт; -Перем ОбработанныхНаборовЗаписей Экспорт; -Перем СоставВспомогательнойВыгрузки; - -Перем АнглийскоеСоответствие; - - -Функция Версия() Экспорт - Возврат "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" deleted file mode 100644 index a6c2ddd4f..000000000 --- "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" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ 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" deleted file mode 100644 index 5bc67f154..000000000 --- "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" +++ /dev/null @@ -1,926 +0,0 @@ - -
- false - useIfNecessary - - false - - - - - - - - - ПриСозданииНаСервере - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Группа настройки</v8:content> - </v8:item> - - - - ru - Группа настройки - - - Horizontal - None - false - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Группа страницы</v8:content> - </v8:item> - - - - ru - Группа страницы - - - - - - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Metadata</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Метаданные</v8:content> - </v8:item> - - - - ru - Группа метаданные - - - - - - Horizontal - - - - Объект.ВыгружатьКод - Auto - - - - - Объект.ВыгружатьСсылку - Auto - - - - - Объект.СвязьПоГуид - Auto - - - - - Объект.ТолькоСоздание - Auto - - - - - Объект.ОбменДанными - Auto - - - - - Объект.ВариантВстроенногоЯзыкаАнглийский - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Script variant English</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Язык программирования английский</v8:content> - </v8:item> - - Auto - - - - - - - Horizontal - None - false - - - - Tree - false - false - true - ExpandAllLevels - true - true - Объект.ДеревоМетаданных - Объект.ДеревоМетаданных.ИндексКартинки - - RowsPicture.png - false - - None - None - None - - - false - - - - - - - - ДеревоМетаданных - SearchStringRepresentation - - - - - - - ДеревоМетаданных - ViewStatusRepresentation - - - - - - - ДеревоМетаданных - SearchControl - - - - - - ДеревоМетаданныхПриАктивизацииСтроки - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Группа выбора объектов</v8:content> - </v8:item> - - - - ru - Группа выбора объектов - - - InCell - - - - Объект.ДеревоМетаданных.Выгружать - EnterOnInput - false - true - - - - ДеревоМетаданныхВыгружатьПриИзменении - - - - Объект.ДеревоМетаданных.ПолноеИмяМетаданных - true - EnterOnInput - - - - - - - Объект.ДеревоМетаданных.ВыгружатьПриНеобходимости - Right - EnterOnInput - true - - - - ДеревоМетаданныхВыгружатьПриНеобходимостиПриИзменении - - - -
- - Tree - true - ExpandAllLevels - true - true - Объект.КомпоновщикНастроекКомпоновкиДанных.Settings.Filter - None - None - None - All - false - - - - - - - - - - КомпоновщикОтбор - SearchStringRepresentation - - - - - - - КомпоновщикОтбор - ViewStatusRepresentation - - - - - - - КомпоновщикОтбор - SearchControl - - - - - - КомпоновщикОтборПриОкончанииРедактирования - КомпоновщикОтборПослеУдаления - -
-
-
-
-
- - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Table of data</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Таблица данных</v8:content> - </v8:item> - - - - ru - Группа таблица данных - - - - - - List - true - true - true - Объект.ТаблицаДанных - None - None - None - - - - - - - - - - - ТаблицаДанных - SearchStringRepresentation - - - - - - - ТаблицаДанных - ViewStatusRepresentation - - - - - - - ТаблицаДанных - SearchControl - - - - - - - EnterOnInput - - - - - Объект.ТаблицаДанных.Ссылка - EnterOnInput - - - - ТаблицаДанныхСсылкаПриИзменении - - - - Объект.ТаблицаДанных.Метаданное - EnterOnInput - - - - - Объект.ТаблицаДанных.ИмяПеременной - EnterOnInput - - - - - Объект.ТаблицаДанных.ВыгружатьКод - EnterOnInput - Auto - - - - - Объект.ТаблицаДанных.РежимПоиска - EnterOnInput - - - - - Объект.ТаблицаДанных.РежимСоздания - EnterOnInput - - - - -
-
-
- - - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Users of database</v8:content> - </v8:item> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пользователи ИБ</v8:content> - </v8:item> - - - - ru - Группа пользователи ИБ - - - - - - List - true - true - true - Объект.ПользователиИБ - None - None - None - - - - - - - ПользователиИнфБазы - SearchStringRepresentation - - - - - - - ПользователиИнфБазы - ViewStatusRepresentation - - - - - - - ПользователиИнфБазы - SearchControl - - - - - - - Объект.ПользователиИБ.LineNumber - EnterOnInput - - - - - Объект.ПользователиИБ.Имя - EnterOnInput - - - - - Объект.ПользователиИБ.ПолноеИмя - EnterOnInput - - - - - Объект.ПользователиИБ.Роли - EnterOnInput - - - - - Объект.ПользователиИБ.АутентификацияСтандартная - EnterOnInput - - - - - Объект.ПользователиИБ.АутентификацияОС - EnterOnInput - - - - - Объект.ПользователиИБ.ПользовательОС - EnterOnInput - - - - -
-
-
-
-
- - Top - 4 - true - true - true - Объект.ДополнительныеСвойства - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дополнительные свойства</v8:content> - </v8:item> - - None - None - None - - - - - - - ДополнительныеСвойства - SearchStringRepresentation - - - - - - - ДополнительныеСвойства - ViewStatusRepresentation - - - - - - - ДополнительныеСвойства - SearchControl - - - - - - - Объект.ДополнительныеСвойства.LineNumber - - false - - EnterOnInput - 1 - - - - - Объект.ДополнительныеСвойства.Имя - EnterOnInput - 14 - - - - - Объект.ДополнительныеСвойства.Значение - EnterOnInput - 20 - - - - -
-
-
- - Макет - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Макет данных</v8:content> - </v8:item> - - None - DontShow - true - true - true - true - WhenActive - Enable - true - - - -
- - - - cfg:DataProcessorObject.СериализаторMXL - - true - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Данные для выгрузки</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Выгружать</v8:content> - </v8:item> - - - xs:decimal - - 1 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Выгружать при необходимости</v8:content> - </v8:item> - - - xs:decimal - - 1 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Индекс картинки</v8:content> - </v8:item> - - - xs:decimal - - 2 - 0 - Nonnegative - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Развернут</v8:content> - </v8:item> - - - xs:boolean - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Настройки компоновщика</v8:content> - </v8:item> - - - dcsset:Filter - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Использовать отбор</v8:content> - </v8:item> - - - xs:boolean - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Макет</v8:content> - </v8:item> - - - mxl:SpreadsheetDocument - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дерево метаданных предыдущая строка</v8:content> - </v8:item> - - - - - - - - ДеревоМетаданныхПолноеИмяМетаданных - - - - - Объект.ДеревоМетаданных.ИспользоватьОтбор - Equal - true - - - - - Шрифт - - - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Создать макет данных</v8:content> - </v8:item> - - - - ru - Создать макет данных - - - - StdPicture.DataCompositionSettingsWizard - true - - СоздатьМакетДанных - TextPicture - true - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Сохранить макет данных в файл</v8:content> - </v8:item> - - - - ru - Сохранить макет данных в файл - - - - StdPicture.SaveFile - true - - СохранитьМакетДанныхВФайл - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Протестировать загрузку макета</v8:content> - </v8:item> - - - - ru - Протестировать загрузку макета - - - - StdPicture.Post - true - - ПротестироватьЗагрузкуМакета - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Очистить</v8:content> - </v8:item> - - - - ru - Очистить таблицу данных - - - - StdPicture.Clear - true - - ОчиститьТаблицуДанных - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пересчитать выгружаемые по ссылке</v8:content> - </v8:item> - - - - ru - Пересчитать выгружаемые по ссылке - - - - StdPicture.CheckAll - true - - ПересчитатьВыгружаемыеПоСсылке - TextPicture - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Показать результат отбора</v8:content> - </v8:item> - - - - ru - Показать результат отбора - - - ПоказатьРезультатОтбора - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дополнительные свойства</v8:content> - </v8:item> - - - - ru - Дополнительные свойства - - - ДополнительныеСвойства - - -
\ 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" deleted file mode 100644 index bfa6267fe..000000000 Binary files "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" and /dev/null 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" deleted file mode 100644 index faa586284..000000000 --- "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" +++ /dev/null @@ -1,490 +0,0 @@ - - -// { 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" deleted file mode 100644 index 7ee263131..000000000 --- "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" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
-
\ 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" deleted file mode 100644 index 715929170..000000000 Binary files "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" and /dev/null 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" deleted file mode 100644 index 97b1b1954..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 1b4d6e133..000000000 --- "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" +++ /dev/null @@ -1,971 +0,0 @@ - - - - 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" deleted file mode 100644 index 4d36921f5..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index c2c9a0bf9..000000000 --- "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" +++ /dev/null @@ -1,1706 +0,0 @@ - - - - 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" deleted file mode 100644 index e6732e9ee..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index e7aab2ccb..000000000 --- "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" +++ /dev/null @@ -1,1457 +0,0 @@ - - - - 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" deleted file mode 100644 index 52291b1c1..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 70833130d..000000000 --- "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" +++ /dev/null @@ -1,412 +0,0 @@ - - - - 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" deleted file mode 100644 index 556eff31d..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 787b232ac..000000000 --- "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" +++ /dev/null @@ -1,1005 +0,0 @@ - - - - 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" deleted file mode 100644 index 1ace777be..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 0fb82ba57..000000000 --- "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" +++ /dev/null @@ -1,1016 +0,0 @@ - - - - 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" deleted file mode 100644 index a7f467ee4..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index ade20bb50..000000000 --- "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" +++ /dev/null @@ -1,484 +0,0 @@ - - - - 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" deleted file mode 100644 index f072996a1..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 1569566ad..000000000 --- "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" +++ /dev/null @@ -1,860 +0,0 @@ - - - - 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" deleted file mode 100644 index 96d4f3da9..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 068c93ce3..000000000 --- "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" +++ /dev/null @@ -1,283 +0,0 @@ - - - - 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" deleted file mode 100644 index 2603a6540..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 89e251f05..000000000 --- "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" +++ /dev/null @@ -1,332 +0,0 @@ - - - - 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" deleted file mode 100644 index 1c789c413..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index e955a0611..000000000 --- "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" +++ /dev/null @@ -1,258 +0,0 @@ - - - - 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" deleted file mode 100644 index 697e22503..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 9e0b0212d..000000000 --- "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" +++ /dev/null @@ -1,258 +0,0 @@ - - - - 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" deleted file mode 100644 index 19c22dfd4..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 6bf85f8d2..000000000 --- "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" +++ /dev/null @@ -1,448 +0,0 @@ - - - - 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" deleted file mode 100644 index 5eac5b51c..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index cfdced25c..000000000 --- "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" +++ /dev/null @@ -1,332 +0,0 @@ - - - - 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" deleted file mode 100644 index d051aff78..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index e8abb48a8..000000000 --- "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" +++ /dev/null @@ -1,954 +0,0 @@ - - - - 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" deleted file mode 100644 index ec5d06630..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 6eca0204f..000000000 --- "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" +++ /dev/null @@ -1,334 +0,0 @@ - - - - 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" deleted file mode 100644 index 4f88b818d..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 230f47b28..000000000 --- "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" +++ /dev/null @@ -1,295 +0,0 @@ - - - - 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" deleted file mode 100644 index 10a34be1a..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 26cfb7d4a..000000000 --- "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" +++ /dev/null @@ -1,689 +0,0 @@ - - - - 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" deleted file mode 100644 index dd6e503f6..000000000 --- "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" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ 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" deleted file mode 100644 index 2f61c9170..000000000 --- "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" +++ /dev/null @@ -1,272 +0,0 @@ - - - - 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" deleted file mode 100644 index 3c552da46..000000000 --- "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" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 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" deleted file mode 100644 index 9fa2ab21c..000000000 --- "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" +++ /dev/null @@ -1,1239 +0,0 @@ - -// { 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 Цикл - ПозицияЗакрывающегоТега = Найти(Текст, ""); - Если ПозицияЗакрывающегоТега = 0 Тогда - // Не найден закрывающий тег - вырезаем оставшийся текст. - ПозицияЗакрывающегоТега = СтрДлина(Текст); - КонецЕсли; - Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 9); - ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 9); - Позиция = Найти(Текст, " 0 Цикл - ПозицияЗакрывающегоТега = Найти(Текст, ""); - Если ПозицияЗакрывающегоТега = 0 Тогда - // Не найден закрывающий тег - вырезаем оставшийся текст. - ПозицияЗакрывающегоТега = СтрДлина(Текст); - КонецЕсли; - Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 8); - ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 8); - Позиция = Найти(Текст, " 0 Цикл - Результат = Результат + Лев(ИсходныйТекст, Позиция-1); - Текст = Сред(Текст, Позиция + 1); - ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 1); - Позиция = Найти(Текст, ">"); - Если Позиция > 0 Тогда - Текст = Сред(Текст, Позиция + 1); - ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 1); - КонецЕсли; - Позиция = Найти(Текст, "<"); - КонецЦикла; - Результат = Результат + ИсходныйТекст; - МассивСтрок = РазложитьСтрокуВМассивПодстрок(Результат, Символы.ПС, Истина, Истина); - Возврат СокрЛП(СтрокаИзМассиваПодстрок(МассивСтрок, Символы.ПС)); -КонецФункции - -// Преобразует исходную строку в транслит. -Функция СтрокаЛатиницей(Знач Строка) Экспорт - - Результат = ""; - - Соответствие = СоответствиеКириллицыИЛатиницы(); - - ПредыдущийСимвол = ""; - Для Позиция = 1 По СтрДлина(Строка) Цикл - Символ = Сред(Строка, Позиция, 1); - СимволЛатиницей = Соответствие[НРег(Символ)]; // Поиск соответствия без учета регистра. - Если СимволЛатиницей = Неопределено Тогда - // Другие символы остаются "как есть". - СимволЛатиницей = Символ; - Иначе - Если Символ = ВРег(Символ) Тогда - СимволЛатиницей = ТРег(СимволЛатиницей); // восстанавливаем регистр - КонецЕсли; - КонецЕсли; - Результат = Результат + СимволЛатиницей; - ПредыдущийСимвол = СимволЛатиницей; - КонецЦикла; - - Возврат Результат; -КонецФункции - -// Форматирует строку в соответствии с заданным шаблоном. -// Возможные значения тегов выделения: -// Строка - выделяет строку жирным шрифтом -// Строка -// -// Пример: -// Минимальная версия программы 1.1. Обновите программу. -// -// Возвращаемое значение: -// ФорматированнаяСтрока -Функция ФорматированнаяСтрока(Знач Строка) Экспорт - - СтрокиСВыделением = Новый СписокЗначений; - Пока Найти(Строка, "") <> 0 Цикл - НачалоВыделения = Найти(Строка, ""); - СтрокаДоОткрывающегоТега = Лев(Строка, НачалоВыделения - 1); - СтрокиСВыделением.Добавить(СтрокаДоОткрывающегоТега); - СтрокаПослеОткрывающегоТега = Сред(Строка, НачалоВыделения + 3); - КонецВыделения = Найти(СтрокаПослеОткрывающегоТега, ""); - ВыделенныйФрагмент = Лев(СтрокаПослеОткрывающегоТега, КонецВыделения - 1); - СтрокиСВыделением.Добавить(ВыделенныйФрагмент,, Истина); - СтрокаПослеВыделения = Сред(СтрокаПослеОткрывающегоТега, КонецВыделения + 4); - Строка = СтрокаПослеВыделения; - КонецЦикла; - СтрокиСВыделением.Добавить(Строка); - - СтрокиСоСсылками = Новый СписокЗначений; - Для Каждого ЧастьСтроки Из СтрокиСВыделением Цикл - - Строка = ЧастьСтроки.Значение; - - Если ЧастьСтроки.Пометка Тогда - СтрокиСоСсылками.Добавить(Строка,, Истина); - Продолжить; - КонецЕсли; - - НачалоВыделения = Найти(Строка, ""); - - Ссылка = СокрЛП(Лев(СтрокаПослеОткрывающегоТега, ЗакрывающийТег - 2)); - Если Лев(Ссылка, 1) = """" Тогда - Ссылка = Сред(Ссылка, 2, СтрДлина(Ссылка) - 1); - КонецЕсли; - Если Прав(Ссылка, 1) = """" Тогда - Ссылка = Сред(Ссылка, 1, СтрДлина(Ссылка) - 1); - КонецЕсли; - - СтрокаПослеСсылки = Сред(СтрокаПослеОткрывающегоТега, ЗакрывающийТег + 1); - КонецВыделения = Найти(СтрокаПослеСсылки, ""); - ТекстСсылки = Лев(СтрокаПослеСсылки, КонецВыделения - 1); - СтрокиСоСсылками.Добавить(ТекстСсылки, Ссылка); - - СтрокаПослеВыделения = Сред(СтрокаПослеСсылки, КонецВыделения + 4); - Строка = СтрокаПослеВыделения; - - НачалоВыделения = Найти(Строка, " 0 Тогда - Возврат Неопределено; - КонецЕсли; - ЗнакОтрицательный = Истина; - ИначеЕсли КодСимвола = 41 Тогда // Закрывающая скобка. - Если Не ЗнакОтрицательный Или Результат = 0 Тогда // Не было открывающей скобки или нет числа. - Возврат Неопределено; - КонецЕсли; - // Пропуск (действие не требуется). - ИначеЕсли КодСимвола = 44 Или КодСимвола = 46 Тогда // Запятая или точка. - Если ЗнаковПослеЗапятой <> -1 Тогда - Возврат Неопределено; // Разделитель уже был, следовательно это не число. - КонецЕсли; - ЗнаковПослеЗапятой = 0; // Запуск отсчета знаков после запятой. - ИначеЕсли КодСимвола > 47 И КодСимвола < 58 Тогда // Число. - Если ЗнаковПослеЗапятой <> -1 Тогда - ЗнаковПослеЗапятой = ЗнаковПослеЗапятой + 1; - КонецЕсли; - Число = КодСимвола - 48; - Результат = Результат * 10 + Число; - Иначе - Возврат Неопределено; - КонецЕсли; - КонецЦикла; - - Если ЗнаковПослеЗапятой > 0 Тогда - Результат = Результат / Pow(10, ЗнаковПослеЗапятой); - КонецЕсли; - Если ЗнакОтрицательный Тогда - Результат = -Результат; - КонецЕсли; - - Возврат Результат; -КонецФункции - -// Выполняет преобразование цифры в римскую нотацию. -// -// Параметры -// Цифра - Число - цифра от 0 до 9. -// РимскаяЕдиница, РимскаяПятерка, РимскаяДесятка - Строка - символы, соответствующие римским цифрам. -// -// Возвращаемое значение -// Строка - цифра в римской нотации. -// -// Пример: -// ПреобразоватьЦифруВРимскуюНотацию(7,"I","V","X") = "VII". -// -Функция ПреобразоватьЦифруВРимскуюНотацию(Цифра, РимскаяЕдиница, РимскаяПятерка, РимскаяДесятка) - - РимскаяЦифра=""; - Если Цифра = 1 Тогда - РимскаяЦифра = РимскаяЕдиница - ИначеЕсли Цифра = 2 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 3 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 4 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяПятерка; - ИначеЕсли Цифра = 5 Тогда - РимскаяЦифра = РимскаяПятерка; - ИначеЕсли Цифра = 6 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница; - ИначеЕсли Цифра = 7 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 8 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 9 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяДесятка; - КонецЕсли; - Возврат РимскаяЦифра; - -КонецФункции - -// Вставляет параметры в строку, учитывая, что в параметрах могут использоваться подстановочные слова %1, %2 и т.д. -Функция ПодставитьПараметрыВСтрокуАльтернативныйАлгоритм(Знач СтрокаПодстановки, - Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено, - Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено, - Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) - - Результат = ""; - Позиция = Найти(СтрокаПодстановки, "%"); - Пока Позиция > 0 Цикл - Результат = Результат + Лев(СтрокаПодстановки, Позиция - 1); - СимволПослеПроцента = Сред(СтрокаПодстановки, Позиция + 1, 1); - ПодставляемыйПараметр = ""; - Если СимволПослеПроцента = "1" Тогда - ПодставляемыйПараметр = Параметр1; - ИначеЕсли СимволПослеПроцента = "2" Тогда - ПодставляемыйПараметр = Параметр2; - ИначеЕсли СимволПослеПроцента = "3" Тогда - ПодставляемыйПараметр = Параметр3; - ИначеЕсли СимволПослеПроцента = "4" Тогда - ПодставляемыйПараметр = Параметр4; - ИначеЕсли СимволПослеПроцента = "5" Тогда - ПодставляемыйПараметр = Параметр5; - ИначеЕсли СимволПослеПроцента = "6" Тогда - ПодставляемыйПараметр = Параметр6; - ИначеЕсли СимволПослеПроцента = "7" Тогда - ПодставляемыйПараметр = Параметр7 - ИначеЕсли СимволПослеПроцента = "8" Тогда - ПодставляемыйПараметр = Параметр8; - ИначеЕсли СимволПослеПроцента = "9" Тогда - ПодставляемыйПараметр = Параметр9; - КонецЕсли; - Если ПодставляемыйПараметр = "" Тогда - Результат = Результат + "%"; - СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 1); - Иначе - Результат = Результат + ПодставляемыйПараметр; - СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 2); - КонецЕсли; - Позиция = Найти(СтрокаПодстановки, "%"); - КонецЦикла; - Результат = Результат + СтрокаПодстановки; - - Возврат Результат; -КонецФункции - -Функция СоответствиеКириллицыИЛатиницы() - // Транслитерация, используемая в загранпаспортах 1997-2010. - Соответствие = Новый Соответствие; - Соответствие.Вставить("а","a"); - Соответствие.Вставить("б","b"); - Соответствие.Вставить("в","v"); - Соответствие.Вставить("г","g"); - Соответствие.Вставить("д","d"); - Соответствие.Вставить("е","e"); - Соответствие.Вставить("ё","e"); - Соответствие.Вставить("ж","zh"); - Соответствие.Вставить("з","z"); - Соответствие.Вставить("и","i"); - Соответствие.Вставить("й","y"); - Соответствие.Вставить("к","k"); - Соответствие.Вставить("л","l"); - Соответствие.Вставить("м","m"); - Соответствие.Вставить("н","n"); - Соответствие.Вставить("о","o"); - Соответствие.Вставить("п","p"); - Соответствие.Вставить("р","r"); - Соответствие.Вставить("с","s"); - Соответствие.Вставить("т","t"); - Соответствие.Вставить("у","u"); - Соответствие.Вставить("ф","f"); - Соответствие.Вставить("х","kh"); - Соответствие.Вставить("ц","ts"); - Соответствие.Вставить("ч","ch"); - Соответствие.Вставить("ш","sh"); - Соответствие.Вставить("щ","shch"); - Соответствие.Вставить("ъ",""""); - Соответствие.Вставить("ы","y"); - Соответствие.Вставить("ь",""); // пропускается - Соответствие.Вставить("э","e"); - Соответствие.Вставить("ю","yu"); - Соответствие.Вставить("я","ya"); - - Возврат Соответствие; -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// УСТАРЕВШИЕ ПРОЦЕДУРЫ И ФУНКЦИИ - -// Устарела. Следует использовать СтрокаИзМассиваПодстрок. -// -// Объединяет строки из массива в строку с разделителями. -// -// Параметры: -// Массив - Массив - массив строк которые необходимо объединить в одну строку; -// Разделитель - Строка - любой набор символов, который будет использован в качестве разделителя. -// -// Возвращаемое значение: -// Строка - строка с разделителями. -// -Функция ПолучитьСтрокуИзМассиваПодстрок(Массив, Разделитель = ",") Экспорт - - // Возвращаемое значение функции. - Результат = ""; - - Для Каждого Элемент Из Массив Цикл - - Подстрока = ?(ТипЗнч(Элемент) = Тип("Строка"), Элемент, Строка(Элемент)); - - РазделительПодстрок = ?(ПустаяСтрока(Результат), "", Разделитель); - - Результат = Результат + РазделительПодстрок + Подстрока; - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// } Функции работы со строками 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/Forms/\320\244\320\276\321\200\320\274\320\260.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/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 85c609cf1..000000000 --- "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/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ 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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 573bed731..000000000 --- "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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.СтроковыеУтилиты - - true - - - \ 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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index b8115f777..000000000 --- "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/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,1274 +0,0 @@ - -// { 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 Цикл - ПозицияЗакрывающегоТега = Найти(Текст, ""); - Если ПозицияЗакрывающегоТега = 0 Тогда - // Не найден закрывающий тег - вырезаем оставшийся текст. - ПозицияЗакрывающегоТега = СтрДлина(Текст); - КонецЕсли; - Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 9); - ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 9); - Позиция = Найти(Текст, " 0 Цикл - ПозицияЗакрывающегоТега = Найти(Текст, ""); - Если ПозицияЗакрывающегоТега = 0 Тогда - // Не найден закрывающий тег - вырезаем оставшийся текст. - ПозицияЗакрывающегоТега = СтрДлина(Текст); - КонецЕсли; - Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 8); - ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 8); - Позиция = Найти(Текст, " 0 Цикл - Результат = Результат + Лев(ИсходныйТекст, Позиция-1); - Текст = Сред(Текст, Позиция + 1); - ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 1); - Позиция = Найти(Текст, ">"); - Если Позиция > 0 Тогда - Текст = Сред(Текст, Позиция + 1); - ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 1); - КонецЕсли; - Позиция = Найти(Текст, "<"); - КонецЦикла; - Результат = Результат + ИсходныйТекст; - МассивСтрок = РазложитьСтрокуВМассивПодстрок(Результат, Символы.ПС, Истина, Истина); - Возврат СокрЛП(СтрокаИзМассиваПодстрок(МассивСтрок, Символы.ПС)); -КонецФункции - -// Преобразует исходную строку в транслит. -&НаКлиенте -Функция СтрокаЛатиницей(Знач Строка) Экспорт - - Результат = ""; - - Соответствие = СоответствиеКириллицыИЛатиницы(); - - ПредыдущийСимвол = ""; - Для Позиция = 1 По СтрДлина(Строка) Цикл - Символ = Сред(Строка, Позиция, 1); - СимволЛатиницей = Соответствие[НРег(Символ)]; // Поиск соответствия без учета регистра. - Если СимволЛатиницей = Неопределено Тогда - // Другие символы остаются "как есть". - СимволЛатиницей = Символ; - Иначе - Если Символ = ВРег(Символ) Тогда - СимволЛатиницей = ТРег(СимволЛатиницей); // восстанавливаем регистр - КонецЕсли; - КонецЕсли; - Результат = Результат + СимволЛатиницей; - ПредыдущийСимвол = СимволЛатиницей; - КонецЦикла; - - Возврат Результат; -КонецФункции - -// Форматирует строку в соответствии с заданным шаблоном. -// Возможные значения тегов выделения: -// Строка - выделяет строку жирным шрифтом -//
Строка -// -// Пример: -// Минимальная версия программы 1.1. Обновите программу. -// -// Возвращаемое значение: -// ФорматированнаяСтрока -&НаКлиенте -Функция ФорматированнаяСтрока(Знач Строка) Экспорт - - СтрокиСВыделением = Новый СписокЗначений; - Пока Найти(Строка, "") <> 0 Цикл - НачалоВыделения = Найти(Строка, ""); - СтрокаДоОткрывающегоТега = Лев(Строка, НачалоВыделения - 1); - СтрокиСВыделением.Добавить(СтрокаДоОткрывающегоТега); - СтрокаПослеОткрывающегоТега = Сред(Строка, НачалоВыделения + 3); - КонецВыделения = Найти(СтрокаПослеОткрывающегоТега, ""); - ВыделенныйФрагмент = Лев(СтрокаПослеОткрывающегоТега, КонецВыделения - 1); - СтрокиСВыделением.Добавить(ВыделенныйФрагмент,, Истина); - СтрокаПослеВыделения = Сред(СтрокаПослеОткрывающегоТега, КонецВыделения + 4); - Строка = СтрокаПослеВыделения; - КонецЦикла; - СтрокиСВыделением.Добавить(Строка); - - СтрокиСоСсылками = Новый СписокЗначений; - Для Каждого ЧастьСтроки Из СтрокиСВыделением Цикл - - Строка = ЧастьСтроки.Значение; - - Если ЧастьСтроки.Пометка Тогда - СтрокиСоСсылками.Добавить(Строка,, Истина); - Продолжить; - КонецЕсли; - - НачалоВыделения = Найти(Строка, ""); - - Ссылка = СокрЛП(Лев(СтрокаПослеОткрывающегоТега, ЗакрывающийТег - 2)); - Если Лев(Ссылка, 1) = """" Тогда - Ссылка = Сред(Ссылка, 2, СтрДлина(Ссылка) - 1); - КонецЕсли; - Если Прав(Ссылка, 1) = """" Тогда - Ссылка = Сред(Ссылка, 1, СтрДлина(Ссылка) - 1); - КонецЕсли; - - СтрокаПослеСсылки = Сред(СтрокаПослеОткрывающегоТега, ЗакрывающийТег + 1); - КонецВыделения = Найти(СтрокаПослеСсылки, ""); - ТекстСсылки = Лев(СтрокаПослеСсылки, КонецВыделения - 1); - СтрокиСоСсылками.Добавить(ТекстСсылки, Ссылка); - - СтрокаПослеВыделения = Сред(СтрокаПослеСсылки, КонецВыделения + 4); - Строка = СтрокаПослеВыделения; - - НачалоВыделения = Найти(Строка, " 0 Тогда - Возврат Неопределено; - КонецЕсли; - ЗнакОтрицательный = Истина; - ИначеЕсли КодСимвола = 41 Тогда // Закрывающая скобка. - Если Не ЗнакОтрицательный Или Результат = 0 Тогда // Не было открывающей скобки или нет числа. - Возврат Неопределено; - КонецЕсли; - // Пропуск (действие не требуется). - ИначеЕсли КодСимвола = 44 Или КодСимвола = 46 Тогда // Запятая или точка. - Если ЗнаковПослеЗапятой <> -1 Тогда - Возврат Неопределено; // Разделитель уже был, следовательно это не число. - КонецЕсли; - ЗнаковПослеЗапятой = 0; // Запуск отсчета знаков после запятой. - ИначеЕсли КодСимвола > 47 И КодСимвола < 58 Тогда // Число. - Если ЗнаковПослеЗапятой <> -1 Тогда - ЗнаковПослеЗапятой = ЗнаковПослеЗапятой + 1; - КонецЕсли; - Число = КодСимвола - 48; - Результат = Результат * 10 + Число; - Иначе - Возврат Неопределено; - КонецЕсли; - КонецЦикла; - - Если ЗнаковПослеЗапятой > 0 Тогда - Результат = Результат / Pow(10, ЗнаковПослеЗапятой); - КонецЕсли; - Если ЗнакОтрицательный Тогда - Результат = -Результат; - КонецЕсли; - - Возврат Результат; -КонецФункции - -// Выполняет преобразование цифры в римскую нотацию. -// -// Параметры -// Цифра - Число - цифра от 0 до 9. -// РимскаяЕдиница, РимскаяПятерка, РимскаяДесятка - Строка - символы, соответствующие римским цифрам. -// -// Возвращаемое значение -// Строка - цифра в римской нотации. -// -// Пример: -// ПреобразоватьЦифруВРимскуюНотацию(7,"I","V","X") = "VII". -// -&НаКлиенте -Функция ПреобразоватьЦифруВРимскуюНотацию(Цифра, РимскаяЕдиница, РимскаяПятерка, РимскаяДесятка) - - РимскаяЦифра=""; - Если Цифра = 1 Тогда - РимскаяЦифра = РимскаяЕдиница - ИначеЕсли Цифра = 2 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 3 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 4 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяПятерка; - ИначеЕсли Цифра = 5 Тогда - РимскаяЦифра = РимскаяПятерка; - ИначеЕсли Цифра = 6 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница; - ИначеЕсли Цифра = 7 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 8 Тогда - РимскаяЦифра = РимскаяПятерка + РимскаяЕдиница + РимскаяЕдиница + РимскаяЕдиница; - ИначеЕсли Цифра = 9 Тогда - РимскаяЦифра = РимскаяЕдиница + РимскаяДесятка; - КонецЕсли; - Возврат РимскаяЦифра; - -КонецФункции - -// Вставляет параметры в строку, учитывая, что в параметрах могут использоваться подстановочные слова %1, %2 и т.д. -&НаКлиенте -Функция ПодставитьПараметрыВСтрокуАльтернативныйАлгоритм(Знач СтрокаПодстановки, - Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено, - Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено, - Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) - - Результат = ""; - Позиция = Найти(СтрокаПодстановки, "%"); - Пока Позиция > 0 Цикл - Результат = Результат + Лев(СтрокаПодстановки, Позиция - 1); - СимволПослеПроцента = Сред(СтрокаПодстановки, Позиция + 1, 1); - ПодставляемыйПараметр = ""; - Если СимволПослеПроцента = "1" Тогда - ПодставляемыйПараметр = Параметр1; - ИначеЕсли СимволПослеПроцента = "2" Тогда - ПодставляемыйПараметр = Параметр2; - ИначеЕсли СимволПослеПроцента = "3" Тогда - ПодставляемыйПараметр = Параметр3; - ИначеЕсли СимволПослеПроцента = "4" Тогда - ПодставляемыйПараметр = Параметр4; - ИначеЕсли СимволПослеПроцента = "5" Тогда - ПодставляемыйПараметр = Параметр5; - ИначеЕсли СимволПослеПроцента = "6" Тогда - ПодставляемыйПараметр = Параметр6; - ИначеЕсли СимволПослеПроцента = "7" Тогда - ПодставляемыйПараметр = Параметр7 - ИначеЕсли СимволПослеПроцента = "8" Тогда - ПодставляемыйПараметр = Параметр8; - ИначеЕсли СимволПослеПроцента = "9" Тогда - ПодставляемыйПараметр = Параметр9; - КонецЕсли; - Если ПодставляемыйПараметр = "" Тогда - Результат = Результат + "%"; - СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 1); - Иначе - Результат = Результат + ПодставляемыйПараметр; - СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 2); - КонецЕсли; - Позиция = Найти(СтрокаПодстановки, "%"); - КонецЦикла; - Результат = Результат + СтрокаПодстановки; - - Возврат Результат; -КонецФункции - -&НаКлиенте -Функция СоответствиеКириллицыИЛатиницы() - // Транслитерация, используемая в загранпаспортах 1997-2010. - Соответствие = Новый Соответствие; - Соответствие.Вставить("а","a"); - Соответствие.Вставить("б","b"); - Соответствие.Вставить("в","v"); - Соответствие.Вставить("г","g"); - Соответствие.Вставить("д","d"); - Соответствие.Вставить("е","e"); - Соответствие.Вставить("ё","e"); - Соответствие.Вставить("ж","zh"); - Соответствие.Вставить("з","z"); - Соответствие.Вставить("и","i"); - Соответствие.Вставить("й","y"); - Соответствие.Вставить("к","k"); - Соответствие.Вставить("л","l"); - Соответствие.Вставить("м","m"); - Соответствие.Вставить("н","n"); - Соответствие.Вставить("о","o"); - Соответствие.Вставить("п","p"); - Соответствие.Вставить("р","r"); - Соответствие.Вставить("с","s"); - Соответствие.Вставить("т","t"); - Соответствие.Вставить("у","u"); - Соответствие.Вставить("ф","f"); - Соответствие.Вставить("х","kh"); - Соответствие.Вставить("ц","ts"); - Соответствие.Вставить("ч","ch"); - Соответствие.Вставить("ш","sh"); - Соответствие.Вставить("щ","shch"); - Соответствие.Вставить("ъ",""""); - Соответствие.Вставить("ы","y"); - Соответствие.Вставить("ь",""); // пропускается - Соответствие.Вставить("э","e"); - Соответствие.Вставить("ю","yu"); - Соответствие.Вставить("я","ya"); - - Возврат Соответствие; -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// УСТАРЕВШИЕ ПРОЦЕДУРЫ И ФУНКЦИИ - -// Устарела. Следует использовать СтрокаИзМассиваПодстрок. -// -// Объединяет строки из массива в строку с разделителями. -// -// Параметры: -// Массив - Массив - массив строк которые необходимо объединить в одну строку; -// Разделитель - Строка - любой набор символов, который будет использован в качестве разделителя. -// -// Возвращаемое значение: -// Строка - строка с разделителями. -// -&НаКлиенте -Функция ПолучитьСтрокуИзМассиваПодстрок(Массив, Разделитель = ",") Экспорт - - // Возвращаемое значение функции. - Результат = ""; - - Для Каждого Элемент Из Массив Цикл - - Подстрока = ?(ТипЗнч(Элемент) = Тип("Строка"), Элемент, Строка(Элемент)); - - РазделительПодстрок = ?(ПустаяСтрока(Результат), "", Разделитель); - - Результат = Результат + РазделительПодстрок + Подстрока; - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// } Функции работы со строками - - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD.xml" deleted file mode 100644 index 70f9ab003..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD.xml" +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - af32ecd2-3f3c-4d2c-8b67-ca6380b4f322 - ce9adda6-851a-4163-8f31-bad0f654f05d - - - d70f17da-c898-47c4-a57f-a791299d49f4 - 1f45089a-50fb-4f89-b1b1-59cdfbc2739f - - - - УтвержденияBDD - - - ru - Утверждения BDD - - - - false - DataProcessor.УтвержденияBDD.Form.Форма - - false - - - - - - - ДопСообщениеОшибки - - - ru - Доп сообщение ошибки - - - - - xs:string - - 0 - Variable - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - - - - ИмяМетода - - - ru - Имя метода - - - - - xs:string - - 0 - Variable - - - 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 - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Ext/ObjectModule.bsl" deleted file mode 100644 index 4e8d53932..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,306 +0,0 @@ -Перем СтатусыРезультатаТестирования; -Перем ФлагОтрицанияДляСообщения; - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "УтвержденияBDD"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -Функция Что(Знач ПроверяемоеЗначение, Знач Сообщение = "") Экспорт - ЭтотОбъект.ПроверяемоеЗначение = ПроверяемоеЗначение; - ЭтотОбъект.ДопСообщениеОшибки = Сообщение; - ЭтотОбъект.ФлагОтрицания = Ложь; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Не_() Экспорт - ЭтотОбъект.ФлагОтрицания = Истина; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЭтоНе() Экспорт - Возврат Не_(); -КонецФункции - -Функция Метод(Знач ИмяМетода, Знач ПараметрыМетода = Неопределено) Экспорт - ЭтотОбъект.ИмяМетода = ИмяМетода; - ЭтотОбъект.ПараметрыМетода = ПараметрыМетода; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЭтоИстина() Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Истина) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(Формат(ПроверяемоеЗначение, "БЛ=Ложь; БИ=Истина"), "является ИСТИНОЙ."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЕстьИстина() Экспорт - Возврат ЭтоИстина(); -КонецФункции - -Функция ЭтоЛожь() Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Ложь) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(Формат(ПроверяемоеЗначение, "БЛ=Ложь; БИ=Истина"), "является ЛОЖЬЮ."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЕстьЛожь() Экспорт - Возврат ЭтоЛожь(); -КонецФункции - -Функция Равно(Знач ОжидаемоеЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = ОжидаемоеЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "РАВНО (" + ОжидаемоеЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Больше(Знач МеньшееЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение > МеньшееЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БОЛЬШЕ (" + МеньшееЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция БольшеИлиРавно(Знач МеньшееИлиРавноеЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение >= МеньшееИлиРавноеЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БОЛЬШЕ ИЛИ РАВНО (" + МеньшееИлиРавноеЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Минимум(Знач МинимальноеЗначение) Экспорт - Возврат БольшеИлиРавно(МинимальноеЗначение); -КонецФункции - -Функция МеньшеИлиРавно(Знач БольшееИлиРавноеЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение <= БольшееИлиРавноеЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕНЬШЕ ИЛИ РАВНО (" + БольшееИлиРавноеЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Максимум(Знач МаксимальноеЗначение) Экспорт - Возврат МеньшеИлиРавно(МаксимальноеЗначение); -КонецФункции - -Функция Меньше(Знач БольшееЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение < БольшееЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕНЬШЕ (" + БольшееЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Заполнено() Экспорт - Если Не ЛогическоеВыражениеВерно(ЗначениеЗаполнено(ПроверяемоеЗначение)) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "является ЗАПОЛНЕННЫМ."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Существует() Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение <> Неопределено И ПроверяемоеЗначение <> Null) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "СУЩЕСТВУЕТ."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЭтоНеопределено() Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Неопределено) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "является НЕОПРЕДЕЛЕНО."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЕстьНеопределено() Экспорт - Возврат ЭтоНеопределено(); -КонецФункции - -Функция ЭтоNull() Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Null) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "является NULL."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ЕстьNull() Экспорт - Возврат ЭтоNull(); -КонецФункции - -Функция ИмеетТип(Знач ТипИлиИмяТипа) Экспорт - ОжидаемыйТип = ?(ТипЗнч(ТипИлиИмяТипа) = Тип("Строка"), Тип(ТипИлиИмяТипа), ТипИлиИмяТипа); - ТипПроверяемогоЗначения = ТипЗнч(ПроверяемоеЗначение); - Если Не ЛогическоеВыражениеВерно(ТипПроверяемогоЗначения = ОжидаемыйТип) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке("тип - " + ТипПроверяемогоЗначения, "имеет тип (" + ОжидаемыйТип + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Между(Знач НачальноеЗначение, Знач КонечноеЗначение) Экспорт - Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение >= НачальноеЗначение И ПроверяемоеЗначение <= КонечноеЗначение) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕЖДУ (" + НачальноеЗначение + ") и (" + КонечноеЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция Содержит(Знач ИскомоеЗначение) Экспорт - Перем ИскомоеЗначениеНайдено; - - ТипПроверяемоегоЗначения = ТипЗнч(ПроверяемоеЗначение); - Если ТипПроверяемоегоЗначения = Тип("Строка") Тогда - ИскомоеЗначениеНайдено = Найти(ПроверяемоеЗначение, ИскомоеЗначение) > 0; - ИначеЕсли ТипПроверяемоегоЗначения = Тип("Массив") Или ТипПроверяемоегоЗначения = Тип("ФиксированныйМассив") Тогда - ИскомоеЗначениеНайдено = ПроверяемоеЗначение.Найти(ИскомоеЗначение) <> Неопределено; - ИначеЕсли ТипПроверяемоегоЗначения = Тип("Структура") Или ТипПроверяемоегоЗначения = Тип("ФиксированнаяСтруктура") - Или ТипПроверяемоегоЗначения = Тип("Соответствие") Или ТипПроверяемоегоЗначения = Тип("ФиксированноеСоответствие") Тогда - Для каждого КлючЗначение Из ПроверяемоеЗначение Цикл - ИскомоеЗначениеНайдено = КлючЗначение.Значение = ИскомоеЗначение; - Если ИскомоеЗначениеНайдено Тогда - Прервать; - КонецЕсли; - КонецЦикла; - ИначеЕсли ТипПроверяемоегоЗначения = Тип("СписокЗначений") Тогда - ИскомоеЗначениеНайдено = ПроверяемоеЗначение.НайтиПоЗначению(ИскомоеЗначение) <> Неопределено; - КонецЕсли; - - Если ИскомоеЗначениеНайдено = Неопределено Тогда - СообщениеОшибки = "Утверждение ""Содержит"" не умеет работать с типом <" + ТипПроверяемоегоЗначения + ">." + ФорматДСО(ДопСообщениеОшибки); - ВызватьИсключение СообщениеОшибки; - КонецЕсли; - - Если Не ЛогическоеВыражениеВерно(ИскомоеЗначениеНайдено) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "СОДЕРЖИТ (" + ИскомоеЗначение + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ИмеетДлину(Знач ОжидаемаяДлина) Экспорт - Перем ФактическаяДлина; - - ТипПроверяемоегоЗначения = ТипЗнч(ПроверяемоеЗначение); - Если ТипПроверяемоегоЗначения = Тип("Строка") Тогда - ФактическаяДлина = СтрДлина(ПроверяемоеЗначение); - ИначеЕсли ТипПроверяемоегоЗначения = Тип("Массив") Или ТипПроверяемоегоЗначения = Тип("ФиксированныйМассив") - Или ТипПроверяемоегоЗначения = Тип("Структура") Или ТипПроверяемоегоЗначения = Тип("ФиксированнаяСтруктура") - Или ТипПроверяемоегоЗначения = Тип("Соответствие") Или ТипПроверяемоегоЗначения = Тип("ФиксированноеСоответствие") - Или ТипПроверяемоегоЗначения = Тип("СписокЗначений") Тогда - ФактическаяДлина = ПроверяемоеЗначение.Количество(); - КонецЕсли; - - Если ФактическаяДлина = Неопределено Тогда - СообщениеОшибки = "Утверждение ""ИмеетДлину"" не умеет работать с типом <" + ТипПроверяемоегоЗначения + ">." + ФорматДСО(ДопСообщениеОшибки); - ВызватьИсключение СообщениеОшибки; - КонецЕсли; - - Если Не ЛогическоеВыражениеВерно(ФактическаяДлина = ОжидаемаяДлина) Тогда - СообщениеОшибки = СформироватьСообщениеОбОшибке("<" +ПроверяемоеЗначение + "> с длиной " + ФактическаяДлина, "ИМЕЕТ ДЛИНУ (" + ОжидаемаяДлина + ")."); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -Функция ВыбрасываетИсключение(Знач ФрагментИсключения = "") Экспорт - Контекст = ПроверяемоеЗначение; - СтрокаПараметры = ""; - Если ТипЗнч(ПараметрыМетода) = Тип("Массив") Тогда - Для Сч = 0 По ПараметрыМетода.Количество() - 1 Цикл - СтрокаПараметры = СтрокаПараметры + ",ПараметрыМетода[" + Сч + "]"; - КонецЦикла; - СтрокаПараметры = Сред(СтрокаПараметры, 2); - КонецЕсли; - СтрокаДляВыполнения = "Контекст." + ИмяМетода + "(" + СтрокаПараметры + ")"; - - ИсключениеВозникло = Ложь; - Попытка - Выполнить(СтрокаДляВыполнения); - Исключение - ИсключениеВозникло = Истина; - ТекстИсключения = ОписаниеОшибки(); - КонецПопытки; - - Если Не ЛогическоеВыражениеВерно(ИсключениеВозникло И Найти(ТекстИсключения, ФрагментИсключения) > 0) Тогда - СообщениеОшибки = "Ожидали, что " + СтрокаДляВыполнения - + ?(ФлагОтрицания, " НЕ ", " ") - + "ВЫБРОСИТ ИСКЛЮЧЕНИЕ" - + ?(ЗначениеЗаполнено(ФрагментИсключения), " СОДЕРЖАЩЕЕ ТЕКСТ <" + ФрагментИсключения + ">, а был текст <" + ТекстИсключения + ">.", ""); - ВызватьОшибкуПроверки(СообщениеОшибки); - КонецЕсли; - - Возврат ЭтотОбъект; -КонецФункции - -// { Helpers -Функция ФорматДСО(Знач ДопСообщениеОшибки) - Если ДопСообщениеОшибки = "" Тогда - Возврат ""; - КонецЕсли; - - Возврат Символы.ПС + ДопСообщениеОшибки; -КонецФункции - -Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки) - Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; -КонецПроцедуры - -Функция ЛогическоеВыражениеВерно(Знач ЛогическоеВыражение) - Результат = ФлагОтрицания <> ЛогическоеВыражение; - ФлагОтрицанияДляСообщения = ФлагОтрицания; - ФлагОтрицания = Ложь; - - Возврат Результат; -КонецФункции - -Функция СформироватьСообщениеОбОшибке(Знач ПроверяемоеЗначение, Знач Ожидание) - Возврат "Ожидали, что проверяемое значение (" + ПроверяемоеЗначение + ")" + ?(ФлагОтрицанияДляСообщения, " НЕ ", " ") + Ожидание + ФорматДСО(ДопСообщениеОшибки); -КонецФункции -// } Helpers - -СтатусыРезультатаТестирования = Новый Структура; -СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed"); -СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken"); -СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending"); -СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 94014b583..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 8e886e956..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.УтвержденияBDD - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index e66f67731..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,208 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -&НаКлиенте -Функция Что(Знач ПроверяемоеЗначениеПараметр, Знач Сообщение = "") Экспорт - ВыполнитьМетодОбъектаНаСервере("Что", 2, ПроверяемоеЗначениеПараметр, Сообщение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Не_() Экспорт - ВыполнитьМетодОбъектаНаСервере("Не_", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЭтоНе() Экспорт - Возврат Не_(); -КонецФункции - -&НаКлиенте -Функция Метод(Знач ИмяМетода, Знач ПараметрыМетода = Неопределено) Экспорт - ВыполнитьМетодОбъектаНаСервере("Метод", 2, ИмяМетода, ПараметрыМетода); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЭтоИстина() Экспорт - ВыполнитьМетодОбъектаНаСервере("ЭтоИстина", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЕстьИстина() Экспорт - Возврат ЭтоИстина(); -КонецФункции - -&НаКлиенте -Функция ЭтоЛожь() Экспорт - ВыполнитьМетодОбъектаНаСервере("ЭтоЛожь", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЕстьЛожь() Экспорт - Возврат ЭтоЛожь(); -КонецФункции - -&НаКлиенте -Функция Равно(Знач ОжидаемоеЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("Равно", 1, ОжидаемоеЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Больше(Знач МеньшееЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("Больше", 1, МеньшееЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция БольшеИлиРавно(Знач МеньшееИлиРавноеЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("БольшеИлиРавно", 1, МеньшееИлиРавноеЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Минимум(Знач МинимальноеЗначение) Экспорт - Возврат БольшеИлиРавно(МинимальноеЗначение); -КонецФункции - -&НаКлиенте -Функция МеньшеИлиРавно(Знач БольшееИлиРавноеЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("МеньшеИлиРавно", 1, БольшееИлиРавноеЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Максимум(Знач МаксимальноеЗначение) Экспорт - Возврат МеньшеИлиРавно(МаксимальноеЗначение); -КонецФункции - -&НаКлиенте -Функция Меньше(Знач БольшееЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("Меньше", 1, БольшееЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Заполнено() Экспорт - ВыполнитьМетодОбъектаНаСервере("Заполнено", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Существует() Экспорт - ВыполнитьМетодОбъектаНаСервере("Существует", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЭтоНеопределено() Экспорт - ВыполнитьМетодОбъектаНаСервере("ЭтоНеопределено", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЕстьНеопределено() Экспорт - Возврат ЭтоНеопределено(); -КонецФункции - -&НаКлиенте -Функция ЭтоNull() Экспорт - ВыполнитьМетодОбъектаНаСервере("ЭтоNull", 0); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ЕстьNull() Экспорт - Возврат ЭтоNull(); -КонецФункции - -&НаКлиенте -Функция ИмеетТип(Знач ТипИлиИмяТипа) Экспорт - ВыполнитьМетодОбъектаНаСервере("ИмеетТип", 1, ТипИлиИмяТипа); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Между(Знач НачальноеЗначение, Знач КонечноеЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("Между", 2, НачальноеЗначение, КонечноеЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция Содержит(Знач ИскомоеЗначение) Экспорт - ВыполнитьМетодОбъектаНаСервере("Содержит", 1, ИскомоеЗначение); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ИмеетДлину(Знач ОжидаемаяДлина) Экспорт - ВыполнитьМетодОбъектаНаСервере("ИмеетДлину", 1, ОжидаемаяДлина); - - Возврат ЭтаФорма; -КонецФункции - -&НаКлиенте -Функция ВыбрасываетИсключение(Знач ФрагментИсключения = "") Экспорт - ВыполнитьМетодОбъектаНаСервере("ВыбрасываетИсключение", 1, ФрагментИсключения); - - Возврат ЭтаФорма; -КонецФункции - -// { Helpers -&НаСервере -Процедура ВыполнитьМетодОбъектаНаСервере(Знач ИмяМетода, Знач КоличествоПараметров, Знач Параметр1 = Неопределено, Знач Параметр2 = Неопределено) - ОбъектНаСервере = ЭтотОбъектНаСервере(); - - СтрокаПараметры = ""; - Если КоличествоПараметров = 1 Тогда - СтрокаПараметры = "Параметр1"; - ИначеЕсли КоличествоПараметров = 2 Тогда - СтрокаПараметры = "Параметр1, Параметр2"; - КонецЕсли; - - Попытка - Выполнить("ОбъектНаСервере." + ИмяМетода + "(" + СтрокаПараметры + ")"); - Исключение - ОписаниеОшибки = ОписаниеОшибки(); - ВызватьИсключение "Вызов метода <" + ИмяМетода +">: " + ОписаниеОшибки; - КонецПопытки; - - ЗначениеВРеквизитФормы(ОбъектНаСервере, "Объект"); -КонецПроцедуры - -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" deleted file mode 100644 index fe78d8ab6..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - 05820258-54a2-459c-9980-0219c767f3ce - eac6c3a1-43d4-4310-93ee-0e311ce6b695 - - - 3c905996-92ff-498f-b7d5-81e1264469a7 - 325cc8b8-cda1-4cf3-933a-cacdfedd2bc8 - - - - УтвержденияПроверкаТаблиц - - - ru - Утверждения проверка таблиц - - - - false - DataProcessor.УтвержденияПроверкаТаблиц.Form.Форма - - false - - - - - - - РезультатыСравненияТаблиц - - - ru - Результаты сравнения таблиц - - - - - false - - - - false - - false - false - - - DontCheck - Items - - - Auto - Auto - - - Auto - - -
Форма
-
-
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/ObjectModule.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/ObjectModule.bsl" deleted file mode 100644 index a7fba43b9..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,219 +0,0 @@ - -// { Plugin interface -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Результат = Новый Структура; - Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); - Результат.Вставить("Идентификатор", Метаданные().Имя); - Результат.Вставить("Представление", "УтвержденияПроверкаТаблиц"); - - Возврат Новый ФиксированнаяСтруктура(Результат); -КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт -КонецПроцедуры -// } Plugin interface - -Процедура ПроверитьРавенствоТаблиц(Таб1, Таб2, ДопСообщениеОшибки = "") Экспорт - - Если ТипЗнч(Таб1) <> Тип("ТаблицаЗначений") Тогда - ВызватьИсключение "ПроверитьРавенствоТаблиц: Первый параметр-таблица таблицей не является"; - КонецЕсли; - Если ТипЗнч(Таб1) <> Тип("ТаблицаЗначений") Тогда - ВызватьИсключение "ПроверитьРавенствоТаблиц: Второй параметр-таблица таблицей не является"; - КонецЕсли; - - Различия = Новый ТаблицаЗначений; - РезультатСравнения = СравнитьТаблицы(Таб1, Таб2, Различия); - - Если РезультатыСравненияТаблиц.ТаблицыСовпадают <> РезультатСравнения Тогда - - ИменаРезультатов = Новый Соответствие; - Для Каждого КлючЗначение Из РезультатыСравненияТаблиц Цикл - ИменаРезультатов.Вставить(КлючЗначение.Значение, КлючЗначение.Ключ); - КонецЦикла; - СтрокаОшибок = "Различия в таблицах:" + Символы.ПС; - СтрокаОшибок = СтрокаОшибок + "Ожидали статус <" + ИменаРезультатов[РезультатыСравненияТаблиц.ТаблицыСовпадают] + ">, а получили <" + ИменаРезультатов[РезультатСравнения] + ">" + Символы.ПС; - Для Каждого Строка Из Различия Цикл - СтрокаОшибок = СтрокаОшибок + "Значение [" + Строка.Колонка + ":" + Строка.Строка + "]. Ожидали <" + Строка.Ожидание + ">, а получили <" + Строка.Результат + ">" + Символы.ПС; - КонецЦикла; - - ВызватьОшибкуПроверки("Таблицы должны совпадать, а они различны" + Символы.ПС + СтрокаОшибок + Символы.ПС + ДопСообщениеОшибки); - - КонецЕсли; - -КонецПроцедуры - -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - - Если ТипЗнч(ТабДок1) <> Тип("ТабличныйДокумент") Тогда - ВызватьИсключение "ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям: Первый параметр-таблица не является табличным документов"; - КонецЕсли; - Если ТипЗнч(ТабДок2) <> Тип("ТабличныйДокумент") Тогда - ВызватьИсключение "ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям: Второй параметр-таблица не является табличным документов"; - КонецЕсли; - - УчитыватьТолькоВидимыеКолонки = Ложь; - Если ТипЗнч(УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки) = Тип("Булево") Тогда - УчитыватьТолькоВидимыеКолонки = УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки; - ИначеЕсли ТипЗнч(УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки; - КонецЕсли; - УчитыватьТолькоВидимыеСтроки = Ложь; - Если ТипЗнч(УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки) = Тип("Булево") Тогда - УчитыватьТолькоВидимыеСтроки = УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки; - ИначеЕсли ТипЗнч(УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки; - КонецЕсли; - - Таб1 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабДок1, УчитыватьТолькоВидимыеКолонки, УчитыватьТолькоВидимыеСтроки); - Таб2 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабДок2, УчитыватьТолькоВидимыеКолонки, УчитыватьТолькоВидимыеСтроки); - - ПроверитьРавенствоТаблиц(Таб1, Таб2, ДопСообщениеОшибки); - -КонецПроцедуры - -// портирован из Functest -Функция ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент, УчитыватьТолькоВидимыеКолонки = Ложь, УчитыватьТолькоВидимыеСтроки = Ложь) Экспорт - - ТипТабличногоДокумента = ТипЗнч(ТабличныйДокумент); - Если ТипТабличногоДокумента <> Тип("ТабличныйДокумент") И ТипТабличногоДокумента <> Тип("ПолеТабличногоДокумента") Тогда - ВызватьИсключение "ПолучитьТаблицуЗначенийИзТабличногоДокумента: Требуется тип ТабличныйДокумент или ПолеТабличногоДокумента"; - КонецЕсли; - - НомерПоследнейКолонки = ТабличныйДокумент.ШиринаТаблицы; - НомерПоследнейСтроки = ТабличныйДокумент.ВысотаТаблицы; - - НоваяТаблицаЗначений = Новый ТаблицаЗначений; - Колонки = НоваяТаблицаЗначений.Колонки; - ТипСтрока = Новый ОписаниеТипов("Строка"); - - // TODO При определении видимости не учитывается наличие нескольких форматов строк, сейчас видимоcть колонки определяется по формату первой строки - УчитываемыеКолонки = Новый Массив; - Для НомерКолонки = 1 По НомерПоследнейКолонки Цикл - ОбластьКолонки = ТабличныйДокумент.Область(0, НомерКолонки, 1, НомерКолонки); - - УчитыватьКолонку = Не УчитыватьТолькоВидимыеКолонки Или ОбластьКолонки.Видимость; - Если УчитыватьКолонку Тогда - УчитываемыеКолонки.Добавить(НомерКолонки); - ШиринаКолонки = ОбластьКолонки.ШиринаКолонки; - Если ШиринаКолонки <= 1 Тогда - ШиринаКолонки = 1; - КонецЕсли; - ИмяКолонки = "К" + Формат(Колонки.Количество() + 1, "ЧН=; ЧГ=0"); - Колонки.Добавить(ИмяКолонки, ТипСтрока, ИмяКолонки, ШиринаКолонки); - КонецЕсли; - КонецЦикла; - - ГраницаКолонок = УчитываемыеКолонки.ВГраница(); - Для НомерСтроки = 1 По НомерПоследнейСтроки Цикл - - Если УчитыватьТолькоВидимыеСтроки И Не ТабличныйДокумент.Область(НомерСтроки,, НомерСтроки).Видимость Тогда - Продолжить; - КонецЕсли; - - НоваяСтрока = НоваяТаблицаЗначений.Добавить(); - - Для Индекс = 0 По ГраницаКолонок Цикл - НомерКолонки = УчитываемыеКолонки[Индекс]; - Область = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки); - НоваяСтрока[Индекс] = Область.Текст; - КонецЦикла; - КонецЦикла; - - Возврат НоваяТаблицаЗначений; - -КонецФункции - -// портирован из Functest -Функция СравнитьТаблицы(ТаблицаОжиданий, ТаблицаРезультатов, ТаблицаРазличий) - - Если ТаблицаОжиданий.Количество() <> ТаблицаРезультатов.Количество() Тогда - Возврат РезультатыСравненияТаблиц.РазноеКоличествоСтрок; - КонецЕсли; - - Если ТаблицаОжиданий.Количество() = 0 Тогда - Возврат РезультатыСравненияТаблиц.ТаблицыСовпадают; //Пустые таблицы всегда одинаковы - КонецЕсли; - - //Проверим структуру колонок - - //TODO При этом сравнении в структуре ТаблицаРезультатов может оказаться больше колонок, чем в ТаблицаОжиданий, - // так что для абсолютного точного сравнения нужно добавить проверку совпадения количества колонок. - ОжидаемыеКолонки = ТаблицаОжиданий.Колонки; - КолонкиРезультата = ТаблицаРезультатов.Колонки; - Для Каждого Колонка Из ОжидаемыеКолонки Цикл - Если КолонкиРезультата.Найти(Колонка.Имя) = Неопределено Тогда - Возврат РезультатыСравненияТаблиц.РазличаютсяКолонки; - КонецЕсли; - КонецЦикла; - - Возврат СравнитьЗначенияТаблиц(ТаблицаОжиданий, ТаблицаРезультатов, ТаблицаРазличий); - -КонецФункции - -// портирован из Functest -Функция СравнитьЗначенияТаблиц(ТаблицаОжиданий, ТаблицаРезультатов, Различия) - - Различия = Новый ТаблицаЗначений; - Различия.Колонки.Очистить(); - Различия.Колонки.Добавить("Строка",Новый ОписаниеТипов("Число")); - Различия.Колонки.Добавить("Колонка",Новый ОписаниеТипов("Строка")); - Различия.Колонки.Добавить("Ожидание"); - Различия.Колонки.Добавить("Результат"); - - РезультатСравнения = РезультатыСравненияТаблиц.ТаблицыСовпадают; - - Колонки = ТаблицаОжиданий.Колонки; - ГраницаСтрок = ТаблицаОжиданий.Количество() - 1; - Для Индекс = 0 По ГраницаСтрок Цикл - - ОжидаемаяСтрока = ТаблицаОжиданий[Индекс]; - СтрокаРезультата = ТаблицаРезультатов[Индекс]; - - Для Каждого Колонка Из Колонки Цикл - ИмяКолонки = Колонка.Имя; - - ОжидаемоеЗначение = ОжидаемаяСтрока[ИмяКолонки]; - ЗначениеРезультата = СтрокаРезультата[ИмяКолонки]; - Если ОжидаемоеЗначение = ЗначениеРезультата - Или (Не ЗначениеЗаполнено(ОжидаемоеЗначение) И Не ЗначениеЗаполнено(ЗначениеРезультата)) Тогда //Пустые значения разных типов 1С-м не считаются равными :( - Продолжить; - КонецЕсли; - - Различие = Различия.Добавить(); - Различие.Строка = Индекс + 1; - Различие.Колонка = ИмяКолонки; - Различие.Ожидание = ОжидаемоеЗначение; - Различие.Результат = ЗначениеРезультата; - РезультатСравнения = РезультатыСравненияТаблиц.НеСовпадаютЗначенияВЯчейкеТаблицы; - - КонецЦикла; - - КонецЦикла; - - Возврат РезультатСравнения; - -КонецФункции - -Процедура ВызватьОшибкуПроверки(СообщениеОшибки = "") - - Префикс = "["+ СтатусыРезультатаТестирования().ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; - -КонецПроцедуры - -Функция СтатусыРезультатаТестирования() - СтатусыРезультатаТестирования = Новый Структура; - СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed"); - СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken"); - СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending"); - - Возврат Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); -КонецФункции - -РезультатыСравненияТаблиц = Новый Структура; -РезультатыСравненияТаблиц.Вставить("ТаблицыСовпадают", 0); -РезультатыСравненияТаблиц.Вставить("НеСовпадаютЗначенияВЯчейкеТаблицы", 1); -РезультатыСравненияТаблиц.Вставить("РазноеКоличествоСтрок", 2); -РезультатыСравненияТаблиц.Вставить("РазличаютсяКолонки", 3); -РезультатыСравненияТаблиц = Новый ФиксированнаяСтруктура(РезультатыСравненияТаблиц); diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 8a24361e5..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
-
\ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 7a381ffb8..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,13 +0,0 @@ - -
- useIfNecessary - - - - - cfg:DataProcessorObject.УтвержденияПроверкаТаблиц - - true - - - \ No newline at end of file diff --git "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 7a847029b..000000000 --- "a/lib/CF/83xddNoSync/DataProcessors/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,30 +0,0 @@ - -// { Plugin interface -&НаКлиенте -Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт - Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); -КонецФункции - -&НаСервере -Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) - Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); -КонецФункции -// } Plugin interface - -// { Helpers -&НаСервере -Функция ЭтотОбъектНаСервере() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции -// } Helpers - - -&НаКлиенте -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки); -КонецПроцедуры - -&НаСервере -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - ЭтотОбъектНаСервере().ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки); -КонецПроцедуры diff --git a/lib/CF/83xddNoSync/Ext/MainSectionCommandInterface.xml b/lib/CF/83xddNoSync/Ext/MainSectionCommandInterface.xml index f2035d7a2..3984c6eb4 100644 --- a/lib/CF/83xddNoSync/Ext/MainSectionCommandInterface.xml +++ b/lib/CF/83xddNoSync/Ext/MainSectionCommandInterface.xml @@ -6,12 +6,12 @@ true - + true - + true @@ -22,11 +22,11 @@ NavigationPanelOrdinary Manual - + ActionsPanelTools Manual - + ActionsPanelTools Manual diff --git "a/lib/CF/83xddNoSync/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" "b/lib/CF/83xddNoSync/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" index 55145cfda..f52d59afd 100644 --- "a/lib/CF/83xddNoSync/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" +++ "b/lib/CF/83xddNoSync/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" @@ -180,17 +180,6 @@ true
- - DataProcessor.xddGuidShow - - Use - true - - - View - true - - Catalog.ПростойСправочник2 diff --git a/lib/CF/83xddNoSync/Subsystems/xUnitFor1C.xml b/lib/CF/83xddNoSync/Subsystems/xUnitFor1C.xml index 44c39b412..0fa60dc54 100644 --- a/lib/CF/83xddNoSync/Subsystems/xUnitFor1C.xml +++ b/lib/CF/83xddNoSync/Subsystems/xUnitFor1C.xml @@ -15,7 +15,7 @@ - DataProcessor.xddTestRunner + 4fd86dc5-89d1-4884-bc05-7a0b8ce9186e diff --git a/lib/CF/83xddNoSync/Subsystems/xUnitFor1C/Subsystems/Plugins.xml b/lib/CF/83xddNoSync/Subsystems/xUnitFor1C/Subsystems/Plugins.xml index 4b1df3a17..438b3625f 100644 --- a/lib/CF/83xddNoSync/Subsystems/xUnitFor1C/Subsystems/Plugins.xml +++ b/lib/CF/83xddNoSync/Subsystems/xUnitFor1C/Subsystems/Plugins.xml @@ -15,21 +15,21 @@ - DataProcessor.БазовыеУтверждения - DataProcessor.УтвержденияПроверкаТаблиц - DataProcessor.УтвержденияBDD - DataProcessor.СтроковыеУтилиты - DataProcessor.СериализаторMXL - DataProcessor.ПостроительДереваТестов - DataProcessor.ПарсерКоманднойСтроки - DataProcessor.КомандныйФайл - DataProcessor.ЗапросыИзБД - DataProcessor.ЗагрузчикФайла - DataProcessor.ЗагрузчикКаталога - DataProcessor.ЗагрузчикИзПодсистемКонфигурации - DataProcessor.ГенераторОтчетаMXL - DataProcessor.ГенераторОтчетаJUnitXML - DataProcessor.ВременныеФайлы + dce8aa40-d869-4f56-b676-a21e1c6d463e + dac63775-7825-4d71-a1f8-bdf73d7bf54f + 3d66ae6a-ea75-43c2-b47a-9f8cb9c17b1a + 9409827b-5515-4841-9cdc-8bf76935147c + 3ef95a44-6e1f-477e-b160-030dd5dae29f + c21ecdbb-2c03-4743-98d7-c0b679c91e45 + bed67866-3c67-4196-8119-50cc06252df7 + ae8dfa79-d9f9-47e3-b706-134289c1b7a1 + 8a71b3b9-e920-4f70-a79c-edcab37d6e22 + 74f67557-b49a-48d7-be59-65e6b5bb7c34 + 370c7cdd-2009-45f5-b8b5-ff1c84add1ad + a3884279-6609-40dd-a446-04e4269ddd18 + d41c5f0f-e918-4b33-9fc2-ff63e59bada6 + cbd2bc2f-0ffa-401f-b734-8c81b5783fdf + d4a8a2b9-9627-4cf4-b252-a02c8a670867 diff --git a/lib/CF/83xddNoSync/Subsystems/xUnitFor1C/Subsystems/Utils.xml b/lib/CF/83xddNoSync/Subsystems/xUnitFor1C/Subsystems/Utils.xml index b009a4253..a213ae5d7 100644 --- a/lib/CF/83xddNoSync/Subsystems/xUnitFor1C/Subsystems/Utils.xml +++ b/lib/CF/83xddNoSync/Subsystems/xUnitFor1C/Subsystems/Utils.xml @@ -15,9 +15,9 @@ - DataProcessor.xddGuidShow - DataProcessor.xddTestsConvertIntoRebornFormat - DataProcessor.ПреобразованиеЖурналаДействийПользователя + 9a427b8a-73d0-4c03-adb8-9eb0137cb57a + 7263f762-cb10-4976-bed6-a4666118bb0f + 93f7289d-468d-4ffc-9e3c-9b066cf8dae0 diff --git "a/lib/CF/83xddNoSync/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217.xml" "b/lib/CF/83xddNoSync/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217.xml" index 3d47ff4bb..b5aeaf446 100644 --- "a/lib/CF/83xddNoSync/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217.xml" +++ "b/lib/CF/83xddNoSync/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217.xml" @@ -16,9 +16,9 @@ DataProcessor.Тест_Обработка - DataProcessor.xddGuidShow + 9a427b8a-73d0-4c03-adb8-9eb0137cb57a DataProcessor.Тест_ЗагрузчикИзПодсистем_НовыйAPIОбъявленияТестов - DataProcessor.xddTestRunner + 4fd86dc5-89d1-4884-bc05-7a0b8ce9186e Report.Тест_Отчет 2754acfc-5916-4952-9fea-dbbc69db9399 Report.Отчет2 diff --git "a/lib/CF/83xddNoSync/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217/Subsystems/\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\2601.xml" "b/lib/CF/83xddNoSync/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217/Subsystems/\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\2601.xml" index 000b2b519..df60cbcd9 100644 --- "a/lib/CF/83xddNoSync/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217/Subsystems/\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\2601.xml" +++ "b/lib/CF/83xddNoSync/Subsystems/\320\242\320\265\321\201\321\202\320\276\320\262\320\260\321\217/Subsystems/\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\2601.xml" @@ -10,7 +10,7 @@ - DataProcessor.xddGuidShow + 9a427b8a-73d0-4c03-adb8-9eb0137cb57a DataProcessor.Тест_Обработка Role.Роль1 Report.Тест_Отчет