#0
by ВаликТР
<yml_catalog xmlns="; xmlns:xsi="; xsi:type="anyType" date="2006-11-30 16:46"> Кодом читаю Объект = ФабрикаXDTO.(Чтение...) - читается нормально. Как добавить элементы currency перебирая справочник Валют. Если можно привести код - буду признателен.
#4
by ВаликТР
Все верно. Нужно в Список <currencies> добавить все записи из справочника через XDTO Не поверите, куча примеров работает, а мой конкретный - нет. 99% примеров с XDTO используют схему XML. А у меня ее нет. Есть уже готовый XML, который я читаю через ФабрикаXDTO.ПрочитатьXML(...) Может кто может набросать как создать/добавить этот элемент списка?
#5
by Armando
Надо на основе XML создать схему. На основе схемы создать фабрику. Тогда будет работать. Вроде так.
#6
by Serginio1
Табличная часть не заполняется через ЗаполнитьЗначенияСвойств(Об, Клиент); Нужно построчно записывать Вообще читай сразу через СерриализаторXDTO или приводи объект Объект=СериализаторXDTO.ПрочитатьXDTO(Клиент );
#7
by Serginio1
Создай схему и записывай и читай по ней. Либо считывай в таблицу значений и работай с ней
#12
by Serginio1
Конечно выдаст yml_catalog. Ну так выбирай Для каждого Элем из Объект.currencies Цикл Проблемы могут возникнуть когда будет один элемент currencies так как он будет считаться как единичный смотри
#13
by ВаликТР
Спасибо за РЕАЛЬНЫЙ код, а не слова. Задача - добавить в <currencies> те самые <currency> с заполненными из справочника реквизитами. Что это за искомые буквосочетания (???) и (!!!) ?
#14
by Serginio1
Можно Добавлять так СтрокаXDTO=ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(";, "decimal"), Выборка.Курс); Объект.Добавить(ФормаXML.Элемент, ";, "rate",СтрокаXDTO);
#15
by Serginio1
Можно создавать любой объект из anyType Объект = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(";, "anyType")); ЗначениеАтрибута=ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(";, "string"), "Значение атрибута"); Объект.Добавить(ФормаXML.Атрибут, ";, "atr",ЗначениеАтрибута); СтрокаXDTO=ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(";, "decimal"), 3.14); Объект.Добавить(ФормаXML.Атрибут, ";, "atr2",ЗначениеАтрибута); (ФормаXML.Атрибут,";,ЗначениеАтрибута); Объект.Добавить(ФормаXML.Элемент, ";, "elem",ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(";, "string"), "Значение Элемента")); СтрокаXDTO=ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(";, "decimal"), 3.14); Объект.Добавить(ФормаXML.Элемент, ";, "elem",СтрокаXDTO); (";, "string"), "Значение элемента"));
#16
by Serginio1
А лучше посмотреть в отладчике. Или схему. Обчно это делается так Тип=ФабрикаXDTO.Тип(Пространствоимен, ИмяТипа)); ИмяТипа в твоем случае currency
#18
by ВаликТР
Большое спасибо. Под вашим чутким руководством сдвинулся с мертвой точки. Записал вот так: Объект.Добавить(ФормаXML.Элемент, ";, "currency", СтрокаXDTO); КонецЦикла; в результате мне добавило вот так... <yml_catalog xmlns="; xmlns:xsi="; date="2006-11-30 16:46"> <shop xmlns="" xmlns:xs="; а как же его засунуть в <currencies> да еще и в виде атрибутов?
#19
by Serginio1
Объект.Добавить(ФормаXML.Атрибут, ";;, "currency", СтрокаXDTO); Сделай пакет и создай типы и по нему записывай.
#20
by ВаликТР
СтрокаXDTO = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("; target="_blank" rel="nofollow" class="extralink">;;, "string"), ???); Объект.Добавить(ФормаXML.Элемент, ";;, "currency", СтрокаXDTO); какое значение вместо ???. Если "", не сделает ли он мне
#22
by Serginio1
Или ЗначениеАтрибута=ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(";, "string"), "840"); currency=Объект.currencies[n]; currency.Добавить(ФормаXML.Элемент, ";, "id",ЗначениеАтрибута); Посмотри в отладчике
#24
by Serginio1
В общем схема такая об = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(";, "anyType")); ЗначениеАтрибута=ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(";, "string"), "840"); об.Добавить(ФормаXML.Атрибут, ";, "id",ЗначениеАтрибута); Объект.currencies.Добавить(ФормаXML.Элемент, ";, "currency",об);
#26
by ВаликТР
ФАНТАСТИКА. Все гениальное - просто. Если есть голова у человека. Поборол с вашей помощью. Полгода в поисках ... :-) Спасибо большое. Осталась самая малость выводится файл <?xml version="1.0" encoding="UTF-8"?> <yml_catalog xmlns="; xmlns:d1p1="; xmlns:xsi="; d1p1:date=""> <d4p1:currency xmlns:d4p1="; d4p1:id="RUB" d4p1:rate="1" d4p1:plus=""/> <d4p1:currency xmlns:d4p1="; d4p1:id="USD" d4p1:rate="31.0685" d4p1:plus=""/> <d4p1:currency xmlns:d4p1="; d4p1:id="EUR" d4p1:rate="37.8476" d4p1:plus=""/> Как избавиться от этих "xmlns", "d4p1", чтоб остались чистые атрибуты? Есть надежда?
#28
by Serginio1
А зачем? XML будет прекрасно читаться и с этими атрибутами. Попробуй записывать без пространства имен Кроме того можно управлять префиксами через ЗаписьXML.ЗаписатьНачалоЭлемента(XMLСтрока("Данные")); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("", ";); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", ";); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xs", ";);
#29
by Serginio1
А вообще можешь напрямую писать в ЗаписьXML Запись.ЗаписатьНачалоЭлемента("apple"); Запись.ЗаписатьСоответствиеПространстваИмен("nsp", ";); Запись.ЗаписатьАтрибут("weight", ";, "12.5");
#30
by ВаликТР
Вы опять правы. Все лишнее убралось. Подскажите, в файле ... ... как получить значение "Дисплеи"? Это Свойство ОбъектаXDTO или что? У меня в свойствах "category" не появляется свойство с ФормаXML.Текст? В каком Объекте отладчика можно увидеть Форма:ФормаXML.Текст.
#32
by ВаликТР
А если xml с "Дисплеем" прочитать фабрикой, тогда это свойство будет доступно? И где, каким кодом его можно узнать?
#34
by ВаликТР
Вы привели пример, как читать XML построчно. Но я имел в виду, если XML следующего содержания то, напимер id="00000001" получаем так Объект.shop.categories.category[0].id А как у Объекта получить "Дисплеи"?
#35
by Serginio1
Да никакак. С такой записью ты должен обращаться как Объект.shop.categories.category[0], но он считает что это комплексный тип и не возвращает Дисплеи.
#37
by ВаликТР
Если можете, подскажите, как добавить в Объект.categories.category сначала Текст потом Атрибут?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как добавить дополнительные группы строк в баланс? 1С Налогоплательщик...
- не могу записать элемент: Не определена Дата! Элемент не может быть записан!"
- Вставляю ТЗ на форму, как добавить иконки Добавить строку, изменить
- Как в последовательно записываемый документ XML добавить в корневой элемент
- В графическую схему возможно добавить элемент программно?
- Как сделать кнопку добавить с помощью, которой можно добавить номенклатуру
- Как на форму "Произвольная" добавить кнопку "Добавить"
- 1с как добавить элемент в существующий массив
- СКД - Добавить набор данных объект - Добавить поле "вложенный набор данных"
В этой группе 1С
- УТ11. Отражение расходов на доставку клиенту в отчете по валовой прибыли.
- СКД чередование цветов в условном оформлении
- Аутлук - 2003 - как ограничить объем вложения отправляемого письма..?
- Управление Торговлей 11.1 Взаимодействие между кассой предприятия и кассой ККМ
- Пытаюсь получить задолженность контрагента перед организацией
- УТ 11. Доработка печатной формы счет-фактуры
- Учет дней работы в выходной для расчет среднего для отпуска
- Ут 11.1 Эквайринг, обработка "Загрузка отчета банка по эквайрингу"
- Как перебрать в цикле базы sql и сменить владельца
- xml как сделать цикл ?
- Учет в 1С комиссии банка при оплате от зарубежного партнера,как списать с него з
- Как изменить реквизит табличной части формы?
- Конвертация БП -> УПП ОперацияБух
- УТ11: Основной склад пользователя
- Мат помощь в расчете больничного
- Бухгалтерия 3.0 где смотреть ошибки при закрытии месяца?
- v7: Зик последний релиз
- как очистить регистр бухгалтерии
- Ошибка при отладке обмена
- Сохранение Табличного документа в Excel файл, программно.