Имя: Пароль:
1C
1С v8
ПланОбмена ЧтениеXML/ЗаписьXML
0 Ajbolitov
 
19.07.11
20:56
привет всем. прочел кучу веток про эту тему.
итог. когда выгружаю своей процедурой - типовая процедура чтение нормально подхватывает и обрабатывает файл выгрузки, а моя функция - нет. не могу понять в чем дело. подскажите пожалуйста.



Процедура ЗАГРУЗИТЬНажатие(Элемент)
   ВыборкаУзлов = ПланыОбмена.ОбменПолигоны.Выбрать();
   Пока ВыборкаУзлов.Следующий() Цикл
       Если ВыборкаУзлов.Ссылка <> ПланыОбмена.ОбменПолигоны.ЭтотУзел() Тогда
           ИмяФайла = Константы.ПутьОбмена.Получить() + "\" + "Message_"+СокрЛП(ВыборкаУзлов.Код)+"_" + СокрЛП(ПланыОбмена.ОбменПолигоны.ЭтотУзел().Код)  + ".xml";
           Файл=Новый Файл(ИмяФайла);
           Если Не Файл.Существует() Тогда
               Сообщить("Файл не найден");
               Возврат;
           КонецЕсли;
           ЧтениеXML = Новый ЧтениеXML();
           ЧтениеXML.ОткрытьФайл( ИмяФайла );
           ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
           ЧтениеСообщения.НачатьЧтение( ЧтениеXML );            
           Пока  ВозможностьЧтенияXML(ЧтениеXML ) Цикл
               ЗагружаемыйОбъект=ПрочитатьXML(ЧтениеXML);
               ЗагружаемыйОбъект.ОбменДанными.Загрузка = Истина;
               ЗагружаемыйОбъект.Записать();
           КонецЦикла;    
       КонецЕсли;
   КонецЦикла;
   Предупреждение("Готово!",10);
КонецПроцедуры


Процедура ВЫГРУЗИТЬНажатие(Элемент)
   ВыборкаУзлов = ПланыОбмена.ОбменПолигоны.Выбрать();
   Пока ВыборкаУзлов.Следующий() Цикл
         Если ВыборкаУзлов.Ссылка <> ПланыОбмена.ОбменПолигоны.ЭтотУзел() Тогда
           ИмяФайла = Константы.ПутьОбмена.Получить() + "\" + "Message_"+СокрЛП(ПланыОбмена.ОбменПолигоны.ЭтотУзел().Код)+"_" + СокрЛП(ВыборкаУзлов.Код) + ".xml";
           ЗаписьXML = Новый ЗаписьXML();
           ЗаписьXML.ОткрытьФайл(ИмяФайла);
           ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
           ЗаписьСообщения.НачатьЗапись(ЗаписьXML,ВыборкаУзлов.Ссылка);
           ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения);
           ЗаписьСообщения.ЗакончитьЗапись();
           ЗаписьXML.Закрыть();
       КонецЕсли;
   КонецЦикла;
   Предупреждение("Готово!",10);
КонецПроцедуры
1 Ajbolitov
 
19.07.11
20:56
при загрузке
Пока  ВозможностьЧтенияXML(ЧтениеXML ) Цикл
выдает ЛОЖЬ
4 Лефмихалыч
 
19.07.11
21:02
а в чем выражается " а моя функция - нет"?
5 Ajbolitov
 
19.07.11
21:03
имелось в виду отработку
Процедура ЗАГРУЗИТЬНажатие(Элемент)
при загрузке
Пока  ВозможностьЧтенияXML(ЧтениеXML ) Цикл
выдает ЛОЖЬ
6 Ajbolitov
 
19.07.11
21:05
а?
8 Лефмихалыч
 
19.07.11
21:07
(6) б!
Что конкретно тебе не понятно в описании функции?

Глобальный контекст.ВозможностьЧтенияXML (Global context.CanReadXML)
Глобальный контекст (Global context)
ВозможностьЧтенияXML (CanReadXML)
Синтаксис:

ВозможностьЧтенияXML(<ЧтениеXML>)
Параметры:

<ЧтениеXML> (обязательный)

Тип: ЧтениеXML. Объект, через который производится чтение XML.
Возвращаемое значение:

Тип: Булево. Истина - тип 1С:Предприятия существует; Ложь - в противном случае.
Описание:

Производит проверку возможности чтения из XML значения указанного типа.
Данный метод получает тип данных XML из объекта ЧтениеXML, а затем пытается определить, имеется ли соответствующий тип 1С:Предприятия, аналогично тому как это делает метод ПолучитьXMLТип.

Доступность:

Сервер, толстый клиент, внешнее соединение.
9 Ajbolitov
 
19.07.11
21:10
ты думаешь я не юзал хелп? и не читал описание функции?
ты сам использовал

ЧтениеXML = Новый ЧтениеXML();
ЗаписьXML = Новый ЗаписьXML();

со смежными функциями?
10 Лефмихалыч
 
19.07.11
21:13
(9) я не думаю, я уверен, что ты либо не читал, либо читал, но не приходя в сознание.
В СП написано, что, если ВозможностьЧтенияXML возвращает Ложь, значит xml, который ты ей суёшь, не содержит объекта с таким типом, который существует в базе-приемнике.
11 Ajbolitov
 
19.07.11
21:16
так вот и вопрос!
как мне программно загрузить обмен?

я не стараюсь акцентировать внимание на функции "ВозможностьЧтенияXML", я хочу узнать, как мне организовать код, что б обмен загрузился
12 Лефмихалыч
 
19.07.11
21:19
(11) скорее всего ты пытаешься загрузить файл обмена из базы с конфигурацией, отличной от конфигурации базы-приемника. Х/З, я не телепат
13 Ajbolitov
 
19.07.11
21:20
нет, конфы идентичны
14 Ajbolitov
 
19.07.11
21:23
типовая способ загрузки обмена отрабатывает загрузку, эта функция - нет
15 Ajbolitov
 
19.07.11
21:23
что я написал не так?
16 Лефмихалыч
 
модератор
19.07.11
21:25
(15) хорош засорять тематическую ветку бессмысленными сообщениями.
17 Ajbolitov
 
19.07.11
21:26
(16) [Сообщение скрыто] [Лефмихалыч, 19.07.11 - 21:25]
(15) хорош засорять тематическую ветку бессмысленными сообщениями.
18 Ajbolitov
 
19.07.11
21:26
(16) давай тоже пиши по существу, либо ничего не пиши
19 Ajbolitov
 
19.07.11
21:36
кто-нибудь сможет помочь?
20 Ajbolitov
 
19.07.11
21:48
тема закрыта