Имя: Пароль:
1C
1С v8
v8: Планы Обмена,
0 Ainura80
 
10.05.12
16:57
При выполнении кода:

   Документ.ОбменДанными.Загрузка = Истина;
   Документ.ОбменДанными.Отправитель = Отправитель;
   Документ.Записать();

Выдаёт ошибку:

Ошибка при установке значения атрибута контекста (Отправитель): Несоответствие типов    Документ.ОбменДанными.Отправитель=Отправитель;

Может подскажет кто где искать?
1 Ainura80
 
10.05.12
17:01
тема уже поднималась на форуме, но ответа там нет (((
v8: Планы Обмена, что за глюк
2 Antizdoba
 
10.05.12
17:06
Я делал так: ЧтениеXML = Новый ЧтениеXML;
       ЧтениеXML.ОткрытьФайл(ИмяФайлаОбмена);
       ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
       ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
           Объект.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
               Объект.ОбменДанными.Загрузка = Истина;
       Объект.Записать();
               ЧтениеСообщения.ЗакончитьЧтение();
               ЧтениеXML.Закрыть();
Смотри, что передается у тебя в параметре Отправитель. Удачи
3 Лефмихалыч
 
10.05.12
17:09
Либо ТипЗнч(Отправитель) <> Тип("ПланОбменаСсылка")
либо тип правильный, но объект не включен в план обмена, узел которого ты в топравителя подсунуть пытаешься
4 Ainura80
 
10.05.12
17:12
Согласна типы не совпадают.. но вот хочу узнать как мне задать тип Отправителю. В Планеобмена данный документ включен в состав..
5 Ainura80
 
10.05.12
17:14
ТипЗнч(Отправитель) неопределенно
6 fisher
 
10.05.12
17:17
Документ.ОбменДанными.Отправитель = ПланыОбмена.МойПланОбмена.ЭтотУзел()?
7 Лефмихалыч
 
10.05.12
17:17
(4) надо как-то себя заставить записать в этот реквизит ссылку на узел плана обмена. Волевым решением или как-то еще, но на чудо надеется бесполезно
8 Ainura80
 
10.05.12
17:18
Ребят, не серчайте.. скорее всего напутала я ..
9 Ainura80
 
10.05.12
17:29
Нет, не получается... (((
Документ.ОбменДанными.Отправитель = ПланыОбмена.МойПланОбмена.ЭтотУзел()?

Да это узел.

Лефмихалыч, А можно немного поподробнее...плиз..
10 fisher
 
10.05.12
17:32
(9) Бгггг :)

ПланОбменаМенеджер.<Имя плана обмена> (ExchangePlanManager.<Имя плана обмена>)
ЭтотУзел (ThisNode)
Синтаксис:
ЭтотУзел()
Возвращаемое значение:
Тип: ПланОбменаСсылка.
Описание:
Получает ссылку на предопределенный узел, соответствующий данной базе данных.
11 Ainura80
 
10.05.12
17:37
fisher, спасибо за лекбез.. Вот код.

ЧтениеXML = Новый ЧтениеXML();
   ЧтениеXML.ОткрытьФайл(Путь + "выгрузка.xml");
   
   ЧтСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
   ЧтСообщения.НачатьЧтение(ЧтениеXML);

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

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

   ЧтСообщения.ЗакончитьЧтение();
   ЧтениеXML.Закрыть();
12 fisher
 
10.05.12
17:44
(11) Да, чего-то я не того советую... А что у тебя в ЧтСообщения.Отправитель и какого типа? Отладчиком глянь или отладочное сообщение воткни.
13 fisher
 
10.05.12
17:55
Если при чтении заголовка исключения не было, значит нормально считало отправителя. При УдалитьРегистрациюИзменений() Отправитель по идее еще нормальный возвращается. Попробуй его там и сохранить в промежуточную переменную.
Может, у тебя где-то в тех функциях что ты вызываешь чтение прерывается или еще что. По-хорошему, нужно отследить в какой момент он сбрасывается и по какой причине.
14 Ainura80
 
10.05.12
17:56
ЧтСообщения.Отправитель значение: Получатель Тип: ПланОбменаСсылка.НовыйОбмен

В самом объекте НовыйОбмен указала данный документ в составе.
Данные это документ РеализацияТоваровиУслуг
Данные.ОбменДанными  это значение ПараметрыОбменаДанными.
Данные.ОбменДанными.Отправитель значения нет, тип неопределенно

Я не пользуюсь форумами.. но тут уже голова кругом идет.. не знаю что делать еще:((((
15 Ainura80
 
10.05.12
17:57
Спасибо, сейчас начну следить от начало создания документа...
16 fisher
 
10.05.12
18:02
Я подозреваю, что в этот момент -
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтСообщения.Отправитель, ЧтСообщения.НомерСообщения);
ЧтСообщения.Отправитель еще узел содержит, а в этот момент -
Данные.ОбменДанными.Отправитель =ЧтСообщения.Отправитель;
ЧтСообщения.Отправитель уже содержит Неопределено.
17 hhhh
 
10.05.12
18:03
(15) похоже должен быть не этот узел, а тот откуда прочитали данные.
18 Ainura80
 
10.05.12
18:16
Документ при создании в отладчике уже имеет Документ.ОбменДанными.Отправитель неопределенно. Ребята может я какие нибудь настройки Планаобмена проморгала..???
19 Ainura80
 
10.05.12
18:18
Вот оберешься за новое.. вечно на грабли наступаешь...первый раз вожусь с этими планами обмена...
20 Ainura80
 
10.05.12
19:07
Ура!!!! Получилось!!!!
21 fisher
 
10.05.12
19:11
(18) Он там и должен быть Неопределено. Вопрос не в нем, а в ЧтСообщения.Отправитель
22 Ainura80
 
11.05.12
08:20
Нет, проблема просто в моем незнании материала, подчиненную базу я использовала из образа другого планаобмена. Создала образ по своему плану обмена, все заработало. Спасибо Fisher.