![]() |
![]() |
![]() |
|
Вложенные таблицы в запросе | ☑ | ||
---|---|---|---|---|
0
Air777
19.10.10
✎
11:53
|
Хочу обратиться к табличной части документа в запросе.
Естественно поле Регситратор составное. Делаю через конструкцию ВЫБОР и тут натыкаюсь на непонятку напрямую к табл части доступа нет если обращаться через Ссылка.ТабЧасть сервер 1с обрывает коннект. Вот текст запроса: ВЫБРАТЬ Регистратор, ВЫБОР КОГДА Регистратор ССЫЛКА Документ.Реализация Тогда Реализация.Ссылка.Товары КОНЕЦ Как товары, ЕстьNull(Взаиморасчеты.СуммаВалНачальныйОстаток,0) как НачальныйОстатокВал ИЗ РегистрНакопления.ВзаиморасчетыБух.ОстаткиИобороты(&ДатаНачала,&ДатаКонца,Регистратор,ДвиженияИГраницыПериода) Как Взаиморасчеты ЛЕВОЕ СОЕДИНЕНИЕ Документ.Реализация Как Реализация ПО Реализация.Ссылка=Регистратор ИТОГИ Сумма(НачальныйОстатокВал) ПО Общие,Регистратор (Резльтат - Падение клиента т.к. сервер 1с принудительно рвет коннект) Конечно я могу вытащить 10 видов табл частей без конструкции ВЫБОР но хотелось изящно - все таб части свести в одному графу выборки У кого какие идеи? |
|||
1
butterbean
19.10.10
✎
11:55
|
ЛЕВОЕ СОЕДИНЕНИЕ
Документ.Реализация.Товары Как РеализацияТовары ПО РеализацияТовары.Ссылка=Регистратор и уже из РеализацияТовары тянуть все что надо |
|||
2
Air777
19.10.10
✎
11:58
|
(1) неподходит, т.к. нужна вся табл.часть как вложенная таблица причем состав колонок разных видов документов естественно может не совпадать.
|
|||
3
hhhh
19.10.10
✎
12:04
|
(2) ну, пристрелить автора подобной идеи.
|
|||
4
Ненавижу 1С
гуру
19.10.10
✎
12:07
|
(2) для каждого вида дока надо писать отдельно
|
|||
5
Air777
19.10.10
✎
12:12
|
(4) это понятно я и пищу для каждого отдельно получаю графу выборки типа ВложенныйЗапрос и хочу эти 3 графы одного типа свести в одну. Ан нет. Но даже не это удивила, а то что система тупо падает при попытке обратится Реализация.Ссылка.Товары в конструкции ВЫБОР
без объяснения причин! |
|||
6
butterbean
19.10.10
✎
12:13
|
(5) перестань пищать и почитай книжки
|
|||
7
Ненавижу 1С
гуру
19.10.10
✎
12:19
|
пример:
ВЫБРАТЬ ТоварыНаСкладах.Регистратор, ТоварыНаСкладах.Номенклатура, ЕСТЬNULL(ПоступлениеТоваровУслугТовары.СтавкаНДС, РеализацияТоваровУслугТовары.СтавкаНДС) КАК СтавкаНДС ИЗ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ПО ТоварыНаСкладах.Регистратор = ПоступлениеТоваровУслугТовары.Ссылка И ТоварыНаСкладах.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ПО ТоварыНаСкладах.Регистратор = РеализацияТоваровУслугТовары.Ссылка И ТоварыНаСкладах.Номенклатура = РеализацияТоваровУслугТовары.Номенклатура |
|||
8
Air777
19.10.10
✎
12:19
|
(6) Ткните меня носом где в описании конструкции ВЫБОР это недопустимо???
В выражениях языка запросов могут применяться операции выбора, которые позволяют получить одно из возможных значений в соответствии с указанными условиями. Операция выбора описывается следующим набором правил: <Операция выбора> ВЫБОР <Альтернативы выбора> [ИНАЧЕ <Выражение>] КОНЕЦ <Альтернативы выбора> <Одиночный выбор> [<Альтернативы выбора>] <Одиночный выбор> КОГДА <Логическое выражение> ТОГДА <Выражение> В операции выбора может указываться неограниченное количество альтернативных одиночных выборов КОГДА… ТОГДА. Они обрабатываются в запросе последовательно; если <Логическое выражение> имеет значение ИСТИНА, обработка операции выбора завершается; результатом операции является значение выражения, указанного после слова ТОГДА. Логические выражения писаны в Логические выражения в языке запросов. Значение выражения, указанного после слова ИНАЧЕ используется в качестве результата операции выбора в том случае, если во всех ранее указанных альтернативных одиночных выборах предикат имел значение ЛОЖЬ. Пример: Выбрать Справочник.Номенклатура.Наименование, Выбор Когда Справочник.Номенклатура.Этогруппа = Истина Тогда «Это Группа» Когда Справочник.Номенклатура.ЗакупочнаяЦена > 1000 Тогда «1000 -» Когда Справочник.Номенклатура.ЗакупочнаяЦена > 100 Тогда «100 – 1000» Когда Справочник.Номенклатура.ЗакупочнаяЦена > 10 Тогда «10 – 100» Когда Справочник.Номенклатура.ЗакупочнаяЦена > 0 Тогда «0 – 10» Иначе «Не Задана» Конец Цена |
|||
9
butterbean
19.10.10
✎
12:21
|
(8) дело не в конструкции ВЫБОР , а в том что нельзя выбирать таб. части как обычные поля
|
|||
10
Air777
19.10.10
✎
12:23
|
В том то и дело что можно, вот работающий пример:
ВЫБРАТЬ Регистратор, Реализация.Товары Как РеализацияТовары, НачальныйОстатокВал ИЗ РегистрНакопления.ВзаиморасчетыБух.ОстаткиИобороты(&ДатаНачала,&ДатаКонца,Регистратор,ДвиженияИГраницыПериода) Как Взаиморасчеты ЛЕВОЕ СОЕДИНЕНИЕ Документ.Реализация Как Реализация ПО Реализация.Ссылка=Регистратор ИТОГИ Сумма(НачальныйОстатокВал) ПО Общие,Регистратор |
|||
11
Ненавижу 1С
гуру
19.10.10
✎
12:28
|
(10) но лучше не надо, с ними ничего в самом запросе сделать нельзя, на самом деле вытаскивается ссылка на ТЧ, которая потом на клиенте грузится в ТЗ
|
|||
12
Air777
19.10.10
✎
12:42
|
(11) именно это мне и нужно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |