|
v7: Проблема с условием в запросе | ☑ | ||
---|---|---|---|---|
0
Pro100
25.10.12
✎
10:14
|
Народ подскажите почему в этом запросе после выполнения нету ничего
Текст = "//{{ЗАПРОС(Документы) |Период с НачДата по КонДата; |Без Итогов; |МПЗ = Регистр.Партии.МПЗ; |Партия = Регистр.Партии.Партия; |ТекДок = Регистр.Партии.ТекущийДокумент; |Количество = Регистр.Партии.Количество; |Функция КолВо = Расход(Количество); |Группировка ТекДок; |Группировка МПЗ; |Условие (ТекДок в СписДокументов); |"; Проблема в условии |
|||
1
Pro100
25.10.12
✎
10:15
|
если просто ставлю Условие (ТекДок = Документ) то нормально отбирает данные партий, а если в списке документов, то ничего не выводит. Почему? что не так в запросе?
|
|||
2
GLazNik
25.10.12
✎
10:15
|
(1) а список документов как формируется?
|
|||
3
ДенисЧ
25.10.12
✎
10:19
|
ЧТо в списке? Сколько в списке?
|
|||
4
Pro100
25.10.12
✎
10:20
|
Список документов формируется выгрузкой в него документов из ТЗ, список документов проверял 100 % есть документы.
Если делать так ТекДокумент = СписДокументов,ПолучитьЗначение(1); и затем в условии ставить: Условие (ТекДок= ТекДокумент) то записи выводятся, если сразу же ставлю "В" то перестает выводиться. |
|||
5
Ёпрст
25.10.12
✎
10:21
|
(0) в списке не документы
|
|||
6
1Сергей
25.10.12
✎
10:22
|
Нет ли пустых строк в списке?
|
|||
7
Pro100
25.10.12
✎
10:22
|
(5) Как это не документы? а что там тогда?? )))
|
|||
8
Pro100
25.10.12
✎
10:22
|
(3)В списке 488 документов
(6) Пустых строк нету |
|||
9
Ёпрст
25.10.12
✎
10:23
|
(7) нам отсюда не видно - больше кода.
|
|||
10
Ёпрст
25.10.12
✎
10:23
|
А так, 100% - .ТекущийДокумент() отсутствует при добавлении в список.
|
|||
11
Ёпрст
25.10.12
✎
10:23
|
и там просто переменная с типом, а не ссылка на объект
|
|||
12
Pro100
25.10.12
✎
10:25
|
(11) Почему тогда если делаю так:
ТекДокумент = СписДокументов.ПолучитьЗначение(1); и затем в условии ставить: Условие (ТекДок= ТекДокумент) то выводит результат ?? |
|||
13
Ёпрст
25.10.12
✎
10:30
|
(12) больше кода
|
|||
14
Pro100
25.10.12
✎
10:39
|
(13)
Вот больше кода: рс = СоздатьОбъект("ODBCRecordset"); ТекстЗапроса = " |SELECT РеализацияПродукцииСтроки.IDDOC [Ссылка $Документ.РеализацияПродукции] | , $РеализацияПродукцииСтроки.Товар [Товар $Справочник.Номенклатура] |FROM $ДокументСтроки.РеализацияПродукции AS РеализацияПродукцииСтроки With (NOLOCK) | INNER JOIN _1SJOURN AS Журнал With (NOLOCK) ON РеализацияПродукцииСтроки.IDDOC = Журнал.IDDOC |WHERE (Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime) >= :НачДата) | AND (Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime) <= :КонДата) | AND (Журнал.ISMARK <> 1) | AND ((Журнал.CLOSED & 1) = 1) |"; рс.УстановитьТекстовыйПараметр("НачДата", НачДата); рс.УстановитьТекстовыйПараметр("КонДата", КонДата); тз = рс.ВыполнитьИнструкцию(ТекстЗапроса); тз.НоваяКолонка("КолСтр","Число",15); тз.Заполнить(1,1,тз.КоличествоСтрок(),"КолСтр"); тз.Свернуть("Ссылка","КолСтр"); //тз.ВыбратьСтроку(); СписДокументов = СоздатьОбъект("СписокЗначений"); тз.Выгрузить(СписДокументов,,,"Ссылка"); тз.ВыбратьСтроки(); //СписДокументов.ВыбратьЗначение(,"СписДокументов"); Текст = "//{{ЗАПРОС(Учет МПЗ) |Период с НачДата по КонДата; |Без Итогов; |МПЗ = Регистр.Партии.МПЗ; |Партия = Регистр.Партии.Партия; |ТекДок = Регистр.Партии.ТекущийДокумент; |Количество = Регистр.Партии.Количество; |Функция КолВо = Расход(Количество); |Группировка ТекДок; |Группировка МПЗ; |Условие (ТекДок в СписДокументов); |"; Запрос = СоздатьОбъект("Запрос"); Запрос.Выполнить(Текст); |
|||
15
Ёпрст
25.10.12
✎
10:43
|
(14) и нафига в этом коде черный запрос и тем более, прямой запрос на документы отдельно ?
|
|||
16
Pro100
25.10.12
✎
10:44
|
Тут не обсуждается что и нафига, вопрос почему не работает условие в запросе?
|
|||
17
Ёпрст
25.10.12
✎
10:47
|
(16) регистр толкают другие виды документов вестимо.
|
|||
18
Pro100
25.10.12
✎
10:48
|
(17) тогда бы не было записей если делаю в условии = ТекДокумент
|
|||
19
Ёпрст
25.10.12
✎
10:50
|
и это, как хоть проверяешь, что запрос пустой ?
|
|||
20
Pro100
25.10.12
✎
10:51
|
(19) )))
мТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(мТЗ); мТЗ.ВыбратьСтроку(,"мТЗ"); |
|||
21
Ёпрст
25.10.12
✎
10:52
|
убери без итогов, для начала
|
|||
22
hunter76
25.10.12
✎
10:52
|
попробуй:
Условие (СписДокументов.Принадлежит(ТекДок)=1); |
|||
23
GLazNik
25.10.12
✎
10:54
|
(20) чисто для проверки попробуй так:
ТекДокумент = СписДокументов,ПолучитьЗначение(1); СписДокументов = СоздатьОбъект("СписокЗначений"); СписДокументов.ДобавитьЗначение(ТекДокумент); |
|||
24
Simod
25.10.12
✎
12:13
|
(22) +1
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |