Ошибка при повторной загрузке заказов в УНФ с сайта
Столкнулись с ошибкой загрузки заказов:


Заказ покупателя 1989 от 04.03.2025 пропущен по причине:
Вариант обновления - "Не обновлять".
Не удалось обработать документы, загруженные с сервера.
18.03.2025 18:59:57 Запуск загрузки заказов
Обработано: 2
Загружено: 0
Пропущено: 1. Список документов:
№ s-001989 от 04.03.2025 14:01:32 (№ 1989 от 04.03.2025 0:00:00 на сайте)
Обновлено: 0
Создано: 0
Обработано оплат: 2
Загружено оплат: 0
Пропущено оплат: 0
Обновлено оплат: 0
Создано оплат: 0
18.03.2025 18:59:59 Завершена загрузка заказов
Какой-то старый заказ на сайте изменился и пришел в 1С. А там стоит настройка не обновлять заказы:

Но 1С вместо того, чтобы игнорировать изменения, формирует ошибку.
Было решено сделать авто-игнор таких проблем. Для этого пришлось вмешиваться в модуль сообщения об ошибке модуля ИнтеграцияСИнтернетМагазиномСервер, потому что остальные функции громоздкие.

Сначала я хотел заизолировать сообщение об ошибке, но это не помогло:
&Вместо("ДобавитьОписаниеОшибки") Процедура сайт_ДобавитьОписаниеОшибки(Описание, Дополнение) //Осипов 25-03-18 пропускаем ошибки обновления заказа Если Найти(Дополнение, "Заказ покупателя") <> 0 И Найти(Дополнение, НСтр("ru = ' пропущен по причине:'")) <> 0 И Найти(Дополнение, НСтр("ru = 'Вариант обновления - '")) <> 0 Тогда Возврат; КонецЕсли; ПродолжитьВызов(Описание, Дополнение); КонецПроцедуры
Сообщение не добавлялось, но ошибка обмена все равно фиксировалось.
Расследование показало, что проблема была в том, что я внес ошибку в работу обмена, мой код выдавал ошибку, но показывал ее почему-то только в журнале регистрации:
Поле объекта не обнаружено (АдресОтправления)
{ДоработкиДляСайта ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(77)}:ДокументОбъект.АдресОтправления = Данные.shipping_address;
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(6047)}:Успешно = ЗаполнитьЗаказДаннымиДокументаXDTO(ДокументОбъект, ДокументXDTO, СвойстваЗаказа, Параметры, ОписаниеОшибки);
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(6162)}:Успешно = СоздатьОбновитьЗаказПоДокументуXDTO( ДокументXDTO, РанееЗагруженныеЗаказы, СтруктураСтатистики, Параметры, ОписаниеОшибки );
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(5319)}:Успешно = СоздатьОбновитьЗаказы(МассивЗаказовXDTO, РанееЗагруженныеЗаказы, СтруктураСтатистики, Параметры, ОписаниеОшибки);
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(5178)}:Если НЕ ЗагрузитьЗаказы(СтрокаXML, СтруктураСтатистики, Параметры, ОписаниеОшибки) Тогда
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(5020)}:УспешноЗагружено = ЗагрузитьЗаказыССайта(Параметры, СтруктураСтатистики, Параметры.ОписаниеОшибки);
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(2069)}:ЗаказыУспешноВыгружены = ВыполнитьОбменЗаказами(Параметры, Параметры.ТаблицаИнформации);
{ОбщийМодуль.ИнтеграцияСИнтернетМагазиномСервер.Модуль(1834)}:НСтр("ru = 'Интерактивный обмен'"),
{(1)}:ИнтеграцияСИнтернетМагазиномСервер.ВыполнитьОбменИнтерактивно(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(6007)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1831)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(700)}:ВызватьПроцедуру(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры, ПараметрыВыполнения);
{Справочник.НастройкиИнтеграцииСИнтернетМагазином.Форма.ФормаВыполнениеОбмена.Форма(91)}:Результат = ДлительныеОперации.ВыполнитьВФоне("ИнтеграцияСИнтернетМагазиномСервер.ВыполнитьОбменИнтерактивно",
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
Я убрал свой «анализ» ошибок, исправил ошибку и обмен заработал. Получается, УНФ нормально игнорирует изменения заказов с сайта.
Среда: 1С 8.3.25.1445. УНФ 3.0.10.178. Объем 0.8 час.

Свежие комментарии