Повторные запросы внешней системы создают дубли заказов
Внешняя система отправляет заказы в 1С POST-запросом к HTTP-сервису. Если ответ не приходит за отведённое время, она считает отправку неуспешной и повторяет её. В базе обнаружились дубли заказов: документ был создан, а ответ до отправителя не дошёл из-за обрыва связи.
Что нужно изменить в интеграции, чтобы повтор перестал порождать дубли?
- Увеличить таймаут на стороне отправителя и на веб-сервере, чтобы ответ гарантированно успевал дойти
- Согласовать с отправителем идентификатор запроса: искать заказ с таким же идентификатором и на повтор возвращать прежний результат
- Записывать документ в транзакции: тогда повторный запрос не сможет создать дубль
- Перед созданием проверять, нет ли в базе заказа того же контрагента на ту же сумму и дату, и при совпадении игнорировать пришедший запрос
- Раз в час запускать регламентное задание, которое находит дубли заказов и помечает лишние документы на удаление
