Создать предопределенный элемент пвх.ДополнительныеРеквизиты à

advertisement
Создать предопределенный элемент пвх.ДополнительныеРеквизиты  ТорговыйАгент. Тип
Спр.Партнер
Создаем заполнение ДопРеквизита в заказе по партнеру.
1) При изменении Партнера На Сервере() Не работает
Процедура ПриИзмененииПартнераСервер()
//Олеся
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|
ПартнерыДополнительныеРеквизиты.Ссылка,
|
ПартнерыДополнительныеРеквизиты.НомерСтроки,
|
ПартнерыДополнительныеРеквизиты.Свойство,
|
ПартнерыДополнительныеРеквизиты.Значение,
|
ПартнерыДополнительныеРеквизиты.ТекстоваяСтрока
|ИЗ
|
Справочник.Партнеры.ДополнительныеРеквизиты КАК
ПартнерыДополнительныеРеквизиты
|ГДЕ
|
ПартнерыДополнительныеРеквизиты.Свойство = &Свойство
|
И ПартнерыДополнительныеРеквизиты.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Свойство",
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ТорговыйАгент);
Запрос.УстановитьПараметр("Ссылка",Объект.Партнер );
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выгрузить();
НовРек = Объект.ДополнительныеРеквизиты;
НовРек.Загрузить(ВыборкаДетальныеЗаписи);
Или
ВыборкаДетальныеЗаписи = Результат.Выгрузить();
//НовРек = Объект.ДополнительныеРеквизиты;
//НовРек.Загрузить(ВыборкаДетальныеЗаписи);
Объект.ДополнительныеРеквизиты[0].Значение = ВыборкаДетальныеЗаписи[0].Значение;
2) В обработке проведения Реализации в конце, перед КонецПроцедуры (иначе движений не
будет)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
|
РеализацияТоваровУслугДополнительныеРеквизиты.Значение КАК Агент,
|
РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка.Партнер
|ПОМЕСТИТЬ ДокРеализация
|ИЗ
|
Документ.РеализацияТоваровУслуг.ДополнительныеРеквизиты КАК
РеализацияТоваровУслугДополнительныеРеквизиты
|ГДЕ
|
РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка = &Ссылка
|
И РеализацияТоваровУслугДополнительныеРеквизиты.Свойство =
&Свойство
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ ПЕРВЫЕ 1
|
ЗаказКлиентаДополнительныеРеквизиты.Значение КАК Агент,
|
ЗаказКлиентаДополнительныеРеквизиты.Ссылка КАК Заказ
|ПОМЕСТИТЬ ДокЗаказ
|ИЗ
|
Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК
ЗаказКлиентаДополнительныеРеквизиты
|ГДЕ
|
ЗаказКлиентаДополнительныеРеквизиты.Свойство = &Свойство
|
И ЗаказКлиентаДополнительныеРеквизиты.Ссылка = &СсылкаНаЗаказ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|
ЕСТЬNULL(ДокРеализация.Агент, ДокЗаказ.Агент) КАК Агент
|ПОМЕСТИТЬ ТАгент
|ИЗ
|
ДокРеализация КАК ДокРеализация
|
ЛЕВОЕ СОЕДИНЕНИЕ ДокЗаказ КАК ДокЗаказ
|
ПО ДокРеализация.Партнер = ДокЗаказ.Заказ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|
ЕСТЬNULL(РазмерКомиссии.Процент, 0) КАК Процент,
|
ТАгент.Агент
|ИЗ
|
ТАгент КАК ТАгент
|
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РазмерКомиссии КАК
РазмерКомиссии
|
ПО ТАгент.Агент = РазмерКомиссии.Парнер";
Запрос.УстановитьПараметр("Свойство",
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ТорговыйАгент);
Запрос.УстановитьПараметр("Ссылка",ЭтотОбъект.Ссылка );
Запрос.УстановитьПараметр("СсылкаНаЗаказ",ЭтотОбъект.Партнер);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() тогда
СуммаВознаграждения =
ВыборкаДетальныеЗаписи.Процент*ЭтотОбъект.СуммаДокумента/100;
Если СуммаВознаграждения>0 тогда
Если не отказ тогда
Движения.РасчетСАгентами.Записывать = Истина;
Движения.РасчетСАгентами.БлокироватьДляИзменения = Истина;
Движение = Движения.РасчетСАгентами.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период =ЭтотОбъект.Дата;
Движение.Агент = ВыборкаДетальныеЗаписи.Агент;
Движение.Сумма = СуммаВознаграждения;
КонецЕсли;
КонецЕсли;
КонецЕсли;
3) Создать предопределенный элемент В ПВХ СтатьяРасходов ВознагрТоргАгентам
4) Создаем кнопку на форме РКО для заполнения табличной части
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|
РасчетСАгентамиОстатки.Агент КАК АналитикаРасходов,
|
РасчетСАгентамиОстатки.СуммаОстаток КАК Сумма,
|
&СтатьяРасходов
|ИЗ
|
РегистрНакопления.РасчетСАгентами.Остатки(&Дата, ) КАК
РасчетСАгентамиОстатки";
Запрос.УстановитьПараметр("Дата", Дата);
Запрос.УстановитьПараметр("СтатьяРасходов",ПланыВидовХарактеристик.СтатьиРасходов.Вознагр
ажденияТорговымРаботникам);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выгрузить();
Объект.РасшифровкаПлатежа.Загрузить(ВыборкаДетальныеЗаписи);
5) ОбработкаПроведения в РКО
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПрочиеРасходы
тогда
Для Каждого ТекСтрока из РасшифровкаПлатежа цикл
Если ТекСтрока.СтатьяРасходов =
ПланыВидовХарактеристик.СтатьиРасходов.ВознагражденияТорговымРаботникам тогда
Движения.РасчетСАгентами.Записывать = Истина;
Движения.РасчетСАгентами.БлокироватьДляИзменения = Истина;
Движение = Движения.РасчетСАгентами.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Агент = ТекСтрока.АналитикаРасходов;
Движение.Сумма = ТекСтрока.Сумма;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Download