Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:25

Как правильно заменить текст запроса?

Автор Yamuna, 03 окт 2019, 14:12

0 Пользователей и 1 гость просматривают эту тему.

Yamuna

Добрый день, подскажите как правильно заменить текст запроса, если пользователь в отчете ставит галочку "Без регистратора", то тогда срабатывает один текст, если галочки нет, то другой, вот код: Запрос.Текст =
"ВЫБРАТЬ
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Клиент КАК Клиент,
| ПРЕДСТАВЛЕНИЕ(ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Клиент) КАК КлиентПредставление,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Услуга КАК Услуга,
| ПРЕДСТАВЛЕНИЕ(ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Услуга) КАК УслугаПредставление,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяНачальныйОстаток КАК ВремяНачальныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяПриход КАК ВремяПриход,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяРасход КАК ВремяРасход,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаПриход КАК Начислено,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаРасход КАК Оплачено,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяКонечныйОстаток КАК ВремяКонечныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяОплаченоеПриход КАК ВремяОплаченоеПриход,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Регистратор КАК Регистратор
|ИЗ
| РегистрНакопления.ИТС_ВзаиморасчетыПоУслуге.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Регистратор, ,) КАК ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты
|ИТОГИ
| СУММА(Начислено),
| СУММА(Оплачено),
| СУММА(ВремяКонечныйОстаток),
| СУММА(СуммаКонечныйОстаток),
| СУММА(ВремяОплаченоеПриход)
|ПО
| ОБЩИЕ,
| Клиент";
Если  БезРегистратора Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст,"ВЫБРАТЬ
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Клиент КАК Клиент,
| ПРЕДСТАВЛЕНИЕ(ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Клиент) КАК КлиентПредставление,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Услуга КАК Услуга,
| ПРЕДСТАВЛЕНИЕ(ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Услуга) КАК УслугаПредставление,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяНачальныйОстаток КАК ВремяНачальныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяПриход КАК ВремяПриход,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяРасход КАК ВремяРасход,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаПриход КАК Начислено,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаРасход КАК Оплачено,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяКонечныйОстаток КАК ВремяКонечныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяОплаченоеПриход КАК ВремяОплаченоеПриход,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Регистратор КАК Регистратор
|ИЗ
| РегистрНакопления.ИТС_ВзаиморасчетыПоУслуге.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания,Регистратор, ,) КАК ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты
|ИТОГИ
| СУММА(Начислено),
| СУММА(Оплачено),
| СУММА(ВремяКонечныйОстаток),
| СУММА(СуммаКонечныйОстаток),
| СУММА(ВремяОплаченоеПриход
|ПО
| ОБЩИЕ,
| Клиент","ВЫБРАТЬ
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Клиент КАК Клиент,
| ПРЕДСТАВЛЕНИЕ(ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Клиент) КАК КлиентПредставление,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Услуга КАК Услуга,
| ПРЕДСТАВЛЕНИЕ(ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Услуга) КАК УслугаПредставление,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяНачальныйОстаток КАК ВремяНачальныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяПриход КАК ВремяПриход,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяРасход КАК ВремяРасход,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаПриход КАК Начислено,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаРасход КАК Оплачено,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяКонечныйОстаток КАК ВремяКонечныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
| ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяОплаченоеПриход КАК ВремяОплаченоеПриход
|ИЗ
| РегистрНакопления.ИТС_ВзаиморасчетыПоУслуге.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, , , ) КАК ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты
|ИТОГИ
| СУММА(Начислено),
| СУММА(Оплачено),
| СУММА(ВремяКонечныйОстаток),
| СУММА(СуммаКонечныйОстаток),
| СУММА(ВремяОплаченоеПриход
|ПО
| ОБЩИЕ,
| Клиент");
КонецЕсли;
//" + ТекстУсловия + "
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);

РезультатЗапроса = Запрос.Выполнить();

я посмотрел в отладчике, то сейчас почему то и в том и в другом случае текст запроса с регистратором ...

wise

Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

antoneus

Думаю, для экономии места и времени проще всего написать "в лоб".

    Запрос.Текст = "ВЫБРАТЬ
    |    ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Клиент КАК Клиент,
.....
    |    ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.ВремяОплаченоеПриход КАК ВремяОплаченоеПриход" + ?(БезРегистратора, "", ",
    |    ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты.Регистратор КАК Регистратор") + "
    |ИЗ
    |    РегистрНакопления.ИТС_ВзаиморасчетыПоУслуге.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания,Регистратор, ,) КАК ИТС_ВзаиморасчетыПоУслугеОстаткиИОбороты
.....

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск