Shadowman |
|
||
---|---|---|---|
Подскажите пожалуйста,при чтении изменений в плане обмена выходит сообщение НЕИЗВЕСТНЫЙ ПОЛУЧАТЕЛЬ. Что это и как исправить? |
Yandex |
|
||
---|---|---|---|
E_Migachev |
|
||
---|---|---|---|
Проблема возникает при несовпадении кодов в плане обмена, возможно после создания строк в плане обмена вы изменили код в базе-приемнике или в основной базе. Какой изначально должен быть код, смотрим xml-файл обмена следующие строки на примере: |
Shadowman |
|
||
---|---|---|---|
Разобрался. Большое спасибо!!! |
buktoru |
|
||
---|---|---|---|
У меня такая же проблема, не могу понять где ошибка? подскажите пожалуйста. |
Zhake |
|
||
---|---|---|---|
У меня тоже данная проблема. Как решить ? |
Подсказка: Для быстрого перемещения к последнему ответу или к вопросу используйте или . |
Сегодня В 1С столкнулся с ошибкой при загрузке данных в базу из XML.
“Ошибка при вызове метода контекста (НачатьЧтение): Неизвестный получатель”
Вначале не мог понять в чем дело, но потом разобрался. Т.к. переносил данные между тестовыми базами, а там номера сообщений не совпадают – нужно было заменить в XML номера на актуальные. И во время замены я ошибся и заменил вместо номеров сообщений номера узлов. После корректировки XML-файла ошибка ушла и данные корректно загрузились.
Итого, если у вас ошибка “Ошибка при вызове метода контекста (НачатьЧтение): Неизвестный получатель” при чтении XML-файла – посмотрите какие узлы указаны в файле и какие узлы есть в базе по используемому плану обмена. Вероятно они не совпадают.
Метки: 1СXMLНачатьЧтениеНеизвестный получательОбмен даннымиОшибка
Читайте также:
План обмена *.НачатьЗапись |
Я |
03.06.13 — 14:37
Всем привет. Проблема с вылетании ошибки:
«{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(10634)}: Ошибка при вызове метода контекста (НачатьЗапись): Неизвестный получатель»
Пояснение. 1С УПП. Настраиваю односторонний обмен выгрузки данных. Использую ПланОбмена как регистратор изменений для выгрузки измененных документов (конкретных).
Ошибка вылазит на следующем коде:
[1c] ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.УстановитьСтроку();
// Создаем новое сообщение
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);
[/1c]
Параметры НачатьЗапись(ЗаписьXML, УзелОбмена) элементарные — Запись, которая создается в коде перед методом, а также мой УзелОбмена (единственный в базе, больше не создано). Узел отладчиком я проверил — цепляет верно. Но ошибка выдается, причем не понятно что за получатель. У меня односторонний обмен, там получатель не узел, а файл выгрузки.
1 — 03.06.13 — 14:38
*представленный код находится в модуле объекта УниверсальныйОбменДанными.
2 — 03.06.13 — 14:39
+ (1) помогите, пожалуйста, с решением проблемы.
3 — 03.06.13 — 14:48
» (НачатьЗапись): Неизвестный получатель» »
С сервером дружить надо, налей ему 100 грамм в системный блок, сразу зауважает и узнавать начнет.
4 — 03.06.13 — 14:52
(0)>> там получатель не узел, а файл выгрузки.
вытащи запросом таблицу регистрации плана обмена и посмотри для чего узел нужен. не бывает обмена без узла, а вот без файла запросто.
5 — 03.06.13 — 14:54
(4) так у меня узел корректно подцепляется.
6 — 03.06.13 — 14:55
Получатель — файл выгрузки ?????
7 — 03.06.13 — 14:58
(6) Получаетля я вообще не вижу! Покажите мне в предоставленном коде, где он?
У
[1с]ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);[/1с] лишь 2 параметра, один определяется перед этой строкой без указания чего-либо, а второй — мой узел.
У Узла нет Получателя:
УзелОбмена УИБ82 ПланОбменаСсылка.ОбменЛогистика8_БИБ82_СохраннаяРасписка
ВерсияДанных «AAAAAAAZUc0=» Строка
Код «000000001» Строка
Наименование «УИБ82» Строка
НомерОтправленного 0 Число
НомерПринятого 0 Число
ПометкаУдаления Ложь Булево
Ссылка УИБ82 ПланОбменаСсылка.ОбменЛогистика8_БИБ82_СохраннаяРасписка
8 — 03.06.13 — 15:00
(7) ну не может твой узел быть получателем. Не парь нам мозг. Создай второй узел, и на него отправляй.
9 — 03.06.13 — 15:00
(7) да при чем тут реквизиты то? это свойство каждого элемента, включенного в план обмена
10 — 03.06.13 — 15:09
(8) где вообще указывается получатель?
Мой код следующий:
Номер = ПолучитьНомерПоследнегоПринятого(); НомерПоследнегоПринятогоПакетаВБП82 = ?(Номер= 0 ИЛИ Номер= 9999999999, 0, Номер-1); Обработка = Обработки.УниверсальныйОбменДаннымиXML.Создать(); УзелОбмена = ПланыОбмена.ОбменЛогистика8_БИБ82_СохраннаяРасписка.НайтиПоНаименованию("УИБ82"); Если НомерПоследнегоПринятогоПакетаВБП82 > 0 Тогда ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, НомерПоследнегоПринятогоПакетаВБП82); ОбъектУзелОбмена = УзелОбмена.ПолучитьОбъект(); ОбъектУзелОбмена.НомерПринятого = НомерПоследнегоПринятогоПакетаВБП82; ОбъектУзелОбмена.Записать(); КонецЕсли; //Добиваем номер пакета не значащими нулями СтрокаНомера = Строка(УзелОбмена.НомерОтправленного + 1); //Убираем лишние символы из строки номера пакета СтрокаНомера = СтрЗаменить(СтрокаНомера, Символ(160), ""); ДлинаКодаТек = СтрДлина(СтрокаНомера); Для к=1 по (ДлинаКодаПакета-ДлинаКодаТек) Цикл СтрокаНомера = "0"+ СтрокаНомера; КонецЦикла; Обработка.ИмяФайлаОбмена = ПутьОбмена + СтрЗаменить(МаскаФайловВыгрузки,"*",СтрокаНомера); Обработка.ИмяФайлаПравилОбмена = ИмяФайлаПравилОбмена; Обработка.ЗагрузитьПравилаОбмена(Обработка.ИмяФайлаПравилОбмена); УстановитьУзелОбменаУСтрокДерева(Обработка.ТаблицаПравилВыгрузки.Строки, УзелОбмена.Ссылка); Обработка.ВыполнитьВыгрузку(); ОбъектУзелОбмена.НомерОтправленного = УзелОбмена.НомерОтправленного + 1; ОбъектУзелОбмена.Записать();
На строке «Обработка.ВыполнитьВыгрузку();» программа уходит в модуль стандартной обработки.
11 — 03.06.13 — 15:10
все изменения система не просто так регистрирует а для конкретного узла получателя, и отдельно контролирует удаление из таблицы регистраций для тех узлов кто получил. Создай переферийный узел получатель.
12 — 03.06.13 — 15:13
(10)вот тут
УзелОбмена = ПланыОбмена.ОбменЛогистика8_БИБ82_СохраннаяРасписка.НайтиПоНаименованию(«УИБ82»);
вместо УИБ82 должен быть код второго переферийного узла
13 — 03.06.13 — 15:15
+ и у плана обмена должна стоять галка «Распределенная ИБ» что то вроде такого.
14 — 03.06.13 — 15:17
(13) не, эта галка влияет будет ли ездить конфа. к регистрации элементов отношения не имеет
15 — 03.06.13 — 15:20
(12) Спасибо, по крайней мере ошибка ушла. Буду дальше разбираться с этим планом обмена.
Maxus43
16 — 03.06.13 — 15:36
(15) для начала разберись что это вобще такое. Получате, отправители, узлы… Метод заменил отправителя и заработало — совсем экстремальный
Попросили помочь с 1С «как компьютерщика». Только я с ней никогда не работал. Прошу помощи.
Итак, есть 1С предприятие.
В нём откывают сервис-> обмен с Бухгалтерией предприятия 8,2
открывается некое окошко, в котором нажимают кнопку «Выполнить обмен»
При обмене выдаётся такая ошибка:
«Ошибка при вызове метода контекста (НачатьЗапись): Неизвестный получатель
Техническая информация:
{Обработка.ОбменДаннымиXML.МодульОбъекта(12118)}: Ошибка при вызове метода контекста (НачатьЗапись): Неизвестный получатель»
Я вообще не шарю, как это решить. Никогда с 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..Почти как надо.. только в место названий справочников товаров… выгрузились ихние ссылки «гуйды» или как их там. Но это не суть и тут я пробую делать на копии своей же базы загрузку этой этого же XML файла на что в ответ получаю что файл не найден…ок.. делаем дальше..я переименовываю файл… файл находится но при чтении именно этого файла ругается на второй параметр… не найден получатель. Прошу подсказать почему не может найтись получатель??????? Дальше я в картинках опишу что именно делаю.
База1 — Филиал. Там я создаю план обмена. Потом захожу в отладчик и в плане обмена завожу два элемента: на скрине ниже:
http://s2.ipicture.ru/uploads/… sUEc62.jpg
А сам план обмена имеет имя ОбменСЦО (обмен с центральным офисом). Состав его, я определяю, как, все справочники и 1 документ, который нужно перенести (Авторегистрация у них везде стоит «разрешить»). Далее в этом плане обмене я перехожу на вкладку прочие. И там модуль объекта и ввожу такой код.
1C | ||
|
После этого, я создаю обработку с кнопкой выгрузить. Так в этой обработке по кнопке события
1C | ||
|
Далее переходим по процедуре, которая находится также в модуле объекта Плана обмена.
Цитата
УзелОбъекта.ЗаписатьСообщениеСИзменениями();
1C | ||
|
Все, после всех этих махинации, документ выгрузился.
Далее беру копию своей базы.. Называем ее ЦентральныйОфис. И делаю те же самые махинации Только Завожу другой План обмена — называется обмен с филиалами. Завожу в нем те же 2 элемента как на первой картинке… только элементы меняю местами. и в обработке завожу кнопку с кодом которая обращается как и в первом случае в модуль объекта плана обмена только на чтение XML файла:
1C | ||
|
И вот тут самое главное когда нажимаю считать файл то доходя до этого момент он не находи файл.
1C | ||
|
Хочу спросить..ЧТО НЕ ТАК Я ДЕЛАЮ???? почему не находится файл.
Ладно… далее я его переименовывают и когда он доходит до этого момента
1C | ||
|
он пишет
{ПланОбмена.ЦкнтральныйОфис.МодульОбъекта(76)}: Ошибка при вызове метода контекста (НачатьЧтение)
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
по причине:
Неизвестный получатель
В общем куда копать даже не знаю.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь