Имя: Пароль:
1C
1С v8
Проблема с автообменом
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) Слишком резко завершаешь работу системы.
Нет предупреждений пользователю. Ни вопросов, хочет ли он именно сейчас обновить конфигуратор.
Еще можно запустить конфигуратор с ключом, что бы он сам выполнил обновление.