8.х Метод объекта не обнаружен (ПрочитатьСообщенияСИзменениями)

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Sergik, 17 ноя 2006.

  1. TopicStarter Overlay
    Sergik
    Offline

    Sergik

    Регистрация:
    17 ноя 2006
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Решил изучить 8-ку по учеб. Радченко Практ.пособ.разраб. всё было просто и понятно пока не дошёл до главы Обмена данными. Теперь когда запускаю обработку обмена данными выскакивает ошибка {Метод объекта не обнаружен (ПрочитатьСообщенияСИзменениями)
    УзелОбъект.ПрочитатьСообщенияСИзменениями(); хочу знать где ошибка или где я допустил ошибку?
  2. Prospero
    Offline

    Prospero Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    111
    Симпатии:
    0
    Баллы:
    26
    не дочитал пару страниц - там текст твоей процедуры...
  3. TopicStarter Overlay
    Sergik
    Offline

    Sergik

    Регистрация:
    17 ноя 2006
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1

    Я всё прочитал и Создание процедуры записи данных и даже Создание процедуры чтения данных
    и сделал всё как написано, или почти как написано, а так как книга отсканирована и в тексте попадаются опечатки, может из-за этого.

    вот текст обеих процедур если не трудно сверте с оригиналом

    Процедура ЗаписатьСообщениеСИзменениями()Экспорт

    Сообщить("-------- Выгрузка в узел" + Строка(ЭтотОбъект) + " --------");
    Каталог = КаталогВременныхФайлов();

    // Сформировать имя временного файла
    ИмяФайла = Каталог + ?(Прав(Каталог, 1) = "\","", "\") +
    "Message" + СокрЛП(ПланыОбмена.Филиалы.ЭтотУзел).Код() +
    "_" + СокрЛП(Ссылка.Код) + ".xml";

    // Создать объект записи XML
    //*** запись XML документов
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ИмяФайла);
    ЗаписьXML.ЗаписатьОбъявлениеXML();

    //*** инфраструктура сообщений
    ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
    ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Ссылка);
    Сообщить("-------- Номер сообщения; --------" + ЗаписьСообщения.НомерСообшения);

    // Получить выборку измененных данных //*** механизм регистрации изменений
    ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель,ЗаписьСообщения.НомерСообщения);

    Пока ВыборкаИзменений.Следующий() Цикл
    // Записать данные в сообщение
    //***XML-сериализация
    ЗаписатьXML(ЗаписьXML,ВыборкаИзменений.Получить());
    КонецЦикла;

    ЗаписьСообщения.ЗакончитьЗапись();
    ЗаписьXML.Закрыть();
    Сообщить("-------- Конец выгрузки --------");

    КонецПроцедуры

    Процедура ПрочитатьСообщениеСИзменениями()Экспорт
    Каталог = КаталогВременныхФайлов();

    // Сформировать имя файла
    ИмяФайла = Каталог + ? (Прав(Каталог, 1) = "\","", "\") + "Massage" +
    СокрЛП(Ссылка.Код) + " - " +
    СокрЛП(ПланыОбмена.Филиалы.ЭтотУзел().Код) + "xml.";

    Файл = Новый Файл(ИмяФайла);
    Если Не Файл.Существует() Тогда
    Возврат;
    КонецЕсли;

    //*** Чтение документов XML
    // Попытаться открыть файл
    ЧтениеXML = Новый ЧтениеXML;
    Попытка
    ЧтениеXML.ОткрытьФайл(ИмяФайла);
    Исключение
    Сообщить("Не возможно открыть файл с данными.");
    Возврат;
    КонецПопытки;
    Сообщить("------- Загрузка из " + Строка(ЭтотОбъект) + "--------");
    Сообщить("-Считывается файл" + ИмяФайла);

    // Загрузить из найденного файла
    //***Инфракструктура сообщений
    ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();

    // Читать заголовок сообщения обмена данными - файла XML
    ЧтениеСообщения.НачатьЧтение(ЧтениеXML);

    // Сообщение предназначено не для этого узла
    Если ЧтениеСообщения.Отправитель <> Ссылка Тогда
    ВызватьИсключение "Не верный узел";
    КонецЕсли;

    // Удаляем регистрацию изменений
    // для узла отправителя сообщений
    //***служба регистрации изменений
    ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель,ЧтениеСообщения.НомерПринятого);

    // Читаем данные из сообщения
    //***XML-сериализация
    Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
    // читаем очередное значение
    Данные = ПрочитатьXML(ЧтениеXML);
    // Не переносим изменение полученное
    // в главный из неглавного
    // если есть регистрация изменения
    Если Не ЧтениеСообщения.Отправитель.Главный И ПланыОбмена.ИзменениеЗарегистрировано(ЧтениеСообщения.Отправитель,Данные) Тогда
    Сообщить("-Изменения отклонены-");
    Продолжить;
    КонецЕсли;

    // Записать полученные данные
    Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
    Данные.ОбменДанными.Загрузка = Истина;
    Данные.Записать();
    КонецЦикла;

    ЧтениеСообщения.ЗакончитьЧтение();
    ЧтениеXML.Закрыть();

    УдалитьФайлы(ИмяФайла);
    Сообщить("-------- Конец загрузки --------");
    КонецПроцедуры


    для меня это очень важно
  4. Prospero
    Offline

    Prospero Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    111
    Симпатии:
    0
    Баллы:
    26
    Отладчиком проходил?

    Скинь саму процедуру обработки, как она у тебя записана
  5. TopicStarter Overlay
    Sergik
    Offline

    Sergik

    Регистрация:
    17 ноя 2006
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Процедура ОбменСФилиалами()Экспорт
    ВыборкаУзлов = ПланыОбмена.Филиалы.Выбрать();
    Пока ВыборкаУзлов.Следующий() Цикл
    // Произвести обмен данными со всеми узлами
    // кроме текущего (Этот узел)
    Если ВыборкаУзлов.Ссылка <> ПланыОбмена.Филиалы.ЭтотУзел() Тогда
    УзелОбъект = ВыборкаУзлов.ПолучитьОбъект();
    // Получить сообщение
    УзелОбъект.ПрочитатьСообщениеСИзменениями();
    // Сформировать сообщение
    УзелОбъект.ЗаписатьСообщениеСИзменениями();
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
  6. Prospero
    Offline

    Prospero Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    111
    Симпатии:
    0
    Баллы:
    26
    Насколько я помню, через точку обычно указываются методы или свойства объекта (редко - глобальные процедуры/функции - "наследники").

    попробуй просто
    ПрочитатьСообщениеСИзменениями();
    ЗаписатьСообщениеСИзменениями();

Поделиться этой страницей