#0
by mikecool
Как то научился через фабрику выгружать в хмл А теперь бы хотелось прочитать. Подскажите последовательность - что за чем пожалуйста типа прочитать созданный мною хмл и создать выгруженные объекты
#0
by mikecool
Как то научился через фабрику выгружать в хмл А теперь бы хотелось прочитать. Подскажите последовательность - что за чем пожалуйста типа прочитать созданный мною хмл и создать выгруженные объекты
#1
by mikecool
выгружал через сериализатор хдто как вижу ПрочитатьXML ПрочитатьXDTO или XMLЗначение ? как понять, что объект закончился(если их несколько)?
#6
by mikecool
типо вроде все просто... но - чтение файлов с записанным одним объектом рассмотрена только а у меня - пачками выгружаются но - буду пробовать
#18
by Serginio1
Через Пакеты XDTO ты описываешь свои данные. Данные могут быть как структурой так и массивом или списком структур или примитивных типов. Для того что бы создать массив нужно указать минимальное количество 0, максимальное количество размер массива, для списка это -1. Ну и выдумать свое пространство имен. Все достаточно просто.
#24
by Serginio1
А ты обычным чтение XML пройдись, а сериализатору подсовывай не весь файл, а только данные относящиеся к одному объекту. Объект может быть списком.
#26
by mikecool
если я могу выгрузить список одной строкой, а потом восстановить одной строкой - я попробую )))
#27
by mikecool
еще я чет не понял - нафик я создаю сериализатор, если все равно пользуюсь только Сериализатор.ФабрикаХДТО?
#29
by mikecool
СписокОбъектов = Новый СписокЗначений; ... СписокОбъектов.Добавить(Объект); ... Фабрика.ЗаписатьXML(ЗаписьXML, СписокОбъектов); ругается на второй параметр )
#30
by mikecool
и так не создается )) СписокОбъектов = Фабрика.Создать(Фабрика.Тип("http://v8.1c.ru/8.1/data/enterprise/current-config", "ValueList"));
#34
by mikecool
возьму для примера справочник Номенклатура выбираю с иерархией добавляю корневой с наименованием типа "Номенклатура моей фирмы" и этому объекту в элементы уже напихиваю
#44
by Serginio1
Не СписокОбъектов.Добавить посмотри в отладчике какие у СписокОбъектов свойчтва. Сейчас сам посмотрю тже
#48
by mikecool
новая фича Несоответствие типов XDTO: Тип '{' не соответствует типу '{' Тип свойства не соответствует типу значения походу в item надо как то типы присваивать
#53
by mikecool
Ошибка при установке значения атрибута контекста (valueType) по причине: по причине: Несоответствие типов XDTO: Тип '{' не найден Значение не может быть установлено свойству, имеющему объектный тип
#55
by mikecool
получаю Несоответствие типов XDTO: Свойство не может содержать неопределенное значение
#56
by Serginio1
Вот так работает СписокОбъектов = Фабрика.Создать(Фабрика.Тип("http://v8.1c.ru/8.1/data/core", "Array")); ТипСтрока=Фабрика.Тип("http://www.w3.org/2001/XMLSchema","string"); СписокОбъектов.value.Добавить(стр);
#60
by Serginio1
Кстати для для anytype должно такое проходить ТипСтрока=Фабрика.Тип("http://www.w3.org/2001/XMLSchema","string"); Но для списказначений это не проходит
#62
by Serginio1
ОбъектXDTO это список. Для каждого товар и ОбъектXDTO.value цикл //создавай или сериализуй свои объекты КонецЦикла
#64
by mikecool
напоролся Ошибка при вызове метода контекста (ПрочитатьXML) по причине: по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: { - [7,16] Проверка дополнительного свойства: форма: Элемент имя: { по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: { - [16,3] Проверка дополнительного свойства: форма: Элемент имя: { по причине: Ошибка отображения типов: Отображение лексического значения '' в значение типа 'СправочникСсылка.усЕдиницыХранения' по причине: Ошибка преобразования данных XML заголовок файла -<Array xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://v8.1c.ru/8.1/data/core"> -<Value xsi:type="d2p1:CatalogObject.усНоменклатура" xmlns:d2p1="http://v8.1c.ru/8.1/data/enterprise/current-config"> <d2p1:IsFolder>true</d2p1:IsFolder> <d2p1:Ref>a1ca969d-a7cb-11dc-a89f-003048796049</d2p1:Ref> <d2p1:DeletionMark>false</d2p1:DeletionMark> <d2p1:Parent>00000000-0000-0000-0000-000000000000</d2p1:Parent> <d2p1:Code>00000000492</d2p1:Code> <d2p1:Description>.Товары</d2p1:Description> чего то снова не хваатет?
#69
by DmitrO
Не правильно. Не точно мысль выражена. Для объектов справочника в xml данных, должны быть все реквизиты которые определены для объекта с учетом значения предопределенного реквизита ЭтоГруппа. Реквизиты могут быть определены для групп и для элементов по-разному. Это никак не отражается в xml-схеме, но это влияет на сериализацию и успешность десериализации. В сериализации первого объекта в массиве видно что это группа (<d2p1:IsFolder>true</d2p1:IsFolder>), дальше после наименования идут реквизиты Артикул, БазоваяЕдиницаХранения и т.п., поэтому два вопроса: 1)они все определены для группы? 2)пустые значения (в понятиях 1С значения по умолчанию) не всегда могут быть представлены просто пустой строкой, например xml-предствление пустой ссылки - это вовсе не пустая строка (если БазоваяЕдиницаХранения это ссылочный тип, то должно быть 00000000-0000-0000-0000-000000000000).
#70
by mikecool
по 1 пункту - нет, буду смотреть по 2 пункту - не могу туда засунуть ссылку на пустой объект хдто, пробую получаю Ошибка при установке значения атрибута контекста (ТипТранспортнойЕдиницы) Объект.ТипТранспортнойЕдиницы = ТипТранспортнойЕдиницы; по причине: по причине: Несоответствие свойства и элемента данных XDTO: Свойство: 'ТипТранспортнойЕдиницы' на момент установки это свойство неопределено
#72
by Serginio1
Ты эксортируй пакеты в выгружаемую конфигурацию из загружаемой. Тогда заполнение должно пройти нормально и загрузка.
#73
by DmitrO
почему CatalogObject.усТипыТранспортныхЕдиниц? там не может быть CatalogObject, там должен быть CatalogRef
#75
by DmitrO
Ну и вообще в целом в Array выгружать все это вовсе не обязательно. Можно выгружать в корневой элемент с любым именем, а потом просто читать сериализатором последовательно уже в объекты, как написано в .
#76
by mikecool
фабрика в моей конфиге создается по хмл-схеме приемника при попытке создать ref - получаю вместо ссылки Неопределено, так хоть объект создается да я хочу без лишнего класса, через фабрику ) пока резюме - обработал группы, выгрузилось все норм при попытке загрузки Проверка дополнительного свойства: форма: Элемент имя: { по причине: Ошибка отображения типов: Отображение лексического значения '' в значение типа 'СправочникСсылка.усЕдиницыХранения' по причине: Ошибка преобразования данных XML в хмл получилось -<Value xsi:type="d2p1:CatalogObject.усНоменклатура" xmlns:d2p1="http://v8.1c.ru/8.1/data/enterprise/current-config"> <d2p1:IsFolder>true</d2p1:IsFolder> <d2p1:Ref>a1ca969d-a7cb-11dc-a89f-003048796049</d2p1:Ref> <d2p1:DeletionMark>false</d2p1:DeletionMark> <d2p1:Parent>00000000-0000-0000-0000-000000000000</d2p1:Parent> <d2p1:Code>00000000492</d2p1:Code> <d2p1:Description>.Товары</d2p1:Description> <d2p1:БазоваяЕдиницаХранения/> </Value> то бишь пустое значение не хавает, а как туда засунуть пустое значение базы приемника - я хз ибо
#77
by Serginio1
С эрраем то проще читать. Меньше буковок нажимать. Он для выгрузки использует родной сериализатор, а по уму должен заполнять объекты из пакета в экспортируемую конфигурацию
#81
by DmitrO
т.е. читаться будет сразу весь массив(?); и в памяти создадутся все объекты, которые содержаться в файле(?); ну конечно, кто же сейчас расход памяти считает проблемой..
#84
by DmitrO
да что блин :) БазоваяЕдиницаХранения для групп определена? Наверно нет ведь. Значит элемента <d2p1:БазоваяЕдиницаХранения/> вообще быть не должно тут.
#87
by mikecool
+86 запихнул 00000000-0000-0000-0000-000000000000 - вроде съелось при загрузке тест идет дальше )))
#90
by mikecool
усе получилось, теперь буду разбирать, что делать с этими хдто объектами в приемнике )))
#91
by mikecool
вернулся к массиву, вернее к его уборке пытаюсь "рисовать" корневой элемент, какой тип выбрать для него, чтобы потом восстанавливать последовательным чтением сериализатором?
#94
by Serginio1
Ну с делай структуру которая содержит массв групп и массив элементов. И будет тебе дерево
#98
by mikecool
я чего подумал - я могу же оставить массив с элементами и читать его сериализатором? будет ли он читать по-элементно?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Загружаю XML файл от 1С в Оракл (проблемы) ... Кто знает:Оракл,XML,1с8 ?
- XML ошибка "Не удается просмотреть ввод XML с использованием списка стилей
- Конвертация данных: как при загрузке прочитать из файла обмена "левые" данные?
- Как прочитать из xml в XDTO объект данных 1С любой конфигурации через anyType?
- Преобразование XML через Фабрику XDTO.
- Загрузка движений документов через универсальный обмен xml
- Как прочитать комментарий в заголовке XML из DOMДокумента?
- Чтение XML через фабрику XDTO. Как получить значение?
- запись файле xml через СериализаторXDTO
- Как прочитать в XML тег Документ.ТегКоторыйМожетОтсутствовать через ФабрикаХДТО?
В этой группе 1С
- Hyper-V подключение физического диска к ВМ
- Где хранятся настройки внешних отчетов?
- По регистру накоплений нужны Нач, Кон остатки и реквизиты
- УТ 11.0.6.9 - как разместить заказ покупателя в конкретном заказе поставщику?
- Ведомость по товарам на складах с назначением
- Как отлаживать РЛС
- Как программно изменить запись в РС?
- Как лучше хранить список связанной информации?
- 1с8+Red Hat Linux+PostgreSQL
- v8: Выборка уникальных записей ресурса регистра
- Выборка остатков из регистра оборотов
- Расходная накладная в евро, оплаченная авансом, что с рублевой суммой?
- И снова: сбилась нумерация документов в УПП
- Узнать все сервера 1С в сети.
- v7: 1С Вылетает при открытии внешней обработки
- Проблема с проверкой сертификата
- не удалось заблокировать таблицу 'SESSIONS'
- Ошибка - индекс находится за пределами массива
- Не видит функцию общий модуль с флагом Глобальный
- Ширина колонок табличной части документа - сохранение настроек