Имя: Пароль:
1C
1С v8
Временные таблицы
,
0 3axap_4
 
02.07.13
17:01
Добрый!

Имеется запрос (отбирающим поля документов типа ссылка) в котором по мере выполнения создаются временные таблицы, на одном из этапов нужно посчитать количество записей в табличной части документа, конструктор ругается о том что нельзя работать с полями нескольких вложенных таблиц. Как дальше жить? что посоветуете?
1 Fragster
 
гуру
02.07.13
17:04
не юзать основную таблицу, юзать таблицу табличной части
2 Fragster
 
гуру
02.07.13
17:04
временный таблицы не причем
3 3axap_4
 
02.07.13
17:07
(2) в смысле? например есть документ Счет у него табличная часть "Товары", в первом пакете я отобрал Ссылку на документ, в следующем мне нужно проверить количество записей в таблице "Товары" я пытаюсь сделать обращение вида "ВремТабл.Ссылка.Товары" и получаю ерор
4 Maxus43
 
02.07.13
17:10
(3)

ВЫБРАТЬ
   ПлатежноеПоручениеИсходящее.Ссылка
ПОМЕСТИТЬ втДокументы
ИЗ
   Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   втДокументы.Ссылка,
   КОЛИЧЕСТВО(ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка) КАК Количество
ИЗ
   втДокументы КАК втДокументы
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПлатежноеПоручениеИсходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеИсходящееРасшифровкаПлатежа
       ПО втДокументы.Ссылка = ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка

СГРУППИРОВАТЬ ПО
   втДокументы.Ссылка
5 3axap_4
 
02.07.13
17:12
(4) проблема осложняется тем что запрос формируется динамически и включает в себя 20 типов документов, из которых меня интересует табличная часть только одного
6 3axap_4
 
02.07.13
17:13
ссылки документов 20 типов дописываются друг за другом используя соответственно "ОБЪЕДИНИТЬ ВСЕ" на остальные типы документов я уже наложил условия затык приключился с попыткой обработать табл часть...
7 Maxus43
 
02.07.13
17:14
ну ОБЪЕДЕНИТЬ ВСЁ

и свой запрос с количеством по нужному доку подсунь. я хз что за задача
8 3axap_4
 
02.07.13
17:21
(7) так разное количество полей же, табличные части не у всех есть, да и тягать не нужные значения... другого пути нет?
9 Maxus43
 
02.07.13
17:23
(8) я говорю что только к своему нужному доку приделай подсчет, а не ко всем. Полей разное - конечно, а как ты хочешь видеть результат вобще?
10 3axap_4
 
02.07.13
17:25
(9) результат это набор ссылок на документы которые не прошли условия отбора
11 hhhh
 
02.07.13
17:25
(8) лучше наоборот берите. Табличную часть, а ней берите ссылку на документ

Тавары.Ссылка
12 Maxus43
 
02.07.13
17:26
(10) при чем тут таб часть?
короче, у тебя в ОБЪЕДЕНИТЬ ВСЁ запросы к разным докам, кот мешает (4) впихнуть туда, + не тягать в общую выборку тогда поле количсетво а просто условие ИМЕЮЩИЕ использовать
13 3axap_4
 
02.07.13
17:31
(12) в (4) формируется временная таблица вложенный запрос неполучится сделать с временной таблицей
14 Maxus43
 
02.07.13
17:32
(13) к временной таблице присоедини вложенный потом... в чем проблема?
15 3axap_4
 
02.07.13
17:33
(14) кажется понял о чем ты сейчас попробую
16 3axap_4
 
03.07.13
09:36
(14) Сделал следс образом
     |;
     |
     |////////////////////////////////////////////////////////////////////////////////
     |ВЫБРАТЬ
     |    Табл.Ссылка
     |ПОМЕСТИТЬ ТаблицаПроведенных
     |ИЗ
     |    Табл КАК Табл
     |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.НужныйДокумент.ТабЧасть КАК НужныйДокументТабЧасть
     |        ПО (ВЫБОР
     |                КОГДА Табл.Ссылка ССЫЛКА Документ.НужныйДокумент
     |                    ТОГДА НужныйДокументТабЧасть.Ссылка = Табл.Ссылка
     |                    И НужныйДокументТабЧасть.НомерСтроки = 1
     |                ИНАЧЕ ЛОЖЬ
     |            КОНЕЦ)
     |            
     |ГДЕ
     |    ВЫБОР
     ............Список условий для других типов документов
     | КОГДА Табл.Ссылка ССЫЛКА Документ.НужныйДокумент
     |                ТОГДА Табл.Ссылка.ОтражатьВУчете
     |            И НЕ (НужныйДокументТабЧасть.Ссылка ЕСТЬ NULL)
     ......................
     | Конец
     |СГРУППИРОВАТЬ ПО
     |    Табл.Ссылка

теперь проблема, при условии на ЕСТЬNULL запрос просто зависает прбывал и просто в секции ГДЕ разместить после ВЫБОРА, результат один, убираешь ЕСТЬNULL работает но нужно же проверить количество....
что делать?
17 cw014
 
03.07.13
10:03
Странный запрос. При этом выбираются только значения из "Табл.Ссылка"...

А так не пробовал?

ВЫБРАТЬ
НужныйДокументТабЧасть.Ссылка КАК Ссылка,
НужныйДокументТабЧасть.*
ИЗ
Документ.НужныйДокумент.ТабЧасть КАК НужныйДокументТабЧасть
ГДЕ
НужныйДокументТабЧасть.Ссылка В (ВЫБРАТЬ Табл.Ссылка ИЗ Табл КАК Табл)
И НужныйДокументТабЧасть.НомерСтроки = 1
18 3axap_4
 
03.07.13
10:07
(17) мне требуется просто проверить пустая таб часть или нет сама информация из документа мне не нужна, это часть запроса итог - формирование временной таблицы состоящей из ссылок документов нескольких типов которые проидут по условиям которые описаны в секции ВЫБОР КОГДА
19 cw014
 
03.07.13
10:10
(18) ЛЕВОЕ СОЕДИНЕНИЕ при наличии ГДЕ автоматом превращается во ВНУТРЕННЕЕ
20 3axap_4
 
03.07.13
10:16
(19) А так пойдет?
ВЫБРАТЬ
Табл.Ссылка
ИЗ Табл КАК Табл

ГДЕ
НужныйДокументТабЧасть.Ссылка В (ВЫБРАТЬ НужныйДокументТабЧасть.Ссылка КАК Ссылка
ИЗ Документ.НужныйДокумент.ТабЧасть КАК НужныйДокументТабЧасть)

И НужныйДокументТабЧасть.НомерСтроки = 1
21 3axap_4
 
03.07.13
11:57
Сделал в запросе формирования первой временной таблицы доп условие на нужный документ которое сразу отбирает нужные ссылки по функции ИМЕЮЩИЕ
Все ок спасибо всем кто пытался помочь!!