Имя: Пароль:
1C
 
Почему СКД не ищет?
,
0 skyadmin
 
07.10.24
12:53
Строка поиска = "Мука"
1 skyadmin
 
07.10.24
12:56
Если поменять Содержит на Равно тогда находит.
В принципе не важно, но интересно)
2 Галахад
 
гуру
07.10.24
12:56
%мука%
3 skyadmin
 
07.10.24
12:59
(2) Не находит
4 skyadmin
 
07.10.24
13:03
ВЫБРАТЬ ПЕРВЫЕ 999
    СправочникНоменклатура.Ссылка КАК Значение
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
5 youalex
 
07.10.24
13:04
Итоговый запрос посмотри в консоли ИР (или макет компоновки в отладчике или в профайлере скуля сразу).
Если из группы Или условие Содержит вытащить?
6 skyadmin
 
07.10.24
13:12
(5) даже если оставить одно условие, все равно не находит
7 skyadmin
 
07.10.24
13:30
Макет "Содержит"
ГДЕ
    СправочникНоменклатура.НаименованиеПолное ПОДОБНО &amp;П СПЕЦСИМВОЛ "/"</query>
    </dataSet>
    <parameterValue>
        <name>П</name>
        <value xsi:type="xs:string">%ПараметрыДанных.СтрокаПоиска%</value>
    </parameterValue>
    <parameterValue>
        <name>СтрокаПоиска</name>
        <value xsi:type="xs:string">мука</value>
    </parameterValue>
    <template>

Макет "Равно"
ГДЕ
    СправочникНоменклатура.НаименованиеПолное = &amp;СтрокаПоиска</query>
    </dataSet>
    <parameterValue>
        <name>СтрокаПоиска</name>
        <value xsi:type="xs:string">мука</value>
    </parameterValue>

ничего не обычного не заметил
8 skyadmin
 
07.10.24
13:32
База файловая
9 formista2000
 
07.10.24
13:35
(0) попробуй СправочникНоменклатура.Наименование или представление
10 youalex
 
07.10.24
13:44
В консоли запросов воспроизводится?
ГДЕ НаименованиеПолное ПОДОБНО "%мука%"
11 skyadmin
 
07.10.24
13:55
(10) Да, вероятно проблема только с параметром СКД
12 youalex
 
09.10.24
02:30
(11) посмотрел в профайлере, при ПОДОБНО - 1с в скуль отдает имя параметра, а не значение, любопытно.

exec sp_executesql N'SELECT
T1._IDRRef,
T1._Description,
T1._IDRRef,
T1._Description
FROM dbo._Reference47 T1
WHERE (T1._Description LIKE P1 ESCAPE ''/'')',N'P1 nvarchar(4000)',N'%ПараметрыДанных.СтрокаПоиска%'


exec sp_executesql N'SELECT
T1._IDRRef,
T1._Description,
T1._IDRRef,
T1._Description
FROM dbo._Reference47 T1
WHERE (T1._Description = P1)',N'P1 nvarchar(4000)',N'молоко'
13 Сергиус
 
09.10.24
02:52
(12)Так это ж синтаксис такой - в конце текста запроса видно, что под параметром понимается строка, которая и подставляется.
14 youalex
 
09.10.24
05:14
(13) Первый запрос - ВидСравнения "Содержит" (передается имя параметра, что странно)
второй - Вид сравнения "Равно" (передается значение параметра, что логично)

но, собственно, это уже на этапе компоновки происходит, судя по (7)
15 osa1C
 
09.10.24
09:44
(0) Не понятно зачем ты путаешь SQL двумя условиями Равно и Подобно. Оставь только Подобно. Да ещё и связал их через И. Понятно, что будет находить только полное соответствие по первому условию.
  Связь через И на самом деле в твоем условии мешается. По твоему условию значение должно быть И Равно И Подобно. Если оно равно, то само собой подобно, это находит. А вот если оно ПОДОБНО, то оно не обязательно равно и соответственно ничего нет. Свяжи условия через ИЛИ, если уж так хочешь условие Равно, но я бы оставил только Подобно.
И на SQL, как и на 1С ругаться не надо. Всё они делают правильно, только это правильно не совпало с тем, что ты на самом деле имел ввиду.
16 toypaul
 
гуру
09.10.24
07:38
(12) в 1С накосячили :)