SanPav, мне кажется очень много текста, нужно использовать типовые общие модули. Например подписка на обработку проведения реализации:
Процедура УчетАгентовОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(Источник)= Тип("ДокументОбъект.РеализацияТоваровУслуг") Тогда
Движения= Источник.Движения;
Массив = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Агент");
Если УправлениеСвойствами.ИспользоватьДопРеквизиты(Источник.Ссылка) Тогда
ЗначениеСвойства = УправлениеСвойствами.ПолучитьЗначенияСвойств(Источник.Ссылка,Истина,Ложь,Массив);
Агент= Неопределено;
Если ЗначениеСвойства.Количество() > 0 Тогда
Агент = ЗначениеСвойства.Найти(МассивСвойств).Значение;
КонецЕсли;
Процент = РегистрыСведений.ПроценПремииАгентов.ПолучитьПоследнее(Источник.Дата);
Движения.РасчетыСАгентами.Записывать = Истина;
Движение = Движения.РасчетыСАгентами.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Источник.Дата;
Движение.Агент = Агент;
Движение.Сумма = Источник.СуммаДокумента*Процент.Процент/100;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
или подписка на обработку заполнения реализации на основании заказа:
Процедура ЗаполнениеНаоснованииОбработкаЗаполнения(Источник, ДанныеЗаполнения, СтандартнаяОбработка) Экспорт
ДокСонования = Неопределено;
Агент = Неопределено;
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
ДокументОснования= ДанныеЗаполнения.ДокументОснование;
ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
ДокументОснования = ДанныеЗаполнения;
КонецЕсли;
Если НЕ ДокументОснования = Неопределено Тогда
Если УправлениеСвойствами.ИспользоватьДопРеквизиты(ДокументОснования) Тогда
МассивСвойств = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Агент");
ЗначениеСвойства = УправлениеСвойствами.ПолучитьЗначенияСвойств(ДокументОснования,Истина,Ложь,МассивСвойств);
Если ЗначениеСвойства.Количество() > 0 Тогда
Агент = ЗначениеСвойства.Найти(МассивСвойств).Значение;
КонецЕсли;
КонецЕсли;
Если НЕ Агент = Неопределено Тогда
ЗначениеАгента = Источник.ДополнительныеРеквизиты.Добавить();
ЗначениеАгента.Свойство = МассивСвойств;
ЗначениеАгента.Значение = Агент;
КонецЕсли;
КонецЕсли;
КонецПроцедуры