Закрытие заказа при пробитии чека. Розница 2.3
Клиенту нужно, чтобы при пробитии чека клиенту, который пришел за товаром самовывозом, его заказ на сайте закрывался.
В рознице чеки привязаны к заказам через поле «Заказ клиента», заказ выбирает продавец при оплате в РМК:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-49.png)
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-50.png)
Для упрощения отладки, я проводил уже проведенный чек, для этого сделал точку останова в этом участке кода и делал сброс Отказ в ложь:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-51.png)
До пробития чека и закрытия заказа состояния заказа были «Не оплачен» и «Готов к отгрузке» (потому что стояла галочка резерв в товаре заказа):
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-52.png)
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-53.png)
После закрытого таким образом заказа состояния заказа стали:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-54-1024x155.png)
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-55.png)
Сам код добавил в процедуру ПриЗаписи:
&После("ПриЗаписи") Процедура дор_ПриЗаписи(Отказ) //После записи закрываем заказ Если Не Отказ И ЭтотОбъект.СтатусЧекаККМ = Перечисления.СтатусыЧековККМ.Пробитый И ЗначениеЗаполнено(ЭтотОбъект.ЗаказПокупателя) И ЭтотОбъект.ЗаказПокупателя.Статус <> Перечисления.СтатусыЗаказовПокупателей.Закрыт Тогда ДО = ЭтотОбъект.ЗаказПокупателя.ПолучитьОбъект(); ДО.Статус = Перечисления.СтатусыЗаказовПокупателей.Закрыт; ДО.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; КонецПроцедуры
Сначала добавлял в процедуру проведения, но чек проводится без признака пробит, а вот записывается уже с этим признаком, поэтому перенес в процедуру при записи чека.
Среда: Розница 2.3.10.61 Объем: 1 час
![](https://geniy1s.ru/wp-content/uploads/2022/03/depositphotos_32936833-stock-photo-hand-pushing-dominoes-isolated-on.jpg)
Свежие комментарии