Проблема с автообменом
☑
0
bodri
04.04.12
✎
16:29
При автообмене
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(СокрЛП(ПутьККаталогу)+"Message_000_"+СокрЛП(ТекУзел.Код)+".xml");
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
Попытка
ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения);
Предупреждение("Чтение завершено успешно!");
Исключение
Предупреждение("Чтение Не завершено!");
КонецПопытки;
ЧтениеСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
Вываливается ошибка:
Ошибка при вызове метода контекста (ЗакончитьЧтение)
ЧтениеСообщения.ЗакончитьЧтение();
по причине:
по причине:
Неправильный формат сообщения
Хотя в ручном режиме все нормально проходит.
Ошибка вываливается только тогда, когда в сообщении есть изменение конфигурации.
1
bodri
04.04.12
✎
16:37
Ап
2
bodri
05.04.12
✎
14:50
...
3
bodri
05.04.12
✎
15:00
По идее исключение должно выводить вопрос на запуск конфигуратора, а это не происходит
4
kosts
05.04.12
✎
15:07
(3) Если только сам пропишешь запуск конфигуратора
5
bodri
05.04.12
✎
15:30
Сделал так:
Попытка
ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения);
Предупреждение("Чтение завершено успешно!");
Исключение
Инфо = ИнформацияОбОшибке();
Причина = Инфо.Причина.Описание;
Если СокрЛП(Лев(Причина,16)) = "Из главного узла" Тогда
ИныеПроцедуры.ВывестиПредупреждение("" + Причина + Символы.ПС + "Будет запущен конфигуратор");
ЗавершитьРаботуСистемы(Ложь,Истина,"CONFIG");
КонецЕсли;
Возврат;
КонецПопытки;
6
bodri
05.04.12
✎
15:30
(5) Кашерно?
7
kosts
07.04.12
✎
06:29
(5) Слишком резко завершаешь работу системы.
Нет предупреждений пользователю. Ни вопросов, хочет ли он именно сейчас обновить конфигуратор.
Еще можно запустить конфигуратор с ключом, что бы он сам выполнил обновление.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший