xUnitFor1C - набор инструментов для выполнения тестирования (модульного/юнит, приемочного, сценарного для 1С 8.3, интеграционного) в 1С:Предприятии 8.
-
xUnitFor1C работает с любыми конфигурациями, полностью независима, но может быть встроена в конфигурацию.
-
Позволяет открывать/тестировать в разных режимах - обычное приложение, тонкий и толстый клиент управляемого приложения.
-
Тесты могут быть как во внешних обработках, так и во встроенных обработках.
-
Любые наборы тестов могут прогоняться в полностью автоматическом режиме через специальную командную строку запуска. Автозапуск используется в различных build-серверах и в системах Continuous Integration.
xddTestRunner.epf- браузер и исполнитель тестов для обычного приложения и управляемого приложения 1С:Предприятия 8 (толстый и тонкий клиенты)
-
xddDataFixtureGen.epf- генерация макета данных для использования в тестах. Макет можно генерить из боевой базы на основе реальных данных.
-
xddTestRunner.js- скрипт для Снегопата, позволяющий выполнять тесты прямо из конфигуратора
-
Tests/- каталог с примерами тестов и с тестами для самотестирования xddTestRunner.epf (подпапка selftests)
-
Tests\CommonApp\тесты_ОткрытиеФормКонфигурации.epf- тесты открытия всех форм справочников, документов, отчетов и обработок. Для справочников и документов в транзакции создаются новые или копируются или перезаписываются существующие элементы.
-
Tests\CommonApp\Тест_ЗапускТестовВСеансеДругихПользователей.epf- примеры запуска тестов для пользователей с ограниченными правами. Пользователи создаются на лету из простых макетов.
-
Tests\CommonApp\Тест_ПроверитьОтчетНаСоответствиеЭталону.epf- пример теста отчета путем сравнения с эталонным ожиданием из макета.
Как помочь проекту
-
Мы рады любой помощи:
-
-
Если вы занимаетесь разработкой на 1С:Преприятии 8 пробуйте писать и выполнять тесты при помощи xUnitFor1C, сообщайте нам об обнаруженных ошибках, пишите пожелания. Для управления сообщениями об ошибках и пожеланиями мы используем баг-трекер GitHub'а.
-
-
Если у вас есть время разобраться в исходном коде, вы можете взять на себя реализацию одной из открытых задач.
-
-
Если вы уже используете xUnitFor1C на практике, напишите об этом статью, например, на Инфостарте.
Создание файлов-тестов
-
Создаем новую внешнюю обработку, т.н. тестовый набор
-
В модуле этой обработки размещаются тестовые случаи (экспортные методы без параметров, чье имя начинается на Тест)
-
Тестовый случай считается успешно выполненным, если в процессе его выполнения не было исключения.
-
Соответственно, для того, чтобы тест упал, нужно выбросить исключение 1С. Для этого используются вызовы специальных методов-утверждений из фреймворка xUnitFor1C. См. Методы проверки/утверждений
-
Предопределенные методы теста
-
-
-
Переменная ЮТест
-
содержит в себе ссылку на экземпляр фреймворка xUnitFor1C - объект обработки UnitTestRunner
-
с помощью этой переменной можно использовать предопределенные методы xUnitFor1C. Например, см. Методы проверки/утверждений
-
имя ЮТест необязательно, можно использовать любое другое имя переменной
-
значение этой переменной должно быть заполнено в методе ПолучитьСписокТестов
-
Метод ПолучитьСписокТестов
-
должен вернуть массив описаний тестовых случаев
-
именно этот массив и является списком выполняемых тестов
-
Метод ПередЗапускомТеста
-
вызывается перед запуском каждого теста
-
ПослеЗапускаТеста
-
вызывается после запуска каждого теста
-
метод вызывается независимо от того, успешно прошел тест или упал.
-
Базовые приемы написания тестов
-
Для гарантирования независимости тестов (это одно из основных требований к тестам) рекомендуется использовать механизм транзакций.
-
Перед запуском теста начинаем транзакцию, после выполнения теста транзакция отменяется. В итоге в базе не остается никаких следов тестирования и тесты работают независимо.
-
Можно использовать следующий шаблон методов теста
-
Процедура ПередЗапускомТеста() Экспорт
- НачатьТранзакцию();
-КонецПроцедуры
-
-Процедура ПослеЗапускаТеста() Экспорт
- Если ТранзакцияАктивна() Тогда
- ОтменитьТранзакцию();
- КонецЕсли;
-КонецПроцедуры
-
-
Базовый шаблон файла-теста
-
Перем ЮТест; // ссылка на экземпляр фреймворка xUnitFor1C - объект обработки UnitTestRunner
-
-//{ основная процедура для юнит-тестирования xUnitFor1C
-Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
-
- ЮТест = ЮнитТестирование;
-
- ВсеТесты = Новый Массив;
-
- ВсеТесты.Добавить("ТестДолжен_СложитьДваИДва");
-
-
- Возврат ВсеТесты;
-
-КонецФункции
-//}
-
-//{ ОСНОВНОЙ БЛОК
-
-//} КОНЕЦ ОСНОВНОГО БЛОКА
-
-//{ БЛОК ЮНИТ-ТЕСТОВ - сами тесты
-
-Процедура ПередЗапускомТеста() Экспорт
- НачатьТранзакцию();
-КонецПроцедуры
-
-Процедура ПослеЗапускаТеста() Экспорт
- Если ТранзакцияАктивна() Тогда
- ОтменитьТранзакцию();
- КонецЕсли;
-КонецПроцедуры
-
-Процедура ТестДолжен_СложитьДваИДва() Экспорт
- ЮТест.ПроверитьРавенство(2 + 2, 4, "2 + 2, 4");
-КонецПроцедуры
-
-//} КОНЕЦ БЛОКА ЮНИТ-ТЕСТОВ
-
Преобразование журнала действий пользователя во встроенный язык
-
Обработка предназначена для преобразования журнала действий пользователя в программу на встроенном языке.
-
Обработка позволяет преобразовывать указанные файлы или непосредственно введённый текст. Выберите нужный вам вариант в переключателе "Преобразовывать".
-
Формирование программы возможно на английском или русском варианте встроенного языка. По умолчанию используется вариант языка используемый в конфигурации. При необходимости сгенерировать программу в другом варианте укажите необходимый в поле "Генерировать сценарий в варианте встроенного языка".
-
В поле "Имя основной процедуры" указывается имя процедуры, которая будет являться точкой входа в сценарий.
-
Если планируется использовать сгенерированную процедуру самостоятельно (например, во внешней обработке), имеется возможность сгенерировать код подключения к тестируемому клиенту, отметив флажок "Генерировать код подключения к клиенту". В противном случае для процедуры будет сформирован параметр ТестируемоеПриложение, в который при вызове будет необходимо передать существующий объект типа ТестируемоеПриложение, который уже установил соединение с тестируемым клиентом.
-
Для упрощения чтения получаемого кода сгенерированная программа разбивается по "границам" окон приложения на подпрограммы. Если отметить флажок "Разбивать результат на процедуры по "границам" окон" будет сформирована одна большая процедура.
-
Отметка флажка "Генерировать получение родительских объектов в иерархии" позволяет при вызове метода какого-либо объекта сгенерировать получение всех родительских тестируемых объектов, которые находятся между текущим тестируемым объектом и формой. Если флажок сброшен - генерируется поиск объектов непосредственно через объект тестируемой формы.
\ No newline at end of file
diff --git "a/lib/CF/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 @@
-
-
-
-
\ 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 @@
-
-
\ 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 @@
-
-
-
-
- UnpackV8
-
-
- ru
- Unpack v8
-
-
-
- BinaryData
-
-
-
\ 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 @@
-
-
-
-
- zlib1
-
-
- ru
- Zlib1
-
-
-
- BinaryData
-
-
-
\ 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 @@
-
-
-
-
- ШаблонТеста_ВнешняяОбработка
-
-
- ru
- Шаблон теста внешняя обработка
-
-
-
- BinaryData
-
-
-
\ 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 @@
-
-
-
-
\ 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 @@
-
-
\ 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 @@
-
-
-
-
\ 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 @@
-
-
-
-
- СозданиеДвухЗаписейВРегистреСведений
-
-
- ru
- Создание двух записей в регистре сведений
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеДвухЗаписейРегистраБухгалтерии
-
-
- ru
- Создание двух записей регистра бухгалтерии
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеДвухЗаписейРегистраНакопления
-
-
- ru
- Создание двух записей регистра накопления
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеДвухПростыхСправочников
-
-
- ru
- Создание двух простых справочников
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеДокументаСДвумяСтрокамиВТабличнойЧасти
-
-
- ru
- Создание документа с двумя строками в табличной части
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеДокументаСДвумяТабличнымиЧастями
-
-
- ru
- Создание документа с двумя табличными частями
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеЗаполнениеУзловПланаОбмена
-
-
- ru
- Создание/заполнение узлов плана обмена
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеНесколькихПользователейИБ
-
-
- ru
- Создание нескольких пользователей ИБ
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеОбъектаСЗаполненнымРеквизитомТипаПеречисление
-
-
- ru
- Создание объекта с заполненным реквизитом типа перечисление
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеПодчиненногоСправочника
-
-
- ru
- Создание подчиненного справочника
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеПростогоСправочника
-
-
- ru
- Создание простого справочника
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеПростогоСправочника_ПредставлениеНеИдентификатор
-
-
- ru
- Создание простого справочника представление не идентификатор
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеСвязанныхСправочников
-
-
- ru
- Создание связанных справочников
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеСправочникаВГруппе
-
-
- ru
- Создание справочника в группе
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеСправочникаСДвумяСтрокамиВТабличнойЧасти
-
-
- ru
- Создание справочника с двумя строками в табличной части
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеСправочникаСПустойСсылкойРеквизитаСоставногоТипа
-
-
- ru
- Создание справочника с пустой ссылкой реквизита составного типа
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- СозданиеСправочникаСРеквизитомСсылка_РежимПоискаКод
-
-
- ru
- Создание справочника с реквизитом ссылка режим поиска код
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- ЭталонМакетаДвухЗаписейВРегистреСведений
-
-
- ru
- Эталон макета двух записей в регистре сведений
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 @@
-
-
-
-
- ЭталонМакетаПростогоСправочника
-
-
- ru
- Эталон макета простого справочника
-
-
-
- SpreadsheetDocument
-
-
-
\ 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 Тогда
- // Не найден закрывающий тег - вырезаем оставшийся текст.
- ПозицияЗакрывающегоТега = СтрДлина(Текст);
- КонецЕсли;
- Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 9);
- ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 9);
- Позиция = Найти(Текст, "");
- Если ПозицияЗакрывающегоТега = 0 Тогда
- // Не найден закрывающий тег - вырезаем оставшийся текст.
- ПозицияЗакрывающегоТега = СтрДлина(Текст);
- КонецЕсли;
- Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 9);
- ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 9);
- Позиция = Найти(Текст, "");
- Если ПозицияЗакрывающегоТега = 0 Тогда
- // Не найден закрывающий тег - вырезаем оставшийся текст.
- ПозицияЗакрывающегоТега = СтрДлина(Текст);
- КонецЕсли;
- Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 9);
- ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 9);
- Позиция = Найти(Текст, "");
- Если ПозицияЗакрывающегоТега = 0 Тогда
- // Не найден закрывающий тег - вырезаем оставшийся текст.
- ПозицияЗакрывающегоТега = СтрДлина(Текст);
- КонецЕсли;
- Текст = Лев(Текст, Позиция - 1) + Сред(Текст, ПозицияЗакрывающегоТега + 9);
- ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1) + Сред(ИсходныйТекст, ПозицияЗакрывающегоТега + 9);
- Позиция = Найти(Текст, "