Период в обработке "Регистрация СФ на аванс" УПП 1.3

1. marat.coolls 17.12.20 11:11 Сейчас в теме
Всем доброго дня. В УПП есть обработка по регистрации сф на аванс. Но при указании периода, она все равно предлагает тебе создать сф на аванс за предыдущие периоды (скорей из за того, что в настройках проги стоит "Регистрировать сф всегда при получении аванса).
Формировать СФ за прошлый периоды в УПП для нас не вариант, их очень много.

Как заставить обработку предлагать создать сф на аванс только за указанный период? Может есть готовые обработки на старте, которые точно учитывают период? Или может кто делал и может посоветовать, где указать условия на дату.

Я уже пробовал, в запросе проставил дату. Все работало хорошо пару месяцев, пока платежи не стали делать на несколько заказов, тогда программа стала работать некорректно.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. marat.coolls 17.12.20 11:23 Сейчас в теме
Запрос.Текст =
	"ВЫБРАТЬ
	|	РасчетыПоРеализации.Период КАК Период,
	|	РасчетыПоРеализации.Организация КАК Организация,
	|	РасчетыПоРеализации.Контрагент КАК Контрагент,
	|	РасчетыПоРеализации.ДоговорКонтрагента КАК ДоговорКонтрагента,
	|	РасчетыПоРеализации.Документ КАК ДокументОснование,
	|	НАЧАЛОПЕРИОДА(РасчетыПоРеализации.ДатаОплаты, ДЕНЬ) КАК ДокументАвансаДата,
	|	NULL КАК СтавкаНДС,
	|	РасчетыПоРеализации.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаРасчетов,
	|	РасчетыПоРеализации.СуммаРегКонечныйОстаток КАК КонечныйОстаток,
	|	РасчетыПоРеализации.СуммаРегНачальныйОстаток КАК НачальныйОстаток,
	|	РасчетыПоРеализации.СуммаВзаиморасчетовНачальныйОстаток КАК ВалютныйНачальныйОстаток,
	|	РасчетыПоРеализации.СуммаВзаиморасчетовКонечныйОстаток КАК ВалютныйКонечныйОстаток,
	|	РасчетыПоРеализации.ДоговорКонтрагента.РасчетыВУсловныхЕдиницах КАК РасчетыВУсловныхЕдиницах,
	|	ВЫБОР
	|		КОГДА РасчетыПоРеализации.ДоговорКонтрагента.ПорядокРегистрацииСчетовФактурНаАвансПоДоговору = ЗНАЧЕНИЕ(Перечисление.ПорядокРегистрацииСчетовФактурНаАванс.ПустаяСсылка)
	|			ТОГДА ЕСТЬNULL(УчетнаяПолитикаОрганизаций.ПорядокРегистрацииСчетовФактурНаАванс, &ТекущийПорядокРегистрацииСчетовФактурНаАванс)
	|		ИНАЧЕ РасчетыПоРеализации.ДоговорКонтрагента.ПорядокРегистрацииСчетовФактурНаАвансПоДоговору
	|	КОНЕЦ КАК ПорядокРегистрацииСчетовФактурНаАванс,


/////////////////////////////////////ИСКЛЮЧАЮ ПЛАТЕЖКИ, ДАТА РЕЛИЗАЦИИ КОТОРЫХ = ПЛАТЕЖУ, Т.К. ЭТО УЖЕ НЕ АВАНС////++++

	|	ВЫБОР
	|		КОГДА ВложенныйЗапрос.Дата = НАЧАЛОПЕРИОДА(РасчетыПоРеализации.Документ.Дата, ДЕНЬ)
	|			ТОГДА 1
	|		ИНАЧЕ 2
	|	КОНЕЦ КАК Показывать
////////////---////////////////////////////////////////////////////////////­///////////////////
	|ПОМЕСТИТЬ ВТРасчеты
	|ИЗ
	|	РегистрНакопления.РасчетыПоРеализацииВУсловныхЕдиницахОрганизации.ОстаткиИОбороты(
	|			&НачалоПериода,
	|			&КонецПериода,
	|			День,
	|			,
	|			Организация = &Организация
	|				И НЕ Документ ССЫЛКА Документ.ОтчетКомиссионераОПродажах
	|				И ВЫБОР
	|					КОГДА ЕСТЬNULL(Документ.ДокументОснование, НЕОПРЕДЕЛЕНО) ССЫЛКА Документ.ВводНачальныхОстатковНДС
	|						ТОГДА Документ.ДокументОснование = ЗНАЧЕНИЕ(Документ.ВводНачальныхОстатковНДС.ПустаяСсылка)
	|					ИНАЧЕ ИСТИНА
	|				КОНЕЦ
	|				И ВЫБОР
	|					КОГДА Документ ССЫЛКА Документ.ДокументРасчетовСКонтрагентом
	|						ТОГДА ВЫРАЗИТЬ(Документ КАК Документ.ДокументРасчетовСКонтрагентом).ДокументОснование = ЗНАЧЕНИЕ(Документ.ВводНачальныхОстатковНДС.ПустаяСсылка)
	|					ИНАЧЕ ИСТИНА
	|				КОНЕЦ
	|				И НЕ ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)) КАК РасчетыПоРеализации
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаОрганизаций КАК УчетнаяПолитикаОрганизаций
	|		ПО (УчетнаяПолитикаОрганизаций.Организация = РасчетыПоРеализации.Организация)
	|			И (УчетнаяПолитикаОрганизаций.Период В
	|				(ВЫБРАТЬ
	|					МАКСИМУМ(УчетнаяПолитикаОрганизаций.Период) КАК Период
	|				ИЗ
	|					РегистрСведений.УчетнаяПолитикаОрганизаций КАК УчетнаяПолитикаОрганизаций
	|				ГДЕ
	|					РасчетыПоРеализации.Период >= УчетнаяПолитикаОрганизаций.Период
	|					И УчетнаяПолитикаОрганизаций.Организация = РасчетыПоРеализации.Организация))


///////////////////////+++++////////////////////////////////­//////////////

	|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	|			РеализацияТоваровУслуг.Сделка КАК Сделка,
	|			НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) КАК Дата
	|		ИЗ
	|			Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг) КАК ВложенныйЗапрос
	|		ПО РасчетыПоРеализации.Сделка = ВложенныйЗапрос.Сделка
/////////////////----///////////////////////////////////


	|ГДЕ
	|	(РасчетыПоРеализации.СуммаВзаиморасчетовКонечныйОстаток > 0
	|			ИЛИ РасчетыПоРеализации.СуммаВзаиморасчетовНачальныйОстаток > 0
	|				И ВЫБОР
	|					КОГДА РасчетыПоРеализации.Документ ССЫЛКА Документ.ДокументРасчетовСКонтрагентом
	|						ТОГДА ВЫРАЗИТЬ(РасчетыПоРеализации.Документ КАК Документ.ДокументРасчетовСКонтрагентом).ДокументОснование = ЗНАЧЕНИЕ(Документ.ВводНачальныхОстатковНДС.ПустаяСсылка)
	|					ИНАЧЕ ИСТИНА
	|				КОНЕЦ)


////////////////////////////////////////ТУТ СТАВИЛ УСЛОВИЕ НА ПЕРИОД///////////////////////////////

	|	И НАЧАЛОПЕРИОДА(РасчетыПоРеализации.ДатаОплаты, ДЕНЬ) >= &ТекДат
	|	И НАЧАЛОПЕРИОДА(РасчетыПоРеализации.ДатаОплаты, ДЕНЬ) <= &ТекДат1

///////////////////////////////////////////////-----////////////////////////////////////////////////////////////­
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	АвансыПоДоговорамКомиссии.Период,
	|	АвансыПоДоговорамКомиссии.Организация,
	|	АвансыПоДоговорамКомиссии.Покупатель,
	|	ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка),
	|	АвансыПоДоговорамКомиссии.СчетФактура,
	|	АвансыПоДоговорамКомиссии.ДатаСобытия,
	|	АвансыПоДоговорамКомиссии.СтавкаНДС,
	|	&ВалютаРегламентированногоУчета,
	|	АвансыПоДоговорамКомиссии.СуммаБезНДСКонечныйОстаток + АвансыПоДоговорамКомиссии.НДСКонечныйОстаток,
	|	АвансыПоДоговорамКомиссии.СуммаБезНДСНачальныйОстаток + АвансыПоДоговорамКомиссии.НДСНачальныйОстаток,
	|	АвансыПоДоговорамКомиссии.СуммаБезНДСНачальныйОстаток + АвансыПоДоговорамКомиссии.НДСНачальныйОстаток,
	|	АвансыПоДоговорамКомиссии.СуммаБезНДСКонечныйОстаток + АвансыПоДоговорамКомиссии.НДСКонечныйОстаток,
	|	ЛОЖЬ,
	|	&ТекущийПорядокРегистрацииСчетовФактурНаАванс,
	|	2
	|ИЗ
	|	РегистрНакопления.НДСАвансыПоДоговорамКомиссии.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , Организация = &Организация) КАК АвансыПоДоговорамКомиссии
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	Расчеты.Период КАК Период,
	|	Расчеты.Организация,
	|	Расчеты.Контрагент,
	|	Расчеты.ДоговорКонтрагента,
	|	Расчеты.ДокументОснование,
	|	Расчеты.ВалютаРасчетов,
	|	0 КАК СуммаАванса,
	|	0 КАК ВалютнаяСуммаАванса,
	|	Расчеты.КонечныйОстаток,
	|	Расчеты.НачальныйОстаток,
	|	Расчеты.ВалютныйКонечныйОстаток,
	|	Расчеты.ВалютныйНачальныйОстаток,
	|	Расчеты.РасчетыВУсловныхЕдиницах,
	|	Расчеты.ДокументАвансаДата,
	|	ДАТАВРЕМЯ(1, 1, 1) КАК ДатаВыписки,
	|	Расчеты.ПорядокРегистрацииСчетовФактурНаАванс,
	|	ДАТАВРЕМЯ(1, 1, 1) КАК КонецНалоговогоПериода,
	|	Расчеты.СтавкаНДС
	|ИЗ
	|	ВТРасчеты КАК Расчеты
	|ГДЕ
	|	ВЫБОР
	|			КОГДА Расчеты.ПорядокРегистрацииСчетовФактурНаАванс = ЗНАЧЕНИЕ(Перечисление.ПорядокРегистрацииСчетовФактурНаАванс.НеРегистрироватьСчетаФактурыНаАвансы)
	|				ТОГДА ЛОЖЬ
	|			ИНАЧЕ ИСТИНА
	|		КОНЕЦ
	|	И Расчеты.Показывать = 2
	|
	|УПОРЯДОЧИТЬ ПО
	|	Период";

	Если СписокТиповДокументовАванса.Количество()>0 Тогда
		ОграничениеТиповДокументов = "";
		
		Для Каждого ТипДокументовАванса Из СписокТиповДокументовАванса Цикл
			ОграничениеТиповДокументов = ОграничениеТиповДокументов + ?(ПустаяСтрока(ОграничениеТиповДокументов), " И ( ", " ИЛИ ") + "Документ ССЫЛКА Документ." + ТипДокументовАванса;
		КонецЦикла; 
		
		ОграничениеТиповДокументов = ОграничениеТиповДокументов+") ";
		
		Запрос.Текст = СтрЗаменить(Запрос.Текст,",
			|			Организация = &Организация", ",
			|			Организация = &Организация"
			+ ОграничениеТиповДокументов);
	КонецЕсли; 
	
	//+++
	Запрос.УстановитьПараметр("ТекДат", ЭтотОбъект.НачалоПериода);
	Запрос.УстановитьПараметр("ТекДат1", ЭтотОбъект.КонецПериода);
	//---
		
	ТаблицаАвансовТекущая = Запрос.Выполнить().Выгрузить();
Показать
3. marat.coolls 17.12.20 13:37 Сейчас в теме
Но при указании периода, она все равно предлагает тебе создать сф на аванс за предыдущие периоды (скорей из за того, что в настройках проги стоит "Регистрировать сф всегда при получении аванса).

НЕ, НЕ ИЗ ЗА ЭТОГО. Зачем тогда в обработке этот период стоит?
4. marat.coolls 18.12.20 09:08 Сейчас в теме +0.74 $m
Как удалось установить, неверно отрабатывала не дата.

Неверно отрабатывала доработка по скрытию данных тех платежек, которые были сделаны в день реализации. Что уже не является авансом.

Теперь надо понять как это правильно сделать.

Т.е. если платежка пришла раньше самой первой реализации по заказу, то это аванс (с разницей в день). Иначе исключить.
Оставьте свое сообщение
Вакансии
Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день