|
v7: Запрос с поиском по строке в табличной части | ☑ | ||
---|---|---|---|---|
0
picom
21.07.17
✎
08:46
|
Помогите, а то я не знал, да еще и забыл как получить нужную мне строку документа с поиском по подстроке.
Нужно найти строчку документа в котором серийный номер 123 уже встречался. Запрос = СоздатьОбъект("Запрос"); СерийныйНомерС = "123" ; ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Без итогов; |СерийныйНомер = Документ.ДокументСервиса.СерийныйНомер; |Картридж = Документ.ДокументСервиса.Картридж; |ТекущийДокумент = Документ.ДокументСервиса.ТекущийДокумент; |Условие(СерийныйНомер = СерийныйНомерС); |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка() = 1 Цикл // Заполнение полей Сформировать Сообщить("КЖ "+Запрос.Картридж); КонецЦикла; |
|||
1
aka AMIGO
21.07.17
✎
08:49
|
Возможно, так:
|Условие(Найти(СерийныйНомер,СерийныйНомерС)>0); |
|||
2
пипец
21.07.17
✎
08:50
|
продам СП , дорого (с) группировка где ?
|
|||
3
aka AMIGO
21.07.17
✎
08:51
|
(2) ТС решает вопрос "в принципе", а бантики - потом :)
|
|||
4
picom
21.07.17
✎
08:54
|
(1) а если нужно не подстроку а только точное совпадение.
|
|||
5
picom
21.07.17
✎
08:54
|
.->?
|
|||
6
пипец
21.07.17
✎
08:54
|
(3) тоесть группировку он обходить собрался просто так )))), как бы пусть ))))
|
|||
7
Масянька
21.07.17
✎
08:56
|
(5) Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "//{{ЗАПРОС() |Период с ДатаНачала по ДатаОкончания; |ОбрабатыватьДокументы все; |ТекДок = Документ.ГарантийныйТалон.ТекущийДокумент; |ДатаДокумента = Документ.ГарантийныйТалон.ДатаДок; |Товар = Документ.ГарантийныйТалон.Номенклатура; |ИмяТовар = Документ.ГарантийныйТалон.Номенклатура.Наименование; |КолВо = Документ.ГарантийныйТалон.Количество; |Гарантия = Документ.ГарантийныйТалон.СрокГарантии; |СерНомер = Документ.ГарантийныйТалон.СерийныйНомер; |Группировка ТекДок; |Группировка Товар Без Групп; |Функция КолВоЗаписей = Счётчик();"; Если (ПоНоменклатуре = 1) Тогда ТекстЗапроса = ТекстЗапроса + " |Условие (Товар в Номенклатура);"; КонецЕсли; Если (ПоСерийномуНомеру = 1) Тогда ТекстЗапроса = ТекстЗапроса + " |Условие (СерНомер в СерийныйНомер);"; КонецЕсли; |
|||
8
пипец
21.07.17
✎
08:57
|
чот Масяня седня выспалась не стой ноги, доброта прям и пышет ))))
|
|||
9
Масянька
21.07.17
✎
08:58
|
(8) Не говори... Сама в шоке...
|
|||
10
aka AMIGO
21.07.17
✎
08:58
|
(4) Если нужно точное совпадение - тогда условие в сабже
Только надо учесть длину серийного номера и того, что ищется. Ибо - пробелы - тоже символ.. А не пустота |
|||
11
picom
21.07.17
✎
08:59
|
Все перепробывал, ни один из вариантов не взлетел )
ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Без итогов; |СерийныйНомер = Документ.ДокументСервиса.СерийныйНомер; |Картридж = Документ.ДокументСервиса.Картридж; |ТекущийДокумент = Документ.ДокументСервиса.ТекущийДокумент; |Группировка СерийныйНомер; |Условие(СерийныйНомер в СерийныйНомерС); |"//}}ЗАПРОС ; |
|||
12
Масянька
21.07.17
✎
09:00
|
(11) Не всё перепробовал...
День только начался... |
|||
13
пипец
21.07.17
✎
09:01
|
(10) можно еще извратиться ))) выгрузить в ТЗ и свернуть и поиском, а вдруг там несколько )))))
|
|||
14
picom
21.07.17
✎
09:01
|
У нас уже вечер, хэлп
|
|||
15
Масянька
21.07.17
✎
09:02
|
(13) Я - за распечатку и ручками, ручками...
|
|||
16
picom
21.07.17
✎
09:04
|
может вывод и перебор результатов запроса у меня неправильный. Гляньте, а ...
|
|||
17
пипец
21.07.17
✎
09:04
|
(14) не поверишь, в 7-ке есть конструктор запросов )_))
(15) это не наш метод, только методом пузырька, только хардкор ))) |
|||
18
Builder
21.07.17
✎
09:05
|
(11) Условие не перепутал? Что где ищешь то?
Может так надо: |Условие(СерийныйНомерС в СерийныйНомер); |
|||
19
Масянька
21.07.17
✎
09:06
|
(16)
|СерийныйНомер = Документ.ДокументСервиса.СерийныйНомер; |Картридж = Документ.ДокументСервиса.Картридж; |ТекущийДокумент = Документ.ДокументСервиса.ТекущийДокумент; |Группировка ТекущийДокумент; |Группировка Картридж; |Условие(СерийныйНомер в СерийныйНомерС); |"//}}ЗАПРОС Доброта уже на исходе.... |
|||
20
пипец
21.07.17
✎
09:07
|
(18) огонь )))))) батарея
|
|||
21
Масянька
21.07.17
✎
09:08
|
(20) Агония.....
|
|||
22
aka AMIGO
21.07.17
✎
09:08
|
(19) "Спокойно, Ипполит, спокойно.." © :)
picom - СерийныйНомер - это что? строка? эл-т Справочника? |
|||
23
picom
21.07.17
✎
09:08
|
(22) строкааааа
|
|||
24
Ёпрст
21.07.17
✎
09:09
|
(0)
|Условие(ВРЕГ(СокрЛП(СерийныйНомер)) = ВРЕГ(СокрЛП(СерийныйНомерС))); |
|||
25
Масянька
21.07.17
✎
09:09
|
(22) Тепленьку давайте!
|
|||
26
пипец
21.07.17
✎
09:11
|
навеяло, словарь эллочки людоедки )))))
http://forum.chuguev.net/index.php?showtopic=7536 |
|||
27
aka AMIGO
21.07.17
✎
09:11
|
(19) МасьАнька - твоё Условие(СерийныйНомер в СерийныйНомерС); - это для СпискаЗначений. А у него - это строка
(24) да, точно. |
|||
28
Builder
21.07.17
✎
09:11
|
(24) ТС похоже вхождение ищет, так что условие В нормуль.
|
|||
29
Масянька
21.07.17
✎
09:12
|
(27) С чего ты взял?
|
|||
30
пипец
21.07.17
✎
09:12
|
(23) тогда уж если пишешь В - то приравнивай к списку значений что ле
|
|||
31
Builder
21.07.17
✎
09:13
|
(30) для строки это условие тоже работает.
|
|||
32
aka AMIGO
21.07.17
✎
09:13
|
(28) Нет. Это 7-ка, "В" имеет ограниченное применение
|
|||
33
aka AMIGO
21.07.17
✎
09:15
|
(31) Сомнительно.. при случае - проверю
|
|||
34
пипец
21.07.17
✎
09:15
|
я вообще слабо представляю как можно обходить группировку без оной ))) ну если в начало смотреть
|
|||
35
Масянька
21.07.17
✎
09:15
|
(33) Проверь - не поверишь :)
|
|||
36
Builder
21.07.17
✎
09:16
|
(33) Trust me :)
|
|||
37
Масянька
21.07.17
✎
09:17
|
(23) Шурик! Вы - комсомолец? (С)
|
|||
38
aka AMIGO
21.07.17
✎
09:17
|
(29) - см. (30)
(36) Ladno :) |
|||
39
пипец
21.07.17
✎
09:18
|
хеее, в 7-ке вообще много прикольного, особенно если писАть в запросе БЕЗ ИТОГОВ ())))
|
|||
40
Масянька
21.07.17
✎
09:18
|
(38) Проверь. Сначала.
|
|||
41
пипец
21.07.17
✎
09:21
|
//*******************************************
// Процедура генерации запроса Сформировать. // Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; ВыбНомерДок="1"; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |ПоступлениеТоваров = Документ.ПоступлениеТоваров.ТекущийДокумент; |НомерДок = Документ.ПоступлениеТоваров.НомерДок; |Группировка ПоступлениеТоваров; |Условие(НомерДок в ВыбНомерДок); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей ПоступлениеТоваров Таб.ВывестиСекцию("ПоступлениеТоваров"); КонецЦикла; // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); КонецПроцедуры ниработаит )))))))))))) |
|||
42
пипец
21.07.17
✎
09:23
|
только по точному совпадению ))) так что это не В, это =
|
|||
43
Ёпрст
21.07.17
✎
09:23
|
(41) и не лень тебе ? Это никогда для строк не работало
|
|||
44
aka AMIGO
21.07.17
✎
09:24
|
(41) Мда.. Глянул в СП:
В качестве включающего подмножества логического оператора принадлежности (второй параметр после слова ''в'') может выступать как простое значение, так и список значений. |
|||
45
aka AMIGO
21.07.17
✎
09:26
|
(40) По-моему, в (41) убедительный пример :)
|
|||
46
пипец
21.07.17
✎
09:26
|
дата(4875) = 33.90.-69
уже кстати обсуждали такие приколы ) |
|||
47
пипец
21.07.17
✎
09:27
|
(44) это если типизация совпадает, а так ))) фигвам, и кстати тоже не всегда , в случае с ТЗ вообще фантастика бывает
|
|||
48
Масянька
21.07.17
✎
09:28
|
(45) Мужской шовинизм. В (7) работающий пример. Серийник - строка (реквизит ТЧ док-та). В обработке вводится в поле ввода (строка). :Р
|
|||
49
Builder
21.07.17
✎
09:29
|
(41)
|Условие(НомерДок в ВыбНомерДок); Будет искать номер документа в строке "1" Найдет? |
|||
51
Builder
21.07.17
✎
09:32
|
|Условие(ВыбНомерДок в СокрЛП(НомерДок));
|
|||
52
aka AMIGO
21.07.17
✎
09:33
|
(49) :)) точно :)
|
|||
53
aka AMIGO
21.07.17
✎
09:34
|
+52 |Условие(ВыбНомерДок в НомерДок);
|
|||
54
Builder
21.07.17
✎
09:35
|
(53) Так не сработает, в (51) рабочий код!
|Условие(ВыбНомерДок в СокрЛП(НомерДок)); |
|||
55
пипец
21.07.17
✎
09:36
|
(49) не будет 1 искать !!!!, от слова совсем, будет искать равно 1 ))) тоисть не вхождение - напесал жи в (42)
|
|||
56
Builder
21.07.17
✎
09:37
|
(55) Будет, только что проверил, нашел все номера в которых есть "1".
|
|||
57
aka AMIGO
21.07.17
✎
09:39
|
(55) В твоем условии - ошибка, подстрока поиска должна быть до "В"
|
|||
58
пипец
21.07.17
✎
09:39
|
нда , видимо там где Масянька выспалась )))))) кто то точно не выспался
|
|||
59
Масянька
21.07.17
✎
09:41
|
(58) Просто вы шовинисты :)
|
|||
60
aka AMIGO
21.07.17
✎
09:43
|
(59) Мы хорошие..
|
|||
61
catena
21.07.17
✎
09:44
|
(60)Хорошие шовинисты, кто ж спорит.
|
|||
62
Builder
21.07.17
✎
09:46
|
Пятничное собрание староверов-любителей 7.7 :)
|
|||
63
Масянька
21.07.17
✎
09:46
|
А ТС-то где?
|
|||
64
пипец
21.07.17
✎
09:46
|
то ли обласкали, то ли )))) еще что, автор видимо зачитался, бросил программировать и читает, кто же такие шовинисты и почему они хорошие
|
|||
65
Builder
21.07.17
✎
09:47
|
(63) А зачем нам ТС? Нам ТС не нужен :)
|
|||
66
Масянька
21.07.17
✎
09:47
|
(60) Все хорошие... Когда спят зубами к стенке (С) :)))))
|
|||
67
пипец
21.07.17
✎
09:48
|
(62) иногда от осьмушки- чесслово, подташнивает )))
|
|||
68
Масянька
21.07.17
✎
09:48
|
(64) Помочь погуглить? :))))
|
|||
69
Масянька
21.07.17
✎
09:48
|
(65) Согласна.
Продолжаем разговор :) |
|||
70
Масянька
21.07.17
✎
09:49
|
(67) Не-на-чи-най.....
|
|||
71
пипец
21.07.17
✎
09:54
|
(70) ага , дохтур, а я умру ?
- обязательно а от чего ? - вскрытие покажет (с) )))) ЗЫ мне больше нравится в восьмерке непередаваемый интерфейс ))) особенно если нужно нарисовать для тачпада с соразмерностями и рельефностью )))) |
|||
72
Масянька
21.07.17
✎
09:55
|
(71) А мне в восьмерке не нравится контекстная подсказка... Бесит, блин...
|
|||
73
Builder
21.07.17
✎
09:56
|
(71)
Вскрытие показало что больной умер от вскрытия (с) |
|||
74
picom
21.07.17
✎
10:03
|
.....
а тем временем код так и не работает ) |
|||
75
Builder
21.07.17
✎
10:04
|
(74) Опа, ТС нашелся...
Ладно, держи условие. |Условие(СерийныйНомерС в СокрЛП(СерийныйНомер)); |
|||
76
picom
21.07.17
✎
10:11
|
Не работает и без условия
может проблема в (16) ? |
|||
77
Builder
21.07.17
✎
10:13
|
(76) Выкладывай последний вариант
|
|||
78
aka AMIGO
21.07.17
✎
10:13
|
(76) Ну, таки выложи полностью Процедуру, что не работает
|
|||
79
aka AMIGO
21.07.17
✎
10:14
|
Во.. хором выступление.. :)
|
|||
80
Масянька
21.07.17
✎
10:16
|
(76) 1. Полный код (который не работает).
2. Документ.ДокументСервиса.СерийныйНомер - тип, длина. 3. СерийныйНомерС - тип, длина. |
|||
81
Builder
21.07.17
✎
10:26
|
Похоже мы теряем ТС ....
|
|||
82
Масянька
21.07.17
✎
10:29
|
(81) Интубируем? :))))))
|
|||
83
Builder
21.07.17
✎
10:35
|
(82) Фууу, как некрасиво....
ТС пусть сам тогда интубирует.... |
|||
84
picom
21.07.17
✎
12:10
|
Вот без условия тоже ничего не находит
Серийный номер = строка на 20 СерийныйНомерС = "123" ; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Без итогов; |СерийныйНомер = Документ.ДокументСервиса.СерийныйНомер; |Картридж = Документ.ДокументСервиса.Картридж; |ТекущийДокумент = Документ.ДокументСервиса.ТекущийДокумент; |Группировка Картридж без Групп; // |Условие(СерийныйНомерС в СокрЛП(СерийныйНомер)); |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка() = 1 Цикл Сообщить("КЖ "+Запрос.Картридж); //ничего не выводит и не заходит КонецЦикла; |
|||
85
Масянька
21.07.17
✎
12:13
|
(84) Шурик! Вы комсомолец? (С)
Тебе очень трудно вставить: |ТекущийДокумент = Документ.ДокументСервиса.ТекущийДокумент; |Группировка ТекущийДокумент; |Группировка Картридж без Групп; ? |
|||
86
Ёпрст
21.07.17
✎
12:14
|
(84)
Нет проведенных документов ДокументСервиса |
|||
87
picom
21.07.17
✎
12:21
|
(85)(86)
пробывал, ничего вообще не выводит, даже без условия ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |ОбрабатыватьДокументы все; |СерийныйНомер2 = Документ.ДокументСервиса.СерийныйНомер; |Картридж2 = Документ.ДокументСервиса.Картридж; |ТекущийДокумент2 = Документ.ДокументСервиса.ТекущийДокумент; |Группировка ТекущийДокумент2; |Группировка Картридж2 без Групп; // |Условие(СерийныйНомерС в СокрЛП(СерийныйНомер)); |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка() = 1 Цикл // Заполнение полей Сформировать Сообщить("КЖ "+Запрос.Картридж2); КонецЦикла; |
|||
88
Builder
21.07.17
✎
12:23
|
Пля, нет же условия по датам.
|Период с ВыбНачПериода по ВыбКонПериода; |
|||
89
Масянька
21.07.17
✎
12:25
|
(87) Теперь это:
Пока Запрос.Группировка() = 1 Цикл // Заполнение полей Сформировать Сообщить("КЖ "+Запрос.Картридж2); КонецЦикла; меняешь на это: Пока Запрос.Группировка("ТекущийДокумент2") = 1 Цикл Пока Запрос.Группировка("Картридж2") = 1 Цикл // Заполнение полей Сформировать Сообщить("КЖ "+Запрос.Картридж2); КонецЦикла; КонецЦикла; И да - (88)?! |
|||
90
picom
21.07.17
✎
12:30
|
(88) спасибо, все заработало
|
|||
91
Builder
21.07.17
✎
12:31
|
(90) Фухххх...
Мы спасли его :) |
|||
92
Масянька
21.07.17
✎
12:34
|
(90) Пилять... В (7) написано же...
(88) И куда смотрел раньше? |
|||
93
Builder
21.07.17
✎
12:41
|
(92) Ну так сразу не интересно же.
А поговорить ? :) |
|||
94
aka AMIGO
21.07.17
✎
12:42
|
(92) Есть градация - читатель/писатель :)
|
|||
95
Builder
21.07.17
✎
12:43
|
Расходимся или доведем до 100?
|
|||
96
Масянька
21.07.17
✎
12:43
|
(93) (94) Я же сказала - шовинисты :))))
|
|||
97
aka AMIGO
21.07.17
✎
12:44
|
(96) А я сказал - неправда ваша, мы - хорошие :)
|
|||
98
picom
21.07.17
✎
12:47
|
Спасибо всем, победа.
Про период проглядел, каюсь, хотя мастер запросов спрашивал все документы или по периоду ) |
|||
99
Масянька
21.07.17
✎
12:49
|
Держите :)
|
|||
100
Builder
21.07.17
✎
12:54
|
100 и заканчиваем :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |