Подписка на событие ПриЗаписи РН, как отследить удаление объекта?

1. НовенькийЯ 25.04.19 11:31 Сейчас в теме
Добрый день.
Есть подписка на событие ПриЗаписи регистра накопления.
Как отследить, что это событие вызвано в следствии удаления документа командой: УдалитьОбъекты(МассивСсылок, Ложь);
По теме из базы знаний
Найденные решения
9. tusv 211 25.04.19 17:43 Сейчас в теме
В чем проблема? Перед удалением документа вставляйте доп свойство, Все нормально передается. Перед записью регистра читайте. Если Свойство, да Набор не пустой, значит вызвано методом УдалитьОбъекты. Если мало То добавьте Параметр сеанса в конфигураторе. Скажем РежимУдалитьОбъекты тип Булево и пишите себе
ПараметрыСеанса.РежимУдалитьОбъекты =Истина;
УдалитьОбъекты(МассивЧековККМ, Ложь); 
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. alex-l19041 8 25.04.19 15:03 Сейчас в теме
(1) в отладке подписки при удалении в Источник что содержится ?
6. НовенькийЯ 25.04.19 15:37 Сейчас в теме
(5)
Источник

Это набор записей РН, через него можно добраться например до переменных модуля РН или до регистратора, но толку от этого мало, т.к. установить эти переменные я не могу, т.к. физически ни где не используется объект документа.

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

До выполнения удаления объектов ни где не выполняется очистка регистров, т.е. регистры по чекам ККМ очищаются в момент удаления чеков.
В модуле самого регистра не отрабатывает ни одна типовая процедура/функция.
Пробовал Перед удалением записать глобальную переменную - так ее не видно на сервере.
Как установить некий флаг на клиенте, что бы его было видно на стороне сервера.
Есть вариант установить флаг через объекты конфигурации Константы или РС, но ка кто не хочется постоянно переписывать константу или РС. Опять таки вопрос, как понять что для одного набора не нужно регистрировать данные, т.е. это закрытие кассовой смены и при этом второй набор, который пишется в эту же секунду, это проведение чека ККМ, и его нужно регистрировать.
7. tusv 211 25.04.19 17:16 Сейчас в теме
(4)Зачем переменная, когда есть ДополнительныеСвойства
Например, строчка
Источник.Движения.МойРегистр.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов");

отменит регистрацию принудительно
8. НовенькийЯ 25.04.19 17:26 Сейчас в теме
(7)дык я и говорю, что удаление происходит методом УдалитьОбъекты(МассивЧековККМ, Ложь);
И до этого метода ни где не очищаются регистры, поэтому добавить ДополнительныеСвойства я не могу
Да и к тому же при возникновении события ПриЗаписи мне не нужно устанавливать это свойство, мне его нужно пролучить, что бы дальше либо регистрировать товары либо нет в ПО.
9. tusv 211 25.04.19 17:43 Сейчас в теме
В чем проблема? Перед удалением документа вставляйте доп свойство, Все нормально передается. Перед записью регистра читайте. Если Свойство, да Набор не пустой, значит вызвано методом УдалитьОбъекты. Если мало То добавьте Параметр сеанса в конфигураторе. Скажем РежимУдалитьОбъекты тип Булево и пишите себе
ПараметрыСеанса.РежимУдалитьОбъекты =Истина;
УдалитьОбъекты(МассивЧековККМ, Ложь); 
10. НовенькийЯ 30.04.19 10:02 Сейчас в теме
(9) в общем долго пробовал разные варианты, но все таки остановился на добавлении параметра сеанса "ЗакрытиеКассовойСмены", который выставляю в Истина при закрытии кассовой смены, и перед регистрацией в плане обмена проверяю этот параметр. Если установлен в истина то не регистрирую изменения. Таким образом и Чеки ККМ и отчет о РП не попадают в план обмена - как раз то что я и хотел.
11. tusv 211 30.04.19 16:14 Сейчас в теме
(10)Ну и ладненько и как говорил тысячелетний человек: "Этот всегда рад помочь"
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот