Имя: Пароль:
1C
1С v8
Запрос Составной Тип
0 sema76
 
16.04.14
15:17
Есть регистр НДС, там есть поле Счет-Фактура, это различные документы, Поступление, Поступление доп. расходов, ГТД, у этих документов есть табличная часть "Товары", как мне к ней обратиться.

Если пишу Счет.Фактура.Товары ругается

Нельзя обращаться к вложенной таблице через поле составного типа
1 Ёпрст
 
16.04.14
15:17
левое соединение сделай и привет
2 Ненавижу 1С
 
гуру
16.04.14
15:18
соединяй слева со всеми видами ТЧ
3 Ёпрст
 
16.04.14
15:18
тем самым, не будешь бегать по всем докам составного типа, а только по нужным
4 sema76
 
16.04.14
15:34
Можно пример? Я сам не сделаю)
5 sema76
 
16.04.14
15:37
Вроде понял немного, попробую)
6 sema76
 
16.04.14
15:39
Т.е. придется соединять со всеми мне нужными документами?
7 Ёпрст
 
16.04.14
15:43
Ну так
    "ВЫБРАТЬ
    |    НДСНачисленный.СчетФактура,
    |    НДСНачисленный.НДС,
    |    ДокументРеализацияТоваровУслуг.Товары.(
    |        Номенклатура
    |    )
    |ИЗ
    |    РегистрНакопления.НДСНачисленный КАК НДСНачисленный
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК ДокументРеализацияТоваровУслуг
    |        ПО (ДокументРеализацияТоваровУслуг.Ссылка = НДСНачисленный.СчетФактура)"


или сразу соединение с Документ.РеализацияТоваровУслуг.Товары
8 sema76
 
16.04.14
15:46
(7) Так у меня могут быть разные документы, а в вашем примере только один документ
9 sema76
 
16.04.14
15:50
Мне так где выбрать нужно чтобы было

СчетФактура.Товары.(
10 Ёпрст
 
16.04.14
16:00
да не вопрос, перечисляй все виды документов
11 Ёпрст
 
16.04.14
16:00
только вопрос - накуа ? спрашивается в задачнике..
12 sema76
 
16.04.14
16:10
(10) Попробую!
13 sema76
 
24.04.14
09:12
В продолжении темы

У меня теперь не работает Запрос, когда задаю условие

Где

НЕ ТребованиеНакладная.Материалы.СчетЗатрат В ИЕРАРХИИ (&СчетЗатрат)

И НЕ ПоступлениеТоваровУслугВНТТ.Услуги.СчетЗатрат В ИЕРАРХИИ (&СчетЗатрат)

Если пишу


НЕ

(ТребованиеНакладная.Материалы.СчетЗатрат В ИЕРАРХИИ (&СчетЗатрат)

ИЛИ

ПоступлениеТоваровУслугВНТТ.Услуги.СчетЗатрат В ИЕРАРХИИ (&СчетЗатрат))

То ругается

поля из различных вложенных таблиц используются в одном результирующем поле
14 Ёпрст
 
24.04.14
09:44
больше кода
15 sema76
 
24.04.14
11:01
Сделал несколько запросов и соединил их посредствов

Объединить все


Как теперь сделать поле СчетЗатрат общим?


Если вывожу все поля где есть СчетЗатрат, то ругается

"Использование полей из несвязанных наборов данных не допустимо"
16 Ёпрст
 
24.04.14
11:09
либо пихать условие на счет  в каждый запрос в юнионе, либо обернуть все запросы в юнионе в один подзапрос и снаружи лепить условия:

select вася from (
   select a as вася from table1
   union all
   select b  from table2
   union all
   .....
   )
where вася = 'лошпед'
17 sema76
 
24.04.14
11:12
(16) "либо пихать условие на счет  в каждый запрос в юнионе"

В смысле?
18 Ёпрст
 
24.04.14
11:13
да ё..
19 Ёпрст
 
24.04.14
11:14
select a as вася from table1
  where a = 'лошпед'

  union all
  select b  from table2
  where b = 'ходячий тормоз'

  union all
   .....
20 sema76
 
24.04.14
11:23
(19) Я не понимаю ...

Мне надо

ИЗ

Поступление.Услуги.СчетЗатрат

и

ИЗ

ТребованиеНакладная.Материалы.СчетЗатрат

Вывести СчетЗатрат в одно поле

При том, что эти таблицы являются левым соединением к регистру, эти документы есть Регистратор
21 Ёпрст
 
24.04.14
11:24
(20) И ? Больше кода.
22 sema76
 
24.04.14
11:34
(21)

ВЫБРАТЬ

    ПУСТАЯТАБЛИЦА.(),
    ТребованиеНакладная.Материалы.(
        СчетЗатрат
    )

ИЗ
    РегистрНакопления.НДСКосвенныеРасходы.Обороты(, , Регистратор, Организация = &Организация) КАК НДСКосвенныеРасходыОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная
        ПО НДСКосвенныеРасходыОбороты.Регистратор = ТребованиеНакладная.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
        ПО НДСКосвенныеРасходыОбороты.Регистратор = ПоступлениеТоваровУслуг.Ссылка


ОБЪЕДИНИТЬ ВСЕ


ВЫБРАТЬ


    ПоступлениеТоваровУслуг.Услуги.(
        СчетЗатрат
    ),
    ПУСТАЯТАБЛИЦА.()


ИЗ
    РегистрНакопления.НДСКосвенныеРасходы.Обороты(, , Регистратор, Организация = &Организация) КАК НДСКосвенныеРасходыОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная
        ПО НДСКосвенныеРасходыОбороты.Регистратор = ТребованиеНакладная.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
        ПО НДСКосвенныеРасходыОбороты.Регистратор = ПоступлениеТоваровУслуг.Ссылка
23 sema76
 
24.04.14
11:43
Может как-нибудь можно выразить?
24 Ёпрст
 
24.04.14
11:56
(22) ну, хрень же написана
:)
25 sema76
 
24.04.14
11:58
(24) Может. А как по-другому?
26 Ёпрст
 
24.04.14
12:07
блин, а че Ответ не прилетел :(
27 Ёпрст
 
24.04.14
12:08
делай соединение не к табличке документа, а к табличной части :

ВЫБРАТЬ
  ТребованиеНакладная.СчетЗатрат
ИЗ
    РегистрНакопления.НДСКосвенныеРасходы.Обороты(, , Регистратор, Организация = &Организация) КАК НДСКосвенныеРасходыОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладная
        ПО НДСКосвенныеРасходыОбороты.Регистратор = ТребованиеНакладная.Ссылка
28 sema76
 
24.04.14
12:15
(27) Да. Спасибо!

Только вот здесь прочитал:

v8: Как объединять обычное поле со вложенными таблицами?