#0
by mrpink
Добрый день! Имеется файл xml с данными об изделии из pdm системы, файл достаточно объемный, в нем множество различной мнформации, всё это дело нужно правильно разобрать и создать в УПП в разных справочниках(спецификации, текарты, техоперации, номенклатура). Вданный момент я довольно коряво читаю этот файл через объектxdto, это позволяет мне хотя-бы не парсить файл, а обращаться к свойствам через точку. Но вот я думаю, а нельзя-ли ещё больше упростить с помощью сериализации? Вот есть у меня простая структура - ОбъектХДТО c тремя свойствами и спискомХДТО, а можно-ли создать в конфигурации подобный объект, (может быть справочник с тремя реквизитами и табчастью, может быть просто структуру) и сериализовать данные из файла прямо в этот объект? Насколько я понимаю сложность в именах и количестве реквизитов? Как считаете взлетит? Поделитесь опытом пожалуйста
#2
by Лефмихалыч
Это все равно, что голову под фуражку подгонять. У тебя есть система А и система Б, из А в Б идет сообщение, Б это сообщение читает и какие-то внутри себя выводы делает. Зачем для этого в Б дублировать архитектуру А?
#4
by Лефмихалыч
можно поставить между ними третью систему, которая будет сторожить очередь сообщений, гарантировать доставку осуществлять трансляцию объектов А в объекты Б. Такая система называется сервисная шина предприятия (ESB), но даже в ней для этого архитектуру ни под А, ни под Б нет смысла подгонять
#6
by Лефмихалыч
ESB, к слову сказать, как раз можен на основании сообщений А выдавать xlm-ки, содержащие сериализацию родных объектов Б. Это повысит независимость двух систем и надежность всей архитектуры предприятия. Но это надо работу работать в ощутимых объемах даже, если использовать какую-нить опенсорсную готовую ESB
#7
by Матадор
Можно написать набор XSL файлов, которе будут трансформировать исходный xml прямо в сериализованные объекты твоей конфигурации, останетсятолько пара строк кода, чтобы их записать. Но следить за актуальностью преобразований нужно будет самостоятельно. если вдруг что-то в метаданнх поменяется.
#8
by mrpink
Ну правильно, но меня же интересует общий случай - дальше, если возможна такая сериализация, я думал двинуть в сторону как из элемента xml с помощью сериализации создавать типы данных нужные мне...ну тоесть упрощенно - в УПП техопреация имеет 10 реквизитов, в файле 15, вот думал с помощь схем как-то настроить, чтобы из элемента xml формировалася мой тип, хотя уже чувствую что больно многого захотел))
#15
by mrpink
Подскажите, ЧЯДНТ, вот есть код ТипНабор = ФабрикаXDTO.Тип(";, "Набор"); ТипЗапись = ФабрикаXDTO.Тип(";, "Запись");
#16
by mrpink
а теперь я хочу без ЗаолнитьЗначенияСвойств создать ОбъектXDTO на основе строки, пробую
#18
by mrpink
я хочу: Вариант синтаксиса: Создание значения из значения Синтаксис: Создать(<Тип>, <Значение>) Параметры: Тип: ТипЗначенияXDTO. Тип, значение которого необходимо создать. Тип: Произвольный. Произвольное значение, на основе которого должно быть создано значение XDTO. Описание варианта метода: Создает значение XDTO по произвольному значению.
#20
by mrpink
получаю: {Обработка.XDTO.Форма.Форма.Форма}: Ошибка при вызове метода контекста (Создать) НоваяЗапись = ФабрикаXDTO.Создать(ТипЗапись, стр); по причине: Несоответствие типов (параметр номер '2')
#24
by mrpink
я предполагаю что такое сработает если ТипЗапись будет ЗначениеXDTO а у меня ОбъектXDTO
#27
by mrpink
...ну-ууу, я наивно предполагал, что если объект не может быть сериализован, то нужно просто описать схему
#28
by Лефмихалыч
не, если объект не может быть сериализован, то платформа не предоставляет волшебных методов, с помощью которых из объекта одним вызовом можно xml-ку сделать. Перебирай кодом атрибуты, стряпай xml "руками". Ты даже можешь назвать функцию для этого СериализоватьСтрокуТабличнойЧасти - видал, какая гибкость?
#29
by mrpink
дак так, оно но мне кажется логичным ожидать от платформы если я ей подсунул тип значения, типы всех свойств у неё есть, создать мне объект с полями такого-же типа и заполнить их сразу...в конце-концов если я не указываю, параметр он создает объект с нужными полями, только тип у них неопределено, после заполнить свойства у этих полей сразу свойства появляются... не пойму я чего-то
#30
by Serginio1
В старых релизах для AnyRef ЗаполнитьЗначенияСвойств не работало. Приходилось вручную устанавливать значение
#31
by Лефмихалыч
сегодня день долбанутых ожиданий. Во второй ветке подряд поциенты ожидают от платформы странного...
#32
by mrpink
а как описать в схеме элемент которого может не быть? ну тоесть есть свойсво объекта, которое по сути коллекция, но в конкретном файле в ней может элементов не быть, и ругается что не соответствует схеме
#33
by France
брось позицию Шухарда. У тебя очень адекватные посты бывают - не снижай уровень троллингом))
#35
by Лодырь
А использовать готовый продукт для связи УППхи и PDM? наверняка форматы стандартизированы и уже учтены.
#38
by mrpink
не ну это вообще не вариант, смотрели конечно - 1с pdm в разы хуже специализированных, да и вообще есть куча отделов которые работают с одной системой, а тут ты такой не, давайте лучше 1с:pdm поставим, чтобы мне в упп ваши данные удобнее выгружать было
#39
by Лодырь
Ну, хз если поковыряться и посмотреть тамошние импорты-экспорты вдруг что-то полезное можно найти?
#40
by mrpink
Пожалуй. Вообще, задача то решена - всё чот нужно у меня грузится, просто в процессе возникло то чувство когда понимаешь что работает, но работает коряво, повод разобраться с XDTO. Я сегодня уже больше склоняюсь к спасибо ребятам))
#41
by mrpink
Всё-таки осталась одна проблема - в читаемом файле нет упоминания про пространство имен, я в пакете описал типы содержащиеся в файле, но когда читаю файл, с параметром тип, он его не узнает, не знаю что делать - хоть дописывать пространство в файл перед его прочтением. Может кто подскажет? Я так понимаю что нужно описываемые мною типы привязать к некому пространству имен по-умолчанию, или вообще его не указывать
#44
by mrpink
спасибо конечно, но это к чему? Вопрос в следующем, есть файл xml, есть xdto схема этого файла, но в пакете определено пространство имен, а в файле нет, поэтому если я пытаюсь сказать фабрике чтобы она читая файл получала определенный тип данных она ругается, так как не узнает типа файла по имени(по имени без пространства имен) ,соответственно если в файл добавить этот параметр - указать xmlns="; то фабрика сразу начинает понимать тип... вот вопрос как зделать чобы она не обращала внимание на пространство имен
#45
by Serginio1
Это к преобразоварнию данных из одного объекта в другой. Так измени схему, либо измени файл. Но по моему в 1С нет возможности иметь схему без пространства имен. Попробуй.
#47
by mrpink
я и так пробовал создавать свою фабрику, мне кажется если можно как-то повлиять на эти пространства имен в которых он ищет указанные типы, то это именно в своей фабрике а не в глобальной...но как пока не нашёл
#48
by Serginio1
Каждый пакет привязан к своему пространству имен. Это является его идентификатором. Что бы ограничить использование пакетов создавай фабрику на основании пакетом.
#49
by mrpink
Не совсем понял Вас. Я создаю фабрику, другим конструктором, с одним параметром на основе набора схем XML, а что мне даст Ваш способ?
#50
by Serginio1
То есть пакеты у тебя в конфигураторе не прописаны? У тебя для чтения XML должна быть своя фабрика содержащие пакеты с пространствами имен содержащимися в твоем XML. Если в XML другие пространства, то и считываться они не будут
#52
by mrpink
Нет, изначально я импортировал пакеты из xsd в конфигурацию, они(типы) стали доступны из глобальной фабрики, после этого я создавал свою фабрику, загружая схему из файла, тогда мои типы были в созданной фабрике, не помогло
#55
by Serginio1
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="; elementFormDefault="qualified" attributeFormDefault="unqualified">
#56
by Serginio1
Специально проверил например описание такой схемы <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="; elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.3"> прекрасно читает такой файл
#58
by Serginio1
Сейчас проверил и прошу прощения. Не использует она фабрику при чтении. Все значения строковые.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v8: СКД: Сериализация настроек по отдельности.
- Сериализация СпискаЗначений В XDTO. Где я не прав?
- Сериализация объектов 1С своими руками. XDTO?
- 8.2. Как включить пакет XDTO в глобальную Фабрику XDTO?
- Сериализация XDTO
- XDTO: Как сделать свойство Типа объекта XDTO с составным типом данных
- Как сделать пакет XDTO со Списком XDTO с разнородными элементами ?
- XDTO скопировать список XDTO
- Возвращается XDTO объект вместо XDTO список в результате вызова веб сервиса
В этой группе 1С
- УТ 11 Претензия товаров поставщику
- Ошибка получения коллекции подчиненных объектов из входящих данных
- скд и ширина колонок в макете
- Программная установка цен номенклатуры
- Проблема с установкой клиента 1С групповыми политиками
- редактирование показателей расчета зарплаты ЗУП 3.0
- Не признается расход при поступлении товара (УСН)
- УФ. Отловить изменение сортировки динамического списка
- как вызвать запуск формы при запуске 1С8.2
- Такси. Как добавить команду ввода на основании?
- Автонумерация при создании документа
- Процедура или функция с указанным именем не определена
- Управляемые формы и хранилище значений?
- Ошибка при работе на тестовом серваке 1С
- Запись из 1С 8 напрямую в SQL
- Расхождения ИБ и ленты ФР. Управление торговлей 10.3
- УПП восстановление последовательности приобретение
- Заполнение таблицы значений управляемая форма
- Сканер штрих-кода и кодировка 2D кода
- СКД выбор из группы