Гарантированный прием заказов с сайта. Розница 2.3
У клиента возникла проблема, решить которую проще было бы на стороне сайта, но, увы, пришлось решать на стороне 1С.
Когда 1С забирает заказы с сайта, вызывается HTTP-запрос:
exchange1c?type=sale&mode=query&sessid=
Когда 1С подтверждает, что заказы с сайта обработаны, вызывается HTTP-запрос:
exchange1c?type=sale&mode=success&sessid=
Проблема в том, что сайт, независимо от наличия подтверждающего запроса, сбрасывает информацию об изменениях заказа, поэтому если загрузка заказов по какой-то причине не произошла, информация о заказах теряется.
Исправления вносятся в модуль ОбменССайтом:
&Вместо("ПолучитьДанныеССервера") Функция дор_ПолучитьДанныеССервера(Соединение, ОписаниеОшибки, ПараметрыЗапроса, Знач Заголовки) УстановитьПривилегированныйРежим(Истина); //Чтобы не было проблем с правами доступа //Если это запрос с сайта, проверяем, а был ли запрос ранее Если ТипЗнч(ПараметрыЗапроса) = Тип("Строка") Тогда //Запрос на заказы Если ВРЕГ(СокрЛП(ПараметрыЗапроса)) = ВРЕГ("exchange1c?type=sale&mode=query&sessid=") Тогда ПрошлыйЗапрос = Константы.дор_ПоследнийЗапросПоЗаказам.Получить(); Если ПрошлыйЗапрос <> "" Тогда Результат = ПрошлыйЗапрос; Сообщить("Запрос на сайт не был осуществлен, т.к. есть сохраненный непустой запрос в константе ""Последний запрос по заказам (Доработки)"""); Иначе Результат = ПродолжитьВызов(Соединение, ОписаниеОшибки, ПараметрыЗапроса, Заголовки); //Результат - это просто строка вида: // //<КоммерческаяИнформация ВерсияСхемы="2.04" ... ТекущийЗапрос = СокрЛП(Результат); Константы.дор_ПоследнийЗапросПоЗаказам.Установить(ТекущийЗапрос); КонецЕсли; Возврат Результат; //Стандартно не работаем, запрос не вызываем КонецЕсли; //Подтверждение успешной выгрузки заказов Если ВРЕГ(СокрЛП(ПараметрыЗапроса)) = ВРЕГ("exchange1c?type=sale&mode=success&sessid=") Тогда //Сбрасываем последний запрос Константы.дор_ПоследнийЗапросПоЗаказам.Установить(""); КонецЕсли; КонецЕсли; Результат = ПродолжитьВызов(Соединение, ОписаниеОшибки, ПараметрыЗапроса, Заголовки); Возврат Результат; КонецФункции
О том, что запрос не будет делаться с сайта, пользователю выдается диагностическое сообщение вида:
Среда: Розница 2.3.10.61. Объем: 1 час.
Свежие комментарии