Имя: Пароль:
1C
1С v8
Запрос: ПОДОБНО ВЫРАЗИТЬ() / ПОДОБНО ПРЕДСТАВЛЕНИЕ() - возможно ли?
0 N-S-B
 
05.04.18
22:14
В СКД отчете необходимо сравнить строку и наименование элемента справочника. Справочник передается как параметр в отчет.
В запросе пытаюсь сделать так:

ГДЕ
    ВТ.Наименование ПОДОБНО ПРЕДСТАВЛЕНИЕ(&МойСправочник)

либо

ГДЕ
    ВТ.Наименование ПОДОБНО ВЫРАЗИТЬ(&МойСправочник КАК СТРОКА(10))

Ругается на неверные параметры ПОДОБНО. Как бы это реализовать?
1 VS-1976
 
05.04.18
22:18
(0) Реализуй через левое соединение
2 zwei
 
05.04.18
22:19
Левое соединение справочник как псевдоним по псевдоним.ссылка = &параметр
Где вт.наменование подобно псевдоним.наименоваие

Как то так
3 VS-1976
 
05.04.18
22:29
(2) Только немного по другому можно, к примеру так:
ВНУТРЕННЕЕ соединение справочник как псевдоним
ПО псевдоним.ссылка = &параметр
И вт.наменование подобно "%" + ПОДСТРОКА(псевдоним.наименоваие, 10 ) + "%"
4 Фрэнки
 
05.04.18
22:32
<Выражение> [НЕ] ПОДОБНО <Литерал типа СТРОКА> [СПЕЦСИМВОЛ <Литерал типа СТРОКА>]

т.е. после ПОДОБНО нельзя написать &МойСправочник а нужно реально слепить некий литерал
5 Фрэнки
 
05.04.18
22:44
вот из конфигурации пример

    ТекстЗапроса = "
    |ВЫБРАТЬ
    |    КОЛИЧЕСТВО(*) КАК Количество
    |ИЗ
    |    ПланОбмена.[ИмяПланаОбмена] КАК Таблица
    |ГДЕ
    |    Таблица.Наименование ПОДОБНО &ШаблонИмени";
    
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ПланОбменаАвтономнойРаботы());
    
    Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапроса;
    Запрос.УстановитьПараметр("ШаблонИмени", НаименованиеАвтономногоРабочегоМестаПоУмолчанию() + "%");
    
    Выборка = Запрос.Выполнить().Выбрать();

в нем видно, что ШаблонИмени это литерал с приставленным знаком процент в хвост
6 N-S-B
 
06.04.18
10:00
(2) (3) Спасибо, разобрался
(5) Это понятно, но мне надо было в рамках только запроса это решить
7 catena
 
06.04.18
10:07
где ВТ.Наименование подобно "%"+Выразить(&МойСправочник как Справочник.Номенклатура).Наименование+"%"
8 N-S-B
 
06.04.18
11:51
(7) Во круто, так даже еще проще)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.