![]() |
|
Логика заполнения обработки ПодборПараметровРасшифровкиПлатежа | ☑ | ||
---|---|---|---|---|
0
gaspik
22.11.16
✎
13:39
|
Коллеги, подскажите, плиз.
Конфигурация УПП 1.3.81.2. Не могу понять как обработка ПодборПараметровРасшифровкиПлатежа заполняет таблицу значений. Если в документе ПП исходящее ткнуть в выбор Заявки на оплату, то запускается эта обработки и она, я так понимаю, должна сформировать список неоплаченных заявок. В каких то ПП это список есть, в каких то нет. При том, что в регистре "Заявки на расходование средств" есть конечный остаток по этому контрагенту и договору. Какой то еще параметр влияет на заполнение? Не могу раскрутить запрос, который формирует список планируемых движений. Хелп. |
|||
1
gaspik
22.11.16
✎
13:56
|
Вот такой запрос там. Понятно, что из регистра "Заявки на расходование средств" идет выборка, но по каким параметрам не могу понять, запуталась.
Запрос=Новый Запрос; ТекстУсловия=" |И ("+ДокументПланирования+".ВалютаДокумента=&ПустойВалютаДокумента ИЛИ "+ДокументПланирования+".ВалютаДокумента= &ВалютаДокумента)"; Запрос.УстановитьПараметр("ПустойВалютаДокумента",Справочники.Валюты.ПустаяСсылка()); Если ЗначениеЗаполнено(ФормаОплаты) Тогда ТекстУсловия=ТекстУсловия+" |И ("+ДокументПланирования+".ФормаОплаты=&ПустойФормаОплаты ИЛИ "+ДокументПланирования+".ФормаОплаты В (&ФормаОплаты))"; Запрос.УстановитьПараметр("ФормаОплаты",ФормаОплаты); Запрос.УстановитьПараметр("ПустойФормаОплаты",Перечисления.ВидыДенежныхСредств.ПустаяСсылка()); КонецЕсли; Если ЗначениеЗаполнено(БанковскийСчетКасса) Тогда ТекстУсловия=ТекстУсловия+" | И ("+ДокументПланирования+".БанковскийСчетКасса=&ПустойСчетКасса ИЛИ | "+ДокументПланирования+".БанковскийСчетКасса= &БанковскийСчетКасса ИЛИ | "+ДокументПланирования+".БанковскийСчетКасса= Неопределено)"; Запрос.УстановитьПараметр("БанковскийСчетКасса",БанковскийСчетКасса); Запрос.УстановитьПараметр("ПустойСчетКасса",Новый(ТипЗнч(БанковскийСчетКасса))); КонецЕсли; Если ЗначениеЗаполнено(Контрагент) Тогда Если ВидОперацииПлан=Перечисления.ВидыОперацийЗаявкиНаРасходование.ВыдачаДенежныхСредствКассеККМ ИЛИ ВидОперацииПлан=Перечисления.ВидыОперацийЗаявкиНаРасходование.ВыдачаДенежныхСредствПодотчетнику ИЛИ ВидОперацииПлан=Перечисления.ВидыОперацийЗаявкиНаРасходование.РасчетыПоКредитамИЗаймамСРаботниками Тогда ТекстУсловия=ТекстУсловия+" |И (ЗаявкаНаРасходование.Получатель=&Контрагент ИЛИ ЗаявкаНаРасходование.Получатель=Неопределено)"; Запрос.УстановитьПараметр("Контрагент",Контрагент); Иначе ТекстУсловия=ТекстУсловия+" |И ("+ДокументПланирования+".Контрагент=&Контрагент ИЛИ "+ДокументПланирования+".Контрагент=&ПустойКонтрагент)"; Запрос.УстановитьПараметр("Контрагент",Контрагент); Запрос.УстановитьПараметр("ПустойКонтрагент",Справочники.Контрагенты.ПустаяСсылка()); КонецЕсли; КонецЕсли; Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда ТекстУсловия=ТекстУсловия+" |И ДоговорКонтрагента=&ДоговорКонтрагента"; Запрос.УстановитьПараметр("ДоговорКонтрагента",ДоговорКонтрагента); КонецЕсли; Если ЗначениеЗаполнено(СтатьяДвиженияДенежныхСредств) Тогда ТекстУсловия=ТекстУсловия+" |И (СтатьяДвиженияДенежныхСредств=&ПустойСтатьяДвиженияДенежныхСредств ИЛИ СтатьяДвиженияДенежныхСредств=&СтатьяДвиженияДенежныхСредств)"; Запрос.УстановитьПараметр("СтатьяДвиженияДенежныхСредств",СтатьяДвиженияДенежныхСредств); Запрос.УстановитьПараметр("ПустойСтатьяДвиженияДенежныхСредств",Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка()); КонецЕсли; Если ЗначениеЗаполнено(ВидОперацииПлан) Тогда ТекстУсловия=ТекстУсловия+" |И "+ДокументПланирования+".ВидОперации = &ВидОперации"; Запрос.УстановитьПараметр("ВидОперации",ВидОперацииПлан); КонецЕсли; Если ЗначениеЗаполнено(Организация) Тогда ТекстУсловия=ТекстУсловия+" |И ("+ДокументПланирования+".Организация=&ПустойОрганизация ИЛИ "+ДокументПланирования+".Организация=&Организация)"; Запрос.УстановитьПараметр("Организация",Организация); Запрос.УстановитьПараметр("ПустойОрганизация",Справочники.Организации.ПустаяСсылка()); КонецЕсли; Если ЗначениеЗаполнено(Сделка) Тогда ТекстУсловия=ТекстУсловия+" |И (Сделка=Неопределено ИЛИ Сделка=&Сделка)"; Запрос.УстановитьПараметр("Сделка",Сделка); КонецЕсли; Если ЗначениеЗаполнено(ДокументРасчетовСКонтрагентом) Тогда ТекстУсловия=ТекстУсловия+" |И (ДокументРасчетовСКонтрагентом=Неопределено ИЛИ ДокументРасчетовСКонтрагентом=&ДокументРасчетовСКонтрагентом)"; Запрос.УстановитьПараметр("ДокументРасчетовСКонтрагентом",ДокументРасчетовСКонтрагентом); КонецЕсли; Если ЗначениеЗаполнено(Проект) Тогда ТекстУсловия=ТекстУсловия+" |И (Проект=&ПустойПроект ИЛИ Проект=&Проект)"; Запрос.УстановитьПараметр("Проект",Проект); Запрос.УстановитьПараметр("ПустойПроект",Справочники.Проекты.ПустаяСсылка()); КонецЕсли; Если ВключенныеВПлатежныйКалендарь=Истина Тогда ТекстУсловия=ТекстУсловия+" |И "+ДокументПланирования+".ВключатьВПлатежныйКалендарь=Истина"; КонецЕсли; ТекстУсловия=Сред(ТекстУсловия,3); Запрос.Текст="ВЫБРАТЬ | ПланируемыеДвиженияОстатки.ДоговорКонтрагента, | ПланируемыеДвиженияОстатки.Сделка, | ПланируемыеДвиженияОстатки.ДокументРасчетовСКонтрагентом, | ПланируемыеДвиженияОстатки.СтатьяДвиженияДенежныхСредств, | ПланируемыеДвиженияОстатки.Проект, | ПланируемыеДвиженияОстатки.ДокументПланирования КАК ДокументПланирования, | ПланируемыеДвиженияОстатки.ДокументПланирования.СуммаДокумента КАК СуммаДокумента, |ВЫРАЗИТЬ | (ВЫБОР | КОГДА НЕ СУММА(ПланируемыеДвиженияОстатки.СуммаПлатежа)=0 | ТОГДА СУММА(ПланируемыеДвиженияОстатки.СуммаПлатежа) | КОГДА ПланируемыеДвиженияОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов=&ВалютаДокумента | ТОГДА СУММА(ПланируемыеДвиженияОстатки.СуммаВзаиморасчетов) | КОГДА СУММА(ПланируемыеДвиженияОстатки.СуммаПлатежа)=0 | И НЕ КурсыДоговоры.Курс=0 | И НЕ &КурсДокумента=0 | ТОГДА СУММА(ПланируемыеДвиженияОстатки.СуммаВзаиморасчетов)КурсыДоговоры.Курс &КратностьДокумента | / (&КурсДокумента КурсыДоговоры.Кратность) | ИНАЧЕ | 0 | КОНЕЦ КАК ЧИСЛО (15,2)) КАК СуммаПлатежа, |ВЫРАЗИТЬ | (ВЫБОР | КОГДА СУММА(ПланируемыеДвиженияОстатки.СуммаПлатежа)=0 | ТОГДА КурсыДоговоры.Курс | КОГДА ПланируемыеДвиженияОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов=&ВалютаДокумента | ТОГДА &КурсДокумента | КОГДА НЕ СУММА(ПланируемыеДвиженияОстатки.СуммаПлатежа)=0 | И НЕ &КурсДокумента=0 | И НЕ СУММА(ПланируемыеДвиженияОстатки.СуммаВзаиморасчетов)= 0 | И НЕ &КратностьДокумента=0 Тогда | СУММА(ПланируемыеДвиженияОстатки.СуммаПлатежа) &КурсДокумента КурсыДоговоры.Кратность | / (СУММА(ПланируемыеДвиженияОстатки.СуммаВзаиморасчетов) &КратностьДокумента) | ИНАЧЕ | 0 | КОНЕЦ КАК ЧИСЛО (10,4)) КАК КурсВзаиморасчетов, |ВЫРАЗИТЬ | (ВЫБОР | КОГДА ПланируемыеДвиженияОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов=ПланируемыеДвиженияОстатки.ДокументПланирования.ВалютаДокумента | ТОГДА ПланируемыеДвиженияОстатки.ДокументПланирования.КурсДокумента | КОГДА НЕ СУММА(ПланируемыеДвиженияОстатки.СуммаПлатежа)=0 | И НЕ ПланируемыеДвиженияОстатки.ДокументПланирования.КурсДокумента=0 | И НЕ СУММА(ПланируемыеДвиженияОстатки.СуммаВзаиморасчетов)= 0 | И НЕ ПланируемыеДвиженияОстатки.ДокументПланирования.КратностьДокумента=0 Тогда | СУММА(ПланируемыеДвиженияОстатки.СуммаПлатежа) ПланируемыеДвиженияОстатки.ДокументПланирования.КурсДокумента КурсыДоговоры.Кратность | / (СУММА(ПланируемыеДвиженияОстатки.СуммаВзаиморасчетов) * ПланируемыеДвиженияОстатки.ДокументПланирования.КратностьДокумента) | ИНАЧЕ | 0 | КОНЕЦ КАК ЧИСЛО (10,4)) КАК КурсВзаиморасчетовПлан, | ПланируемыеДвиженияОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов, | СУММА(ПланируемыеДвиженияОстатки.СуммаВзаиморасчетов) КАК СуммаВзаиморасчетов, | ВЫБОР | КОГДА ПланируемыеДвиженияОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов=&ВалютаДокумента | ТОГДА &КратностьДокумента | ИНАЧЕ | КурсыДоговоры.Кратность | КОНЕЦ КАК КратностьВзаиморасчетов, | ПланируемыеДвиженияОстатки.ДокументПланирования." +?(ДокументПланирования="ЗаявкаНаРасходование","ДатаРасхода","ДатаПоступления")+" КАК ДатаДвижения |ИЗ ( | ВЫБРАТЬ | ПланируемыеОстатки.ДоговорКонтрагента, | ПланируемыеОстатки.Сделка, | ПланируемыеОстатки.ДокументРасчетовСКонтрагентом, | ПланируемыеОстатки.СтатьяДвиженияДенежныхСредств, | ПланируемыеОстатки.Проект, | ПланируемыеОстатки."+ДокументПланирования+" КАК ДокументПланирования, | ПланируемыеОстатки."+ДокументПланирования+".СуммаДокумента КАК СуммаДокумента, | ПланируемыеОстатки.СуммаОстаток КАК СуммаПлатежа, | ПланируемыеОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетов |ИЗ | РегистрНакопления."+ИмяРегистраПлан+".Остатки(,("+ТекстУсловия+"))КАК ПланируемыеОстатки"; Если НЕ ДокументСсылка = Неопределено Тогда Запрос.Текст = Запрос.Текст+" |ОБЪЕДИНИТЬ ВСЕ |ВЫБРАТЬ | ПланируемыеДвижения.ДоговорКонтрагента, | ПланируемыеДвижения.Сделка, | ПланируемыеДвижения.ДокументРасчетовСКонтрагентом, | ПланируемыеДвижения.СтатьяДвиженияДенежныхСредств, | ПланируемыеДвижения.Проект, | ПланируемыеДвижения."+ДокументПланирования+" КАК ДокументПланирования, | ПланируемыеДвижения."+ДокументПланирования+".СуммаДокумента КАК СуммаДокумента, | ПланируемыеДвижения.Сумма КАК СуммаПлатежа, | ПланируемыеДвижения.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов |ИЗ | РегистрНакопления."+ИмяРегистраПлан+" КАК ПланируемыеДвижения |ГДЕ | ПланируемыеДвижения.Регистратор = &Регистратор"; Если СтрДлина(ТекстУсловия)>0 Тогда Запрос.Текст=Запрос.Текст+" |И ("+ТекстУсловия+")"; КонецЕсли; КонецЕсли; Запрос.Текст=Запрос.Текст+")КАК ПланируемыеДвиженияОстатки |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаПлатежа, ) КАК КурсыДоговоры | ПО ПланируемыеДвиженияОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов = КурсыДоговоры.Валюта |СГРУППИРОВАТЬ ПО | ПланируемыеДвиженияОстатки.ДоговорКонтрагента, | ПланируемыеДвиженияОстатки.Сделка, | ПланируемыеДвиженияОстатки.ДокументРасчетовСКонтрагентом, | ПланируемыеДвиженияОстатки.СтатьяДвиженияДенежныхСредств, | ПланируемыеДвиженияОстатки.Проект, | ПланируемыеДвиженияОстатки.ДокументПланирования, | КурсыДоговоры.Курс, | КурсыДоговоры.Кратность"; Запрос.УстановитьПараметр("СуммаДокумента",СуммаДляПодбора); Запрос.УстановитьПараметр("Контрагент",Контрагент); Запрос.УстановитьПараметр("ПустойВалютаДокумента",Справочники.Валюты.ПустаяСсылка()); Запрос.УстановитьПараметр("ДатаПлатежа",ДатаДок); Запрос.УстановитьПараметр("КурсДокумента",КурсДокумента); Запрос.УстановитьПараметр("КратностьДокумента",КратностьДокумента); Запрос.УстановитьПараметр("ВалютаДокумента",ВалютаДокумента); Если НЕ ДокументСсылка = Неопределено Тогда Запрос.УстановитьПараметр("Регистратор",ДокументСсылка.Ссылка); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |