|
v7: Выбор конкретного документа запросом | ☑ | ||
---|---|---|---|---|
0
Mad88
27.04.17
✎
11:05
|
В общем написал такую штуку
НомерНаСайте = "12148857"; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Заказ) |Период с (НачГода(ТекущаяДата())) по (КонГода(ТекущаяДата())); |ОбрабатыватьДокументы все; |Обрабатывать НеПомеченныеНаУдаление; |ТекущийДокумент = Документ.ЗаказПокупателя.ТекущийДокумент; |Условие(НомерНаСайте = НомерНаСайте); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; ТТ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТТ,0,0); ТТ.ВыбратьСтроки(); Пока ТТ.ПолучитьСтроку()=1 Цикл //НомерВТоп=0; Сообщить("Ну типо что-то есть!!!"); КонецЦикла; В цикл хочу увидеть документ который был найден. Делаю вычислить выражение, пихаю туда таблицу ТТ, но там кроме номерстроки больше ничего нет, подскажите что и как. |
|||
1
Смотрящий
27.04.17
✎
11:14
|
Функцию счетчика добавь в запрос
|
|||
2
Mad88
27.04.17
✎
11:16
|
(1) чиво?)
|
|||
3
Ёпрст
27.04.17
✎
11:16
|
(0)
вот это бредовое условие, ибо переменная НомерНаСайте не определена в тексте запроса |Условие(НомерНаСайте = НомерНаСайте); (1) лишнее в данном случае |
|||
4
YFedor
27.04.17
✎
11:17
|
(2) Это не восьмерка, в 7.7 запросы без функций не всегда работают
|
|||
5
linoblack
27.04.17
✎
11:17
|
группировку добавь в запрос
|
|||
6
Ёпрст
27.04.17
✎
11:18
|
+ не хватает группировки в запросе.
|
|||
7
1dvd
27.04.17
✎
11:18
|
(4) запрос к регистру требует функцию. Уж сколько лет к семерке не касался, но помню
|
|||
8
Mad88
27.04.17
✎
11:18
|
(3) Ничо не понял, как мне тогда искать докумнт по НомеруНаСайте?
|
|||
9
Ёпрст
27.04.17
✎
11:20
|
(8) описать переменную и группировку
|ПеременнаяТекстаЗапросаНомерНасайте = Документ.Вася.РеквизитВКоторомТвойНомерНАСайте; |Условие (ПеременнаяТекстаЗапросаНомерНасайте = НомерНАСайте); |Группировка Документ; |
|||
10
1dvd
27.04.17
✎
11:20
|
(8)
ТекстЗапроса = "//{{ЗАПРОС(Заказ) |Период с (НачГода(ТекущаяДата())) по (КонГода(ТекущаяДата())); |ОбрабатыватьДокументы все; |Обрабатывать НеПомеченныеНаУдаление; |ТекущийДокумент = Документ.ЗаказПокупателя.ТекущийДокумент; |зНомерНаСайте = Документ.ЗаказПокупателя.НомерНаСайте; |Условие(зНомерНаСайте = НомерНаСайте); |Группировка Документ; |"//}}ЗАПРОС |
|||
11
linoblack
27.04.17
✎
11:21
|
искать по условию(как и сделано) - но нужно добавить в запрос группировку по документу.
|
|||
12
Рэйв
27.04.17
✎
11:21
|
(8)Да сделай .НайтиПоРеквизиту() Или .НайтиПоНомеру()
Судя по всему ,запросы - это не твое:-) |
|||
13
Mad88
27.04.17
✎
11:23
|
(12) НайтиПоРеквизиту тоже сложно)
Я бы на восьмерочке лучше все это сделал, но заставляют на 7.7 |
|||
14
1dvd
27.04.17
✎
11:24
|
>>НайтиПоРеквизиту тоже сложно)
ну, ты это... не перетруждайся там, поешь, поспи, отдохни, потом продолжишь |
|||
15
Mad88
27.04.17
✎
11:25
|
(14) Солнце еще высоко, отдыхать нельзя
|
|||
16
Prog111
27.04.17
✎
11:28
|
В семерке запросы работают совсем по-другому, нежели в восьмерке. Так что лучше делай поиск старыми дедовскими способами, без запроса.
|
|||
17
Mad88
27.04.17
✎
11:31
|
(10) Этот запрос ничего не находит)
|
|||
18
Ёпрст
27.04.17
✎
11:33
|
(17)
ну так тогда поправь: |Условие(СокрЛП(зНомерНаСайте) = СокрЛП(НомерНаСайте)); |
|||
19
Масянька
27.04.17
✎
11:38
|
мДок = СоздатьОбъект("Документ.ЗаявкаПокупателя");
мДок.ВыбратьДокументы(НачГода(ТекущаяДата()),КонГода(ТекущаяДата())); Пока мДок.ПолучитьДокумент() = 1 Цикл мНомер = мДок.НомерНаСайте; Если (мНомер = СокрЛП(НомерНаСайте)) Тогда Сообщить("есть"); КонецЕсли; КонецЦикла; |
|||
20
Mad88
27.04.17
✎
11:42
|
(19) Таки ты предлагаешь мне перебирать все документы за год? Запрос то побыстрее отработает не?
|
|||
21
Mad88
27.04.17
✎
11:42
|
Кароч заработало, всем спасибо
|
|||
22
Ёпрст
27.04.17
✎
11:46
|
(20) нет. Запрос аналогично переберёт тебе все документы за год.
|
|||
23
Ёпрст
27.04.17
✎
11:47
|
И смотря какая конфа, скуль и дбф результаты будут разными по скорости.
А код в (0), если штатно делать, то надо \воткнуть сортировку по реквизиту и искать потом по НайтиПоРеквизиту . Это ускорит в разы. А так, прямой запрос, один хрен - быстрее всего будет |
|||
24
Mad88
27.04.17
✎
11:51
|
(23) База файловая, альфа-авто, кароче сделал запрос и фиг с ним, хай так будет, не знаю я семерку совсем.
|
|||
25
Масянька
27.04.17
✎
11:52
|
(20) А запросом ты чего делаешь?
И эти люди учат меня не ковыряться в носу (С) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |