Раз мы перепредьявляем услуги, то мы просто можем получить из регистров накопленную сумму за месяц. При выборе типа услуги мы вызываем функцию.
Конечно в зависимости от услуги нужно использовать разные регистры. Как поступать? Я сделал просто, ID услуги в справочнике.
И если выбрана услуга по аффинажу, то выбираю движение по регистру.
Процедура ПриВыбореУслуги() Перем пр; пр=0; Если Услуга.ID=1 Тогда Если КомуПоставляем.Выбран()=0 Тогда Предупреждение("Вы не выбрали контрагента, выберите и попробуйте снова"); Иначе Рег1 = СоздатьОбъект("Регистр.УслугиАфинажа"); Рег1.УстановитьФильтр(КомуПоставляем); Рег1.ВыбратьДвижения(НачМесяца(ДатаДок),КонМесяца(ДатаДок)); Пока Рег1.ПолучитьДвижение() > 0 Цикл Пр=Пр+Рег1.Сумма; КонецЦикла; Сумма=Пр; СчитаемСумму(); КонецЕсли; Конецесли;
И теперь стоит выбрать услугу аффинажа, как тут же будет проанализирован регистр и сумму помещена в поле сумма. Все, ни какой дополнительной работы. Правда тут я использовал пока две не описанные ранее функции. Смотрите следующие шаги.