|
1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
EugeneSemyonov 22.09.16 - 15:59 | Доброго дня, всем!
Подскажите, кто знает какие пространства имён XSL необходимо использовать для преобразования результатов сериализации объектов 1C? Конкретно мне нужно из сериализованного документа удалить реквизит. Шаблон для преобразования сообщений обмена 1С у меня есть, но на сериализованном объекте он не отрабатывает. Пример сериализованного объекта: <DocumentObject.Заявка xmlns="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="DocumentObject.Заявка"> <Ref>660325f5-80a7-11e6-941d-ac220bb7949b</Ref> <DeletionMark>false</DeletionMark> <Date>2016-09-22T12:31:55</Date> <Number>00ЗК-00014</Number> <Posted>false</Posted> <Фирма>00000000-0000-0000-0000-000000000000</Фирма> <ДатаПоставки>2016-09-21T00:00:00</ДатаПоставки> <Павильон>0dc7301f-359b-11e4-a3e8-bcee7b9ca45f</Павильон> <Газель>0dc7301f-359b-11e4-a3e8-bcee7b9ca45f</Газель> <Ответственный>00000000-0000-0000-0000-000000000000</Ответственный> <Обработана>false</Обработана> <Комментарий/> <ЗаявкаПоваров>false</ЗаявкаПоваров> <КонтрольнаяСумма/> <Состав> <Номенклатура>801eb422-addd-11e3-9528-00155d00c900</Номенклатура> <Единица>ac5c9e52-8772-11e4-8bf7-bcee7b9ca45f</Единица> <Количество>0</Количество> <Коэффициент>0.4</Коэффициент> <КолЗак>0</КолЗак> <ЕдЗак>00000000-0000-0000-0000-000000000000</ЕдЗак> <КоэффЗак>0</КоэффЗак> <Справочно>0</Справочно> </Состав> </DocumentObject.Заявка> Шаблон преобразования сообщения обмена: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:v8msg="http://v8.1c.ru/messages" <--Здесь нужно указать правильное пространство имён -->> <xsl:output method="xml" encoding="UTF-8"/> <xsl:template match="node() | @*"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <xsl:template match=" <--Здесь нужно указать правильное пространство имён --> /DocumentObject.Заявка/КонтрольнаяСумма"/> </xsl:stylesheet> | ||
Cyberhawk 1 - 22.09.16 - 17:03 | "Шаблон преобразования сообщения обмена" // Впервые слышу | ||
Mauser 2 - 22.09.16 - 17:15 | Вот интересно.
Какая связь между "мне нужно удалить реквизит" и "Шаблон для преобразования сообщений обмена"? Мне холодно, у меня есть четверг, но кружка не кактус? | ||
Fragster 3 - 22.09.16 - 17:35 | |||
EugeneSemyonov 4 - 23.09.16 - 09:54 | (1) Пусть будет: "XSL с помощью которого получается преобразовывать XML-ные сообщения обмена 1С"(2) Прикол в том что без указания правильного пространства имён строка полностью копируется без удаления ненужного мне реквизита. (3) вставил xmlns="http://v8.1c.ru/8.1/data/enterprise/current-config" вместо xmlns:v8msg="http://v8.1c.ru/messages", попробовал вместе эти пространства имен оставить - результата 0. Есть у кого матчасть? Дайте ссылку. | ||
Mauser 5 - 23.09.16 - 10:04 | |||
Fragster 6 - 23.09.16 - 10:22 | (4) xmlns="" надо вставить наверх, во второй кусок надо вставить что-то, чтобы было типа ".//DocumentObject.Заявка/..." | ||
Fragster 7 - 23.09.16 - 10:22 | это же выражение xpath, вроде | ||
EugeneSemyonov 8 - 26.09.16 - 12:24 | (5) Спасибо. Гуглом я пользоваться умею. 1С-ных пространств имён в буржуйских туториалах нет и не будет.
От 1С есть у кого-нить рекомендации и примеры по использованию ПреобразованиеXSL? | ||
EugeneSemyonov 9 - 26.09.16 - 12:32 | (6) "не выходит каменный цветок..." | ||
hhhh 10 - 26.09.16 - 12:43 | есть пространство имен. А есть схема. Это две разные вещи. | ||
Fragster 11 - 26.09.16 - 12:44 | (10) автор хочет сделать так, чтобы из одного current-config преобразовать XML в другой current-config. подход интересный, в некоторых случаях может ускорить выгрузку-загрузку данных в десятки раз. | ||
Mauser 12 - 26.09.16 - 12:50 | (8) И чем 1С-ное пространство имен отличается от не 1С-ного?
Злобные 1С-ники придумали свой XML и XSLT? | ||
hhhh 13 - 26.09.16 - 21:51 | (12) это в 1с давно всё придумали, задолго до автора. | ||
Mauser 14 - 26.09.16 - 22:00 | (13) Это желтые их черти бермутят воду во пруду, все придумал Нуралиев в восемнадцатом году. | ||
DrShad 15 - 26.09.16 - 22:13 | да забей ты вообще на пространство имен, оно нужно для описания в схеме различных типов и для чтения практически бесполезная штука | ||
Mauser 16 - 26.09.16 - 22:15 | Практически бесполезная штука [x] | ||
EugeneSemyonov 17 - 27.09.16 - 11:54 | (15) Подскажи, пожалуйста, тогда почему реквизит не удаляется? | ||
EugeneSemyonov 18 - 27.09.16 - 11:58 | (12) не поверишь! именем! ;-) | ||
hhhh 19 - 27.09.16 - 12:02 | (17) но почему оно должно удалять? Где у вас в шаблоне этом удаление? | ||
Mauser 20 - 27.09.16 - 12:03 | (19) Перед тегом закрытия </xsl:stylesheet> | ||
Mauser 21 - 27.09.16 - 12:04 | (19) Оно создает новый документ путем копирования всех узлов и атрибутов, за исключением указанного. Для определенного элемента происходит ничего =) | ||
hhhh 22 - 27.09.16 - 12:08 | (21) ну а причем тут пространство имен? Может же быть 10 пространств имен в одном документе? | ||
EugeneSemyonov 23 - 27.09.16 - 12:08 | Миш, ты ничего не подскажешь? | ||
Mauser 24 - 27.09.16 - 12:10 | (22) Да. Для срабатывания шаблона производящего ничего, ему надо попасть в квалифицированное имя узла. Оно прямо зависит от пространства имен обрабатываемого документа и немного косвенно - от пространства имен по умолчанию, в котором идет обработка шаблонов. Про это подробно написано по ссылкам в (5) | ||
Mauser 25 - 27.09.16 - 12:12 | Но, вместо изучения матчасти, Женя ждет готового решения, потому что, дескать, пространство http://v8.1c.ru/8.1/data/enterprise/current-config - особенное | ||
EugeneSemyonov 26 - 27.09.16 - 12:55 | (25) Честно признаться, на данный момент, необходимость использования данного решения отпала, но я уверен - пригодится в будущем. Поэтому я не забросил тему, а попробовал сделать как советовал ещё Fragster (3) (6). Не получилось. Прямо сейчас подробно изучать XSL в мои планы не входит.
В принципе тему можно закрывать, хоть и без решения. За ссылки спасибо ;-) |
|
Список тем форума
|