AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.01.2009, 12:51   #1  
AXbeginer is offline
AXbeginer
Участник
 
20 / 10 (1) +
Регистрация: 01.10.2009
Как организовать экспорт в 1С посредством XML-ки? У 1С есть свой импортер/экспортер но не понимаю структуру выходного файла чтоб написать аналогичный выход из Navision. Может кто сталкивался с реализацией подобной задачи. Navision 4.0 SP3 1C8.0
Старый 08.01.2009, 13:00   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
сталкивался.
xml в 1С мне категорически не понравился - очень многое завязано на GUID.
GUID'ами кодируются как записи (это еще можно было бы пережить), так и типы объектов. А вот с типами объектов разобраться без самой 1Ски очень проблематично.

Кстати, вы говорите о версии 1CV8 и о плане обмена. Я правильно понимаю?
__________________
полезное на axForum, github, vk, coub.
Старый 09.01.2009, 06:36   #3  
AXbeginer is offline
AXbeginer
Участник
 
20 / 10 (1) +
Регистрация: 01.10.2009
Да 8-я версия при экспорте из 1С при формировании объектов формируется список объектов затем оценивается какие из ссылок будут импортироваться в первую очередь то есть получается что он начинает перетасовывать их порядок а далее он начинает ссылаться на объекты записанные уже в XML-ник. Ладно если нужно было переносить одну таблицу так их 100-120 и каждой своя структура. Может я не правильно понимаю но насколько я понял XMLport в Navision имеет строгую структуру и перемешивать данные по приоритетности у меня не получится. Потом еще один вопрос XML это универсальный формат который позволяет независимо от того как вы "обзываете" теги делать его понятным для того кто его читает. Если это так то будет ли это справедливо и для 1С? Потому что нашел готовый экспортер на mibso c реализованными линками и фильтрами т.е. есть платформа для старта.
Старый 09.01.2009, 08:40   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от 888777888 Посмотреть сообщение
Да 8-я версия при экспорте из 1С при формировании объектов формируется список объектов затем оценивается какие из ссылок будут импортироваться в первую очередь то есть получается что он начинает перетасовывать их порядок а далее он начинает ссылаться на объекты записанные уже в XML-ник. Ладно если нужно было переносить одну таблицу так их 100-120 и каждой своя структура.
Да, 1С записывает все в один xml-файл.

Цитата:
Сообщение от 888777888 Посмотреть сообщение
Может я не правильно понимаю но насколько я понял XMLport в Navision имеет строгую структуру и перемешивать данные по приоритетности у меня не получится.
Да, если хочется импортировать без кодирования - структура должна быть Навижиновская и однородная (один xml - одна таблица).
Для импорта произвольного XML нужно пользоваться не датапортами, а писать код.


Впрочем как и в 1С.
Если 1Су "скормить" xml-файл с произвольной семантикой, то 1С не сможет его обработать автоматически - придется писать код (или использовать уже готовые доработки для чтения произвольного кода)

Цитата:
Сообщение от 888777888 Посмотреть сообщение
Потом еще один вопрос XML это универсальный формат который позволяет независимо от того как вы "обзываете" теги делать его понятным для того кто его читает.
Нет не так.
Сам по себе xml НЕ "позволяет". xml всего лишь облегчает выделение семантических структур.
Но xml ничего не говорит о ПОНИМАНИИ.

В принципе, чтобы хоть как-то разобраться в семантике к xml-файлу должен прикладываться еще один xml-файл, который в общепринятой форме хоть как-то объясняет структуру первого (XSD - Schema Definition).

Цитата:
Сообщение от 888777888 Посмотреть сообщение
Если это так то будет ли это справедливо и для 1С? Потому что нашел готовый экспортер на mibso c реализованными линками и фильтрами т.е. есть платформа для старта.
Нет. Насколько я помню (давно уже разбирался, может сейчас и не так), стандартный план обмена в 1С не генерирует описание своей структуры. 1С выгружает и загружает xml-файлы исходя из метаданных конфигурации (из которой выгружает и в которую загружает).

Тут есть два подводных камня:
1. загружать в другую конфигурацию xml-файл, созданный 1Сом, не получится (1С просто не поймет структуру данных чужой конфигурации)
2. загружать в другую программу xml-файл, созданный 1Сом, очень сложно (другая программа просто не понимает семантики).

Вроде бы были какие-то дополнительные конфигурации и обработки в 1С (например, 1С:Консолидация), которые позволяли вручную проставить соответствие. Были обработки в 1С, которые можно было указать исходную конфигурацию, а они позволяли создать схему.

Но я так и не понял как работать с 1С-овским xml-файлом, который сгенерирован планом обмена, из внешних программ.
__________________
полезное на axForum, github, vk, coub.
Старый 09.01.2009, 10:57   #5  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
Да, если хочется импортировать без кодирования - структура должна быть Навижиновская и однородная (один xml - одна таблица).
Для импорта произвольного XML нужно пользоваться не датапортами, а писать код.
В одном XML может быть несколько таблиц, в т.ч. подчиненных.

Начиная с версии 4.0 для выгрузки в формате XML принято пользоваться XML портами, они с одной стороны предоставляют некоторую гибкость при обработке файла, с другой стороны не умеют изменять существующие данные в базе данных (т.е. вставка разрешена, а изменение - нет).
Старый 09.01.2009, 11:48   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от apanko Посмотреть сообщение
В одном XML может быть несколько таблиц, в т.ч. подчиненных.
Клево. Спасибо
__________________
полезное на axForum, github, vk, coub.
Старый 09.01.2009, 12:40   #7  
AXbeginer is offline
AXbeginer
Участник
 
20 / 10 (1) +
Регистрация: 01.10.2009
В 1С для импорта/экспорта используется Конвертация данных правила созданы но видимо придется отказаться от XMLport-ов судя из выше сказанного так? Не знаете нет ли где наработок для интеграции 1С и Navision. Вообще знаю что делали через текстовый файл но заказчик хочет через xml. Не знаете еще возможные способы интеграции? И не могли бы подкинуть ссылок по xml портам ,а то имеющийся материал не очень то информативный
Старый 09.01.2009, 13:20   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от 888777888 Посмотреть сообщение
В 1С для импорта/экспорта используется Конвертация данных правила созданы но видимо придется отказаться от XMLport-ов судя из выше сказанного так?
Ну... Если только с программированием.
Без программирования по-моему не получится.

Цитата:
Сообщение от 888777888 Посмотреть сообщение
Не знаете нет ли где наработок для интеграции 1С и Navision. Вообще знаю что делали через текстовый файл но заказчик хочет через xml. Не знаете еще возможные способы интеграции? И не могли бы подкинуть ссылок по xml портам ,а то имеющийся материал не очень то информативный
Посмотрите сюда
http://www.pbiz.ru/ru/integration/
__________________
полезное на axForum, github, vk, coub.
Старый 15.01.2009, 12:21   #9  
AXbeginer is offline
AXbeginer
Участник
 
20 / 10 (1) +
Регистрация: 01.10.2009
Спасибо за помощь теперь есть вопрос при выводе в файл получается какая-то белиберда попытались перевести в win кодировку написав соответствующую функцию но браузер и 1с отказываются понимать т.е. текст стал читабельным если открывать блокнотом и только если сохранять в юникоде 1с и браузер понимают его. Как можно кодировку DOS перевести в юникод?
Старый 15.01.2009, 13:04   #10  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
в Наве можно попробовать
кю 12400 Localisation Management функцию Dos2Win
Старый 15.01.2009, 13:27   #11  
AXbeginer is offline
AXbeginer
Участник
 
20 / 10 (1) +
Регистрация: 01.10.2009
да так и сделали и если открывать через блокнот все круто но если пытаемся затянуть в 1с или открыть браузером все становится не очень хорошо т.е. 1с отругивается при попутке засосать XML а браузер пишет
Ошибка синтаксического анализа XML: неправильный
Адрес: file:///C:/***.xml
Строка 1, символ 2:
<���������� �������������="2.0" ������.....
Старый 19.01.2009, 07:41   #12  
AXbeginer is offline
AXbeginer
Участник
 
20 / 10 (1) +
Регистрация: 01.10.2009
выставил в отдельную тему Navision&UNICODE
Старый 19.01.2009, 22:09   #13  
GRIZZLY_imported is offline
GRIZZLY_imported
Участник
 
39 / 10 (1) +
Регистрация: 18.05.2007
Цитата:
Сообщение от 888777888 Посмотреть сообщение
да так и сделали и если открывать через блокнот все круто но если пытаемся затянуть в 1с или открыть браузером все становится не очень хорошо т.е. 1с отругивается при попутке засосать XML а браузер пишет
Ошибка синтаксического анализа XML: неправильный
Адрес: file:///C:/***.xml
Строка 1, символ 2:
<���������� �������������="2.0" ������.....
А посмотрите, идет ли у вас первой строчкой следующий текст:
<?xml version="1.0" encoding="Windows-1251"?> ?
В этом случае парсер в Internet Explorere его покажет как надо.
и UNICODE, как мне кажется, тут не причем.
Старый 20.01.2009, 05:59   #14  
AXbeginer is offline
AXbeginer
Участник
 
20 / 10 (1) +
Регистрация: 01.10.2009
Все правильно если мы хотим просматривать страницу браузером но для 1с это не работает он вообще по моему читает xml как текст. Пробовал подгрузить в досовском формате никак, хотя вроде должен понимать, но видимо если в xml не читабелен без задания кодовой страницы, то 1с его подгружать не будет. В общем решение нашел это использование программки dos2uni запускается с командной строки, что делает возможным ее применения из navision. Хотя решение видеться не очень рациональным так как придется везде таскать ее. В navision есть Automation 'Microsoft XML что это такое и чем его едят? Есть ли какая информация по данному модулю. И еще может это и не к месту, но в 1с есть функция oemtoansi, если применить ее к xml выгруженном в dos формате сможет ли он прочитать его?
Вложения
Тип файла: zip dos2uni.zip (5.6 Кб, 58 просмотров)
Старый 20.01.2009, 11:26   #15  
GRIZZLY_imported is offline
GRIZZLY_imported
Участник
 
39 / 10 (1) +
Регистрация: 18.05.2007
Цитата:
Сообщение от 888777888 Посмотреть сообщение
Все правильно если мы хотим просматривать страницу браузером но для 1с это не работает он вообще по моему читает xml как текст. Пробовал подгрузить в досовском формате никак, хотя вроде должен понимать, но видимо если в xml не читабелен без задания кодовой страницы, то 1с его подгружать не будет. В общем решение нашел это использование программки dos2uni запускается с командной строки, что делает возможным ее применения из navision. Хотя решение видеться не очень рациональным так как придется везде таскать ее. В navision есть Automation 'Microsoft XML что это такое и чем его едят? Есть ли какая информация по данному модулю. И еще может это и не к месту, но в 1с есть функция oemtoansi, если применить ее к xml выгруженном в dos формате сможет ли он прочитать его?
Вы же сказали, что вы просматриваете файл в броузере и он выпадает с ошибкой?
Производить XML, конечно, лучше парсером - Microsoft XML, в этом случае вы из Navision работаете с файлом как с иерархической структурой узлов и аттрибутов, а сериализацию (или иным словом, сохранение этой структуры) в файл парсер берет на себя. Рекомендую почитать про Microsoft XML DOM на сайте MSDN.
Я практиковал и вариант экспорта документов из Navision для импорта его в 1С 7.7 стандартным универсальным загрузчиком, так и через XML-DEM. В обоих случая получалось нормально.
Старый 20.01.2009, 13:16   #16  
AXbeginer is offline
AXbeginer
Участник
 
20 / 10 (1) +
Регистрация: 01.10.2009
Цитата:
Сообщение от GRIZZLY Посмотреть сообщение
Вы же сказали, что вы просматриваете файл в броузере и он выпадает с ошибкой?
Производить XML, конечно, лучше парсером - Microsoft XML, в этом случае вы из Navision работаете с файлом как с иерархической структурой узлов и аттрибутов, а сериализацию (или иным словом, сохранение этой структуры) в файл парсер берет на себя. Рекомендую почитать про Microsoft XML DOM на сайте MSDN.
Я практиковал и вариант экспорта документов из Navision для импорта его в 1С 7.7 стандартным универсальным загрузчиком, так и через XML-DEM. В обоих случая получалось нормально.
Да браузер использовал просто для просмотра целостности, правильности заполнения XML. Но главной задачей было затянуть его в 1с. XML-DEM это продукт PBiz, но он же не распространяется бесплатно. Если же мы будем вытаскивать данные исходя из структуры navision то на стороне 1с придется писать парсер, а это дело уже 1с программиста, если я правильно представляю задачу.
Старый 20.01.2009, 15:40   #17  
GRIZZLY_imported is offline
GRIZZLY_imported
Участник
 
39 / 10 (1) +
Регистрация: 18.05.2007
Цитата:
Сообщение от 888777888 Посмотреть сообщение
Да браузер использовал просто для просмотра целостности, правильности заполнения XML. Но главной задачей было затянуть его в 1с. XML-DEM это продукт PBiz, но он же не распространяется бесплатно. Если же мы будем вытаскивать данные исходя из структуры navision то на стороне 1с придется писать парсер, а это дело уже 1с программиста, если я правильно представляю задачу.
Подгоняйте тогда XML файл к структуре, которую "кушает" универсальная загрузка в 1С. Тогда со стороны 1С ничего трогать не нужно будет.
Старый 22.01.2009, 07:52   #18  
PatRiOt88 is offline
PatRiOt88
Участник
 
1 / 10 (1) +
Регистрация: 22.01.2009
Цитата:
Сообщение от 888777888 Посмотреть сообщение
Да браузер использовал просто для просмотра целостности, правильности заполнения XML. Но главной задачей было затянуть его в 1с. XML-DEM это продукт PBiz, но он же не распространяется бесплатно. Если же мы будем вытаскивать данные исходя из структуры navision то на стороне 1с придется писать парсер, а это дело уже 1с программиста, если я правильно представляю задачу.
XML-DEM не бесплатен, потому что там в достаточной мере упрощено создание обмена, т.е. вам не надо будет писать код (ну если надо будет, то очень редко). У PBiz есть еще дополнение к самому XML-DEM'у, XSL-преобразование, которое, можно сказать, заменяет "парсер на стороне 1с".
к плюсам XML-DEM ябы отнес то, что с ним сможет справиться и аналитик, который не умеет писать C\al код

Цитата:
Сообщение от GRIZZLY Посмотреть сообщение
Подгоняйте тогда XML файл к структуре, которую "кушает" универсальная загрузка в 1С. Тогда со стороны 1С ничего трогать не нужно будет.
полностью согласен. ну хотя там есть свои подводные камни, но на стороне 1с ничего менять не надо.
Старый 23.02.2009, 08:13   #19  
AXbeginer is offline
AXbeginer
Участник
 
20 / 10 (1) +
Регистрация: 01.10.2009
в продолжении темы:
Документам 1с может соответствовать несколько документов Navision
поэтому создается настоечная таблица такого вида
DOC1C(text)|DOCNAV(recodid)|Field|
AO
Старый 23.02.2009, 08:43   #20  
AXbeginer is offline
AXbeginer
Участник
 
20 / 10 (1) +
Регистрация: 01.10.2009
в продолжении темы:
Документам 1с может соответствовать несколько документов Navision
поэтому создается настоечная таблица такого вида
DOC1C(text)|DOCNAV(recodid)|Field(????????)|
AO | 122(пример) | NO |*
AO | 122(пример) | Name |
AO | 144(пример) | Nomer |*....
*идентичные поля из разных таблиц

в общем как сделать так чтоб после определения номера DOCNAV на Field разворачивался список доступных полей
и потом в дальнейшем можно было работать с Field и DOCNAV как Rec т.е
DOCNAV.setfilter(...)
........
Value:=DOCNAV.FIELD
Хотелось бы сделать так чтоб на Field список был автоматический а не в ручную прописывать поля в коде или отдельной таблице
З.Ы. пытался написать понятно
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:41.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.