Имя: Пароль:
1C
1С v8
Наименование товара в кавычках в запросе
0 admin1s
 
07.09.23
13:04
Коллеги подскажите пожалуйста, нужно в запросе написать и найти товар в названии которого есть кавычки, пример наименования для поиска в запросе: Туфли "Классные", как написать чтобы запрос понимал что ищем наименование целиком а не до кавычек? Можно пример кода?

ВЫБРАТЬ
    Номенклатура, Характеристика, ВНаличии, Склад

ИЗ
    РегистрНакопления.ТоварыНаСкладах
ГДЕ
    ТоварыНаСкладах.Наименование = (Туфли "Классные") ?? // вот тут нужно указать что найти нужно именно это (Туфли "Классные")

Если поиск в данном случае для регистра и по журналам документов, просьба привести пример поиска для обоих.
1 admin1s
 
07.09.23
13:06
Может использовать LIKE или двойное экранирование поможет: ""Туфли "Классные"""??
2 RomaH
 
naïve
07.09.23
13:12
ВЫБРАТЬ
    Номенклатура, Характеристика, ВНаличии, Склад

ИЗ
    РегистрНакопления.ТоварыНаСкладах
ГДЕ
    ТоварыНаСкладах.Наименование = &Наименование
3 Donkey_hot
 
07.09.23
13:13
(0) Используйте параметр
4 stopa85
 
07.09.23
13:14
(0) не правильно - есть опасность SQL-инъекции
(2) правильно
5 DJ Anthon
 
07.09.23
13:14
""Туфли """"Классные""""""
но такое только для разовых запросов, для обработок пилите параметры и сохраняемые реквизиты или даже регистры сведений
6 admin1s
 
07.09.23
13:16
(3) Благодарю, какой параметр?
7 Donkey_hot
 
07.09.23
13:19
(6) Текст запроса как в 2.
Далее: Запрос.УстановитьПараметр("Наименование", "Туфли ""Классные""")
Если выбираете в консоли запросов, то задаете параметр как Туфли "Классные"
8 AlexeyKh
 
07.09.23
13:26
отлично рабоает (проверял в консоли)
выбрать первые 100
    таб.Ссылка,
    таб.Наименование,
    таб.НаименованиеПолное
из
    СПравочник.Номенклатура таб
где
    таб.Наименование подобно "%""%"
9 admin1s
 
07.09.23
13:29
(7) т.е. для консоли значит будет без двойного экранирования? Так не срабатывает
10 admin1s
 
07.09.23
13:30
(8) а где в вашем примере наименование с кавычками?
11 admin1s
 
07.09.23
13:31
Не совсем понял как это сработает для консоли?

ВЫБРАТЬ
    Номенклатура, Характеристика, ВНаличии, Склад

ИЗ
    РегистрНакопления.ТоварыНаСкладах
ГДЕ
    ТоварыНаСкладах.Наименование = &Наименование
    УстановитьПараметр("Наименование", Туфли ""Классные"")

выдает синтакс-ю ошибку.
12 Жан Пердежон
 
07.09.23
13:35
Для консоли параметры в интерфейсе задаются:

ВЫБРАТЬ
    Номенклатура, Характеристика, ВНаличии, Склад

ИЗ
    РегистрНакопления.ТоварыНаСкладах
ГДЕ
    ТоварыНаСкладах.Наименование = &Наименование
13 admin1s
 
07.09.23
13:39
(12) Хорошо, а где поисковую строку вставить?
14 unbred
 
07.09.23
13:44
15 admin1s
 
07.09.23
13:45
(14) так не срабатывает, я же писал выше!
16 DJ Anthon
 
07.09.23
13:47
УстановитьПараметр("Наименование", "Туфли ""Классные""")
17 unbred
 
07.09.23
13:52
(4) да ему один раз найти и показать. он же не 1с программист, если я правильно понял.
18 unbred
 
07.09.23
13:52
(0)
ВЫБРАТЬ
    "А" КАК Поле1
ПОМЕСТИТЬ ВТ_1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    """Б"""
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_1.Поле1 КАК Поле1
ИЗ
    ВТ_1 КАК ВТ_1
ГДЕ
    ВТ_1.Поле1 ПОДОБНО "%""%"
19 admin1s
 
07.09.23
13:56
Код:

ВЫБРАТЬ
    Номенклатура КАК Товары, Характеристика КАК Размер, ВНаличии КАК ЕстьНаСкладе, Склад

ИЗ
    РегистрНакопления.ТоварыНаСкладах
ГДЕ
    ТоварыНаСкладах.Номенклатура = &Номенклатура
    УстановитьПараметр("Номенклатура", "Туфли ""Классные""")

Ошибка:
{(8, 5)}: Синтаксическая ошибка "УстановитьПараметр("Номенклатура","
<<?>>УстановитьПараметр("Номенклатура", "Туфли ""Классные""")
20 Timon1405
 
07.09.23
14:00
(10) что непонятного в (8)?
по вашему ТЗ "в названии которого есть кавычки" условие ПОДОБНО "%""%" ищет ровно то что нужно.
21 unbred
 
07.09.23
14:04
(19) хватит уже)
ВЫБРАТЬ ПЕРВЫЕ 10
    ТоварыНаСкладах.Номенклатура КАК Товар,
    ТоварыНаСкладах.Номенклатура.Наименование  КАК Наименование,
    ТоварыНаСкладах.Характеристика КАК Размер,
    ТоварыНаСкладах.ВНаличии КАК ЕстьНаСкладе,
    ТоварыНаСкладах.Склад  КАК Склад
ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
    ТоварыНаСкладах.Номенклатура.Наименование ПОДОБНО "%""%"

меняешь "ПЕРВЫЕ 10" на "РАЗЛИЧНЫЕ", 10 баксов мне карту)
22 admin1s
 
07.09.23
14:05
(21) ПОДОБНО "%"Туфли "Классные""%" типо вот так?
23 unbred
 
07.09.23
14:07
(22) ПОДОБНО "%""Классные""%"
24 admin1s
 
07.09.23
14:09
(21) можно примеры все же по моему коду:

ВЫБРАТЬ
    Номенклатура КАК Товары, Характеристика КАК Размер, ВНаличии КАК ЕстьНаСкладе, Склад

ИЗ
    РегистрНакопления.ТоварыНаСкладах
ГДЕ
    ТоварыНаСкладах.Номенклатура ПОДОБНО "%"Туфли"%"

Ошибка:
{(7, 45)}: Синтаксическая ошибка "Джемпер"%""
ТоварыНаСкладах.Номенклатура ПОДОБНО "%"<<?>>Туфли"%"

Так не срабатывает
25 unbred
 
07.09.23
14:10
(24) это как раз пример по твоему коду)
26 admin1s
 
07.09.23
14:11
{(7, 5)}: Поле не найдено "ТоварыНаСкладах.Номенклатура"
<<?>>ТоварыНаСкладах.Номенклатура ПОДОБНО "%""Туфли""%"
27 unbred
 
07.09.23
14:14
(26) может просто скопируешь?)
посмотришь первые 10))
а то Наименование забыл)
28 Donkey_hot
 
07.09.23
14:18
(26)
1. Вы работаете в консоли или пишете код на встроенном языке?
2. Зачем вам значки процентов если вы ищете точное соответствие?
29 admin1s
 
07.09.23
14:20
(27) первые 10 выводит, а дальше то что, у меня конкретная строка поиска, нет задачи вывести просто первые 10!
30 admin1s
 
07.09.23
14:21
(28) Да, в консоли. Подскажите как сделать правильно применительно к моему коду?
31 Donkey_hot
 
07.09.23
14:21
(30)
32 admin1s
 
07.09.23
14:23
(28) подскажите кстати где прочесть о различиях написания кода в консоли и на встроенном языке?
33 Donkey_hot
 
07.09.23
14:23
(30) Про ПЕРВЫЕ 10 забываете, просто сносите их.
В условии пишете ГДЕ Наименование = &МоеНаименование
Далее находите вкладку или кнопку "Параметры" (в зависимости от версии консоли)
Если там еще нет строки с параметром МоеНаименование, находите кнопку типа "Взять из запроса" или что-то около того
В поле Значение указываете Туфли "Классные" безо всякого экранирования
34 Donkey_hot
 
07.09.23
14:24
(32) В книге Хрусталевой "Язык запросов 1С:Предприятие"
35 Donkey_hot
 
07.09.23
14:25
(33) ГДЕ Номенклатура.Наименование, разумеется.
36 admin1s
 
07.09.23
14:27
(33) да, спасибо, все четко и по делу. Хрусталеву прям сейчас читаю! При нажатии кнопки параметры выдает ошибку: "К сожалению возникла не предвиденная ситуация" ((( Качаю другую консоль с оф сайта, эта с инфостарта
37 Donkey_hot
 
07.09.23
14:35
(36) Ваша задача рассматривается в разделе "Как задать произвольное значение отбора записей из таблицы", но там все примеры на ПОДОБНО, а Вам нужно банальное равенство.
38 admin1s
 
07.09.23
14:42
(33) все работает но искомое слово не выдает, пробовал разные товары, на складе они точно есть - вижу по отчету

https://ru.paste.pics/PAHB5
39 Donkey_hot
 
07.09.23
14:45
(38) Вы сравниваете ссылку со строкой. Разумеется, ничего не выдает. Номенклатура.Наименование = &....
40 Donkey_hot
 
07.09.23
14:47
(38) И судя по решаемой задаче, вам нужно обращаться к виртуальной таблице Остатки регистра накопления, текущий запрос вернет вам просто набор приходно-расходных движений. Но это уже тема для отдельного разговора.
41 admin1s
 
07.09.23
14:49
(40) Все равно пусто (

ВЫБРАТЬ
    Номенклатура КАК Товары, Характеристика КАК Размер, ВНаличии КАК ЕстьНаСкладе, Склад

ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК Товары
ГДЕ Номенклатура.Наименование = &МоеНаименование
42 admin1s
 
07.09.23
14:50
(41) Хорошо, посмотрю
43 Donkey_hot
 
07.09.23
14:51
(41) Так у вас есть товар, который в точности называется "Блуза" без каких-либо опознавательных знаков или есть Блуза "Классная", Блуза "Так Себе" и т.п?
В данном случае вы ищете по строгому соответствию (т.к. тема начиналась с конкретного товара Туфли "Классные").
44 pasha_d
 
07.09.23
14:55
Найдите в справочнике свои туфли, найдите там код туфлей и потом:

УстановитьПараметр("Номенклатура", Справочники.Номенлатура.НайтиПоКоду("КодТуфлей"));
45 Donkey_hot
 
07.09.23
14:55
(44) Он в консоли работает.
46 pasha_d
 
07.09.23
14:57
(45) ну через ПОДОБНО тогда