Добрый день.
Есть подписка на событие ПриЗаписи регистра накопления.
Как отследить, что это событие вызвано в следствии удаления документа командой: УдалитьОбъекты(МассивСсылок, Ложь);
---
В чем проблема? Перед удалением документа вставляйте доп свойство, Все нормально передается. Перед записью регистра читайте. Если Свойство, да Набор не пустой, значит вызвано методом УдалитьОбъекты. Если мало То добавьте Параметр сеанса в конфигураторе. Скажем РежимУдалитьОбъекты тип Булево и пишите себе

```1c
    ПараметрыСеанса.РежимУдалитьОбъекты =Истина;
    УдалитьОбъекты(МассивЧековККМ, Ложь);
```
---
в отладке подписки при удалении в Источник что содержится ?
---
Источник
Это набор записей РН, через него можно добраться например до переменных модуля РН или до регистратора, но толку от этого мало, т.к. установить эти переменные я не могу, т.к. физически ни где не используется объект документа.

Единственное что приходит в голову, это перед удалением убрать все записи РН со всех документов с установкой доп. реквизита например "НеРегистрироватьВПланеОбмена". Тогда я смогу отловить этот реквизит при возникновении события ПриЗаписи и исключить эти товары из регистрации в ПО.
А при удалении уже это событие не будет возникать, т.к. записей РН уже не будет.
Боюсь только этот вариант увеличит время закрытия кассовой смены(а может и нет.)В общем завтра попробую сделать так, посмотрим что получится
---
Ответ - никак.
При вызове УдалитьОбъекты подписка на событие "ПриЗаписи" регистра накопления просто не будет выполнятся.
---
Так в том то и проблема что выполняется.
---
УТ 10.3 - закрытие кассовой смены, серверный модуль:
Процедура ОбработатьЧекиККМПриЗакрытииСмены(МассивЧековККМ, КассаККМ) Экспорт
***
УдалитьОбъекты(МассивЧековККМ, Ложь);
***
КонецПроцедцры

До выполнения удаления объектов ни где не выполняется очистка регистров, т.е. регистры по чекам ККМ очищаются в момент удаления чеков.
В модуле самого регистра не отрабатывает ни одна типовая процедура/функция.
Пробовал Перед удалением записать глобальную переменную - так ее не видно на сервере.
Как установить некий флаг на клиенте, что бы его было видно на стороне сервера.
Есть вариант установить флаг через объекты конфигурации Константы или РС, но ка кто не хочется постоянно переписывать константу или РС. Опять таки вопрос, как понять что для одного набора не нужно регистрировать данные, т.е. это закрытие кассовой смены и при этом второй набор, который пишется в эту же секунду, это проведение чека ККМ, и его нужно регистрировать.
---
Зачем переменная, когда есть ДополнительныеСвойства
Например, строчка

```1c
    Источник.Движения.МойРегистр.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов");
```

отменит регистрацию принудительно
---
дык я и говорю, что удаление происходит методом УдалитьОбъекты(МассивЧековККМ, Ложь);
И до этого метода ни где не очищаются регистры, поэтому добавить ДополнительныеСвойства я не могу
Да и к тому же при возникновении события ПриЗаписи мне не нужно устанавливать это свойство, мне его нужно пролучить, что бы дальше либо регистрировать товары либо нет в ПО.
---
В чем проблема? Перед удалением документа вставляйте доп свойство, Все нормально передается. Перед записью регистра читайте. Если Свойство, да Набор не пустой, значит вызвано методом УдалитьОбъекты. Если мало То добавьте Параметр сеанса в конфигураторе. Скажем РежимУдалитьОбъекты тип Булево и пишите себе

```1c
    ПараметрыСеанса.РежимУдалитьОбъекты =Истина;
    УдалитьОбъекты(МассивЧековККМ, Ложь);
```
---
в общем долго пробовал разные варианты, но все таки остановился на добавлении параметра сеанса "ЗакрытиеКассовойСмены", который выставляю в Истина при закрытии кассовой смены, и перед регистрацией в плане обмена проверяю этот параметр. Если установлен в истина то не регистрирую изменения. Таким образом и Чеки ККМ и отчет о РП не попадают в план обмена - как раз то что я и хотел.
---
Ну и ладненько и как говорил тысячелетний человек: "Этот всегда рад помочь"