Имя: Пароль:
1C
1C 7.7
V7Plus Анализатор XML-документов. 1С 7.7
,
0 ТипТопыч
 
11.04.16
08:45
Необходимо получить строку вида:
<issuance xmlns="http://www.w3schools.com";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://www.w3schools.com"; sender="sender1">

Пишу:
issuanceXML = Корень.СоздатьПодчиненныйЭлемент("issuance",,"http://www.w3schools.com";);
  issuanceXML.УстановитьПространствоИмен("http://www.w3.org/2001/XMLSchema-instance","xsi";);
  issuanceXML.УстановитьПространствоИмен("http://www.w3schools.com","schemaLocation";);
  issuanceXML.УстановитьАтрибут("sender","sender1");

Получаю:
<issuance xmlns="http://www.w3schools.com"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:schemaLocation="http://www.w3schools.com"; sender="sender1">

Как получить строку вида  xsi:schemaLocation="http://www.w3schools.com";
Как не пробывал постоянно выходит xmlns:schemaLocation.
1 ДенисЧ
 
11.04.16
08:54
стрЗаменить()
2 ТипТопыч
 
11.04.16
08:57
После формирования xml? Открыть как текст и заменить строку как я понял? А штатными типа УстановитьАтрибут() или еще как нибудь.
3 NikVars
 
11.04.16
09:41
(2) Формируй свой хмл, потом в конце, после формирования хмл, просто добавь нужную строку в нужную позицию в начале текстового файла.
УстановитьПространствоИмен в 7.7 очень криво работает - этот метод нельзя назвать универсальным. При его использовании иногда бывает загадочная и неприятная ошибка "Ошибка исполнения метода".
4 ТипТопыч
 
11.04.16
09:47
В том то и дело что получается документ с одной строкой:
<issuance xmlns="http://www.w3schools.com"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:schemaLocation="http://www.w3schools.com"; sender="sender1"><general><number>200637644-2016-0004432234</number><datelssuance>2016-04-11</datelssuance><dateTransaction>2016-04-11</dateTransaction><documentType>ORIGINAL</documentType></general><provider><providerStatus>SELLER</providerStatus>...
Как в текст можно добавить строку в нужную позицию?
5 Злопчинский
 
11.04.16
09:49
Пиши файл как текст просто и все при формировании. тогда что хочешь то и запихивай
6 NikVars
 
11.04.16
09:50
(4) 1) См. в конфигураторе дядьку в кепке - Встроенный язык - Текст - ДобавитьСтроку
2) Отчеты - Регламентированные РСВ-1 - файл 01. Поиск по ДобавитьСтроку
7 ТипТопыч
 
11.04.16
09:58
(6) Да знаю я, я же говорю текст состоит из 1 строки а метод Добавить строку добавляет в конец строки.
ДобавитьСтроку(<?>);
Синтаксис:
ДобавитьСтроку(<Строка>)
Назначение:
Добавить строку в конец текста.
Параметры:
<Строка> - добавляемая строка.
8 ТипТопыч
 
11.04.16
09:59
т.е. у меня будет
<issuance xmlns="http://www.w3schools.com";; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";;  sender="sender1"><general><number>200637644-2016-0004432234</number><datelssuance>2016-04-11</datelssuance><dateTransaction>2016-04-11</dateTransaction><documentType>ORIGINAL</documentType></general><provider><providerStatus>SELLER</providerStatus>...  xsi:schemaLocation="http://www.w3schools.com";;
9 NikVars
 
11.04.16
10:00
(7) Ты робот?! Там еще есть ВставитьСтроку().
Ты РСВ-1 смотрел?
Если ждешь конкретного решения задачи - делаю только за бабло. Щас сам щевели извилинами или озвучь сумму. Повтрояться не обзятельно - и так вижу, что тебе лень думать.
10 NikVars
 
11.04.16
10:02
11 ТипТопыч
 
11.04.16
10:08
Мил человек не злись, и шевелить извилинами я умею. и ссылку на страницы которую ты мне любезно предоставил я тоже просматривал и читал. У меня еще идея возникла после формирования xml, открыть как текст и лев(), + нужный текст +прав(). создать текстовый файл и сохранить в xml. Сейчас попробую.
12 ТипТопыч
 
11.04.16
10:09
Метод ВставитьСтроку() тоже вставит в конец первой строки текст. Не подойдет. Спасибо.
13 NikVars
 
11.04.16
10:12
(12) УстановитьПространствоИмен тоже добавляет строку без посторонних слов.
ВставитьСтроку(1, "<issuance xmlns="http://www.w3schools.com";;; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";;;  sender="sender1"><general><number>200637644-2016-0004432234</number><datelssuance>2016-04-11</datelssuance><dateTransaction>2016-04-11</dateTransaction><documentType>ORIGINAL</documentType></general><provider><providerStatus>SELLER</providerStatus>...  xsi:schemaLocation="http://www.w3schools.com";;";);
Только в нужных местах кавычки задвоить нужно.
14 eshtrey
 
11.04.16
10:34
Установи атрибут sender="sender1" а потом в текстовом файле сделай СтрЗаменить ("sender="sender1"", нужная строка) и не надо Вставить/Добавить строку
15 ТипТопыч
 
11.04.16
10:36
Спасибо всем участникам, особенная благодарность NikVars!
Решение вопроса:
Корень.Записать(КаталогПрограммы()+"EI.xml");
  
ТекстДок = СоздатьОбъект("Текст");
ТекстДок.Открыть(КаталогПрограммы()+"EI.xml");
стр1 = ТекстДок.ПолучитьСтроку(1);
стр2 = Лев(ТекстДок.ПолучитьСтроку(2),97);
стр22 = СокрЛП(сред(ТекстДок.ПолучитьСтроку(2),98,10000));
стр123 = СокрЛП(стр2)+" xsi:schemaLocation="+""""+"http:"+"//http://www.w3schools.com"+""""+"; "+стр22;
...
Тема закрыта!
16 eshtrey
 
11.04.16
10:37
(1)например так
Уровень1.УстановитьАтрибут("NameSpace", "NameSpace");

потом открываешь как текст
Поз = Найти(ТекСтрока, "NameSpace");
СтрокаЗамены = "xmlns=""http://www.w3schools.com""; xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""; xsi:schemaLocation=""http://www.w3schools.com""";;
ТекСтрока = СтрЗаменить(ТекСтрока, "NameSpace=""NameSpace""", СтрокаЗамены);
Текст.ЗаменитьСтроку(К, ТекСтрока);
17 ТипТопыч
 
11.04.16
10:38
Сейчас попробую (16)
18 NikVars
 
11.04.16
10:46
(17) Я ж тебе говорил смотри РСВ-1!
Файл RSV1_1501.ERT
Процедура СформироватьФайлВыгрузки()
...
        ТекстФайл = СоздатьОбъект("Текст");
        ТекстФайл.Открыть(КаталогВыгрузки + "\" + ИмяФайлаВыгрузки + ".XML");
        
        ИзменяемаяСтрока = ТекстФайл.ПолучитьСтроку(2);
        ИзменяемаяСтрока = СтрЗаменить(ИзменяемаяСтрока, "<ФайлПФР>", "<ФайлПФР xmlns=""http://schema.pfr.ru"">";);
...
19 ТипТопыч
 
11.04.16
10:50
Так нету у меня этой ертшки. Всем огромное СПАСИБО!
20 NikVars
 
11.04.16
11:15
(19) Пожалуйста!
Ты держи под рукой комплект регламентированной отчетности.
Там можно подглядывать реализацию разных выкрутас и списывать.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс