Проводки в подписке на событие. БП, релиз 1.6.25.9, платформа 8.1

Новая тема
Всем примет.
Необходимо изменить проведение документа "Реализация товаров и услуг". Есть большое жалание сделать это не в самом документе, а в подписке на событие.
Не могу в событие "Обработка проведения"  поймать сформированные документом проводки.
Проводки выбираю по регистратору, но выборка пустая.

Можно ли такое сделать в принципе, или я что-то не так делаю?

Спасибо.
Если я не ошибаюсь, то Документы делятся на 2 категории:
1. Делают записи в регистр напрямую (в этом случае в подписке надо выбирать движения из Регистра по Регистратору)
2. Используют свойство объекта Движения (в этом случае набор движений получается через Источник.Движения.<ИмяРегистра>)

В общем, если я не знаю, что делает документ с этим регистром - ставлю точку прерывания и смотрю.
Судя по всему вы пытаетесь сделать выборку из Регистра, а надо просто работать с Источник.Движения...
"Спасибо за ответ.

Выбирал и из движения
проводки=Источник.Движения.Хозрасчетный;

Но так тоже пусто. И отладчиком пусто.


Вы не пробовали так исправлять проводки?
"
"Не только пробовал, но и работает ведь. Правда у меня УПП и менял как правило по регистрам накопления.
Вот к примеру кусок такого кода (исправление движений по регистру РасчетыСКонтрагентами):

РасчСКонтр = Источник.Движения.РасчетыСКонтрагентами;
//РасчСКонтр.Прочитать();
Для Каждого СтрОпл Из нТЗОплат Цикл
//Закрывает Платежку
Зап = РасчСКонтр.ДобавитьПриход();
//ДоговорКонтрагента, Организация, Контрагент
ЗаполнитьЗначенияСвойств (Зап, Источник);
//Сделка, СуммаВзаиморасчета
ЗаполнитьЗначенияСвойств (Зап, СтрОпл);
Зап.Период = Источник.Дата;
Зап.СуммаУпр = СтрОпл.СуммаВзаиморасчетов;
Зап.РасчетыВозврат = Перечисления.РасчетыВозврат.Расчеты;
//Закрываем Заказ
Зап = РасчСКонтр.ДобавитьРасход();
//ДоговорКонтрагента, Организация, Контрагент
ЗаполнитьЗначенияСвойств (Зап, Источник);
Зап.Период = Источник.Дата;
Зап.Сделка = СтрОпл.НоваяСделка;
Зап.СуммаВзаиморасчетов = СтрОпл.СуммаВзаиморасчетов;
Зап.СуммаУпр = СтрОпл.СуммаВзаиморасчетов;
Зап.РасчетыВозврат = Перечисления.РасчетыВозврат.Расчеты;
КонецЦикла;
//РасчСКонтр.Записать();

Видите 2 закоментированные строки - это было на случай, когда набор записей уже записан.

Вот пример из подписки для Приходного ордера на товары:
Движения = Источник.Движения.ПартииТоваровНаСкладах;
Движения.Прочитать();
Для Каждого СтрДвиж Из Движения Цикл
...
СтрДвиж.Качество = СтрТЧ.Качество;
КонецЦикла;
Движения.Записать();"
Большое спасибо.

Сам тормознул, проверял содержание проводок после прочитать(), нет что бы сразу при входе в обработку.
Так что поговорка  «утро вечера мудренее» в действии.

Все заработало.


> Сам тормознул, проверял содержание проводок после прочитать(), нет что бы сразу при входе в обработку.

Прочитать() можно, если проводки записаны. В БП , если я не ошибаюсь, проводки записаны только у одного документа -"Закрытие месяца".

Читают тему
(гостей: 1)

Быстрый переход