Имя: Пароль:
1C
1С v8
как проверить в запросе содержит ли значение определенное слово?
0 LivingStar
 
03.08.12
12:49
как проверить в запросе содержит ли значение определенное слово?
1 GLazNik
 
03.08.12
12:50
подобно
2 LivingStar
 
03.08.12
12:51
(1) а можно пример?
3 Liova
 
03.08.12
12:51
Ищи в типовых %
но если надо именно слово, а не подстрока, тогда сложнее.
4 GLazNik
 
03.08.12
12:52
А в справке посмотреть не судьба?

Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если значение выражения удовлетворяет шаблону – результатом оператора будет ИСТИНА, иначе – ЛОЖЬ.

Следующие символы в строке шаблона являются служебными и имеют смысл, отличный от символа строки:

% (процент): последовательность, содержащая любое количество произвольных символов
_ (подчеркивание): один произвольный символ
[…] (в квадратных скобках один или несколько символов): любой одиночный символ из перечисленных внутри квадратных скобок
В перечислении могут встречаться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона.
[^…] (в квадратных скобках значок отрицания, за которым следует один или несколько символов): любой одиночный символ, кроме тех, которые перечислены следом за значком отрицания
Любой другой символ означает сам себя и не несет никакой дополнительной нагрузки.

Если в качестве самого себя необходимо записать один из перечисленных символов, то ему должен предшествовать <Спецсимвол>. Сам <Спецсимвол> (любой подходящий символ) определяется в этом же операторе после ключевого слова СПЕЦСИМВОЛ.

Например, шаблон “%АБВ[0-9][абвг]\_абв%” СПЕЦСИМВОЛ “\” означает подстроку, состоящую из последовательности символов:
буквы А; буквы Б; буквы В; одной цифры; одной из букв а, б, в или г; символа подчеркивания; буквы а; буквы б; буквы в.

Причем перед этой последовательностью может располагаться произвольный набор символов.
5 Error pro
 
03.08.12
12:52
Поле ПОДОБНО "%ИскомоеСлово%"
6 Heckfy
 
03.08.12
12:53
|ГДЕ
   |    И КонтактнаяИнформация.Представление ПОДОБНО &Представление


   Запрос.УстановитьПараметр("Представление","%ИскомоеСлово%");
7 LivingStar
 
03.08.12
12:55
чтот не получается И ЗначенияСвойствОбъектовСрезПоследних.Значение ПОДОБНО "%Несанкционирован%"
8 GLazNik
 
03.08.12
12:58
(7) а значение точно типа строка?
9 LivingStar
 
03.08.12
13:00
подскажите почему не отбирается
|
ВЫБРАТЬ
   Абоненты.Ссылка,
   Абоненты.ОсновнойДоговор.Подразделение
ПОМЕСТИТЬ ВТ_Абонент
ИЗ
   Справочник.Абоненты КАК Абоненты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗначенияСвойствОбъектовСрезПоследних.Объект,
   ЗначенияСвойствОбъектовСрезПоследних.Свойство,
   ЗначенияСвойствОбъектовСрезПоследних.Значение
ПОМЕСТИТЬ ВТ_Нелегальщик
ИЗ
   РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних(&ДатаВыбора, ) КАК ЗначенияСвойствОбъектовСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗначенияСвойствОбъектовСрезПоследних.Объект,
   ЗначенияСвойствОбъектовСрезПоследних.Свойство,
   ЗначенияСвойствОбъектовСрезПоследних.Значение
ПОМЕСТИТЬ ВТ_Участок
ИЗ
   РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних КАК ЗначенияСвойствОбъектовСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТ_Абонент.Ссылка,
   ВТ_Абонент.ОсновнойДоговорПодразделение,
   ВТ_Нелегальщик.Свойство,
   ВТ_Нелегальщик.Значение,
   ВТ_Участок.Свойство КАК Свойство1,
   ВТ_Участок.Значение КАК Значение1
ИЗ
   ВТ_Абонент КАК ВТ_Абонент
       ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Нелегальщик КАК ВТ_Нелегальщик
       ПО ВТ_Абонент.Ссылка = ВТ_Нелегальщик.Объект
       ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Участок КАК ВТ_Участок
       ПО ВТ_Абонент.Ссылка = ВТ_Участок.Объект
ГДЕ
   ВТ_Участок.Свойство = &Участок
   И ВТ_Участок.Значение ПОДОБНО "%Несанкционирован%"
   И ВТ_Нелегальщик.Свойство = &Нелегальщик
10 LivingStar
 
03.08.12
13:01
а вот отобралось

ВЫБРАТЬ
   Абоненты.Ссылка,
   Абоненты.ОсновнойДоговор.Подразделение
ПОМЕСТИТЬ ВТ_Абонент
ИЗ
   Справочник.Абоненты КАК Абоненты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗначенияСвойствОбъектовСрезПоследних.Объект,
   ЗначенияСвойствОбъектовСрезПоследних.Свойство,
   ЗначенияСвойствОбъектовСрезПоследних.Значение
ПОМЕСТИТЬ ВТ_Нелегальщик
ИЗ
   РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних(&ДатаВыбора, ) КАК ЗначенияСвойствОбъектовСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗначенияСвойствОбъектовСрезПоследних.Объект,
   ЗначенияСвойствОбъектовСрезПоследних.Свойство,
   ЗначенияСвойствОбъектовСрезПоследних.Значение
ПОМЕСТИТЬ ВТ_Участок
ИЗ
   РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних КАК ЗначенияСвойствОбъектовСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТ_Абонент.Ссылка,
   ВТ_Абонент.ОсновнойДоговорПодразделение,
   ВТ_Нелегальщик.Свойство,
   ВТ_Нелегальщик.Значение,
   ВТ_Участок.Свойство КАК Свойство1,
   ВТ_Участок.Значение КАК Значение1
ИЗ
   ВТ_Абонент КАК ВТ_Абонент
       ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Нелегальщик КАК ВТ_Нелегальщик
       ПО ВТ_Абонент.Ссылка = ВТ_Нелегальщик.Объект
       ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Участок КАК ВТ_Участок
       ПО ВТ_Абонент.Ссылка = ВТ_Участок.Объект
ГДЕ
   ВТ_Участок.Свойство = &Участок
   И ВТ_Участок.Значение.Наименование ПОДОБНО "%Несанкционирован%"
   И ВТ_Нелегальщик.Свойство = &Нелегальщик
11 Baximilian
 
03.08.12
13:06
Работает и хорошо, но у меня малька другой вопрос.
Почему ты используешь условие ГДЕ, если ВТ_Участок у тебя берется из виртуальной таблицы, в ней и указывай условие, быстрее запрос отработает. так же и с таблицей ВТ_нелегальщик.
12 hhhh
 
03.08.12
13:22
(10) это у вас ноу-хау

ЗначенияСвойствОбъектов.СрезПоследних

что-то раньше не встречал. Круто.
13 Maxus43
 
03.08.12
13:32
(12) :)