|
Ошибка при регистрации изменений плана обмена с сайтом в Ут для Укр 2.3(Ут 10.3) | ☑ | ||
---|---|---|---|---|
0
Boudybuilder
19.12.13
✎
02:46
|
Не могу понять...
У меня изображения ведутся и по характеристикам товара. Переделал код регистрации обмена для узла обмена с веб сайтом. При изменении изображения запись изменений срабатывает , а при обмене нет... Ошибка. В чем дело может быть? Отладчиком смотрю вроде все ок. Вот кусок кода который переделал в типовой комент "Фан" - это я уже писал ИначеЕсли ТипОбъекта = Тип("СправочникОбъект.ХранилищеДополнительнойИнформации") Тогда МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина); Если ТипЗнч(Объект.Объект) = Тип("СправочникСсылка.Номенклатура") Тогда ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Объект); // Надо зарегистрировать все изображения (файлы), иначе Битрикс // удалит те, что не будут загружены Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ХранилищеДополнительнойИнформации.Ссылка |ИЗ | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации |ГДЕ | (НЕ ХранилищеДополнительнойИнформации.ПометкаУдаления) | И ХранилищеДополнительнойИнформации.Объект = &Объект"; Запрос.УстановитьПараметр("Объект", Объект.Объект); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Выборка.Ссылка); КонецЦикла; ИначеЕсли ТипЗнч(Объект.Объект) = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") Тогда // Фан А тут зарегистрируем уже и фотки характеристики ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Объект.Владелец); // Фан - попробуем зарегистрировать номенклатуру а не характеристику. (это требует проверки) // Надо зарегистрировать все изображения (файлы), иначе Битрикс // удалит те, что не будут загружены Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ХранилищеДополнительнойИнформации.Ссылка |ИЗ | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации |ГДЕ | (НЕ ХранилищеДополнительнойИнформации.ПометкаУдаления) | И ХранилищеДополнительнойИнформации.Объект = &Объект"; Запрос.УстановитьПараметр("Объект", Объект.Объект); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Выборка.Ссылка); КонецЦикла; КонецЕсли; ИначеЕсли ТипОбъекта = Тип("СправочникОбъект.ХарактеристикиНоменклатуры") |
|||
1
Boudybuilder
19.12.13
✎
02:47
|
ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Объект.Владелец); - вот тут вот и спотыкается. Хотя в отладчике это СправочникСсылка.Номенклатура
|
|||
2
Boudybuilder
19.12.13
✎
02:48
|
Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка при выполнении обработчика - 'ПриЗаписи': {ОбщийМодуль.ПроцедурыОбменаССайтом.Модуль(114)}: Ошибка при вызове метода контекста (ЗарегистрироватьИзменения): Недопустимое значение параметра (параметр номер '2')
|
|||
3
Boudybuilder
19.12.13
✎
09:52
|
Пробовал все записи снять с регистрации а потом заново зарегистрировать... Не помогло ... :(
|
|||
4
Boudybuilder
26.12.13
✎
18:39
|
Выловил ошибку - это объект не найден :(
Вот , и при записи изменений базой приемником частенько выскакивает ошибка в тех случаях когда картинка приходит , а ее объект к которому она принадлежит "ХарактеристикаНоменклатуры" еще в базу не записан... И получается пустая ссылка , и выдает ошибку что кривой параметр 2 (ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Объект.Владелец)). Как тут быть? Вот код: ИначеЕсли ТипОбъекта = Тип("СправочникОбъект.ХранилищеДополнительнойИнформации") Тогда МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина); Если ТипЗнч(Объект.Объект) = Тип("СправочникСсылка.Номенклатура") Тогда ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Объект); // Надо зарегистрировать все изображения (файлы), иначе Битрикс // удалит те, что не будут загружены Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ХранилищеДополнительнойИнформации.Ссылка |ИЗ | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации |ГДЕ | (НЕ ХранилищеДополнительнойИнформации.ПометкаУдаления) | И ХранилищеДополнительнойИнформации.Объект = &Объект"; Запрос.УстановитьПараметр("Объект", Объект.Объект); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Выборка.Ссылка); КонецЦикла; ИначеЕсли ТипЗнч(Объект.Объект) = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") Тогда // Фан А тут зарегистрируем уже и фотки характеристики ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Объект.Владелец); // Фан - попробуем зарегистрировать номенклатуру а не характеристику. (это требует проверки) // Надо зарегистрировать все изображения (файлы), иначе Битрикс // удалит те, что не будут загружены Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ХранилищеДополнительнойИнформации.Ссылка |ИЗ | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации |ГДЕ | (НЕ ХранилищеДополнительнойИнформации.ПометкаУдаления) | И ХранилищеДополнительнойИнформации.Объект = &Объект"; Запрос.УстановитьПараметр("Объект", Объект.Объект); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Выборка.Ссылка); КонецЦикла; КонецЕсли; На фото выловил отладчиком. Я думаю , это не одиночный случай , такое у меня было и в типовом коде , пришлось подправить. http://forum.infostart.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=370279 В той же процедуре та же проблема была. Пришлось типовую править. Я то и тут могу такое условие поставить , но боюсь последствия будут самые разнообразные... http://forum.infostart.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=370280 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |