Имя: Пароль:
1C
1C 7.7
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
+(11) советую почитать:
http://www.script-coding.com/
раздел: Язык XML
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 - это мелкософтовская библиотека для работы с данными в этом формате.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn