О жизни ›
Как читать движения по РБ Хозрасчетный в подписке на событие ›
#1
11.06.13 14:04
УПП. Все регистраторы РБ "Хозрасчетный" подписаны на события ОбработкаПроведения, ПриЗаписи, ОбработкаУдаленияПроведения. Возможно, оптимальнее подписать набор записей РБ Хозрасчетный, но вопрос не в этом. Я знаю, что есть документ "Учет фактических данных...", но заказчик отказывается делать дополнительное действие - заполнять и проводить его. Т.е. после проведения документа РСБУ он хочет моментально видеть данные по бюджетам. Просьба, не предлагать варианты, как уйти от подписок, т.к. это уже пробовали, но уйти не смогли.
Задача - сделать трансляцию из РБ "Хозрасчетный" в РН "Обороты бюджетов".
Пользователь (консультант) настраивает в режиме предприятия произвольный запрос - источник данных в спр. "источники данных для расчета бюджетирования". Необходимо, чтобы на момент подписок в БД гарантировано были проводки Источника - документа-регистратора, который эту подписку инициировал.
Суть проблемы: Если в модуле ОбработкаПроведения какого-нибудь документа есть текст:
Проводка1 = Движения.Хозрасчетный.Добавить();
... // заполнение проводки 1
Движения.Записать(); или Движения.Хозрасчетный.Записать();
Проводка2 = Движения.Хозрасчетный.Добавить();
... // заполнение проводки 2
В подписке выполняется запрос, который не видит там проводку 2, но после окончания всех процедур эта проводка в базе есть.
Движения в РБ "Хозрасчетный" делают различные документы и разными способами. Документы, у которых запрещено проведение, которые не удаляют движения регистратора автоматически и т.д.
Вопрос: Какой код нужно написать в подписке на событие, общий для всех документов, чтобы не двоились проводки, и чтобы эти проводки были в БД на момент выполнения запроса в подписке?
Разумеется, что варианты
Источник.Движения.Хозрасчетный.Записать(); // код в обработчике подписки
или
Источник.Движения.Хозрасчетный.Записать(Ложь); // код в обработчике подписки
не являются универсальными для всех случаев, т.к. где-то они затирают движения, где-то добавляют. Т.е. нужно делать разветвление.
Пробовал много вариантов, но универсального пока не нашел. Может, кто-то уже имел опыт подобной задачи.
P.S. Код в модулях документов не меняем. Нужно, чтобы алгоритм подходил и для документа "ОперацияБух"