Имя: Пароль:
1C
1C 7.7
v7: не отрабатывает запрос
, ,
0 _barracuda_
 
06.06.18
17:40
Добрый день.работал запрос а сейчас почему то не проходит цикл группировки.Что могло сбиться?

    
    |Период с НачПериод;
    |ОбрабатыватьДокументы все;
    |Без итогов;
    |ТекДокумент = Документ."+ТипДок+".ТекущийДокумент;
    |Идентификатор = Документ."+ТипДок+".Идентификатор;
    |Группировка ТекДокумент;
    |Условие(Идентификатор = ИдентификаторПоиск);
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат ПолучитьПустоеЗначение();
    КонецЕсли;
    Пока Запрос.Группировка() = 1 Цикл//сюда не доходит
1 Ёпрст
 
06.06.18
17:49
ну, нет документов данного типа с таким реквизитом поиска
2 _barracuda_
 
06.06.18
17:50
(1) да есть.идентификатор заполнен.создаются каждый раз новые доки.а должен выполнятся поиск по запросу и далее цикл по группировке.но не доходит до группировки
3 big
 
06.06.18
17:53
Имя группировки можно не указывать?
4 _barracuda_
 
06.06.18
17:53
(3)всмысле?
5 big
 
06.06.18
17:55
Запрос.Группировка()   - нет ни имени группировки, ни номера.

Если честно, м.б. при единственной группировке и не нужно, но я пишу всегда.
6 azernot
 
06.06.18
17:56
Вообще не доходит или сразу Запрос.Группировка() = 0?
7 _barracuda_
 
06.06.18
17:58
(6)сорян.отладчиком доходит Запрос.Группировка() = 0 но дальше не идет
8 _barracuda_
 
06.06.18
17:59
идентификатор 10000% есть
9 big
 
06.06.18
18:00
(8) И все-таки - Запрос.Группировка("ТекДокумент")  пробовал писать?
10 _barracuda_
 
06.06.18
18:00
Пока Запрос.Группировка(1) = 1 Цикл
поставил.не идет дальше
11 _barracuda_
 
06.06.18
18:01
Пока Запрос.Группировка("ТекДокумент") = 1 Цикл
так тоже не сработал
12 big
 
06.06.18
18:02
тогда пробовать убрать БезИтогов (какие итоги, если функций нте?), добавить КонецПериода, убрать условие идентфикатора. )))  Для "бубна" тут даже перебирать нечего ))
13 _barracuda_
 
06.06.18
18:02
Идентификатор это в документа тип строка 36 символов, ИдентификаторПоиск это искомый 36 символьный код.куча доков уже создались с этим кодом но он существует в других 1000%
14 big
 
06.06.18
18:04
О! Тогда (СокрЛП(Идентификатор) = СокрЛП(ИдентификаторПоиск))
15 Builder
 
06.06.18
18:04
(13) Тогда 100% Идентификатор<>ИдентификаторПоиск
Либо длины строк отличаются, либо пробелы где то лишние.
16 Ёпрст
 
06.06.18
18:06
дату то какую хоть втыкаешь в запрос ?
17 _barracuda_
 
06.06.18
18:09
(14)не прокатило
(16) дата с 01,01,17
18 Ёпрст
 
06.06.18
18:11
вид документа хоть тот ?
А так, проще проиндексировать этот реквизит и делать ВыбратьПоЗначению (или как там метод назывался, не помню)
19 _barracuda_
 
06.06.18
18:13
|Период с НачПериод;
    |ОбрабатыватьДокументы все;
    //|Без итогов;
    |ТекДокумент = Документ."+ТипДок+".ТекущийДокумент;
    |Идентификатор = Документ."+ТипДок+".Идентификатор;
    //|Группировка ТекДокумент;
   // |Условие(Идентификатор = ИдентификаторПоиск);
не идет дальше Пока Запрос.Группировка() = 1 Цикл
20 Builder
 
06.06.18
18:13
> |Период с НачПериод;
А вторую дату не хочешь выбрать?
21 johnny17
 
06.06.18
18:13
Вопрос, а зачем с ИД париться, мож по другому доки искать?
22 _barracuda_
 
06.06.18
18:14
(21)можно то можно но какого лешего простой запрос не идет дальше по группировке
23 Builder
 
06.06.18
18:17
(22)
1. Укажи вторую дату
2. Убери условие. Если документы вышли - кривое условие.
24 _barracuda_
 
06.06.18
18:18
|Период с (НачПериод) по (ТекущаяДата());
не идет
25 _barracuda_
 
06.06.18
18:18
|Период с (НачПериод) по (ТекущаяДата());
    |ОбрабатыватьДокументы все;
    //|Без итогов;

    |ТекДокумент = Документ."+ТипДок+".ТекущийДокумент;
    |Идентификатор = Документ."+ТипДок+".Идентификатор;
    //|Группировка ТекДокумент;

  // |Условие(Идентификатор = ИдентификаторПоиск);

не идет дальше Пока Запрос.Группировка() = 1 Цикл
26 Ёпрст
 
06.06.18
18:19
(22) в запросе из (0) добавь вторую дату, всё
27 _barracuda_
 
06.06.18
18:21
|ТекДокумент = Документ.СчетВходящий.ТекущийДокумент;
    |Идентификатор = Документ.СчетВходящий.Идентификатор;
так прошел дальше
28 Ёпрст
 
06.06.18
18:21
ИдентификаторПоиск - реквизит формы поди ?
29 _barracuda_
 
06.06.18
18:25
(28)
Функция ПолучитьДокументПоИдентификатору(ИдентификаторПоиск,Признак,ВидДокумента)
30 _barracuda_
 
06.06.18
18:26
(28)нет.переменная с 36 символами.ну косвенно ДА.из файла тяну этот поиск
31 _barracuda_
 
06.06.18
18:40
какие идеи
32 _barracuda_
 
06.06.18
18:43
(26) спасибо ДРУГ
33 _barracuda_
 
06.06.18
18:43
дай Бог всем удачи
34 johnny17
 
06.06.18
18:44
Единственная идея, если я все правильно помню, то 7.7 можно в запрос воткнуть свою функцию, типа ф(а, б) = 1, а в самой функции проверить типы и значения...
35 Злопчинский
 
06.06.18
19:21
А разве запрос к документам без Функция в запросе - вернет что-нибудь..?
вроде как при запросе к регистрам и документам - чтобы результат был не пустой - надо чтобы была хотя бы одна функция...?
36 big
 
06.06.18
20:11
(35) Совсем заработался ;)
37 johnny17
 
06.06.18
20:21
Я не это имел ввиду, в запросе УСЛОВИЕ(ф(а,б) = 1)
а отдельно
Функция ф(а, б)
Сообщить(а + ТипЗначения(а));
Сообщить(б + ТипЗначения(б));
Возврат ?(а = б, 1, 0);
КонецФункции

Как-то так, по идее конструкция должна работать
38 johnny17
 
06.06.18
20:25
Работает, проверил
39 big
 
06.06.18
20:38
(37) Замедление сильное, а так то работает, иногда без этого никак
40 johnny17
 
06.06.18
20:42
(39) я для теста, чтоб он проверил что типы и значения совпадают
41 big
 
06.06.18
20:45
(40) ТС похоже что-то лихорадочно ваял, потому как написанное в ветке нечётко накладывал на свой опыт клюшника )))  До типов он так и не добрался )
42 Злопчинский
 
06.06.18
22:15
(36) а шо, запрос по докам работает без функций?
43 GreyK
 
07.06.18
00:06
(0) А зачем делать такой запрос в 7.7? Выборка по скорости победит такой запрос.
44 Злопчинский
 
07.06.18
02:44
(43) потому что запросом - няшно. и кузяво.
45 Эльниньо
 
07.06.18
09:36
Нет смысла запросом, если выборка быстрее.
Нет смысла в прямом, если обычный быстрее