|
v8: Вопрос по Конвертации Данных - Обмена | ☑ | ||
---|---|---|---|---|
0
Arhont
18.07.12
✎
11:17
|
Создал в Конвертации Данных правила обмена и с их помощью через обработку "Универсальный обмен данными XML" нормально выгружаю документы. Но, при встраивании этих же правил в правила обмена вылезает ошибка:
Ошибка записи объекта ТипОбъекта = Регистр сведений запись: Штрихкоды Объект = РегистрСведенийМенеджерЗаписи.Штрихкоды ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Операция не выполнена! ПозицияМодуля = Обработка.ОбменДаннымиXML(3784) КодСообщения = 26 Ошибка при загрузке данных: {Обработка.ОбменДаннымиXML(3791)}: Ошибка записи объекта ТипОбъекта = Регистр сведений запись: Штрихкоды Объект = РегистрСведенийМенеджерЗаписи.Штрихкоды ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Операция не выполнена! ПозицияМодуля = Обработка.ОбменДаннымиXML(3784) КодСообщения = 26 Как вообще это возможно, правила ведь одни и те же? Может у кого есть мысли в чем может быть дело? Сами данные регистра вроде нормальные: Объект РегистрСведенийМенеджерЗаписи.Штрихкоды РегистрСведенийМенеджерЗаписи.Штрихкоды Активность истина Булево Владелец Пуф Комби СправочникСсылка.Номенклатура ЕдиницаИзмерения шт СправочникСсылка.ЕдиницыИзмерения Качество Новый СправочникСсылка.Качество НомерСтроки 0 Число Период 01.01.0001 0:00:00 Дата Регистратор Неопределено СерияНоменклатуры СправочникСсылка.СерииНоменклатуры ТипШтрихкода EAN13 ПланВидовХарактеристикСсылка.ТипыШтрихкодов УдалитьВладелец Неопределено УдалитьЕдиницаИзмерения СправочникСсылка.ЕдиницыИзмерения УдалитьКачество СправочникСсылка.Качество УдалитьКод 0 Число УдалитьСерияНоменклатуры СправочникСсылка.СерииНоменклатуры УдалитьТипШтрихкода ПланВидовХарактеристикСсылка.ТипыШтрихкодов УдалитьХарактеристикаНоменклатуры СправочникСсылка.ХарактеристикиНоменклатуры УдалитьШтрихкод "" Строка ХарактеристикаНоменклатуры Кожа ECO 420 ярко-фиолетовый СправочникСсылка.ХарактеристикиНоменклатуры Штрихкод "4690391016030" Строка |
|||
1
Dmitriy_76
18.07.12
✎
11:18
|
"Но, при встраивании этих же правил в правила обмена вылезает ошибка"
это как понять ? |
|||
2
Arhont
18.07.12
✎
11:18
|
Сорри, в планы обмена имелось ввиду...
|
|||
3
Arhont
18.07.12
✎
11:23
|
Сами данные регистра штрих-коды выгружаются через алгоритм:
Если Не Источник.ЭтоГруппа Тогда НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Владелец.Установить(Источник.Ссылка); НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество()>0 Тогда Для каждого ЗаписьНабораЗаписей Из НаборЗаписей Цикл ВыгрузитьПоПравилу(ЗаписьНабораЗаписей,,,, "Штрихкоды"); КонецЦикла; КонецЕсли; КонецЕсли; Он вызывается из ПКС "ПослеВыгрузки" ПКО "Номенклатура": Если НЕ Источник.ЭтоГруппа Тогда Выполнить(Алгоритмы.ВыгрузитьШтрихКоды); Выполнить(Алгоритмы.ВыгрузитьПрикрепленныеФайлы); Выполнить(Алгоритмы.ВыгрузитьПрикрепленныеИзображения); КонецЕсли; |
|||
4
Defender aka LINN
18.07.12
✎
11:26
|
(3) Ошибка русским по белому говорит, что проблема при записи
|
|||
5
Arhont
18.07.12
✎
11:27
|
Дык не пойму какая, данные содержимого регистра привел, все вроде указано, но почему то не записывается. И это при том, что с этими же правилами через Универсальный обмен все загружается на ура.
|
|||
6
Arhont
18.07.12
✎
11:30
|
Вообще начинаю грешить на разницу в функциях "ВыгрузитьПоПравилу" в обработке УниверсальныйОбмен и в обработке ОбменДанными XML (которая используется при обмене через планы обменов). Но, блин, это такая засада...
|
|||
7
gosn1ck
18.07.12
✎
11:34
|
(6) из танка вылезайте и смотрите (4). у вас записаться набор не может. модуль объекта смотрите или обработчики призаписи правил
|
|||
8
Йохохо
18.07.12
✎
11:55
|
УдалитьВладелец Неопределено
УдалитьЕдиницаИзмерения СправочникСсылка.ЕдиницыИзмерения УдалитьКачество СправочникСсылка.Качество УдалитьКод 0 Число УдалитьСерияНоменклатуры СправочникСсылка.СерииНоменклатуры УдалитьТипШтрихкода ПланВидовХарактеристикСсылка.ТипыШтрихкодов УдалитьХарактеристикаНоменклатуры СправочникСсылка.ХарактеристикиНоменклатуры УдалитьШтрихкод "" Строка ** как вы этого добились? |
|||
9
Arhont
19.07.12
✎
12:55
|
8) Да особо не добивался, видимо при каких-то обновлениях (может еще до меня) разные версии реквизитов. К теме они отношения не имеют, т.к. я их в правилах обмена все равно отключил для выгрузки
|
|||
10
Arhont
19.07.12
✎
12:58
|
7) из танка вылезти, видимо, не получится, т.к. "следы" пока что все равно ведут к обработкам "ОбменДаннымиXML". Дело в том, что в событии "ПередЗаписью" регистра сведений, в условии:
Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; В случае с обменам черех планы обмена ОбменДанными.Загрузка имеет значение почему то Ложь, а если через УниверсальныйОбмен то как и положено Истина. |
|||
11
Arhont
19.07.12
✎
12:59
|
Соответственно в первом случае записать набор записей регистра не удается.
|
|||
12
zladenuw
19.07.12
✎
13:00
|
может отключен в плане обмена ?
|
|||
13
Arhont
19.07.12
✎
13:05
|
Да я специально смотрел т.к. тоже не это подумал из-за того, что в процедуре:
Процедура УстановитьОбменДаннымиЗагрузка(Объект, Значение = Истина) Экспорт Попытка Объект.ОбменДанными.Загрузка = Значение; Исключение КонецПопытки; Если УзелОбменаЗагрузкаДанных <> Неопределено И НЕ УзелОбменаЗагрузкаДанных.Пустая() Тогда Попытка Объект.ОбменДанными.Отправитель = УзелОбменаЗагрузкаДанных; Исключение КонецПопытки; КонецЕсли; КонецПроцедуры // УстановитьОбменДаннымиЗагрузка() обработки "ОбменДаннымиXML" выдавало: Объект РегистрСведенийМенеджерЗаписи.Штрихкоды РегистрСведенийМенеджерЗаписи.Штрихкоды Объект.ОбменДанными.Загрузка {(1)}: Поле объекта не обнаружено (ОбменДанными) Т.е. у набора записи регистра такого свойства вообще не было. Но я участие этого регистра в данном плане обмена проставил а ситуация не изменилась. |
|||
14
Arhont
19.07.12
✎
14:48
|
Пока пришел к тому, что все дело в алгоритме выгрузки. Сначала я хотел выгружать штрих-коды по аналогии с контактной информацией:
Если Не Источник.ЭтоГруппа Тогда НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Объект.Установить(Источник.Ссылка); Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | КонтактнаяИнформация.Тип, | КонтактнаяИнформация.Вид |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Объект | И КонтактнаяИнформация.Вид В(&МассивВидовКИ)"; Запрос.УстановитьПараметр("Объект", Источник.Ссылка); Запрос.УстановитьПараметр("МассивВидовКИ", Параметры.МассивВидовКИ); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НаборЗаписей.Отбор.Тип.Установить(Выборка.Тип); НаборЗаписей.Отбор.Вид.Установить(Выборка.Вид); ВыгрузитьПоПравилу(Выборка.Вид); НаборЗаписей.Прочитать(); ВыгрузитьРегистр(НаборЗаписей,,,,"КонтактнаяИнформация"); КонецЦикла; КонецЕсли; Но такой вариант не прокатил при использовании УниверсальногоОбменаДанными. Я его переделал: Если Не Источник.ЭтоГруппа Тогда НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Владелец.Установить(Источник.Ссылка); НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество()>0 Тогда Для каждого ЗаписьНабораЗаписей Из НаборЗаписей Цикл ВыгрузитьПоПравилу(ЗаписьНабораЗаписей,,,, "Штрихкоды"); КонецЦикла; КонецЕсли; КонецЕсли; Но это не прокатило для планов обмена о чем и тема. Когда я штрих-коды сделал по варианту контактной информации: Если Не Источник.ЭтоГруппа Тогда НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Владелец.Установить(Источник.Ссылка); НаборЗаписей.Прочитать(); ВыгрузитьРегистр(НаборЗаписей,,,,"Штрихкоды"); КонецЕсли; То все в планах обмена получилось. А вот через УниверсальныйОбменДанными - шиш. Вот такие вот пироги с котятами в танках. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |