Отбор контрагентов в отчете

1. troshin71 14.08.20 14:07 Сейчас в теме
Добрый день, в отчете есть два отбора, первый отбирает контрагентов, второй исключает контрагентов (если по ним не делать отбор он должен выводить всех контрагентов и тогда уже из этих исключаем вторым отбором) как мне сделать в первый отбор если я не выбираю контрагентов что бы он всех выводил, а то он ждет когда я выберу нужных, помогите пожалуйста

"ВЫБРАТЬ
	|	СчетНаОплатуПокупателю.ДатаОплаты КАК ДатаОплаты,
	|	СчетНаОплатуПокупателю.СуммаДокумента КАК СуммаДокумента,
	|	СчетНаОплатуПокупателю.Контрагент,
	|	СчетНаОплатуПокупателю.Ссылка,
	|	СчетНаОплатуПокупателю.Комментарий
	|ИЗ
	|	Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
	|ГДЕ
	|	СчетНаОплатуПокупателю.ДатаОплаты МЕЖДУ &ДатаНачала И &ДатаОкончания
	|	И НЕ СчетНаОплатуПокупателю.ПометкаУдаления
	|	И (СчетНаОплатуПокупателю.Контрагент В (&СписокКонтрагент)
	|			ИЛИ &ВсеКонтрагенты)
	|	И НЕ СчетНаОплатуПокупателю.Контрагент В (&СписокКонтрагентов)
	|
	|УПОРЯДОЧИТЬ ПО
	|	ДатаОплаты
	|ИТОГИ
	|	СУММА(СуммаДокумента)
	|ПО
	|	ОБЩИЕ,
	|	ДатаОплаты";

	Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
	Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
	Запрос.УстановитьПараметр("СписокКонтрагент", Контрагент);
	Запрос.УстановитьПараметр("ВсеКонтрагенты", Контрагент.ЗначениеЗаполнено());
    Запрос.УстановитьПараметр("СписокКонтрагентов", Контрагент1);
	Результат = Запрос.Выполнить();
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
3. shura_a 14.08.20 14:24 Сейчас в теме +0.1 $m
Формируй запрос пс условием:

ТекстЗапроса = "ВЫБРАТЬ
| СчетНаОплатуПокупателю.ДатаОплаты КАК ДатаОплаты,
| СчетНаОплатуПокупателю.СуммаДокумента КАК СуммаДокумента,
| СчетНаОплатуПокупателю.Контрагент,
| СчетНаОплатуПокупателю.Ссылка,
| СчетНаОплатуПокупателю.Комментарий
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
|ГДЕ
| СчетНаОплатуПокупателю.ДатаОплаты МЕЖДУ &ДатаНачала И &ДатаОкончания
| И НЕ СчетНаОплатуПокупателю.ПометкаУдаления
"

Если Проверяешь указаны контрагенты Тогда
 ТекстЗапроса = ТекстЗапроса + "Запрос.УстановитьПараметр("СписокКонтрагент", Контрагент);"
КонецЕсли


ТекстЗапроса = ТекстЗапроса + "
|УПОРЯДОЧИТЬ ПО
| ДатаОплаты
|ИТОГИ
| СУММА(СуммаДокумента)
|ПО
| ОБЩИЕ,
| ДатаОплаты";
"
Показать



примерно так
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. silver_jr 75 14.08.20 14:21 Сейчас в теме
|ГДЕ
| СчетНаОплатуПокупателю.ДатаОплаты МЕЖДУ &ДатаНачала И &ДатаОкончания
| И НЕ СчетНаОплатуПокупателю.ПометкаУдаления
| И %УсловиеПоКонтрагентам%

Вот твой запрос со всеми условиями:
Запрос.Текст = СтрЗаменить(Запрос.Текст, "%УсловиеПоКонтрагентам%","(СчетНаОплатуПокупателю.Контрагент В (&СписокКонтрагент) ИЛИ &ВсеКонтрагенты) И НЕ СчетНаОплатуПокупателю.Контрагент В (&СписокКонтрагентов)")

Проверяешь списки контрагентов и в зависимости от их состояния заменяешь в тексте запроса на нужные условия.
Если вообще хочешь отключить, пишешь просто
Запрос.Текст = СтрЗаменить(Запрос.Текст, "%УсловиеПоКонтрагентам%", ИСТИНА)
3. shura_a 14.08.20 14:24 Сейчас в теме +0.1 $m
Формируй запрос пс условием:

ТекстЗапроса = "ВЫБРАТЬ
| СчетНаОплатуПокупателю.ДатаОплаты КАК ДатаОплаты,
| СчетНаОплатуПокупателю.СуммаДокумента КАК СуммаДокумента,
| СчетНаОплатуПокупателю.Контрагент,
| СчетНаОплатуПокупателю.Ссылка,
| СчетНаОплатуПокупателю.Комментарий
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
|ГДЕ
| СчетНаОплатуПокупателю.ДатаОплаты МЕЖДУ &ДатаНачала И &ДатаОкончания
| И НЕ СчетНаОплатуПокупателю.ПометкаУдаления
"

Если Проверяешь указаны контрагенты Тогда
 ТекстЗапроса = ТекстЗапроса + "Запрос.УстановитьПараметр("СписокКонтрагент", Контрагент);"
КонецЕсли


ТекстЗапроса = ТекстЗапроса + "
|УПОРЯДОЧИТЬ ПО
| ДатаОплаты
|ИТОГИ
| СУММА(СуммаДокумента)
|ПО
| ОБЩИЕ,
| ДатаОплаты";
"
Показать



примерно так
4. troshin71 14.08.20 14:31 Сейчас в теме
(3) а можно я вам отчет сброшу сюда? я пока только учусь сложновато для меня....
5. shura_a 14.08.20 14:39 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот