Имя: Пароль:
1C
1С v8
Как написать в запросе условие Лев(Док.НомерДок,1)="Р"
0 Мисти
 
29.05.13
22:08
Такое условие у меня в 7 было.
Выбрать все документы реализации, где в номере есть Р?
Это важно только для одного отчета, не заводить же спец. реквизит?
Перебирать все документы тоже как-то глупо...
1 ДенисЧ
 
29.05.13
22:10
А ВЫРАЗИТЬ() тебе не поможет?
2 Зойч
 
29.05.13
22:11
ПОДОБНО "Р%"
3 Мисти
 
29.05.13
22:11
Может, и подойдет, но я не умею "выражать".
4 DarKySiK
 
29.05.13
22:12
А читать?
5 ДенисЧ
 
29.05.13
22:13
(3) мда... Ты точно не морская свинка?
6 zak555
 
29.05.13
22:13
используй отбор по организации =)
7 ДенисЧ
 
29.05.13
22:13
(6) а почему по организации?
8 zak555
 
29.05.13
22:14
(7) я попытался стелепатировать =)
9 ДенисЧ
 
29.05.13
22:15
(8) не очень летает :-)
10 zak555
 
29.05.13
22:22
мисти это почти как мстя мисте
11 Мисти
 
29.05.13
22:22
Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Номер,
   |    РеализацияТоваровУслуг.Дата
   |ИЗ
   |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |ГДЕ
   |    РеализацияТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2
   |    И РеализацияТоваровУслуг.Номер ПОДОБНО &Р";    
   
   Запрос.УстановитьПараметр("Дата1", НачалоДня(ВыбНачПериода));
   Запрос.УстановитьПараметр("Дата2", КонецДня(ВыбКонПериода));
   Запрос.УстановитьПараметр("Р", "Р");
12 Мисти
 
29.05.13
22:23
Не работает!
13 zak555
 
29.05.13
22:24
Р --- это префикс органиазции ?
14 ДенисЧ
 
29.05.13
22:26
(11) БдЪЪЪЪЪЪ

Запрос.УстановитьПараметр("Р", "%Р");
15 Uzumaki
 
29.05.13
22:36
(14) Я так понимаю ошибка сознательна :)
16 ДенисЧ
 
29.05.13
22:36
(15) типа напоговорить?
17 Живой Ископаемый
 
29.05.13
22:37
2(12) работает, но правильно. то есть так как написано, а не так как вы себе воображаете
18 Мисти
 
29.05.13
22:38
Таки получилось! "Р%"
Спасибо, буду знать.
19 Живой Ископаемый
 
29.05.13
22:54
а когда нужно будет отобрать те. у которых в номере есть "жг" или есть цифры 9 и 5 в люой комбинации на любых местах, что станешь делать? надеюсь на каждый такой случай заведешь веточку на форуме?
20 Мисти
 
29.05.13
23:11
(19) Сделаю по аналогии!
Вопрос - работает очень медленно. Что-то мне кажется, что перебором было бы быстрее. Кто скажет? На 7 - точно перебор работал быстрее запроса.
21 Живой Ископаемый
 
29.05.13
23:13
а на основании чего так кажется? знания о реализации каких механизмов в платформе в8 вам позволяют так думать?
22 Живой Ископаемый
 
29.05.13
23:17
а что такое аналогия? ну вот например вам нужно выбрать документы, в номер которых обязательно встречаются 5 и 9 не обязательно подряд. Как вы станете делать?
23 Мисти
 
29.05.13
23:18
(21) На основании секундомера.
24 SnarkHunter
 
29.05.13
23:18
(20)Этот запрос фактически является перебором записей в таблице, поэтому и медленно работает.
25 Живой Ископаемый
 
29.05.13
23:20
2(23) и какое значение показывает секундомер в случае перебора?
26 SnarkHunter
 
29.05.13
23:22
В любом случае запрос отработает быстрее, несмотря на тейбл скан, чем перебор на клиенте с проверкой наличия символа в строке.
27 Мисти
 
29.05.13
23:23
Короче, зря старалась с запросом. Перебором 3 тыщи документов - за 5 секунд, а запросом - 3 документа за  5 секунд, а 3000 - вообще зависло, я не дождалась.
28 К_Дач
 
29.05.13
23:30
(27) со строками в запросах в 1С туговато
29 Живой Ископаемый
 
29.05.13
23:41
2(28) зато с доверием к беспочвенным и без пруфпикч заявлениям полуграмотных теток у 1сников хорошо.

http://screencast.com/t/57JPBvCU9eM

На скринкасте водно, что один определенный документ с условием по ПОДОБНО отбирается за доли секунды
30 ssh2012
 
29.05.13
23:52
(0)> условие Лев(Док.НомерДок,1)="Р"

ПОДСТРОКА(Док.НомерДок, 1, 1) = "Р"
31 artik2
 
29.05.13
23:58
(29) 653 документа это очень мало. Попробуй на 1 млн документов.
32 zippygrill
 
30.05.13
00:03
А мадмузедь замужем?
33 Лефмихалыч
 
30.05.13
00:05
(29) с "полуграмотных" ты, пожалуй хватил лишка...
34 Мисти
 
30.05.13
00:09
(30) так а в запросе разве это можно написать?
35 Живой Ископаемый
 
30.05.13
00:10
2(31) почти 11 тысяч документов. или ты невнимательно смотрел. у авторши в тоже время - всего 3000, в 3.5 раза меньше.. и она бубнит о каих-то невероятных тормозах.
36 Живой Ископаемый
 
30.05.13
00:11
2(33) а как правильно? "чуть менее чем совсем неграмотных"?
37 Лефмихалыч
 
30.05.13
00:12
(36) слишком высоко оценил грамотность, имхо
38 Живой Ископаемый
 
30.05.13
00:12
ах.. 653 - это милисекунды . за которые выполняется запрос. к 11 тысячам документов. А запрос с подобно выполняется за 61 милисекунду
39 Мисти
 
30.05.13
00:12
Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    РеализацияТоваровУслугТовары.Ссылка.Номер,
   |    РеализацияТоваровУслугТовары.Ссылка.Дата,
   |    РеализацияТоваровУслугТовары.Сумма,
   |    РеализацияТоваровУслугТовары.Ссылка.ПометкаУдаления
   |ИЗ
   |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
   |ГДЕ
   |    РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
   |    И РеализацияТоваровУслугТовары.Ссылка.Номер ПОДОБНО &Р
   |    И РеализацияТоваровУслугТовары.Ссылка.ПометкаУдаления = &Ложь";    
   
   Запрос.УстановитьПараметр("Дата1", НачалоДня(ВыбНачПериода));
   Запрос.УстановитьПараметр("Дата2", КонецДня(ВыбКонПериода));
   Запрос.УстановитьПараметр("Р", "Р%");
   Запрос.УстановитьПараметр("Ложь", Ложь);
   
   СписокДок = Запрос.Выполнить().Выгрузить();
40 Мисти
 
30.05.13
00:13
Что я не так написала, что у меня так долго считается?
41 Живой Ископаемый
 
30.05.13
00:15
господи.. ну а зачем запрос к табличной части-то?
42 KUBIK
 
30.05.13
00:16
(39)

Запрос к ТЧ дабы вытащить ссылку...
Навеяло в ЛК ТС:

"...политика, театр, архитектура" = "суд, Сибирь"

"может в консерватории поменять"
43 Мисти
 
30.05.13
00:17
мне сумма по товарам нужна.
44 Живой Ископаемый
 
30.05.13
00:18
давай тогда уж если ты с перебором решила запрос состязать, то перебор то перебирать тоже будешь строки табличных частей.
45 Живой Ископаемый
 
30.05.13
00:18
2(43) и что?
46 Мисти
 
30.05.13
00:18
А там я Итог беру.
47 KUBIK
 
30.05.13
00:18
(43) МВТ помжет
48 Живой Ископаемый
 
30.05.13
00:19
ну и дура. вместо того чтобы отобрать нужный документ за доли секунды. и взять итоги уже только по нему одному
49 Мисти
 
30.05.13
00:19
(47) Не знаю, что это.
50 Мисти
 
30.05.13
00:20
А он у меня не один!
Предполагается, что штук 500 - нужных и штук 500 не нужных.
51 Живой Ископаемый
 
30.05.13
00:20
2(47) блин, ну зачем так по-хамски? и почему в конце концов именно он, а не пакетный запрос? а не подзапрос?
52 KUBIK
 
30.05.13
00:20
(49) В этом и беда...
53 Живой Ископаемый
 
30.05.13
00:20
2(50) ну и что?
54 Мисти
 
30.05.13
00:21
Точнее, даже не так, мне нужна сумма по всем, где есть "Р" и сумма по всем, где нет "Р".
При этом документы могут быть непроведенные.
55 Мисти
 
30.05.13
00:22
Короче, перебором всё работает, и быстро.
Если кто подскажет, как сделать запросом быстро - скажу спасибо.
56 Живой Ископаемый
 
30.05.13
00:23
2(54) почему ты думаешь, что это кому-то интересно, и что эти детали отменяют все выше сказанное?
вот на основании знаний о реализации каких механизмов платформы?
57 Живой Ископаемый
 
30.05.13
00:23
2(55) господь с вами, оставайтесь незамутненной.
58 Лефмихалыч
 
30.05.13
00:25
(39) добавь еще пару декартовых произведений в запрос, иначе скучно же, да и серверу делать нечего
59 Мисти
 
30.05.13
00:26
Так как надо было сделать?
Перебирать потом то, что получено в запросе?
60 Живой Ископаемый
 
30.05.13
00:28
2(59) гы... но только раз 10 чур.
61 Мисти
 
30.05.13
00:29
Как найти итог по таб. части "товары", не делая запрос к таб. части?
62 Мисти
 
30.05.13
00:30
суммаДокумента содержит еще и услуги, меня это не устраивает.
63 KUBIK
 
30.05.13
00:30
(59) брось это дело - лучше цветочки полей, внуков и деда покорми ... :))))
64 Лефмихалыч
 
30.05.13
00:32
(59) почти совсем правильно было уже в (11), подкосило тебя только желание поскорее нафигачить код и маниакальное стремление не читать документацию (или это просто боязнь Shift+F1?..)
Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Ссылка,
   |    РеализацияТоваровУслуг.Номер,
   |    РеализацияТоваровУслуг.Дата
   |ИЗ
   |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |ГДЕ
   |    РеализацияТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2
   |    И РеализацияТоваровУслуг.Номер ПОДОБНО ""Р%""";    
   
   Запрос.УстановитьПараметр("Дата1", НачалоДня(ВыбНачПериода));
   Запрос.УстановитьПараметр("Дата2", КонецДня(ВыбКонПериода));
65 Мисти
 
30.05.13
00:32
А что, сложно ответить по существу?
66 Живой Ископаемый
 
30.05.13
00:32
2(62) всем правда, не все равно. что вас не устраивает. все переживают
67 Лефмихалыч
 
30.05.13
00:33
(65) ответить нет ни чего сложного. Просто каким-то невероятным образом тебе ответы не помогают
68 Живой Ископаемый
 
30.05.13
00:33
2(65) а смысл? вы ведь все равно сделаете по-другому, а выводы высосете из пальца.
69 Мисти
 
30.05.13
00:33
(67) Ну а сумму-то где я возьму?
70 Мисти
 
30.05.13
00:34
(66) Можно не читать! Полно других тем. И сайтов. И книжек!
71 KUBIK
 
30.05.13
00:36
(69) МВТ :))))
72 Лефмихалыч
 
30.05.13
00:36
а у документа нет реквизита СуммаДокумента или СуммаПоДокументу? если конфа типовая, то обязан быть.
73 Мисти
 
30.05.13
00:38
(72) Есть! Но там и товар и услуги, а мне только товар нужен.
74 ssh2012
 
30.05.13
00:40
(34) можно
75 Живой Ископаемый
 
30.05.13
00:43
(70) окей, метну еще раз биссер:
http://screencast.com/t/57JPBvCU9eM
76 Живой Ископаемый
 
30.05.13
00:43
покажите как вы с ним поступите
77 Живой Ископаемый
 
30.05.13
00:45
стоп, не та ссылка
78 Мисти
 
30.05.13
00:46
Ага, вот и я смотрю - то же самое!
79 Живой Ископаемый
 
30.05.13
00:46
80 Живой Ископаемый
 
30.05.13
00:47
2(73) и каков критерий отличия услуг от товаров? может такой, что услуги находятся в другой табличной части?
81 KUBIK
 
30.05.13
00:47
(75) " не в коня корм..."
а ролик +1
82 viktor_vv
 
30.05.13
00:52
Раз уж у вас тут такая пьянка, мне самому интересно, если без ВТ, вот так будет быстрее?

   Запрос.Текст =
   "ВЫБРАТЬ
   |    РеализацияТоваровУслугТовары.Ссылка.Номер,
   |    РеализацияТоваровУслугТовары.Ссылка.Дата,
   |    РеализацияТоваровУслугТовары.Сумма,
   |    РеализацияТоваровУслугТовары.Ссылка.ПометкаУдаления
   |ИЗ
   |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
   |    Внутреннее соединение Документ.РеализацияТоваровУслуг КАК ДокШапка
   |       ПО ДокШапка.Ссылка = РеализацияТоваровУслугТовары.Ссылка
   |ГДЕ
   |    ДокШапка.Дата МЕЖДУ &Дата1 И &Дата2
   |    И ДокШапка.Номер ПОДОБНО &Р
   |    И ДокШапка.ПометкаУдаления = &Ложь";
83 Живой Ископаемый
 
30.05.13
00:52
блин, хорошо хоть в буфере ссылка была на безобидный скринкаст а не топик на порнолабе...
84 Живой Ископаемый
 
30.05.13
00:53
2(82)так намного лучше чем в (79) или с МВТ
85 Мисти
 
30.05.13
00:56
Чем лучше? И что такое МВТ?
А 79 я поняла! Только сама так никогда не писала, ну научусь!
86 Живой Ископаемый
 
30.05.13
00:56
менеджер временных таблиц
87 Живой Ископаемый
 
30.05.13
00:57
лучше тем что все в одном запросе, без пакетов и менеджеров временных таблиц, потому что каждая лишняя сущность - это оверхэды на его создание и утилизацию
88 Мисти
 
30.05.13
00:57
А! Я уже придумала "внутренние таблицы"
Так как красивше-то?
89 Мисти
 
30.05.13
00:58
победил номер 82?
И так понятнее, кстати, написано!
90 KUBIK
 
30.05.13
00:58
(88) с цветочками! :)))
91 viktor_vv
 
30.05.13
00:59
(87) Ну так-то да, тем более тут простые соединения, планировщику особых проблем не должно быть.
92 Мисти
 
30.05.13
01:02
Завтра проверю.
93 Drac0
 
30.05.13
01:09
(82)(84) А условия из ГДЕ вынести в условие соединения профит даст?
94 Лефмихалыч
 
30.05.13
01:12
(93) в теории ни какого. Более того, можно условия соединения полностью перенести в ГДЕ, буде то же самое. На практике все зависит от того, что получится после трансляции в SQL и какой план запроса выберет оптимизатор
95 Мисти
 
30.05.13
01:15
А если база дбф?
96 Лефмихалыч
 
30.05.13
01:16
(95) не бывает таких баз в восьмерке. На счет файловой не скажу - там и БД гогно, и запросы тухлые
97 Живой Ископаемый
 
30.05.13
01:18
2(95) зачем вам это? вы проверили запрос, он выполнился дольше секунды и вам это невыносимо?
98 Мисти
 
30.05.13
01:19
(96) Ну да, файловая.
(97) Очень даже выносимо! Я рада, что узнала новое-полезное.
99 Живой Ископаемый
 
30.05.13
01:21
чтоже вы такое узнали, если так и не сказали какая будет аналогия, если отобрать документы нужно будет с двумя разными цифрами в номере в разном порядке?
100 KUBIK
 
30.05.13
01:26
сотко - цветочек! :))))