Есть регистр накопления в рознице "БонусныеБаллы". Событие ПриЗаписи случается почему-то два раза. Нужно оповещать покупателя о балансе. Но оповещение происходит два раза. Как отследить одно лишнее?
---
Сделать проверку если уже отправлялось то не отправлять больше
---
И ПередЗаписью тоже два раза.
---
почему-тоПотому что логически это два разных события. Отслеживай их отдельно: первое как отмену бонуса у покупателя, второе - как начислении нового бонуса поверх отмененного.
---
У вас в коде идет запись в регистр два раза, поэтому и события два раза вызываются.

1) Пишите в свой регистр, и из него отправляйте клиенту уведомление по расписанию.
2) или найдите в программе почему два раза записывается, и уберите один из вызовов записи.
---
Так нужно к документам подписки делать которые двигаю этот регистр
---
т.е.?
---
Бонусы начисляются к примеру Чеком. Тогда при проведении его отправлять уведомление...

Хотя документ еще 5 раз могут перепроводить... лучше наверное регламентным заданием 1 раз с утречка... если баланс изменился по сравнению со вчера то отправить уведомление.
---
Да и пусть перепроводят. как бы оставить подписку на регистр? а не менять подписку на документ чек.
---
Сделать проверку если уже отправлялось то не отправлять больше
---
А проверку на событие записи в регистр нельзя сделать?
---
вариантов, почему 2 записи много.
Примеры:
1. Запись пустого набора, что бы исключить данные по регистратору, для получения остатков. Проверка и запись уже движения.
2. Принудительная запись для отслеживания данных и последующая запись по завершения обработчика проведения, если выставлен флаг Записывать.

Присовокупить к этому еще и возможную отмену транзакции.
---
а можно ли как-то проверку сделать в случае (1) и в случае (2) ?
---
Количество записей в наборе смотрите. Если 0, значит это удаление прошлых, если больше 0, значит это запись новых.
---
НаборЗаписей.Отбор.Регистратор.Значение.ПолучитьОбъект().Движения.БонусныеБаллы - там всегда пусто
---
Как это развидеть???
---
НаборЗаписей.Отбор.Регистратор.Значение.ПолучитьОбъект().Движения.БонусныеБаллыХаля! Няси карточку, у нас тута ыщо адин хений 1С!
---
НаборЗаписей.Количество()
---
если предположить что документ вдруг будет десяток раз перепроводится... и таких документов будет штук 10 за сутки...
то кто то потратится на сотню смс
и клиент может не понять...

лучше все же регламентное раз в сутки
---
Спасибо большое за совет. Я с советом согласен. Но пока Изменения нужно сделать в момент накопления.
---
Сталкивался с похожим поведением при работе с веб сервисами (кажется JIRA) и моя проблема заключалась в вебхуке. Происходил перехват события создания задачи на стороне JIRA и генерировалось событие для отправки в 1С, там было не только создание задачи, но и какие-то дополнительные дженерики. Долго не понимал что за хрень, пока не настроил Postman и не увидел, что событий по факту несколько, а не одно. После отсечения этих дженериков на стороне 1С, все пошло как по маслу.
---
1 - Перенести событие оповещения в события проведения, а не записи.
2 - Для решения проблемы с большим количеством смс при каждом чихе - перенести данную функцию на форму (документы создаются же интерактивно? и кнопочка проведения интерактивно?), таким образом при групповом проведении смс не будут лететь. Тут можно еще галочку прикрутить и логику написать, что бы при наличии (или отсутствии) галочки не отправлять смс, если очень захочется перепровести интерактивно (тут очень большое поле для творчества).

Два раза записывает - тут только гадать какой функционал прикручен, проведение должно быть 1 раз как и запись в регистр, проверяется очень легко консолью запроса.