Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> При створенні XML файлу виникає декілька проблем підкажіть як їх можна вирішити          
leo10k10 Подменю пользователя
сообщение 23.05.17, 16:53
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго дня шановні програмісти. Маю намір полегшити своє життя з тим аби створити модуль для експорту даних типу XML для подальшої загрузки його в Медок структура файлу приблизно така:

<?xml version="1.0" encoding="windows-1251"?>
<DECLAR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="F1203001.XSD">
  <DECLARHEAD>
    <TIN>2617415735</TIN>
    <C_DOC>F12</C_DOC>
    <C_DOC_SUB>030</C_DOC_SUB>
    <C_DOC_VER>1</C_DOC_VER>
    <C_DOC_TYPE>0</C_DOC_TYPE>
    <C_DOC_CNT>41</C_DOC_CNT>
    <C_REG>06</C_REG>
    <C_RAJ>08</C_RAJ>
    <PERIOD_MONTH>4</PERIOD_MONTH>
    <PERIOD_TYPE>1</PERIOD_TYPE>
    <PERIOD_YEAR>2017</PERIOD_YEAR>
    <C_STI_ORIG>0608</C_STI_ORIG>
    <C_DOC_STAN>1</C_DOC_STAN>
    <LINKED_DOCS xsi:nil="true" />
    <D_FILL>24042017</D_FILL>
    <SOFTWARE>MEDOC</SOFTWARE>
  </DECLARHEAD>
  <DECLARBODY>
    <HTYPR>0</HTYPR>
    <HFILL>03589717</HFILL>
    <HNUM>249</HNUM>
    <HNUM1 xsi:nil="true" />
    <HNAMESEL>ФОП Калачун Григорій Михайлович</HNAMESEL>
    <HNAMEBUY>ОГІЕНКО ВАСИЛЬ ВАСИЛЬОВИЧ</HNAMEBUY>
    <HKSEL>2617415735</HKSEL>
    <HKBUY>2523608675</HKBUY>
    <R01G1>2710131894</R01G1>
    <R01G2S>товар</R01G2S>
    <R01G3>1823.60</R01G3>
    <R01G4>2425.00</R01G4>
    <HBOS>Григорій Михайлович</HBOS>
    <HKBOS>2617415735</HKBOS>
  </DECLARBODY>
</DECLAR>
<!-- YOUR_ID="13426583871108940960"-->

почитав деяку літературу і вирішив, що для цієї справи буду використовувати зовнішню компоненту V7Plus почав писати код і ступор в мене вийшов на зовсім здавалосяб смішному місці а саме зі знаком ":" і переходами на іншу сторінку, якщо бути більш точним то код я пишу приблизно ось так
Процедура Екпорт_в_МЕДОК()
    ИмяФайлаXML = "f:\Програмування_в_1С\XML\ПримерФайлаXML.xml";
    
    Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "v7plus.dll") <> 1    Тогда
        Предупреждение("Компонента v7plus.dll не найдена!");
        Возврат;
    КонецЕсли;
    
    XMLАнализатор = СоздатьОбъект("AddIn.XMLParser");
    XMLКорневойРаздел = XMLАнализатор.СоздатьДокумент();
    // структура самого документа XML
    ДанныеXML = XMLКорневойРаздел.СоздатьПодчиненныйЭлемент("DECLAR");
    ДанныеXML.УстановитьАтрибут("xmlns" + "-" + "xsi", "http" + "-" + "//www.w3.org/2001/XMLSchema-instance");    
    ДанныеXML.УстановитьАтрибут("xsi" + "-" + "noNamespaceSchemaLocation", "F1203001.XSD");
  
    Ветка_1 = ДанныеXML.СоздатьПодчиненныйЭлемент("DECLARHEAD");
    Элемент = Ветка_1.СоздатьПодчиненныйЭлемент("TIN");
    Элемент.Значение = "2617602835";
        
    XMLКорневойРаздел.Записать(ИмяФайлаXML);
        
    Предупреждение("ОК");
    
КонецПроцедуры


туту замість ":" я поставив "-" щоб сконструювати хоча б якийсь файл бо інакше буде вибивати помилку ": Ошибка исполнения метода" в результаті отрумаю код структура якого пишеться в один рядок

<?xml version="1.0" encoding="windows-1251"?>
<DECLAR xmlns-xsi="http-//www.w3.org/2001/XMLSchema-instance" xsi-noNamespaceSchemaLocation="F1203001.XSD"><DECLARHEAD><TIN>2617602835</TIN></DECLARHEAD></DECLAR>

може хтось розяснить як мені з цим усим боротися?????

batlcat Подменю пользователя
сообщение 24.05.17, 12:17
Сообщение #2

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 7 раз
Рейтинг: 6

Цитата(leo10k10 @ 23.05.17, 17:53) *
ДанныеXML.УстановитьАтрибут("xmlns" + "-" + "xsi", "http" + "-" + "//www.w3.org/2001/XMLSchema-instance");


ДанныеXML.УстановитьПространствоИмен("http://www.w3.org/2001/XMLSchema-instance","xsi");


Сообщение отредактировал Vofka - 24.05.17, 12:36

Спасибо сказали: leo10k10,

leo10k10 Подменю пользователя
сообщение 24.05.17, 15:00
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

Дякую та плюсую Вам за ":" рядок в XML формується без проблем.
Але залишається відкритим питання, що до того яким чином в XML файлі зробити перехід на наступний рядок, бо весь файл формується в один рядок

mister-x Подменю пользователя
сообщение 24.05.17, 16:06
Сообщение #4

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

яким браузером відкриваєте хмл-файл?

leo10k10 Подменю пользователя
сообщение 24.05.17, 21:29
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(mister-x @ 24.05.17, 17:06) *
яким браузером відкриваєте хмл-файл?

взагалі файл робиться для Медка а переглядаю я його через Visual Studio 2015

В мене паралельно нова проблемка зявилась
для того щоб сформувати рядок з текстом
<LINKED_DOCS xsi:nil="true" />

я написав слідуючий код
Элемент14 = Ветка_1.СоздатьПодчиненныйЭлемент("LINKED_DOCS");
Элемент14.УстановитьАтрибут("xsi:nil", "true");

натомість маю помилку

XMLКорневойРаздел.Записать(ИмяФайлаXML);
{Документ.РасходнаяНакладная.Форма.Модуль(76)}: : xsi:nil attribute on element 'LINKED_DOCS' is invalid.
[<LINKED_DOCS xsi:nil="true"/></DECLARHEAD> (error position = 31)]

і чого воно так????

mister-x Подменю пользователя
сообщение 25.05.17, 10:18
Сообщение #6

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Взагалі, я не користуюсь інструментами v7plus.dll для запису хмл-файлів (використовую їх тільки для читання таких файлів). Для себе відкрив об'єкт DomDocument для запису хмл-файлів (читати він звісно також може smile.gif ), там все логічно і зрозуміло як для мене.

leo10k10 Подменю пользователя
сообщение 25.05.17, 11:36
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(mister-x @ 25.05.17, 11:18) *
Взагалі, я не користуюсь інструментами v7plus.dll для запису хмл-файлів (використовую їх тільки для читання таких файлів). Для себе відкрив об'єкт DomDocument для запису хмл-файлів (читати він звісно також може ), там все логічно і зрозуміло як для мене.

Дякую за пораду але це не вирішує моєї проблеми яка є основою цієї теми.

leo10k10 Подменю пользователя
сообщение 25.05.17, 13:55
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

ні ну не як не розумію чому коли пишу в коді
Элемент14.УстановитьАтрибут("xsi:nil", "true");

вибиває помилку
XMLКорневойРаздел.Записать(ИмяФайлаXML);
{Документ.РасходнаяНакладная.Форма.Модуль(76)}: : xsi:nil attribute on element 'LINKED_DOCS' is invalid.
[<LINKED_DOCS xsi:nil="true"/></DECLARHEAD> (error position = 31)]
а як тільки прибираю дві крапки в имені Атрибута "xsi:nil" попилки не має і все прописується як книжка пише????????

leo10k10 Подменю пользователя
сообщение 26.05.17, 16:50
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

Усім дякую, проблема вирішена, питання більше не актуальне. icon_beer17.gif

Vofka Подменю пользователя
сообщение 29.05.17, 7:50
Сообщение #10

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

leo10k10, так и в чем была проблема?

Кошки Рулят Подменю пользователя
сообщение 31.05.17, 20:37
Сообщение #11

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 1 раз
Рейтинг: 0

    ТекстФайла=СоздатьОбъект("Текст");
    
    ТекстФайла.ДобавитьСтроку("<?xml version=""1.0"" encoding=""windows-1251""?>");
    ТекстФайла.ДобавитьСтроку("<DECLAR xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:noNamespaceSchemaLocation=""F1203001.XSD"">");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+"<DECLARHEAD>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<TIN>2617415735</TIN>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<C_DOC>F12</C_DOC>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<C_DOC_SUB>030</C_DOC_SUB>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<C_DOC_VER>1</C_DOC_VER>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<C_DOC_TYPE>0</C_DOC_TYPE>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<C_DOC_CNT>41</C_DOC_CNT>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<C_REG>06</C_REG>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<C_RAJ>08</C_RAJ>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<PERIOD_MONTH>4</PERIOD_MONTH>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<PERIOD_TYPE>1</PERIOD_TYPE>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<PERIOD_YEAR>2017</PERIOD_YEAR>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<C_STI_ORIG>0608</C_STI_ORIG>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<C_DOC_STAN>1</C_DOC_STAN>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<LINKED_DOCS xsi:nil=""true""/>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<D_FILL>24042017</D_FILL>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<SOFTWARE>MEDOC</SOFTWARE>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+"</DECLARHEAD>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+"<DECLARBODY>");  
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<HTYPR>0</HTYPR>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<HFILL>03589717</HFILL>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<HNUM>249</HNUM>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<HNUM1 xsi:nil=""true"" />");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<HNAMESEL>ФОП Калачун Григорій Михайлович</HNAMESEL>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<HNAMEBUY>ОГІЕНКО ВАСИЛЬ ВАСИЛЬОВИЧ</HNAMEBUY>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<HKSEL>2617415735</HKSEL>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<HKBUY>2523608675</HKBUY>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<R01G1>2710131894</R01G1>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<R01G2S>товар</R01G2S>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<R01G3>1823.60</R01G3>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<R01G4>2425.00</R01G4>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+СимволТабуляции+"<HBOS>Григорій Михайлович</HBOS>");
    ТекстФайла.ДобавитьСтроку(""+СимволТабуляции+"</DECLARBODY>");
    ТекстФайла.ДобавитьСтроку("</DECLAR>");  
    
    ТекстФайла.Записать("C:\DECLAR.xml");
    Предупреждение("Файл записан");
    ЗапуститьПриложение("C:\");

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.04.24, 13:44
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!