#Область ПрограммныйИнтерфейс
Функция ПолучитьОписаниеЭлементовГрафическойСхемы() Экспорт
// значения itemType
Результат = Новый Соответствие;
Результат.Вставить(0, "Декорация");
Результат.Вставить(1, "Линия");
Результат.Вставить(2, "Старт");
Результат.Вставить(3, "Завершение");
Результат.Вставить(4, "Условие");
Результат.Вставить(5, "Действие");
Результат.Вставить(6, "Выбор варианта");
Результат.Вставить(7, "Разделение");
Результат.Вставить(8, "Слияние");
Результат.Вставить(9, "Точка обработки");
Результат.Вставить(10, "Вложенный бизнес-процесс");
Возврат Результат;
КонецФункции
Функция ПолучитьXMLГрафическойСхемы(ГрафическаяСхема) Экспорт
Результат = "";
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
Сериализатор.ЗаписатьXML(ЗаписьXML, ГрафическаяСхема, НазначениеТипаXML.Явное);
Результат = ЗаписьXML.Закрыть();
Возврат Результат;
КонецФункции
Функция ПолучитьDOMГрафическойСхемы(ГрафическаяСхема) Экспорт
Результат = Неопределено;
XMLГрафическойСхемы = ПолучитьXMLГрафическойСхемы(ГрафическаяСхема);
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(XMLГрафическойСхемы);
ПостроительDOM = Новый ПостроительDOM;
Результат = ПостроительDOM.Прочитать(ЧтениеXML);
Возврат Результат;
КонецФункции
Функция ПолучитьГрафическуюСхемуИзXML(СтрокаXML) Экспорт
Результат = Неопределено;
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(СтрокаXML);
Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
Результат = Сериализатор.ПрочитатьXML(ЧтениеXML);
Возврат Результат;
КонецФункции
Функция ПолучитьГрафическуюСхемуИзDOM(ДокументDOM) Экспорт
Результат = Неопределено;
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписьDOM = Новый ЗаписьDOM();
ЗаписьDOM.Записать(ДокументDOM.ДочерниеУзлы[0] , ЗаписьXML);
XMLГрафическойСхемы = ЗаписьXML.Закрыть();
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(XMLГрафическойСхемы);
Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
Результат = Сериализатор.ПрочитатьXML(ЧтениеXML);
Возврат Результат;
КонецФункции
Функция НайтиЭлементПоЗначениюСвойства(ДокументDOM, ИмяСвойства, Значение) Экспорт
Результат = Неопределено;
СписокЭлементовDOM = ДокументDOM.ПолучитьЭлементыПоИмени(ИмяСвойства);
Для Каждого Элемент Из СписокЭлементовDOM Цикл
Если Элемент.ТекстовоеСодержимое = Значение Тогда
Результат = Элемент.РодительскийУзел;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Функция ПолучитьЗначениеСвойстваЭлемента(ЭлементDOM, ИмяСвойства) Экспорт
СписокЭлементовDOM = ЭлементDOM.ПолучитьЭлементыПоИмени(ИмяСвойства);
Если СписокЭлементовDOM.Количество() = 1 Тогда
Возврат СписокЭлементовDOM[0].ТекстовоеСодержимое;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Процедура УстановитьЗначениеСвойстваЭлемента(ЭлементDOM, ИмяСвойства, Значение) Экспорт
СписокЭлементовDOM = ЭлементDOM.ПолучитьЭлементыПоИмени(ИмяСвойства);
Если СписокЭлементовDOM.Количество() = 1 Тогда
СписокЭлементовDOM[0].ТекстовоеСодержимое = Значение;
КонецЕсли;
КонецПроцедуры
#КонецОбласти