Подписка на событие ПриЗаписи/ПередЗаписью Регистра накопления

1. user_2010 842 20.03.23 12:36 Сейчас в теме
Добрый день, Коллеги!

Пытаюсь сделать Подписку на событие ПриЗаписи/ПередЗаписью для Регистра накопления.
(делала ранее такое для регистра сведений в ЗУП - думала логика одна и та же у всех регистров... но оказалось логика разная).
Ожидала, что в Источнике в каком-нибудь реквизите я увижу сами движения, но там пусто. Только Регистратор могу получить.

Задача состоит в том, чтобы сторонней программе сообщить что такие записи в регистре накопления появились, а такие-то записи в регистре накопления исчезли.

Как это можно сделать? Возможно ли это сделать через подписку на события для регистра накопления? Или нужно использовать подписку на события для документа?

Спасибо!
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
4. spacecraft 20.03.23 13:07 Сейчас в теме
(1) нужно понимать, что эти события вызываются как минимум дважды. Первый раз записывается пустой набор (по отбору) для удаления существующих записей. Второй раз уже происходит добавление записей.
user_2010; +1 Ответить
6. user_2010 842 20.03.23 14:35 Сейчас в теме
(4) Ага. Спасибо! Не обратила на это внимание! Посмотрю!
8. user_2010 842 21.03.23 10:57 Сейчас в теме
(4)
При проведении документа:
для РегистраНакопления Событие ПриЗаписи - в Источник.ЭтотОбъект - вижу записи, которые будут добавлены. Это хорошо и то, что нужно.

А вот при отмене проведения документа - нигде не вижу отменяемых записей.
Не подскажете в каком реквизите Источника искать отменяемые/удаляемые записи регистра?

И у меня 1 раз событие ПриЗаписи вызывается. Почему-то?

Спасибо!
9. Sashares 33 21.03.23 11:22 Сейчас в теме
(8)
А вот при отмене проведения документа - нигде не вижу отменяемых записей. 

Берете из набора записей регистратор - делаете запрос к регистру накопления с отбором по регистратору - получаете существующие движения, которые будут удалены при записи пустого набора.
user_2010; +1 Ответить
11. user_2010 842 21.03.23 12:13 Сейчас в теме
(9) Понятно! Большое спасибо!
10. spacecraft 21.03.23 11:40 Сейчас в теме
(8) удаление происходит путем записи пустого набора записей. Соответственно там не будет никаких записей.
Можно получить записи по регистратору из базы.
user_2010; +1 Ответить
12. user_2010 842 21.03.23 12:13 Сейчас в теме
(10) Понятно! Большое спасибо!
13. spacecraft 21.03.23 12:33 Сейчас в теме
(8)
И у меня 1 раз событие ПриЗаписи вызывается. Почему-то?

тут я ввел в заблуждение. Это актуально при определенных условий для регистров сведений. Для РН вызывается один раз.
user_2010; +1 Ответить
15. user_2010 842 21.03.23 13:08 Сейчас в теме
2. user-z99999 63 20.03.23 12:48 Сейчас в теме

Процедура ПередЗаписью(Отказ, Замещение)
   
   Для каждого СтрокаЗаписи Из ЭтотОбъект Цикл
       
       СтрокаЗаписи.Значение = глЗначение;
       
   КонецЦикла;
   
КонецПроцедуры
Показать
user_2010; +1 Ответить
3. user_2010 842 20.03.23 12:55 Сейчас в теме
(2) Вы имеете в виду, что по событию ПередЗаписью - нужно обрабатывать строки документа?

Я ожидала, что при этом событии я увижу набор записей для регистра...
5. Sashares 33 20.03.23 13:27 Сейчас в теме
(3)Конечно увидите. Но событие может выполняться несколько раз, сначала может выполняться удаление существующих движений.
Добавьте условие:
Если Источник.Количество() Тогда
//это запись новых движений
КонецЕсли;
user_2010; +1 Ответить
7. user_2010 842 20.03.23 14:35 Сейчас в теме
(5) Спасибо! Не знала такой особенности! Попробую!
14. user_2010 842 21.03.23 12:34 Сейчас в теме
(2) вот теперь я поняла ваше сообщение.. когда - нашла где хранятся данные... Спасибо!
Оставьте свое сообщение
Вакансии
Консультант 1С
Москва
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Аналитик 1C
Москва
зарплата от 120 000 руб. до 250 000 руб.
Полный день

Начальник отдела программирования
Уфа
зарплата от 125 000 руб.
Полный день

Программист/тестировщик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Ведущий разработчик 1С / Team lead отдела разработки 1С
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день