Имя: Пароль:
1C
1С v8
Подписка "ОбработкаПроведения"
0 Nikitos
 
16.11.11
17:19
День добрый.

БП 1.6. Дописанная и не обновляется.

Бухам понадобилось чтобы по некому счету 76.79 (валютный) ставилась Валюта и ВалютнаяСумма всегда (даже если это рубли). Документов, в которых понапихан этот счет кучка разных. Править каждый нереально. поэтому логичнее использовать подписку. Создаю подписку, прицепляю обработчик. В обработчике пишу:

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


В результате если у документа была ручная корректировка движений, то все нормально, а вот если ручных корректировок не было, то на выходе я не получаю вообще никаких движений.
Натыкайте меня носом в мою ошибку, пожалуйста.
1 Euguln
 
16.11.11
17:24
Подпишись на "ПриЗаписи" регистра бухгалтерии, ибо Источник.Движения.Хозрасчетный.Прочитать(); в обработке проведения исчо пусто.
2 Scooter
 
16.11.11
17:26
(0)Если Источник.Движения.Хозрасчетный модифирован то не надо его читать
3 unregistered
 
16.11.11
17:30
Лучше подписать на событие ПередЗаписью набора записей регистра бухгалтерии.

Одна подписка на одно событие к одному объекту.
4 Nikitos
 
16.11.11
17:38
Всем спасибо.
Самый умный - (2)   :)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан