|
найти слово в строке | ☑ | ||
---|---|---|---|---|
0
dvrk
21.01.22
✎
08:19
|
Привет, не могу сделать условие "если слово в комментарии есть, то выводить параметр"
мне нужно если в "Комментарий" содержится "прол" тогда выводить параметр т.е. может быть комментарий "всем привет пролонгация/пролангацыя/пролынгация всем пока" и мне нужно просто находить если есть в строке 'прол', то выводить Если СтрНайти(НРег(ДоговорКонтрагента.Комментарий), "прол") Тогда ОбластьМакета.Параметры.Комментарий = "Пролонгация"; Иначе КонецЕсли; что не так сделал? |
|||
1
Малыш Джон
21.01.22
✎
08:24
|
(0) >>что не так сделал?
не посмотрел в СП какие значения возвращает функция СтрНайти() и подумал, что 1С сама как нибудь определит выполнилось то условие, которое ты имел в виду, или нет |
|||
2
Bigbro
21.01.22
✎
08:25
|
>0
|
|||
3
dvrk
21.01.22
✎
08:30
|
(1) согласен, проглядел (2) спасибо!
|
|||
4
pechkin
21.01.22
✎
08:32
|
(2) >0 равносильно истине
|
|||
5
dvrk
21.01.22
✎
08:44
|
(4) я понимаю, прошляпил просто, спасибо
|
|||
6
RomaH
naïve
21.01.22
✎
08:48
|
не понял - в чем дело-то было?
|
|||
7
pechkin
21.01.22
✎
08:53
|
(5) должно было работать и без >0
|
|||
8
ДенисЧ
21.01.22
✎
08:58
|
(7) С какого перепою?
|
|||
9
RomaH
naïve
21.01.22
✎
09:03
|
(8) всегда работало - неявное преобразование типов
|
|||
10
Ёпрст
21.01.22
✎
09:06
|
(8) аналогично, можно делать условие на количество() в коллекциях
Если нечто.Количество() тогда... |
|||
11
RomaH
naïve
21.01.22
✎
09:06
|
||||
12
dvrk
21.01.22
✎
09:07
|
(7) без >0 всегда комментарий был
|
|||
13
Ёпрст
21.01.22
✎
09:08
|
(12) не верю
|
|||
14
Гипервизор
21.01.22
✎
09:12
|
(7)(9) Вообще-то у СтрНайти() возвращаемое значение это число - позиция первого знака найденной подстроки.
Если строка не содержит указанной подстроки, то возвращается 0. Отсюда и требуемое "> 0". Откуда тут будет неявное преобразование? |
|||
15
dvrk
21.01.22
✎
09:14
|
(13) ну я не просто так же пришел плакаться)
|
|||
16
RomaH
naïve
21.01.22
✎
09:14
|
(14) вы меня пугаете
оттуда что 0 там где ожидается булев - преобразуется в Ложь а все что не равно 0 - в истину |
|||
17
Casey1984
21.01.22
✎
09:16
|
(15) Верни назад и проверь еще раз
|
|||
18
Casey1984
21.01.22
✎
09:17
|
(14) Угадай что вернет:
Сообщить(Булево(-2)); Сообщить(Булево(-1)); Сообщить(Булево(0)); Сообщить(Булево(1)); Сообщить(Булево(2)); |
|||
19
Ёпрст
21.01.22
✎
09:17
|
(16) дас ис так..
|
|||
20
RomaH
naïve
21.01.22
✎
09:18
|
||||
21
Гипервизор
21.01.22
✎
09:24
|
(16) Ага, я сам напугался. Да, был неправ.
(18) "Я понял - это намёк", только у вас в примере явное преобразование. |
|||
22
Casey1984
21.01.22
✎
09:26
|
(21) 1С умнее всех, не только поймет намек, но и преобразует
|
|||
23
Ёпрст
21.01.22
✎
09:27
|
(22) да, но почему то неявное преобразование в Число они вырезали после 7.7 , а вот в булево - добавили везде, теперь даже, в тексте запроса
|
|||
24
Casey1984
21.01.22
✎
09:28
|
(23) Это чтоб сильно не умничали
|
|||
25
Casey1984
21.01.22
✎
09:32
|
(23) Ахах, угадай что вернуло: Сообщить(1 + "2");
|
|||
26
Bigbro
21.01.22
✎
09:34
|
1
|
|||
27
Ёпрст
21.01.22
✎
09:34
|
(25) да да, а ты что вернёт 1+"2Вася"
|
|||
28
Ёпрст
21.01.22
✎
09:35
|
в клюшках это работало, в снеговие, если только явно там число будет в строке. Иначе исключение, впрочем как и явное преобразование Число()..
|
|||
29
Casey1984
21.01.22
✎
09:36
|
(27) Это уже неявное извращение
|
|||
30
Ёпрст
21.01.22
✎
09:36
|
А вот конструкции
Если Табличка.Количество() Тогда очень часто встречаются в коде |
|||
31
Casey1984
21.01.22
✎
09:37
|
(26) У меня 3, меняемся платформами?
|
|||
32
Serg_1960
21.01.22
✎
09:49
|
Сообщить(?(СтрНайти(" И если я найду Ваше слово?","слово"), "О чё спорим, господа?", "Sorry, был не прав, погорячился"));
|
|||
33
Bigbro
21.01.22
✎
09:53
|
(31) а ты 7.7 потянешь?
|
|||
34
Casey1984
21.01.22
✎
09:54
|
(33) Тяну, но тема 8-ка
|
|||
35
Bigbro
21.01.22
✎
10:02
|
(34) ну вот я и попытался угадать как оно в 8ке)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |