|
v7: Не срабатывает условие в запросе | ☑ | ||
---|---|---|---|---|
0
Drac0
30.11.12
✎
16:42
|
День добрый! Что-то в пятницу не получается понять, почему не срабатывает условие на реквизит табличной части в запросе:
ТЗ оказывается пустой. Без условия все хорошо. Заранее спасибо! |
|||
1
АЛьФ
30.11.12
✎
16:44
|
2(0) Если без условия не пустая а с условием пустая, значит условие срабатывает. У тебя просто разные типы "Контрагент" И "ТекКонтр". ИМХО.
|
|||
2
Надсмотрщик
30.11.12
✎
16:44
|
Что такое "ТекКонтр"?
|
|||
3
Ёпрст
30.11.12
✎
16:46
|
ТекКонтр - это что?
|
|||
4
Drac0
30.11.12
✎
16:46
|
(1)(2)Ссылка на справочник контрагенты. Участвует в другом запросе, где контрагент - реквизит табличной части. Там все ок.
|
|||
5
Ёпрст
30.11.12
✎
16:47
|
больше кода..
Или перед запросом так (тест на вшивость): ТекКонтр = ТекКонтр.ТекущийЭлемент(); |
|||
6
Drac0
30.11.12
✎
16:48
|
(5) Нету больше кода :) Только создание объекта Запрос.
Попробую. |
|||
7
Надсмотрщик
30.11.12
✎
16:48
|
(5)+1
|
|||
8
dedmoroz777
30.11.12
✎
16:48
|
Контрагент = Документ.Выписка.Субконто1
Оригинально... |
|||
9
АЛьФ
30.11.12
✎
16:49
|
"Документ.Выписка.Субконто1" - имеет неопределенный тип. Что там фактически?
|
|||
10
Drac0
30.11.12
✎
16:51
|
(9) Фактически может быть много чего, но в том числе и контрагенты.
|
|||
11
Drac0
30.11.12
✎
16:53
|
Уже думаю, что лучше через БИ находить, но как-то любопытство не дает забить.
(5)Кстати, это не помогло. |
|||
12
Ёпрст
30.11.12
✎
16:57
|
(11) тогда вариантов как минимум 3 :
1.в ТекКонтр не ссылка на справочник.Контрагенты 2. в Субконто1 имеет другой тип 3. в выборке нет ни одного субконто1= текКонт |
|||
13
Надсмотрщик
30.11.12
✎
17:01
|
Получение "ТекКонтр" из другого запроса???
|
|||
14
Надсмотрщик
30.11.12
✎
17:01
|
+ (13) Как?
|
|||
15
Drac0
30.11.12
✎
17:03
|
(12) 1. Сообщить(""+ТипЗначения(ТекКонтр)+": "+ТекКонтр.Вид());
11: Контрагенты 2. Он неопределнный. Но там есть так же и Контрагенты. 3. По оборотке есть. (13) Реквизит формы. |
|||
16
Ёпрст
30.11.12
✎
17:05
|
(15) а в запросе он есть, без условий ?
|
|||
17
Надсмотрщик
30.11.12
✎
17:08
|
А реквизит "Контрагент" есть на форме или в переменных формы?
|
|||
18
АЛьФ
30.11.12
✎
17:09
|
ТекстЗапроса =
"//{{ЗАПРОС(Выписки) |Период с НачДата по КонДата; |ОбрабатыватьДокументы Проведенные; |ТекДок = Документ.Выписка.ТекущийДокумент; |Контрагент = Документ.Выписка.Субконто1; |Договор = Документ.Выписка.Субконто2; |Группировка ТекДок; |Группировка Контрагент; |Группировка Договор; |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; ТЗ=""; Запрос.Выгрузить(ТЗ,0,0); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Если ТЗ.Контрагент = ТекКонтр Тогда Сообщить("ЕСТЬ!"); КонецЕсли; КонецЦикла; Что выдает? |
|||
19
Drac0
30.11.12
✎
17:10
|
(16) Есть
|
|||
20
palpetrovich
30.11.12
✎
17:11
|
(0) если
|Условие(Контрагент = ТекКонтр); то зачем |Группировка Контрагент; ? |
|||
21
Drac0
30.11.12
✎
17:13
|
(18) "ЕСТЬ!"
|
|||
22
Drac0
30.11.12
✎
17:13
|
(20) от безысходности
|
|||
23
Надсмотрщик
30.11.12
✎
17:14
|
Что на (17) ?
|
|||
24
palpetrovich
30.11.12
✎
17:15
|
(22) а от безысходности функцию не хочешь добавить?
|
|||
25
Drac0
30.11.12
✎
17:16
|
(23) На форме документа? Нет. Это типовая выписка бухгалтерии.
Субконто1 при выборе счета присваевается тип Справочник.Контрагенты. |
|||
26
АЛьФ
30.11.12
✎
17:16
|
Что-то ты недоговариваешь...
|
|||
27
Drac0
30.11.12
✎
17:16
|
(24)Счетчик, например?
|
|||
28
palpetrovich
30.11.12
✎
17:18
|
(27) да не, не обязательно функцию, эт я так
|
|||
29
Drac0
30.11.12
✎
17:19
|
(28) Но я таки добавил и ничего.
|
|||
30
Drac0
30.11.12
✎
17:20
|
(26) На форме 5 реквизитов. Два из них - задают периоды, один - контрагент и еще двое, которые не используются в этом случае. И процедура кнопки нажатие с этим запросом. Больше ничего.
|
|||
31
palpetrovich
30.11.12
✎
17:20
|
(29) проверил, при том, что ТекКонтр - реквизит на форме - все работает
Процедура Сформировать() Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Период с НачДата по КонДата; |ОбрабатыватьДокументы Проведенные; |ТекДок = Документ.БанковскаяВыписка.ТекущийДокумент; |Контрагент = Документ.БанковскаяВыписка.Субконто; |Условие(Контрагент = ТекКонтр); |Группировка ТекДок; |"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; ТЗ=""; Запрос.Выгрузить(ТЗ); ТЗ.ВыбратьСтроку(); КонецПроцедуры |
|||
32
Drac0
30.11.12
✎
17:26
|
(31)
пусто. |
|||
33
Надсмотрщик
30.11.12
✎
17:26
|
Как заполняешь ТекКонтр на форме?
|
|||
34
Drac0
30.11.12
✎
17:26
|
(31)Какой тип у субконто у вас?
|
|||
35
Drac0
30.11.12
✎
17:27
|
(33) Выбором из справочника. Стандартный. Проверял перед запросом - тип тот, что требуется.
|
|||
36
Надсмотрщик
30.11.12
✎
17:31
|
У меня это работает
ТекстЗапроса = "//{{ЗАПРОС(Выписки) |Период с (НачДата) по (КонДата); |Док = Документ.Выписка.ТекущийДокумент; |Контр = Документ.Выписка.Субконто1; |Дог = Документ.Выписка.Субконто2; |Приход = Документ.Выписка.Приход; |Расход = Документ.Выписка.Расход; |ВидДвижения = Документ.Выписка.ВидДвижения.ТекущийЭлемент; |НазначениеПлатежа = Документ.Выписка.НазначениеПлатежа; |КоррСчет = Документ.Выписка.КоррСчет.ТекущийСчет; |ПервичныйДокумент = Документ.Выписка.ПервичныйДокумент.ТекущийДокумент; |ДокументПоставки = Документ.Выписка.ДокументПоставки.ТекущийДокумент; |НомерДокВходящий = Документ.Выписка.НомерДокВходящий; |ДатаДокВходящий = Документ.Выписка.ДатаДокВходящий; |Функция ПриходСумма = Сумма(Приход); |Функция РасходСумма = Сумма(Расход); |Группировка Контр без групп; |Группировка Док упорядочить по Док.ДатаДок; |Группировка СтрокаДокумента; |Условие(ВидДвижения в СзДвижений); |"//}}ЗАПРОС ; Если (Одному = 1) И (ПустоеЗначение(ВыбПартнер) = 0) Тогда ТекстЗапроса = ТекстЗапроса + "Условие(Контр.ПринадлежитГруппе(ТабНастройки.ПолучитьЗначение(ВыбПартнер.ПолучитьЗначение(ВыбПартнер.ТекущаяСтрока()), 3)) = 1);"; Иначе ТекстЗапроса = ТекстЗапроса + "Условие(ВыбПартнеры.Принадлежит(Контр) = 1);"; КонецЕсли; |
|||
37
Drac0
30.11.12
✎
17:32
|
Запрос.ВключитьSQL(0);
Помогло. У меня на скуля 1с-ка ... блин, кто бы мог подумать, что это повлияет в этой ситуации. |
|||
38
palpetrovich
30.11.12
✎
17:37
|
(34) неопределенный
|
|||
39
Drac0
30.11.12
✎
17:38
|
(38) в (37) уже разобрался, спасибо :)
|
|||
40
palpetrovich
30.11.12
✎
17:38
|
(37) фух :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |