Обновил расширение UDS_Game под розницу 2.3.11.33

У одного из моих клиентов используется многострадальное расширение UDS_Game для скидочной системы UDS Game. Не обновлялись целый год и вот после обновления UDS перестало работать.

Пришлось залезть внутрь расширения.

Во-первых многие события формы РМК перестали работать, потому что поменялся список параметров, это известная беда проверки применимости расширения.

Ну и далее теперь событие после пробития связано с очередью чеков, а код был ориентирован на событие формы «После пробития», где вызывалась функция вызова накопления/списания UDS. А она проверяла статус чека. Естественно, чек был еще не пробит.

Причем по комментариям было видно, что изначально функция UDS вызывалась из процедуры проведения и его перенесли оттуда при прошлом обновлении. Правда, проведение вызывается до того, как чек становится пробитым, а при изменении статуса чека он не перепроводится.

Поэтому я вынес функцию в модуль записи чека:

Реализация так себе, потому что если проходит ошибка начисления UDS, то чек уже пробит и ничего не сделаешь — нужно только вносить ручные правки в кабинете UDS. Также завязано все только на возврат день-в-день, при возвратах задним числом операции не сторнируются. Но это редкие операции, поэтому клиент с ними мирится.

Пришлось ставить эмулятор кассы, без него никак не разобраться.

Протестировал накопление бонусов:

Протестировал списание бонусов:

Все вроде работает.

Среда: Розница 2.3.11.33. Объем: 2 час.

fixin

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

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

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

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