Здравствуйте. Прохожу обучение по книге Радченко в 24 занятие вот такая ошибка при попытке сделать Обмен данными в разделе Предприятие.
{ПланОбмена.Филиалы.МодульОбъекта(77)}: Ошибка при вызове метода контекста (НачатьЧтение)
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
по причине:
Ошибка разбора XML: — [1,37]
Фатальная ошибка:
Extra content at the end of the document
SystemId: file://C:/Users/Пользователь/AppData/Local/Temp/MessageФил_ЦБ.xml
Код модуля плана обмена Филиалы
Процедура ЗаписатьСообщениеСИзменениями() Экспорт
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = «——Выгрузка в узел » + Строка(ЭтотОбъект) + «———«;
Сообщение.Сообщить();
Каталог = КаталогВременныхФайлов();
//Сформировать имя временного файла.
ИмяФайла = Каталог + ?(Прав(Каталог, 1) = «», «», «») + «Message» + СокрЛП(Ссылка.Код)
+ «_» + СокрЛП(ПланыОбмена.Филиалы.ЭтотУзел().Код) + «.xml»;
//Создать объект записи XML.
//***Запись XML-документов
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ИмяФайла);
ЗаписьXML.ЗаписатьОбъявлениеXML();
//***Инфраструктура сообщений.
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Ссылка);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = » Номер сообщения: » + ЗаписьСообщения.НомерСообщения;
Сообщение.Сообщить();
//Получить выборку изменений данных.
//***Механизм регистрации изменений.
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);
Пока ВыборкаИзменений.Следующий() Цикл
//Записать данные в сообщение ***XML-сериализация.
ЗаписатьXML(ЗаписьXML, ВыборкаИзменений.Получить());
КонецЦикла;
ЗаписьСообщения.ЗакончитьЗапись();
ЗаписьXML.Закрыть();
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = «——Конец выгрузки——-«;
Сообщение.Сообщить();
КонецПроцедуры
Процедура ПрочитатьСообщениеСИзменениями() Экспорт
Каталог = КаталогВременныхФайлов();
//Сформировать имя файла.
ИмяФайла = Каталог + ?(Прав(Каталог, 1) = «», «», «») + «Message» + СокрЛП(Ссылка.Код)
+ «_» + СокрЛП(ПланыОбмена.Филиалы.ЭтотУзел().Код) + «.xml»;
Файл = Новый Файл(ИмяФайла);
Если Не Файл.Существует() Тогда
Возврат;
КонецЕсли;
//***Чтение документов XML.
//Попытаться открыть файл.
ЧтениеXML = Новый ЧтениеXML;
Попытка
ЧтениеXML.ОткрытьФайл(ИмяФайла);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = «Невозможно открыть файл обмена данными.»;
Сообщение.Сообщить();
Возврат;
КонецПопытки;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = «——Загрузка из » + Строка(ЭтотОбъект) + «——-«;
Сообщение.Сообщить();
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = » -Считывается файл » + ИмяФайла;
Сообщение.Сообщить();
//Загрузить из найденного файла.
//***Инфраструктура сообщений.
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
//Читать заголовок сообщения обмена данными — файла XML.
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
//Сообщение предназначено не для это узла.
Если ЧтениеСообщения.Отправитель <> Ссылка Тогда ВызватьИсключение «Неверный узел»;
КонецЕсли;
//Удаляем регистрацию изменений для узла отправителя сообщения.
//***Служба регистрации изменений.
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);
//Читаем данные из сообщения ***XML-сериализация.
Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
//Читаем очередное значение.
Данные = ПрочитатьXML(ЧтениеXML);
//Не переносим изменения, полученные в главный из неглавного,
//если есть регистрация изменения.
Если Не ЧтениеСообщения.Отправитель.Главный И
ПланыОбмена.ИзменениеЗарегистрировано(ЧтениеСообщения.Отправитель, Данные) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = » — Изменения отклонены»;
Сообщение.Сообщить();
Продолжить;
КонецЕсли;
//Записать полученные данные.
Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.Записать();
КонецЦикла;
ЧтениеСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
УдалитьФайлы(ИмяФайла);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = «——Конец загрузки———«;
Сообщение.Сообщить();
КонецПроцедуры
Пожалуйста, помогите. Если нужно, вышлю выгрузку базы.
Сегодня В 1С столкнулся с ошибкой при загрузке данных в базу из XML.
“Ошибка при вызове метода контекста (НачатьЧтение): Неизвестный получатель”
Вначале не мог понять в чем дело, но потом разобрался. Т.к. переносил данные между тестовыми базами, а там номера сообщений не совпадают – нужно было заменить в XML номера на актуальные. И во время замены я ошибся и заменил вместо номеров сообщений номера узлов. После корректировки XML-файла ошибка ушла и данные корректно загрузились.
Итого, если у вас ошибка “Ошибка при вызове метода контекста (НачатьЧтение): Неизвестный получатель” при чтении XML-файла – посмотрите какие узлы указаны в файле и какие узлы есть в базе по используемому плану обмена. Вероятно они не совпадают.
Метки: 1СXMLНачатьЧтениеНеизвестный получательОбмен даннымиОшибка
Читайте также:
Выгрузил справочник. Теперь хочу загрузить в другую базу. Почему нне могу читать? Ошибка при вызове метода контекста (НачатьЧтение): Неизвестный план обмена ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
ну в обоих узлах должны быть элементы планов обменов с одинаковыми кодами
Тэги:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
Ошибка при вызове метода контекста (НачатьЧтение)Причина: Неизвестный получатель
Автор Черника, 23 мар 2022, 11:18
0 Пользователей и 1 гость просматривают эту тему.
Всем здравствуйте, помогите пожалуйста. Делаю по образу книги Радченко, занятие 24 «Обмен данными» (Передаю 1 документ), выдает ошибку:
Ошибка при вызове метода контекста (НачатьЧтение)
{ПланОбмена.ДокументыРКО.МодульОбъекта(72)}: ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
{Обработка.ОбменДанными.Форма.Форма.Форма(16)}: УзелОбъект.ПрочитатьСообщениеСИзменениями();
{Обработка.ОбменДанными.Форма.Форма.Форма(4)}: ВыполнитьОбменНаСервере();
по причине:
Неизвестный получатель
по причине:
Неизвестный получатель
Сам код:
Процедура ПрочитатьСообщениеСИзменениями() Экспорт
Каталог = КаталогВременныхФайлов();
ИмяФайла = Каталог + ?(Прав(Каталог, 1)= "","","") + "Message" + СокрЛП(ПланыОбмена.ДокументыРКО.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml";
Файл = Новый Файл(ИмяФайла);
Если Не Файл.Существует() Тогда
Возврат;
КонецЕсли;
ЧтениеXML = Новый ЧтениеXML;
Попытка
ЧтениеXML.ОткрытьФайл(ИмяФайла);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Невозможно открыть файл обмена данными.";
Сообщение.Сообщить();
Возврат;
КонецПопытки;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "------- Загрузка из " + Строка(ЭтотОбъект) + "-------";
Сообщение.Сообщить();
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = " - Считывается файл " + ИмяФайла;
Сообщение.Сообщить();
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
Если ЧтениеСообщения.Отправитель <> Ссылка Тогда
ВызватьИсключение "Неверный узел";
КонецЕсли;
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);
Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
Данные = ПрочитатьXML(ЧтениеXML);
Если Не ЧтениеСообщения.Отправитель.Главный И
ПланыОбмена.ИзменениеЗарегистрировано(ЧтениеСообщения.Отправитель, Данные) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "- Изменения отклонены";
Сообщение.Сообщить();
Продолжить;
КонецЕсли;
Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.Запись();
КонецЦикла;
ЧтениеСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
УдалитьФайлы(ИмяФайла);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "--------- Конец загрузки ---------";
Сообщение.Сообщить();
КонецПроцедуры
Оптимус, Полностью переписал код заново, а сравнить их не догадался. Где то не правильно, что то напечатал.
Теги:
- Форум 1С
- ►
Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4 - ►
Конфигурирование, программирование в 1С Предприятие 8 - ►
Ошибка при вызове метода контекста (НачатьЧтение)Причина: Неизвестный получатель
Похожие темы (5)
Поиск
| Shadowman |
|
||
|---|---|---|---|
|
|
Подскажите пожалуйста,при чтении изменений в плане обмена выходит сообщение НЕИЗВЕСТНЫЙ ПОЛУЧАТЕЛЬ. Что это и как исправить? |
| Yandex |
|
||
|---|---|---|---|
|
|
| E_Migachev |
|
||
|---|---|---|---|
|
|
Проблема возникает при несовпадении кодов в плане обмена, возможно после создания строк в плане обмена вы изменили код в базе-приемнике или в основной базе. Какой изначально должен быть код, смотрим xml-файл обмена следующие строки на примере: |
| Shadowman |
|
||
|---|---|---|---|
|
|
Разобрался. Большое спасибо!!! |
| buktoru |
|
||
|---|---|---|---|
|
|
У меня такая же проблема, не могу понять где ошибка? подскажите пожалуйста. |
| Zhake |
|
||
|---|---|---|---|
|
|
У меня тоже данная проблема. Как решить ? |
| Подсказка:Вы можете добавить любую страничку в Социальные закладки щелкнув по значку соцсетей (в вверху) |
-
Добрый день! Подскажите пожалуйста, что можно сделать в такой ситуации — Есть основная база (серверная) и переферийная, которая находится на ноутбуке. Версия 8.0. Конфигурация самописанная. Возникла потребность обновить данные. Я подкючилась к сети и с ноутбука зашла на сервер чере админа, в плане обмена укаала ноутбук, и выполнила операцию прочитать изменения. Затем я зашла в переферийную базу и, указав в плане обмена серверную базу, и при попытки — записать изменения — вышла ошибка — «неизвестный получатель». сам же значок обмена (который находится в первом поле, в соответств. записи серверной базы был красного цвета) Кто до меня работал, говорят, что с эти не сталкивался. я работаю в 1с меньше года — тем более. B)
Пожалуйста подскажите, что может не так???!! :unsure: Заранее, огромное спасибо!!!
-
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
Э….. А создать узлы, образы…. Делали?
-
Здравствуйте! А каким образом можно создать узлы? Моя главная цель — это извлечь данные с переыерийной базы в основную. (т.е. с ноутбука на серверную). Я как понимаю, создание нового образа не позволит это сделать?((
-
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
Давай-те начнем с малого:
— база на ноутбуке какое отношение имеет к базе основной?
-
База на ноутбуке является переферийной. т.е. изначально для него создавался нач. образ и т.д.
Как Вы думаете, если я сразу сделаю «записать изменения» (пропустив «прочитать изменения») что-то изменится?
)
Большое спасибо Вам за Ваше внимание!..так, уже поняла, что это не правильно.. :unsure: не знаю, просто, что делать.. а что означает красный значок обмена? Остальные везде синие…
-
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
красный — это родитель, остальные не синие, а один из них должен быть с зеленой фигней рядом — это местный план.
Когда последний раз проводился обмен?
-
Offline
smm
Опытный в 1С- Регистрация:
- 19 дек 2008
- Сообщения:
- 61
- Симпатии:
- 0
- Баллы:
- 26
Проблема возникает при несовпадении кодов в плане обмена, возможно после создания строк в плане обмена вы изменили код в базе-приемнике или в основной базе. Какой изначально должен быть код, смотрим xml-файл обмена следующие строки на примере:
<v8msg:To>2</v8msg:To>
<v8msg:From>1</v8msg:From>
где 2 — это код строки с зеленым шариком в основной базе, 1 — код строки обмена с распределенной базой.
Добрый день! Прошу объяснить и рассказать, и не казнить. я начинающий 1с-ник.. Вот наконец-то и я дошел до темы, обмен между базами. Суть проблемы такая. Есть 2 базы(конфигурации). Написанные полностью с нуля. И сейчас моя задача это сделать выгрузку документов из одной базы в другую. В интернете примеров я не нашел которые подходят именно для меня. Но нашел одну интересную статью. Руководствуясь ней, у меня получилось выгрузить документ XML..Почти как надо.. только в место названий справочников товаров… выгрузились ихние ссылки «гуйды» или как их там
База1 — Филиал. Там я создаю план обмена. Потом захожу в отладчик и в плане обмена завожу два элемента: на скрине ниже:
http://s2.ipicture.ru/uploads/… sUEc62.jpg
А сам план обмена имеет имя ОбменСЦО (обмен с центральным офисом). Состав его, я определяю, как, все справочники и 1 документ, который нужно перенести (Авторегистрация у них везде стоит «разрешить»). Далее в этом плане обмене я перехожу на вкладку прочие. И там модуль объекта и ввожу такой код.
| 1C | ||
|
После этого, я создаю обработку с кнопкой выгрузить. Так в этой обработке по кнопке события
| 1C | ||
|
Далее переходим по процедуре, которая находится также в модуле объекта Плана обмена.
Цитата
УзелОбъекта.ЗаписатьСообщениеСИзменениями();
| 1C | ||
|
Все, после всех этих махинации, документ выгрузился.
Далее беру копию своей базы.. Называем ее ЦентральныйОфис. И делаю те же самые махинации Только Завожу другой План обмена — называется обмен с филиалами. Завожу в нем те же 2 элемента как на первой картинке… только элементы меняю местами. и в обработке завожу кнопку с кодом которая обращается как и в первом случае в модуль объекта плана обмена только на чтение XML файла:
| 1C | ||
|
И вот тут самое главное когда нажимаю считать файл то доходя до этого момент он не находи файл.
| 1C | ||
|
Хочу спросить..ЧТО НЕ ТАК Я ДЕЛАЮ???? почему не находится файл.
Ладно… далее я его переименовывают и когда он доходит до этого момента
| 1C | ||
|
он пишет
{ПланОбмена.ЦкнтральныйОфис.МодульОбъекта(76)}: Ошибка при вызове метода контекста (НачатьЧтение)
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
по причине:
Неизвестный получатель
В общем куда копать даже не знаю.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
1C 8.1 ошибка при загрузке файла обмена "Неправильный формат сообщения"?
Обмен из УТ 10.3 в БП 2.0 (8.1), ручной. При нажатии на кнопку «Выполнить загрузку» вылетает ошибка с сообщением:
«Ошибка при вызове метода контекста (НачатьЧтение): Неправильный формат сообщения»
Что это такое? Куда копать? Гугл и Миста внятного ответа на вопрос не дали. Нумерация узлов в порядке.
-
Вопрос заданболее трёх лет назад
-
11114 просмотров
1. БП предприятия не может прочитать файл обмена той версии УТ, которая у вас есть. Почитать о совместимости версий УТ<->БП.
2. Одна из конфигураций не типовая и идет попытка прочитать/записать тот реквизит, описания которого нет в шаблоне обмена.
3. Абсурдное — неверный путь до файла обмена. Попробуйте подклчюиться через COM.
ну и вообще хотелось бы гораздо больших подробностей, а не потока сознания.
Пригласить эксперта
Это первый обмен? Или ошибка возникла уже в процессе работы?
1. Выгрузка не от того образа.
2. Выгрузка была с ошибками, но вам об этом не сказали.
НачатьЧтение функция, которая парсит xml файл выгрузки, обычно первое что он проверяет это узел.
Лучше конечно посмотреть по отладчику.
-
-
1 подписчик -
08 июн.
-
38 просмотров
-
-
Показать ещё
Загружается…
14 июн. 2023, в 01:02
5000 руб./за проект
13 июн. 2023, в 23:37
1000 руб./в час
13 июн. 2023, в 23:22
15000 руб./за проект


Пожалуйста подскажите, что может не так???!! :unsure: Заранее, огромное спасибо!!!