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

отбор в запросе

Автор Дарьч, 11 июл 2023, 16:50

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

Дарьч

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

Запрос.УстановитьПараметр("КонецПериода", ПараметрыОтчета.КонецПериода);
Запрос.УстановитьПараметр("НачалоПериода", ПараметрыОтчета.НачалоПериода);
Запрос.УстановитьПараметр("Операция", "Акты вып. работ");

antoneus

Установить вместо строки в параметр ссылку, очевидно же!

LexaK

Дарьч, так если хотите найти по Наименованию, так с ним и сравнивать надо
        |ГДЕ
        |    ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
        |    И ПоступлениеТоваровУслуг.ЮИ_Операция.НАИМЕНОВАНИЕ = &Операция

вообще, так не рекомендуют искать данные
если помогло нажмите: Спасибо!

Максим75

или ПоступлениеТоваровУслуг.ЮИ_Операция ССЫЛКА Документ.АктВыполненныхРабот

есть такая возможность, отобрать по конкретному виду регистратора

п.с. это работает, если конечно ЮИ_Операция ссылочного типа документ.

Дарьч

LexaK, подскажите, пожалуйста, а как было бы лучше искать?

Afinogen

Дарьч,

в типовых конфигах типа УТ, УПП и тд.д поиск по строковому прараметру обычно делают так

  |ГДЕ
        |    ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
        |    И ПоступлениеТоваровУслуг.ЮИ_Операция.НАИМЕНОВАНИЕ ПОДОБНО "ПараметрОперация"

Запрос.Текст = СтрЗаменить(Запрос.Текст,"Операция", ВашПараметр);

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

по началу строки

  |ГДЕ
        |    ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
        |    И ПоступлениеТоваровУслуг.ЮИ_Операция.НАИМЕНОВАНИЕ ПОДОБНО "ПараметрОперация%"

Запрос.Текст = СтрЗаменить(Запрос.Текст,"ПараметрОперация", ВашПараметр);

по произвольному вхождению

  |ГДЕ
        |    ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
        |    И ПоступлениеТоваровУслуг.ЮИ_Операция.НАИМЕНОВАНИЕ ПОДОБНО "%ПараметрОперация%"

Запрос.Текст = СтрЗаменить(Запрос.Текст,"ПараметрОперация", ВашПараметр);

по окончанию строки

  |ГДЕ
        |    ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
        |    И ПоступлениеТоваровУслуг.ЮИ_Операция.НАИМЕНОВАНИЕ ПОДОБНО "%ПараметрОперация"

Запрос.Текст = СтрЗаменить(Запрос.Текст,"ПараметрОперация", ВашПараметр);



LexaK

Дарьч, какой тип реквизита ?
ЮИ_Операция
если помогло нажмите: Спасибо!

Kvark5d

Дарьч, судя по первому сообщению тип реквизита ЮИ_Операция - справочник. 
Цитата: Дарьч от 11 июл 2023, 16:50хочу сделать отбор по названию операции, однако в выборке тип- Справочник... (когда делала без отбора)
Значит как писал antoneus:
Цитата: antoneus от 11 июл 2023, 17:16Установить вместо строки в параметр ссылку, очевидно же!
типа
Запрос.УстановитьПараметр("Операция", Справочники.ЮИ_Операции.НайтиПоНаименованию("Акты вып. работ");

Дарьч

Afinogen, спасибо большое. Буду знать)

Теги:

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

Рейтинг@Mail.ru

Поиск