![]() |
![]() |
![]() |
|
v7: Выгрузка данных из 1С 7.7, используя v7plus.dll | ☑ | ||
---|---|---|---|---|
0
Nata73
10.09.11
✎
14:41
|
Вообщем требуется выгрузить данные из одного документа в XML? ниже представлена часть кода:
Процедура Сформировать() Анализатор = СоздатьОбъект("AddIn.XMLParser"); xmlКорень=Анализатор.СоздатьДокумент(); xmlКорень.Кодировка="utf-8"; xmlДанные=xmlКорень.СоздатьПодчиненныйЭлемент("item",,"http://appius.ru/pdm"); xmlДанные.УстановитьПространствоИмен("http://www.w3.org/2001/XMLSchema","xs"); xmlДанные.УстановитьПространствоИмен("http://www.w3.org/2001/XMLSchema-instance","xsi"); xmlДанные.УстановитьАтрибут("xsi:type","item"); //Возврат; xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("refLinkGroup"); xmlэлемент.Значение="false"; //Добавляем GUID нового элемента в справочник ЭлементыТехнологии xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("element"); xmlэлемент.Значение="4144b9ce-8a5e-40e6-908f-3752b0409318"; xmlэлемент.УстановитьПространствоИмен("http://v8.1c.ru/8.1/data/enterprise/current-config","d2p1"); xmlэлемент.УстановитьАтрибут("xsi:type","d2p1:CatalogRef.aps_ЭлементыТехнологии"); //Тип Технологический процесс из справочника PDM xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("elementType"); xmlэлемент.Значение="79634c36-cd48-44eb-aadc-55815267fdaf"; xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("link"); xmlэлемент.УстановитьАтрибут("xsi:nil","true"); xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("linkType"); xmlэлемент.Значение="Личное"; xmlэлемент.УстановитьПространствоИмен("http://v8.1c.ru/8.1/data/enterprise/current-config","d3p1"); xmlэлемент.УстановитьАтрибут("xsi:type","d2p1:EnumRef.aps_ВидыСвязей"); //---------------------PARAMETRS---------------------------- //группа Жизненный цикл xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("parameters"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("reference") ; xmlParameters.Значение="e3f50fe4-d902-11e0-b212-1c6f65806378"; xmlParameters.УстановитьПространствоИмен ("http://v8.1c.ru/8.1/data/enterprise/current-config","d3p1"); xmlParameters.УстановитьАтрибут("xsi:type","d3p1:CatalogRef.aps_ПараметрыЭлементовТехнологии"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("description") ; xmlParameters.Значение="Жизненный цикл"; xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("linkParameter"); xmlParameters.Значение="false"; //группа Исполнители xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("parameters"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("reference") ; xmlParameters.Значение="e3f50fe7-d902-11e0-b212-1c6f65806378"; xmlParameters.УстановитьПространствоИмен ("http://v8.1c.ru/8.1/data/enterprise/current-config","d3p1"); xmlParameters.УстановитьАтрибут("xsi:type","d3p1:CatalogRef.aps_ПараметрыЭлементовТехнологии"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("description") ; xmlParameters.Значение="Исполнители"; xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("linkParameter"); xmlParameters.Значение="false"; //группа Общие xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("parameters"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("reference") ; xmlParameters.Значение="e3f50fe7-d902-11e0-b212-1c6f65806378"; xmlParameters.УстановитьПространствоИмен ("http://v8.1c.ru/8.1/data/enterprise/current-config","d3p1"); xmlParameters.УстановитьАтрибут("xsi:type","d3p1:CatalogRef.aps_ПараметрыЭлементовТехнологии"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("description") ; xmlParameters.Значение="Общие"; xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("linkParameter"); xmlParameters.Значение="false"; // Количество деталей xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("parameters"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("reference") ; xmlParameters.Значение="e3f50fe7-d902-11e0-b212-1c6f65806378"; xmlParameters.УстановитьПространствоИмен ("http://v8.1c.ru/8.1/data/enterprise/current-config","d3p1"); xmlParameters.УстановитьАтрибут("xsi:type","d3p1:CatalogRef.aps_ПараметрыЭлементовТехнологии"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("description") ; xmlParameters.Значение="Количество деталей"; xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("property") ; xmlParameters.Значение="90ff443e-a6fe-4339-99ae-bc93968697ed"; xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("value") ; xmlParameters.УстановитьАтрибут("xsi:nil","true"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("unit"); xmlParameters.Значение="00000000-0000-0000-0000-000000000000"; xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("linkParameter"); xmlParameters.Значение="false"; // Метод обработки xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("parameters"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("reference") ; xmlParameters.Значение="e3f50fe7-d902-11e0-b212-1c6f65806378"; xmlParameters.УстановитьПространствоИмен ("http://v8.1c.ru/8.1/data/enterprise/current-config","d3p1"); xmlParameters.УстановитьАтрибут("xsi:type","d3p1:CatalogRef.aps_ПараметрыЭлементовТехнологии"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("description") ; xmlParameters.Значение="Метод обработки"; xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("property") ; xmlParameters.Значение="a7f37909-cfa9-4d14-84da-ea390ec2b77a"; xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("value") ; xmlParameters.УстановитьАтрибут("xsi:nil","true"); xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("UNIT"); xmlParameters.Значение="00000000-0000-0000-0000-000000000000"; xmlParameters=xmlэлемент.СоздатьПодчиненныйЭлемент("linkParameter"); xmlParameters.Значение="false"; //---------------------------------------------------------- xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("viewTemplate"); xmlэлемент.Значение="http://virtualappiushost/TEMPLATES/basic/process/s_process_ro_template.htm"; xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("editTemplate"); xmlэлемент.Значение="http://virtualappiushost/TEMPLATES/basic/process/s_process_rw_template.htm"; xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("actionTemplate"); xmlэлемент.Значение="http://virtualappiushost/TEMPLATES/basic/process/process_action_panel.htm"; //Определяем пользователя (Администратор) xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("uid"); xmlэлемент.УстановитьПространствоИмен("http://v8.1c.ru/8.1/data/enterprise/current-config","d2p1"); xmlэлемент.Значение="63b16c43-86b7-11e0-91be-0018f30ad32f"; xmlэлемент.УстановитьАтрибут("xsi:type","d2p1:CatalogRef.Пользователи"); //Отображение xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("description"); xmlэлемент.Значение="апвп";//+ТП.ВидМаршрутнойКарты+" "+ТП.ДатаДок+" ("+ТП.КодТехПроцесса+")"; xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("htmlContent"); xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("refContent"); xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("pictureIndex"); xmlэлемент.Значение="64"; xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("added"); xmlэлемент.УстановитьАтрибут("xsi:nil","true"); xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("replaced"); xmlэлемент.УстановитьАтрибут("xsi:nil","true"); xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("modified"); xmlэлемент.УстановитьАтрибут("xsi:nil","true"); xmlэлемент=xmlДанные.СоздатьПодчиненныйЭлемент("created"); xmlэлемент.Значение="true"; xmlКорень.Записать("E:\TP_MARS_1C_TO_PDM.xml") КонецПроцедуры Данная обработка нормально работает в семерке, но в ХП не хочет, пишет : ...Type '{http://appius.ru/pdm}item' is not found in Schema. Помогите пжлст, если кто сталкивался с такой проблемой. |
|||
1
andrewks
10.09.11
✎
18:28
|
а не надо установить пр-во имён для http://appius.ru/pdm ?
|
|||
2
ЧеловекДуши
10.09.11
✎
18:33
|
AddIn.XMLParser - Бред от 1С, жрет память, имеет ограничение при загрузки, т.е. слишком большие файлы не загрузит.
Пользуйся вот этим... http://x-romix.narod.ru/OpenXML.rar Пример в архиве. Работает быстро и бес проблем, ВК требует регистрации под админом. |
|||
3
ЧеловекДуши
10.09.11
✎
18:35
|
+ А причем тут 1С 7.7?
Я там заметил гуид от 1С 8.х :) |
|||
4
andrewks
10.09.11
✎
18:36
|
(3) видимо,хотят сразу сериализацию для 8-ки получить
|
|||
5
ЧеловекДуши
10.09.11
✎
18:39
|
(0)>>> Данная обработка нормально работает в семерке, но в ХП не хочет, пишет : ...Type '{http://appius.ru/pdm}item" target="_blank" ref="nofollow" class="extralink">http://appius.ru/pdm}item' is not found in Schema. Помогите пжлст, если кто сталкивался с такой проблемой.
Попробуй обновить ХМЛС до последней версии в ХП :) |
|||
6
andrewks
10.09.11
✎
19:14
|
(5) не поможет. из-за кривости v7plus.
нужно напрямую msxml юзать |
|||
7
VasilyKushnir
10.09.11
✎
23:15
|
(6) +100
Попробовал v7plus - выматерился смачно и сделал, как в (6). (0) не мудри - XML сымый обычный текстовый файл, только через альпы написанный. Вот и поступай с ним соответственно. |
|||
8
Nata73
10.09.11
✎
23:39
|
C msxml что только не мудрила, ничего не помогает! А как им напрямую поьзоваться без v7plus? Может примеры есть?
|
|||
9
VasilyKushnir
10.09.11
✎
23:43
|
// =================================================
Процедура Заглавная () текст.ДобавитьСтроку ("<Header>"); текст.ДобавитьСтроку ("<Report_Type>pr001</Report_Type>"); текст.ДобавитьСтроку ("<Report_Version>1.1</Report_Version>"); текст.ДобавитьСтроку ("<Debtor_Code>324</Debtor_Code> "); текст.ДобавитьСтроку ("<OKPO>01980963</OKPO>"); текст.ДобавитьСтроку ("<Delivery_Code>" + КодДоставки + "</Delivery_Code>"); текст.ДобавитьСтроку ("<Post_Code>18015</Post_Code>"); текст.ДобавитьСтроку ("<Report_Date>" + ДатаГод(НаДату) + "-" + Формат(Число(ДатаМесяц(НаДату)), "Ч(0)2.0") + "-" + Формат(Число(ДатаЧисло(НаДату)), "Ч(0)2.0") + "Т" + СокрЛП(выбВремя) + ":00" + "+02:00" + "</Report_Date>"); текст.ДобавитьСтроку ("<Create_Date>" + ДатаГод(ТекущаяДата()) + "-" + Формат(Число(ДатаМесяц(ТекущаяДата())), "Ч(0)2.0") + "-" + Формат(Число(ДатаЧисло(ТекущаяДата())), "Ч(0)2.0") + "Т" + ТекущееВремя() + "+02:00" + "</Create_Date>"); текст.ДобавитьСтроку ("</Header>"); КонецПроцедуры // Заглавная () |
|||
10
VasilyKushnir
10.09.11
✎
23:44
|
+ маленькая часть кода
|
|||
11
andrewks
10.09.11
✎
23:45
|
(8)
например, так: Попытка ДОМ=СоздатьОбъект("MSXML.DOMDocument"); //здесь самое вкусное: можно непосредтсвенно указать версию анализатора //например, 6-я: ДОМ=СоздатьОбъект("MSXML2.DOMDocument.6.0"); Узел=ДОМ.CreateProcessingInstruction("xml","version=""1.0"" encoding=""windows-1251"""); Исключение Сообщить("Не удалось создать объект DOMDocument","!"); Возврат; КонецПопытки; ДОМ.insertBefore(Узел,); ТекУзел=ДОМ.createElement("Узел1"); ДОМ.appendChild(ТекУзел); ТекУзел.setAttribute("Атриб1","бла-бла-бла"); ДОМ.save(ИмяФайла); |
|||
12
Рэйв
10.09.11
✎
23:46
|
(0)Не парь мозг ни себе ни окружающим.Открой уже для себя КД 2.
Ты не поверишь- там все переносится! |
|||
13
andrewks
10.09.11
✎
23:47
|
||||
14
andrewks
10.09.11
✎
23:51
|
(9) это не msxml :-)
|
|||
15
VasilyKushnir
11.09.11
✎
00:06
|
(14) В (0) БЫЛ ВОПРОС ПО XML ( требуется выгрузить данные из одного документа в XML?) или я че-то не понял?
|
|||
16
andrewks
11.09.11
✎
10:10
|
(15) спокойствие, мой друг, спокойствие! :)
я ж не сказал, что это не xml, я сказал, что это не msxml xml - это стандарт, а msxml - это мелкософтовская библиотека для работы с файлами в этом стандарте. но это не означает, что она единственная и уникальная в своём роде |
|||
17
andrewks
11.09.11
✎
10:13
|
+(16) *а msxml - это мелкософтовская библиотека для работы с данными в этом формате.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |