Бухам понадобилось чтобы по некому счету 76.79 (валютный) ставилась Валюта и ВалютнаяСумма всегда (даже если это рубли). Документов, в которых понапихан этот счет кучка разных. Править каждый нереально. поэтому логичнее использовать подписку. Создаю подписку, прицепляю обработчик. В обработчике пишу:
Процедура Исправление76СчетаОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
Счет76 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.79");
ВалютаРубли = Справочники.Валюты.НайтиПоКоду("810");
Источник.Движения.Хозрасчетный.Прочитать();
НаборДвиженийБУ = Источник.Движения.Хозрасчетный.Выгрузить();
Для Каждого СтрокаДвижений Из НаборДвиженийБУ Цикл
Если (СтрокаДвижений.СчетДт = Счет76) И (Не ЗначениеЗаполнено(СтрокаДвижений.ВалютаДт)) Тогда
СтрокаДвижений.ВалютнаяСуммаДт = СтрокаДвижений.Сумма;
СтрокаДвижений.ВалютаДт = ВалютаРубли;
ИначеЕсли (СтрокаДвижений.СчетКт = Счет76) И (Не ЗначениеЗаполнено(СтрокаДвижений.ВалютаКт)) Тогда
СтрокаДвижений.ВалютнаяСуммаКт = СтрокаДвижений.Сумма;
СтрокаДвижений.ВалютаКт = ВалютаРубли;
Иначе
Продолжить;
КонецЕсли;
КонецЦикла;
Источник.Движения.Хозрасчетный.Загрузить(НаборДвиженийБУ);
КонецПроцедуры
В результате если у документа была ручная корректировка движений, то все нормально, а вот если ручных корректировок не было, то на выходе я не получаю вообще никаких движений.
Натыкайте меня носом в мою ошибку, пожалуйста.