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

Столкнулись с ошибкой загрузки заказов:

Заказ покупателя 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 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *