Имя: Пароль:
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
Сделал в запросе формирования первой временной таблицы доп условие на нужный документ которое сразу отбирает нужные ссылки по функции ИМЕЮЩИЕ
Все ок спасибо всем кто пытался помочь!!
Ошибка? Это не ошибка, это системная функция.