|
Падает 1С при попытке создания объекта методом ПрочитатьXML | ☑ | ||
---|---|---|---|---|
0
Соратник
05.04.21
✎
09:40
|
Выгружаю элементы плана обмена из одной базы в другую. Конфигурации идентичны (1С-Рарус:ТКПТ). Падает 1С на строке Об=ПрочитатьXML(ЧтениеXML);
Пробовал на платформе 8.3.15.2107 и 8.3.16.1876, одинаково - вылет 1С. По отладчику вижу, что из файла данные получены, вижу значения реквизитов, но, видимо, в сам момент инициализации объекта происходит какой-то глюк. Подскажите, может кто-то сталкивался? В чем может быть проблема или как можно обойти? Функция ПолучитьОбъектИзXML(Об) Текст = Новый ТекстовыйДокумент; Текст.УстановитьТекст(Об); ИмяВФ = ПолучитьИмяВременногоФайла(); Текст.Записать(ИмяВФ); ЧтениеXML=Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ИмяВФ); Об=ПрочитатьXML(ЧтениеXML); ЧтениеXML.Закрыть(); Возврат Об; КонецФункции |
|||
1
Мимохожий Однако
05.04.21
✎
09:43
|
на сервере или на клиенте читаешь? Файл какой величины?
|
|||
2
Соратник
05.04.21
✎
09:44
|
Толстый клиент, файловая версия. Файл маленький.
|
|||
3
rozer76
05.04.21
✎
09:45
|
||||
4
Мимохожий Однако
05.04.21
✎
09:47
|
Сделай Попытку и посмотри ОписаниеОшибки()
|
|||
5
Kassern
05.04.21
✎
09:48
|
(0) попробуй построчно прочитать, сразу будет ясно в каком месте крашется, скорее всего из-за недопустимых символов
|
|||
6
Соратник
05.04.21
✎
09:49
|
Спасибо, попробую проверить на недопустимые символы, отпишусь
|
|||
7
Соратник
05.04.21
✎
10:03
|
И в попытку/исключение взял - не выдает ошибку, крашится раньше.
И на недопустимые символы проверил - нет их. Крашится 1С. |
|||
8
Kassern
05.04.21
✎
10:08
|
(7) Пробовал построчно читать, типо:
Чтение.ОткрытьФайл("c:/docs/data.xml"); Пока Чтение.Прочитать() Цикл // Обработка узла XML КонецЦикла; |
|||
9
Kassern
05.04.21
✎
10:09
|
(8) это вопрос)
|
|||
10
Salimbek
05.04.21
✎
10:11
|
(0) Сделай не временный файл, а конкретное имя, например c:\papka\file.xml
и пиши данные туда. Соответственно, в момент крашинга у тебя в этом файле и будут данные, приводящие к падению 1С-ки. |
|||
11
Галахад
гуру
05.04.21
✎
10:21
|
(0) А откуда этот "Об" прилетает?
|
|||
12
Соратник
05.04.21
✎
10:31
|
(11) Об - это строка вида:
<ExchangePlanObject.УдаленныеПодразделения> <Ref>53785123-4372-11de-881c-00226442fa37</Ref> <DeletionMark>false</DeletionMark> <Code>ОБ </Code> <Description>Облпо Кооператор</Description> <SentNo>28</SentNo> <ReceivedNo>20</ReceivedNo> <ПодразделениеКомпании>2179abb9-0d37-11de-b0b5-001a4d59032f</ПодразделениеКомпании> <СпособОбмена>0</СпособОбмена> <КаталогОбмена/> <АдресЭлектроннойПочты/> <СерверSMTP/> <ПортSMTP>0</ПортSMTP> <ПользовательSMTP/> <ПарольSMTP/> <СерверPOP3/> <ПортPOP3>0</ПортPOP3> <ПользовательPOP3/> <ПарольPOP3/> <ПрофильMAPI/> <ПарольMAPI/> <СерверFTP>192.168.0.51</СерверFTP> <ПортFTP>21</ПортFTP> <ПользовательFTP>RarusRBD_CB</ПользовательFTP> ...... и так далее |
|||
13
Соратник
05.04.21
✎
10:35
|
Вот так не крашится, падает если раскоментировать строку создания объекта.
Текст = Новый ТекстовыйДокумент; Текст.УстановитьТекст(Об); ИмяВФ = ПолучитьИмяВременногоФайла(); ИмяВФ = "E:\DataExchange\123.xml"; Текст.Записать(ИмяВФ); Попытка ЧтениеXML=Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ИмяВФ); Пока ЧтениеXML.Прочитать() Цикл // Обработка узла XML Сообщить(ЧтениеXML.Имя); КонецЦикла; //Об=ПрочитатьXML(ЧтениеXML); ЧтениеXML.Закрыть(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; |
|||
14
arsik
гуру
05.04.21
✎
10:51
|
(13) У тебя в источнике и в приемнике поля не совпадают. Посмотри внимательно.
|
|||
15
Соратник
05.04.21
✎
10:53
|
(14) Приемник - это образ выгруженный из источника и отвязанный от РБД, абсолютно идентичная конфигурация.
|
|||
16
Соратник
05.04.21
✎
10:55
|
Перепроверю конечно и это. Все равно пока тупик, ну или делать через обычное создание объекта и заполнение реквизитов считывая их их XMl поочередно
|
|||
17
acht
05.04.21
✎
11:11
|
У тебя в функции "О"б это и параметр, и внутренняя переменная и результат. Уверен, что так и надо?
|
|||
18
Соратник
05.04.21
✎
11:14
|
(17) Исходный код не мой и он работал, как говорят. Но попробую переименовать.
|
|||
19
Соратник
05.04.21
✎
11:17
|
Не помогло
|
|||
20
arsik
гуру
05.04.21
✎
11:19
|
(15) Сравни конфиги. У меня такое было.
|
|||
21
Соратник
05.04.21
✎
11:28
|
(20) Выгрузил cf источника, сравнил с конфигурацией приемника - нет различий
|
|||
22
arsik
гуру
05.04.21
✎
11:33
|
(21) Только по этому объекту или полностью конфигурация идентична? Могут быть еще и общие реквизиты.
Может еще и платформы с разной совместимостью. Для более точного определения нужно из источника и приемника по объекту выгрузить и сравнить их поля. |
|||
23
Соратник
05.04.21
✎
11:37
|
полностью конфигурация
|
|||
24
Галахад
гуру
05.04.21
✎
11:38
|
А ЖР смотрел?
|
|||
25
Salimbek
05.04.21
✎
11:44
|
(13) И что у тебя в файле: E:\DataExchange\123.xml после краха?
Вот то, что в (12) ? |
|||
26
Соратник
05.04.21
✎
11:48
|
(25) Да, то что в (12)
|
|||
27
Соратник
05.04.21
✎
13:10
|
Переконвертировал базу приёмник под платформу 8.2.19.130 - загрузилось, никаких крашей. Но это пробная база. С реальной базой такой трюк не пройдет :(
Есть еще идеи? Гадать с новыми платформами? |
|||
28
arsik
гуру
05.04.21
✎
13:41
|
Вот пример из 8.3.18
|
|||
29
arsik
гуру
05.04.21
✎
13:46
|
+(28) Хотя другой обработкой примерно как у тебя
|
|||
30
Соратник
05.04.21
✎
13:51
|
8.3.18.1363 скачал, устанавливаю, попробую на нём
|
|||
31
Соратник
05.04.21
✎
13:53
|
8.3.18.1363 - Краш :)
|
|||
32
arsik
гуру
05.04.21
✎
15:49
|
(31) Выгрузи один объект из старой платформы и один из новой. И сравни тексты.
|
|||
33
Соратник
05.04.21
✎
16:23
|
(32) Так я один и тот же файл грузил в новой платформе (краш), в старой 8.2 - загружается.
|
|||
34
arsik
гуру
05.04.21
✎
16:31
|
(32) А я тебе говорю, выгрузи и сравни.
|
|||
35
Масянька
05.04.21
✎
17:27
|
(33) В журнале винды есть что?
|
|||
36
Масянька
05.04.21
✎
17:29
|
+ (35) Хотя, если это Рарус... Им писал? Рарусу.
|
|||
37
Соратник
05.04.21
✎
17:40
|
(35) ничего интересного... (36) там с поддержкой сейчас швах какой-то, посоветовали перейти на 8.2 - загрузить, а потом обратно :) База под 70 гигов, только выгрузка в DT идет часов 10 :) - совсем не вариант.
Сейчас пошел "по тупому", парсение XML и создание объекта обычным способом, почти доделал... Время просто уходит, а работы много нужно успеть. |
|||
38
Соратник
06.04.21
✎
10:50
|
В размерах базы ввел в заблуждение :) почти 700 гигабайт
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |