Имя: Пароль:
1C
1С v8
не могу вставить условие в запрос
0 LivingStar
 
09.02.12
10:48
почему не могу в запрос вставить такое условие?

ВЫБОР
   КОГДА
        Прав(РезОЗ.НаборКомплектов,5) = "(8.8)"
   ТОГДА
        СуммаД = КоличествоД*126.00
   ИНАЧЕ
        СуммаД = КоличествоД*110.00
КОНЕЦ
1 Scooter
 
09.02.12
10:50
а что такое    >Прав(РезОЗ.НаборКомплектов,5)

???
2 golden-pack
 
09.02.12
10:50
Прав
3 butterbean
 
09.02.12
10:50
вместо Прав юзай ПОДСТРОКА
4 golden-pack
 
09.02.12
10:50
(1) ты первый
5 cViper
 
09.02.12
10:50
(0) Ты не прав.
6 Wobland
 
09.02.12
10:53
(0) пробуй Сред(1, 5)
7 Wobland
 
09.02.12
10:53
а весело будет, если НаборКомплектов - не строка
8 LivingStar
 
09.02.12
10:53
(1) обрезка строки
(3) то есть в запросе нельзя пользовать Прав() ... да что то вспоминаю....
ок, счас буду пробовать ПОДСТРОКА
9 LivingStar
 
09.02.12
10:54
(7) строка
10 LivingStar
 
09.02.12
10:58
(6) такие функции не катят, попробовал, только ПОДСТРОКА
11 Wobland
 
09.02.12
11:01
(10) шутку не понял, да? ПОДОБНО ещё покури
12 LivingStar
 
09.02.12
11:08
(3) а не подскажете как использовать эту функцию?
тама нужно употреблять знаки %, никак не найду пример...
13 Wobland
 
09.02.12
11:11
пора в книгу знаний эту картинку
http://i068.radikal.ru/1202/87/57af480b0f73.jpg
ПОДОБНО "(|)%"
14 golden-pack
 
09.02.12
11:15
(11) отмазался
15 LivingStar
 
09.02.12
11:17
(13) открыл, ничего не понял....
16 LivingStar
 
09.02.12
11:29
выдает не верные параметры!

ВЫБОР
   КОГДА
        ПОДСТРОКА(КомплектИЕгоСоставляющие.Номенклатура,5,1) = "(8.8)"
   ТОГДА
        Опоры.КоличествоР*КомплектИЕгоСоставляющие.Количество*КомплектИЕгоСоставляющие.Вес*126.00
   ИНАЧЕ
        Опоры.КоличествоР*КомплектИЕгоСоставляющие.Количество*КомплектИЕгоСоставляющие.Вес*110.00
КОНЕЦ
17 Wobland
 
09.02.12
11:34
(7) - (9)
18 Wobland
 
09.02.12
11:34
и это не говоря о том, что такая подстрока выделит один пятый символ
19 LivingStar
 
09.02.12
11:36
(18) мне надо выделить 5 символов справа от строки
20 Wobland
 
09.02.12
11:37
(19) справа от строки? это шаг за грань какой-то
21 LivingStar
 
09.02.12
11:40
от конца строки отсекать 5 символов, к примеру = "(8.8)"
22 Wobland
 
09.02.12
11:41
(21) делай потом
23 Wobland
 
09.02.12
11:41
спорим, не убедишь, что тебе это именно в запросе надо?
24 LivingStar
 
09.02.12
11:44
это условие для получения определенного значения
из которого будет склыдываться другое значение, мне нужно получить его
обрабатывал это в коде, сейчас нужно все менять так как поставили другое условие
если это можно сделать в запросе то это оптимальнее
25 Wobland
 
09.02.12
11:46
почему оптимальнее? делай уже после наконец
26 Ткачев
 
09.02.12
11:46
Как то так наверно:
ПОДСТРОКА(КомплектИЕгоСоставляющие.Номенклатура, ДЛИНАРЕКВИЗИТА - 4, 5) = "(8.8)"

если длина реквизита может менятся:
ПОДСТРОКА(КомплектИЕгоСоставляющие.Номенклатура,&ДлинаРеквизита,5) = "(8.8)"
Запрос.УстановитьПараметр("ДлинаРеквизита", Метаданные.ТВОЙОБЪЕКТ.Реквизиты.НаборКомплектов.Тип.КвалификаторыСтроки.Длина) - 4)
27 LivingStar
 
09.02.12
11:47
(25) потому что нужно пересчитать определенные значения, если я сделаю то о чем пишу, то смогу все это получить в запросе используя определенные пересчеты, если нет то придется изобретать велосипед,!!!!
28 LivingStar
 
09.02.12
11:48
(26) спасибо!!! все страшнее и страшнее....
29 LivingStar
 
09.02.12
11:50
(26) я обрабатываю Тч документа, ваше предложение запускать запрос в цикле что бы задавать условие на длину строки номенклатуры.....
30 Ткачев
 
09.02.12
11:51
(29)А что запрос до цикла создать нельзя ?
31 Wobland
 
09.02.12
11:52
(26) оригиниально. спасибо
32 LivingStar
 
09.02.12
11:52
короче в запросе есть строка, наименование номенклатуры, нужно получать её последние 5 символов
33 LivingStar
 
09.02.12
11:53
(30) а как получать длину номенклатуры Тч документа?
34 Wobland
 
09.02.12
11:53
(26) а если строка переменной длины, не взлетит ведь
35 LivingStar
 
09.02.12
11:54
(34) конечно переменной!!! И нужно в запросе все делать, тама что нет функций таких как Прав()????
36 Ткачев
 
09.02.12
11:54
(32)ПОДСТРОКА(КомплектИЕгоСоставляющие.Номенклатура, ДЛИНАРЕКВИЗИТА - 4, 5)

ДЛИНАРЕКВИЗИТА - Посмотреть в конфигураторе.
37 Ткачев
 
09.02.12
11:54
Если переменной то надо подумать...
38 LivingStar
 
09.02.12
11:55
(36) СтрДлина() - нельзя использовать в запросе
39 Ткачев
 
09.02.12
11:57
А чем тогда ПОДОБНО "%(8.8)" не устраивает ?
40 Rovan
 
гуру
09.02.12
11:57
(35) делай лучше через ПОДОБНО
41 Wobland
 
09.02.12
11:58
(39)(40) ему не отобрать, а отпилить надо
42 LivingStar
 
09.02.12
11:58
(40) Прав(КомплектИЕгоСоставляющие.Номенклатура,5) - как это задать в запросе????
43 LivingStar
 
09.02.12
11:58
(39) в коде было так:

   Если Прав(РезОЗ.НаборКомплектов,5) = "(8.8)" Тогда
44 Wobland
 
09.02.12
11:59
(42) перестань любить мозг и делай в обработке результата
45 Wobland
 
09.02.12
11:59
(43) Если??? срочно в ПОДОБНО
46 Ткачев
 
09.02.12
12:00
(41)->(43)
47 LivingStar
 
09.02.12
12:01
(45) покажите пожалуйста пример, аналог (43)
48 LivingStar
 
09.02.12
12:02
(45) хрл тама в ПОДОБНО то?
49 Rovan
 
гуру
09.02.12
12:03
(47) КОГДА РезОЗ.НаборКомплектов ПОДОБНО "%8.8" ТОГДА
50 Ткачев
 
09.02.12
12:03
ВЫБОР
   КОГДА
        КомплектИЕгоСоставляющие.Номенклатура ПОДОБНО "%(8.8)"
51 hhhh
 
09.02.12
12:04
(48) сделайте у номенклатуры реквизит, куда пишите 110 или 126. Или как свойство номенклатуры. Чего вы паритесь?
52 Scooter
 
09.02.12
12:05
(0)при записи номенклатуры заполняй допСвойство
и в запросе это доп свойство анализируй

какбы всё
53 LivingStar
 
09.02.12
12:06
(50) это к чему? если КомплектИЕгоСоставляющие.Номенклатура строка 100 симфолов и лишь в конце (8.8), это что ли сработает?
54 Ткачев
 
09.02.12
12:07
(53)А какая причина что бы не сработало ?
55 LivingStar
 
09.02.12
12:07
(51)(52) да как то эту хрень прописали в номенклатуре которая является значением комплекта
и стоит в свойствах!!! Сейчас вот да нужно думать, как это все приделать под эту задачу !!!
56 LivingStar
 
09.02.12
12:08
(54) я с подобно не очень работал, не знаю что она делает! определяет есть ли в строке "(8.8)" или "(5.6)" ?
57 LivingStar
 
09.02.12
12:08
то есть если это встретится в середине, то все равно сработает? мне нужно в конце....
58 Ткачев
 
09.02.12
12:09
% - это произвольное количество символов, т.е. будет ИСТИНА если в конце строки стоит (8.8).
59 Ткачев
 
09.02.12
12:09
(57)А проверить ?
60 LivingStar
 
09.02.12
12:10
(58)(59) ок, спасибо! проверю!!!
61 LivingStar
 
09.02.12
12:11
(51) по идее вы правы, но тогда нужно будет сейчас писать алгоритм заполнения этих свойств!!! так как не везде они ещё и есть.... Хотел сделать на том чт о есть!
62 Ткачев
 
09.02.12
12:13
(34)Если неограниченная длина то вооще нету длины, надо как то подсчитать количество символов в запросе.
63 LivingStar
 
09.02.12
12:16
пишет не верные параметры ПОДОБНО:

ВЫБОР
   КОГДА
        КомплектИЕгоСоставляющие.Номенклатура ПОДОБНО"%(8.8)"
   ТОГДА
        Опоры.КоличествоР*КомплектИЕгоСоставляющие.Количество*КомплектИЕгоСоставляющие.Вес*126.00
   ИНАЧЕ
        Опоры.КоличествоР*КомплектИЕгоСоставляющие.Количество*КомплектИЕгоСоставляющие.Вес*110.00
КОНЕЦ
64 Ткачев
 
09.02.12
12:18
Руками пишешь ?
КомплектИЕгоСоставляющие.Номенклатура ПОДОБНО ""%(8.8)""
65 LivingStar
 
09.02.12
12:19
сейчас выдает синтаксическая ошибка (

ВЫБОР
   КОГДА
        КомплектИЕгоСоставляющие.Номенклатура ПОДОБНО ""%(8.8)""
   ТОГДА
        Опоры.КоличествоР*КомплектИЕгоСоставляющие.Количество*КомплектИЕгоСоставляющие.Вес*126.00
   КОГДА
       КомплектИЕгоСоставляющие.Номенклатура ПОДОБНО "%(5.6)"
   ТОГДА
        Опоры.КоличествоР*КомплектИЕгоСоставляющие.Количество*КомплектИЕгоСоставляющие.Вес*110.00
КОНЕЦ
66 LivingStar
 
09.02.12
12:20
(64) пример же привожу, что оно не запускается то?
67 ковер
 
09.02.12
12:23
(66) после конца задай имя поля
68 Шапокляк
 
09.02.12
12:24
(65) ПОДОБНО "%(5.6)" замени на ПОДОБНО &ЧемуПодобно
А в назначении параметров запроса присвой параметру ЧемуПодобно значение "%(8/8)"
69 LivingStar
 
09.02.12
12:24
(68) Ок, спасибо попробую!
70 Ткачев
 
09.02.12
12:28
КомплектИЕгоСоставляющие.Номенклатура ПОДОБНО ""%(5.6)""
71 Ткачев
 
09.02.12
12:30
+ Если Номенклатура это ссылка, возможно надо Номенклатура.Наименование
72 Wobland
 
09.02.12
12:31
(71) см (7) и (9) ;)
73 Ткачев
 
09.02.12
12:33
(72)Там ведь про НаборКомплектов, или уже переименовали в Номенклатуру ?
74 Wobland
 
09.02.12
12:33
(73) автор показал понимание того, что строковые функции следует применять к строкам
75 Ткачев
 
09.02.12
12:38
В (65) все работает, я проверил.
76 Wobland
 
09.02.12
12:44
(75) да ну? в одном месте две кавычки, в другом одна
77 Ткачев
 
09.02.12
12:47
(76)Нее, ну я же исправил в (70)
78 Wobland
 
09.02.12
12:51
(77) не заметил-с. значит, ПОДОБНО с ссылкой на справочник нормально работает?
79 Ткачев
 
09.02.12
12:55
(78)Нет конечно, сказали ведь что номенклатура это строка (74)
80 Ткачев
 
09.02.12
12:58
+(79)Может там временный запрос есть...
...
РезОЗ.НаборКомплектов.Наименование КАК Номенклатура
...
ПОМЕСТИТЬ КомплектИЕгоСоставляющие
...
;
Тут уже сам запрос...
81 Wobland
 
09.02.12
13:00
ставлю на то, что Номенклатура - справочник ;)
82 Ткачев
 
09.02.12
13:04
(81)А чем плох временный запрос с ТЧ документа ?
v8: УТ Добавление колонки ШК во внешнюю печатную форму
Там (78)
83 Wobland
 
09.02.12
13:07
(82) ну мы уже телепатией занялись. просто я не верю в способность автора к (80)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн