Имя: Пароль:
1C
 
запрос с нестандартным условием
0 slasher
 
01.02.15
17:12
Здравствуйте, помогите составить запрос, не могу сам, или туплю, или знаний не хватает.

Суть: нужно выбрать договора контрагентов у которых в наименовании больше 50 символов.

На ум приходит такой:

ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка,
    ДоговорыКонтрагентов.Наименование
ИЗ
    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
ГДЕ
    СтрДлина(ДоговорыКонтрагентов) > 50

Но он не работает.
1 GROOVY
 
01.02.15
17:17
1. ДоговорЫ
2. Нет функции СтрДлина в языке запросов.
2 shuhard
 
01.02.15
17:18
(0) не стоит писать запросы в блокноте
3 slasher
 
01.02.15
17:19
(1) это понятно
4 slasher
 
01.02.15
17:20
(2) никто не пишет в блокноте
5 shuhard
 
01.02.15
17:23
(4) ты пишешь
в конструкторе получается нормальный запрос
ВЫБРАТЬ
    ВЫРАЗИТЬ(Контрагенты.Наименование КАК СТРОКА(5)) КАК Поле1,
    Контрагенты.Ссылка
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    (ВЫРАЗИТЬ(Контрагенты.Наименование КАК СТРОКА(5))) <> Контрагенты.Наименование
    И Контрагенты.ЭтоГруппа = ЛОЖЬ
6 salvator
 
01.02.15
17:25
(0) Попробуй так
ГДЕ
   ДоговорыКонтрагентов.Наименование > ПОДСТРОКА(ДоговорыКонтрагентов.Наименование,1,50)
7 slasher
 
01.02.15
17:26
я и писал в конструкторе, просто не мог придумать алгоритм.
Спасибо за помощь!
8 slasher
 
01.02.15
17:26
ну да, тоже должно пойти, спасибо.
9 Escander
 
01.02.15
17:27
(5) блин, опередил.... только не 5 а 50 и не ровно а больше 50.
10 slasher
 
01.02.15
17:27
(6)
11 Escander
 
01.02.15
17:27
+ (9) хотя да
12 slasher
 
01.02.15
17:34
(9) это уже мелочи, тут главное алгоритм, всё равно всем спасибо
13 GROOVY
 
01.02.15
17:46
Не пойдет. Приведение к строке выполняет уже сервер 1С.
14 shuhard
 
01.02.15
18:34
(13) теоретик =)
15 GROOVY
 
01.02.15
18:37
(14) Ну да. :)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший