Неизвестный получатель 1с план обмена как исправить

План обмена *.НачатьЗапись

План обмена *.НачатьЗапись

Я
   Csar

03.06.13 — 14:37

Всем привет. Проблема с вылетании ошибки:

«{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(10634)}: Ошибка при вызове метода контекста (НачатьЗапись): Неизвестный получатель»

Пояснение. 1С УПП. Настраиваю односторонний обмен выгрузки данных. Использую ПланОбмена как регистратор изменений для выгрузки измененных документов (конкретных).

Ошибка вылазит на следующем коде:

[1c]    ЗаписьXML = Новый ЗаписьXML();

   ЗаписьXML.УстановитьСтроку();

   
   // Создаем новое сообщение

   ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();

       
   ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);

[/1c]

Параметры НачатьЗапись(ЗаписьXML, УзелОбмена) элементарные — Запись, которая создается в коде перед методом, а также мой УзелОбмена (единственный в базе, больше не создано). Узел отладчиком я проверил — цепляет верно. Но ошибка выдается, причем не понятно что за получатель. У меня односторонний обмен, там получатель не узел, а файл  выгрузки.

   Csar

1 — 03.06.13 — 14:38

*представленный код находится в модуле объекта УниверсальныйОбменДанными.

   Csar

2 — 03.06.13 — 14:39

+ (1) помогите, пожалуйста, с решением проблемы.

   Повелитель

3 — 03.06.13 — 14:48

» (НачатьЗапись): Неизвестный получатель» »

С сервером дружить надо, налей ему 100 грамм в системный блок, сразу зауважает и узнавать начнет.

   AaNnDdRrEeYy

4 — 03.06.13 — 14:52

(0)>> там получатель не узел, а файл  выгрузки.

вытащи запросом таблицу регистрации плана обмена и посмотри для чего узел нужен. не бывает обмена без узла, а вот без файла запросто.

   Csar

5 — 03.06.13 — 14:54

(4) так у меня узел корректно подцепляется.

   acsent

6 — 03.06.13 — 14:55

Получатель — файл  выгрузки ?????

   Csar

7 — 03.06.13 — 14:58

(6) Получаетля я вообще не вижу! Покажите мне в предоставленном коде, где он?

У

[1с]ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);[/1с] лишь 2 параметра, один определяется перед этой строкой без указания чего-либо, а второй — мой узел.

У Узла нет Получателя:

УзелОбмена    УИБ82    ПланОбменаСсылка.ОбменЛогистика8_БИБ82_СохраннаяРасписка

ВерсияДанных    «AAAAAAAZUc0=»    Строка

Код    «000000001»    Строка

Наименование    «УИБ82»    Строка

НомерОтправленного    0    Число

НомерПринятого    0    Число

ПометкаУдаления    Ложь    Булево

Ссылка    УИБ82    ПланОбменаСсылка.ОбменЛогистика8_БИБ82_СохраннаяРасписка

   hhhh

8 — 03.06.13 — 15:00

(7) ну не может твой узел быть получателем. Не парь нам мозг. Создай второй узел, и на него отправляй.

   Maxus43

9 — 03.06.13 — 15:00

(7) да при чем тут реквизиты то? это свойство каждого элемента, включенного в план обмена

   Csar

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;
    ОбъектУзелОбмена.Записать();

На строке «Обработка.ВыполнитьВыгрузку();» программа уходит в модуль стандартной обработки.

   AaNnDdRrEeYy

11 — 03.06.13 — 15:10

все изменения система не просто так регистрирует а для конкретного узла получателя, и отдельно контролирует удаление из таблицы регистраций для тех узлов кто получил. Создай переферийный узел получатель.

   AaNnDdRrEeYy

12 — 03.06.13 — 15:13

(10)вот тут

УзелОбмена = ПланыОбмена.ОбменЛогистика8_БИБ82_СохраннаяРасписка.НайтиПоНаименованию(«УИБ82»);

вместо УИБ82 должен быть код второго переферийного узла

   AaNnDdRrEeYy

13 — 03.06.13 — 15:15

+ и у плана обмена должна стоять галка «Распределенная ИБ» что то вроде такого.

   Maxus43

14 — 03.06.13 — 15:17

(13) не, эта галка влияет будет ли ездить конфа. к регистрации элементов отношения не имеет

   Csar

15 — 03.06.13 — 15:20

(12) Спасибо, по крайней мере ошибка ушла. Буду дальше разбираться с этим планом обмена.

  

Maxus43

16 — 03.06.13 — 15:36

(15) для начала разберись что это вобще такое. Получате, отправители, узлы… Метод заменил отправителя и заработало — совсем экстремальный

Ошибка при вызове метода контекста (НачатьЧтение)Причина: Неизвестный получатель

Автор Черника, 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)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

  1. Добрый день! Подскажите пожалуйста, что можно сделать в такой ситуации — Есть основная база (серверная) и переферийная, которая находится на ноутбуке. Версия 8.0. Конфигурация самописанная. Возникла потребность обновить данные. Я подкючилась к сети и с ноутбука зашла на сервер чере админа, в плане обмена укаала ноутбук, и выполнила операцию прочитать изменения. Затем я зашла в переферийную базу и, указав в плане обмена серверную базу, и при попытки — записать изменения — вышла ошибка — «неизвестный получатель». сам же значок обмена (который находится в первом поле, в соответств. записи серверной базы был красного цвета) Кто до меня работал, говорят, что с эти не сталкивался. я работаю в 1с меньше года — тем более. B) :D Пожалуйста подскажите, что может не так???!! :unsure: Заранее, огромное спасибо!!!


  2. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Э….. А создать узлы, образы…. Делали?

  3. Здравствуйте! А каким образом можно создать узлы? Моя главная цель — это извлечь данные с переыерийной базы в основную. (т.е. с ноутбука на серверную). Я как понимаю, создание нового образа не позволит это сделать?((


  4. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Давай-те начнем с малого:

    — база на ноутбуке какое отношение имеет к базе основной?

  5. База на ноутбуке является переферийной. т.е. изначально для него создавался нач. образ и т.д.

    Как Вы думаете, если я сразу сделаю «записать изменения» (пропустив «прочитать изменения») что-то изменится? :))
    Большое спасибо Вам за Ваше внимание!

    ..так, уже поняла, что это не правильно.. :unsure: не знаю, просто, что делать.. а что означает красный значок обмена? Остальные везде синие…


  6. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    красный — это родитель, остальные не синие, а один из них должен быть с зеленой фигней рядом — это местный план.

    Когда последний раз проводился обмен?


  7. smm

    Offline

    smm
    Опытный в 1С

    Регистрация:
    19 дек 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26

    Проблема возникает при несовпадении кодов в плане обмена, возможно после создания строк в плане обмена вы изменили код в базе-приемнике или в основной базе. Какой изначально должен быть код, смотрим xml-файл обмена следующие строки на примере:
    <v8msg:To>2</v8msg:To>
    <v8msg:From>1</v8msg:From>
    где 2 — это код строки с зеленым шариком в основной базе, 1 — код строки обмена с распределенной базой.


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

Понравилась статья? Поделить с друзьями:
  • Неисправность автономки вебасто коды ошибок
  • Неисправность cpu как исправить
  • Неизвестный код ошибки 16 парус 10
  • Неизвестный клиент ошибка континент ап
  • Неизвестный издатель как исправить