Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/62: Рейтинг темы: голосов - 62, средняя оценка - 4.69
daslex
1296 / 540 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
1

Ошибка разбора XML/ Ошибка при вызове метода контекста (Прочитать)

25.07.2013, 00:53. Просмотров 12405. Ответов 8
Метки нет (Все метки)

1C 8.2 Документооборот КОРП 1.2

Текст ошибки
{ОбщийМодуль.АвтозаполнениеШаблоновФайловКлиентСервер.Модуль(616)}: Ошибка при вызове метода контекста (Прочитать)
Пока ЧтениеXML.Прочитать() Цикл
по причине:
Ошибка разбора XML: - [2,191623]
Ошибка:
Namespace prefix r for id on headerReference is not defined
SystemId: file://E:/TMP/v8_AF95_52/word/document.xml

Код метода, вызывающий ошибку
Кликните здесь для просмотра всего текста

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Процедура ВыполнитьЗаменуПолейИСтрокВДокументеMSOfficeOpenXML(ЧтениеXML,ЗаписьXML,МассивДанныхДляАвтоЗамен) Экспорт
    
    ФлагНайденоПоле = Ложь;
    ФлагНайденаСтрока = Ложь;  
    СтрЗамены = "";
    СтрПоиска = "";
    ТекстБылЗаписан = Ложь;          
    
        Пока ЧтениеXML.Прочитать() Цикл      
            
            
        
    ////////////////////////////////////////////////////////////////    
        Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда  //Если ТипУзла = НачалоЭлемента
            Если ЧтениеXML.Имя = "w:bookmarkStart" Тогда
                ФлагНайденоПоле = Истина; 
            КонецЕсли;
 
            Если ЧтениеXML.Имя = "w:t"  Тогда
                ФлагНайденаСтрока = Истина;
        КонецЕсли;
 
            ЗаписьXML.ЗаписатьНачалоЭлемента(ЧтениеXML.Имя);
 
            Если ЧтениеXML.КоличествоАтрибутов() > 0 Тогда
                Пока ЧтениеXML.ПрочитатьАтрибут() Цикл
                    Если ФлагНайденоПоле И ЧтениеXML.Имя = "w:name" Тогда
                        СтрПоиска = ЧтениеXML.Значение;
                    КонецЕсли;
                    ЗаписьXML.ЗаписатьАтрибут(ЧтениеXML.Имя,ЧтениеXML.Значение); 
                КонецЦикла
            КонецЕсли;
    //////////////////////////////////////////////////////////////////      
    //////////////////////////////////////////////////////////////////      
            
            
        ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда      //Если ТипУзла = Текст
            Если ФлагНайденоПоле И ФлагНайденаСтрока Тогда
                Для Каждого НастройкаЗамены Из МассивДанныхДляАвтоЗамен Цикл
                    Если НастройкаЗамены.ТермДляЗамены = СтрПоиска Тогда
                        СтрЗамены = НастройкаЗамены.ЗначениеЗамены;
                    КонецЕсли;
                КонецЦикла;
                
                Если НЕ ПустаяСтрока(СтрЗамены) Тогда
                    ЗаписьXML.ЗаписатьТекст(СтрЗамены);
                    ФлагНайденоПоле = Ложь;
                    СтрЗамены = "";
                Иначе
                    ЗаписьXML.ЗаписатьТекст(ЧтениеXML.Значение);
                    ФлагНайденоПоле = Ложь;
                КонецЕсли;
            ИначеЕсли ФлагНайденаСтрока Тогда
                СтрЗамены = ЧтениеXML.Значение;
                Для Каждого НастройкаЗамены Из МассивДанныхДляАвтоЗамен Цикл
                    СтрЗамены = СтрЗаменить(СтрЗамены, НастройкаЗамены.ЗаменяемаяСтрока, НастройкаЗамены.ЗначениеЗамены);
                КонецЦикла;
                Если Найти(СтрЗамены, Символы.ПС) Тогда
                    СтрЗамены = СтрЗаменить(СтрЗамены, Символы.ПС, "</w:t></w:r></w:p><w:p><w:r><w:t>");
                    Если СтрЗамены <> ЧтениеXML.Значение Тогда
                        ЗаписьXML.ЗаписатьБезОбработки(СтрЗамены);
                    Иначе
                        ЗаписьXML.ЗаписатьТекст(СтрЗамены);
                    КонецЕсли;
                Иначе
                    ЗаписьXML.ЗаписатьТекст(СтрЗамены);
                КонецЕсли;
                
            Иначе
                ЗаписьXML.ЗаписатьТекст(ЧтениеXML.Значение);
            КонецЕсли;  
            
            
        //////////////////////////////////////////////////////////////////  
        //////////////////////////////////////////////////////////////////              
        ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда    //Если тип узла = КонецЭлемента
            ЗаписьXML.ЗаписатьКонецЭлемента();
            Если ФлагНайденоПоле И ЧтениеXML.Имя = "w:bookmarkEnd" Тогда
                ФлагНайденоПоле = Ложь;
                СтрЗамены = "";
            КонецЕсли;
            Если ФлагНайденаСтрока Тогда
                ФлагНайденаСтрока = Ложь;
                СтрЗамены = "";
            КонецЕсли;
            
        ///////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////
        
        КонецЕсли;                                                     //КонецЕсли ТипУзла =
    КонецЦикла;
    
КонецПроцедуры

Конкретное место, где останавливается
Пока ЧтениеXML.Прочитать() Цикл


Файл XML прикрепляю.

Прошу помощи.
0
Вложения
Тип файла: rar document.rar (20.4 Кб, 26 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2013, 00:53
Ответы с готовыми решениями:

Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи!
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений...

Ошибка при вызове метода контекста
есть ссылка &quot;e79ba7ae-0747-11db-9244-0011955c22cb&quot;... как присвоить ее новому элементу справочника...

Ошибка при вызове метода контекста
Задача сделать автоподбор. Но вот при выполнении выдает...

Ошибка при вызове метода контекста (ПолучитьОбъект)
Привет народ Программа ругается что: {Форма.Форма.Форма(7)}: Ошибка при вызове метода контекста...

Ошибка при вызове метода контекста (ВыбратьИзСписка)
Люди срочно помогите что не так???? В программе не лазили возникла ошибка: При выборе...

8
Dethmontt
Модератор
Эксперт 1С
2745 / 2502 / 443
Регистрация: 10.03.2011
Сообщений: 9,120
Записей в блоге: 1
Завершенные тесты: 1
25.07.2013, 01:04 2
Сvотри что бы тег не содержал запрещенных символов (не должен начинаться с цифры и т.д.)

Установившаяся Практика Именования

Делайте имена описательными. Имена с символом подчеркивания выглядят аккуратно: <first_name>, <last_name>.

Имена должны быть короткими и простыми, например: <book_title> а не: <the_title_of_the_book>.

Избегайте символов "-". Если вы называете xml-элемент, используя дефис ("first-name,") некоторые компьютерные программы могут решить, что вы хотите вычесть значение name из значения first.

Избегайте символов ".". Если вы называете что-нибудь например так: "first.name," некоторые программы могут решить, что "name" является свойством объекта "first."

Старайтесь не использовать символы ":". Двоеточие зарезервировано для использования в так называемых пространствах имен (подробнее о них будет рассказано позже).

XML документы часто имеют соответствующую базу данных. Обычно используют правила именования этой базы данных для элементов XML документов.

Не английские буквы, такие как ���, вполне допустимы в XML, но следите за тем, чтобы не было проблем совместимости, если ваш производитель программного обеспечения не поддерживает их.

Добавлено через 1 минуту
Правила Именования в XML
Элементы XML должны следовать следующим правилам именования:

Имена могут состоять из букв, чисел, и других символов
Имена не могут начинаться с числа или знака препинания
Имена не могут начинаться с букв xml (или XML, или Xml, и т.п.)
Имена не могут содержать пробелы
Любое имя может использоваться, зарезервированных слов нет.
1
daslex
25.07.2013, 01:06  [ТС]
  #3

Не по теме:

Это не мой код, но исправлять его мне.
Из вышесказанного может что и пойму, но в данный момент ничего вообще не понял

0
Dethmontt
Модератор
Эксперт 1С
2745 / 2502 / 443
Регистрация: 10.03.2011
Сообщений: 9,120
Записей в блоге: 1
Завершенные тесты: 1
25.07.2013, 01:12 4
Короче по русски косяки в структуре XML нужно искать в XML проблемные места и исправлять

Добавлено через 50 секунд
В принципе ошибка даже написана - Namespace prefix r for id on headerReference is not defined

Добавлено через 2 минуты
r:id
1
25.07.2013, 01:12
daslex
1296 / 540 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
25.07.2013, 01:14  [ТС] 5
Я в код долго пялился, но не придумал как исправить.
0
Dethmontt
Модератор
Эксперт 1С
2745 / 2502 / 443
Регистрация: 10.03.2011
Сообщений: 9,120
Записей в блоге: 1
Завершенные тесты: 1
25.07.2013, 01:24 6
Да не причем тут КОД - проблема в XML
1
daslex
1296 / 540 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
25.07.2013, 01:27  [ТС] 7
Ясно. Спасибо.
0
Dethmontt
Модератор
Эксперт 1С
2745 / 2502 / 443
Регистрация: 10.03.2011
Сообщений: 9,120
Записей в блоге: 1
Завершенные тесты: 1
25.07.2013, 01:54 8
Цитата Сообщение от daslex Посмотреть сообщение
del

Не по теме:

Shift+del



Добавлено через 24 минуты
Короче открываешь в блокноте - и жмешь ctrl+h
Заменяешь r: на пустое значение

Добавлено через 21 секунду
И будет тебе счастье...
1
daslex
1296 / 540 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
25.07.2013, 08:33  [ТС] 9
При каждом новом запуске этот xml файл формируется в новом месте.
Формируется он как-то из документа .doc или .docx (тот, что под формат xml сохраняется)
Из блокнота не выйдет заменять r на пустое.
0
25.07.2013, 08:33
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2013, 08:33

Ошибка при вызове метода контекста (МоментВремени): Элемент не выбран
В УТ 8.2 скопировал печатную форму &quot;Сравнительная накладная &quot; из РеализацияТоваровУслуг в Заказ...

Не удалось сформировать внешнюю печатную форму(толстую)! Ошибка при вызове метода контекста (Выполнить): {(14, 1)}: Синтаксическая ошибка "ИЗ" <<?>>ИЗ
Подскажите, пожалуйста. Выбрал для счета только услуги, написал: Шапка =...

Ошибка при вызове метода контекста по причине испльзование модальных окон в данном режиме запрещено
Здравствуйте! столкнулась вот с такой ошибкой, понятия не имею, что делать. Сделала все по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.