XSL преобразование в 1С

XSLT есть в 1C, в отличие от регулярных выражений. Значит, надо попробовать.

Доброго времени суток!

  Если спросить простого 1С-ника, что такое XSL преобразование, он, наверно, Вам ничего не скажет. Есть, конечно, знающие люди, но их мало. В стандартных конфигурациях это мало используется, и использовать в такой закрытой системе, как 1С, сложно. Но все по порядку.

  На самом деле XSLT есть в 1C (объект ПреобразованиеXSL), в отличие от регулярных выражаний ( //infostart.ru/public/183084/ ). Да, она, конечно, только версии 1.0, но нам не привыкать к трудностям. Что же это такое? Если кратко — берем один файл xml и по шаблону превращаем его в другой. Сразу возникает куча вопросов как, поэтому отсылаем к первоисточникам https://www.w3schools.com/xml/xsl_intro.asp

А сами покажем маленький пример обработки на 1С.

Сайт: http://sikuda.ru/archives/308

P.S.

Я думаю, она не стала популярной, так потребности внутри  1С нет. Динамические преобразования XML в части интерфейса слабо развиты или  применяются закрытые методы 1С. Но я думаю, может, кому и пригодится.

Дополнительно:

//infostart.ru/public/146223/

6 Comments

  1. cool.vlad4

    у вас же на картинке правильный порядок букв, почему в заголовке и в тексте неправильный (расширение excel)?

    eXtensible Stylesheet Language Transformations

    Reply
  2. Yashazz

    О, вот и публикация на эту тему. Гуд!

    Сам пользуюсь, у нас такенные хмл-файлы приходят, что построчно их преобразовывать да туда-сюда готовить к нетривиальному чтению — дело очень долгое. Посему юзаем. Посмотрю, авось что и пригодится.

    (1) Автор уже успел поправить. Бывает, опечатался )).

    Reply
  3. cool.vlad4

    ну исправил, молодец. теперь о деле. под виндой есть возможность использовать xslt 2.0, — использовать добротный движок (есть бесплатная версия), с примерами и даже где-то валяющейся в инете документацией — http://www.altova.com/download/altovaxml.html (altova знают наверное многие, кто имел дело с xml). качаем community edition и по аналогии с примером из js, код 1С,

    Попытка
    objAltovaXML = Новый COMОбъект(«AltovaXML.Application»);
    Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
    КонецПопытки;
    strExampleFolder = «Здесь путь к altova……AltovaXMLExamples»;
    xslt2 = objAltovaXML.XSLT2;
    xslt2.XSLFileName = strExampleFolder + «CopyInputXSLT2.xsl»;
    xslt2.InputXMLFileName = strExampleFolder + «simple.xml»;
    xslt2.Execute(strExampleFolder + «OutputFrom1C.xml»);

    Показать

    там же лежит библиотека типов, можно посмотреть какие еще методы поддерживаются (в принципе их не так много)

    Reply
  4. stanru1

    очень огорчает и ограничивает отсутствие поддержки 2й версии xslt. вменяемого быстрого способа работы с 2й версией не нашел (saxon работает медленно и через ж. — то есть, через файлы). Но saxon не надо устанавливать, в отличие от altova. Вообще удивляет и обращает на себя внимание отсутствие свободных xslt движков 2й версии.

    Reply
  5. nmt450

    stanru1, скорее всего уже и не будет. Технология XSLT в вэбе, где и предполагалось основное применение, «не взлетела». Поддержка XSLT в браузерах появилась в IE6, и с тех пор не обновлялась лет десять. Год назад один из последних «могикан» — mail.ru отказалась от использования XSLT в своем почтовом сервисе.

    Желающих развивать эту технологию уже давно не наблюдается.

    Reply
  6. volvulus

    (5) А какие есть альтернативы xsl преобразованиям?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *