Показать сообщение отдельно
Старый 06.02.2015, 11:41   #28  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от Васыо Посмотреть сообщение
Да я уже подумал и передумал через КД />/> Пробую ВыгрузкойЗагрузкойДанныхЧерезXML. Выгрузил - смотрю XML и повторяю его в NAV через XML DOM. Всё замечательно, только не могу понять, как объявить префикс пространства имен.
Васыо, а у вас какая цель выгрузки?
Если поэкспериментировать в простейших случаях с загрузкой данных в 1С, то подстраиваться под ВыгрузкуЗагрузкуДанныхЧерезХМЛ можно.
Если хотите получить какую-то универсальную выгрузку в 1С без привлечения 1С-ника, и не понимая, как работает 1С изнутри, то я вас уверяю, вы выбрали не тот инструмент - ибо такого инструмента нет.
Посмотрите на это вот с какой стороны.
Да КД штука сложная. Но с другой стороны - это вещь очень функциональная. Поэтому она сложная.
В КД можно управлять загрузкой со стороны 1С. В КД можно управлять форматами входящих документов (до определенного уровня - элементарно). В КД можно писать обработчики событий (да на языке 1С), и это позволяет использовать эту конфигурацию для настройки обмена между самыми разнообразными конфигурациями и их особенностями, которые присущи 1С.

ВыгрузкуЗагрузкуДанныхЧерезХМЛ ненастраиваемый инструмент. это по сути просто инструмент запихивания данных напрямую в таблицы 1С. без использования бизнес-логики 1С.

Сейчас, вы приняли решение: ради простоты старта (ну да, не надо разбираться во всяких правилах и прочих особенностях, которые присущи 1С, это ведь тоже система, со своими ограничениями и особенностями) использовать не настраиваемый инструмент, жестко завязанный на ПОЛНОЕ!!! соответствие структуре 1С. Это обернется практически нерешаемыми проблемами уже на этапе попытки загрузить справочники. До документов вы просто не доберетесь, поверьте мне. Даже если вы вдруг справитесь с этой задачей.. любое изменение 1С конфигурации (добавят реквизит, например) приведет к полной неработоспособности механизма.
Например, номенклатура выгружается/загружается вот в таком формате:
Код:
<CatalogObject.Номенклатура>
			<Ref>3193ec3d-1313-11e0-5781-00195b6916e0</Ref>
			<IsFolder>false</IsFolder>
			<DeletionMark>false</DeletionMark>
			<Parent>2dd508db-0621-11dd-ac88-001bfcec12b1</Parent>
			<Code>03133951</Code>
			<Description>Фиговина с марковиной</Description>
			<Артикул/>
			<НаименованиеПолное>Вот такую фигню я хочу загрузить</НаименованиеПолное>
			<БазоваяЕдиницаИзмерения>1a1e6657-abaa-11e0-8812-001e5848397d</БазоваяЕдиницаИзмерения>
			<СтавкаНДС>НДС18</СтавкаНДС>
			<Комментарий>2</Комментарий>
			<Услуга>false</Услуга>
			<НоменклатурнаяГруппа>08dbe93f-8858-11dc-9b0d-00138fc9b85b</НоменклатурнаяГруппа>
			<СтранаПроисхождения>b82a90d0-1a4c-11dc-9df7-00138fc9b85b</СтранаПроисхождения>
			<НомерГТД>3193ec3c-1313-11e0-5781-00195b6916e0</НомерГТД>
			<СтатьяЗатрат>b6e694ba-2fab-11dc-9e0f-00138fc9b85b</СтатьяЗатрат>
			<ОсновнаяСпецификацияНоменклатуры>00000000-0000-0000-0000-000000000000</ОсновнаяСпецификацияНоменклатуры>
			<Производитель>00000000-0000-0000-0000-000000000000</Производитель>
			<Импортер>00000000-0000-0000-0000-000000000000</Импортер>
		</CatalogObject.Номенклатура>
Обратите внимание, не выгрузить какой-то тег( пропустить) - нельзя! если вы вдруг не выгрузите тег, например, ОсновнаяСпецификацияНоменклатуры, загрузка данных вылетит с ошибкой.
Вы уверены, что сможете хранить все GUID где-то? ибо только GUID может быть использован в механизме.
Вот что за страна происхождения b82a90d0-1a4c-11dc-9df7-00138fc9b85b ?

а теперь - выгрузите один любой документ из 1С со связями и с движениями по документу)). Это около 300 КИЛОБАЙТ текста, содержащий тучу GUID.

Если вы сделаете работающую выгрузку/загрузку данных в этом формате, я вам честно , памятник лично поставлю)


Еще раз - у вас два варианта - Разбираться в КД - там нет этого ада в XML, описанного выше, сам КД - ад. Или брать за шкирку 1С-ника, и согласовывать формат выгрузки/загрузки.
Я надеюсь, я вам помог)