Имя: Пароль:
1C
1С v8
Как сделать запрос по бух.регистру лучше?
0 cons74
 
02.04.18
15:07
День добрый.
Есть отчет, с запросом вида

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ХозрасчетныйДвиженияССубконто.Регистратор КАК Документ,
    ХозрасчетныйДвиженияССубконто.СчетДт КАК СчетДт,
    ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт,
    ХозрасчетныйДвиженияССубконто.Период КАК ДатаДокумента,
    ХозрасчетныйДвиженияССубконто.Сумма КАК Сумма,
    ХозрасчетныйДвиженияССубконто.Содержание КАК Содержание,
    ХозрасчетныйДвиженияССубконто.ВидСубконтоДт1 КАК ВидСубконтоДт1,
    ХозрасчетныйДвиженияССубконто.ВидСубконтоДт2 КАК ВидСубконтоДт2,
    ХозрасчетныйДвиженияССубконто.ВидСубконтоДт3 КАК ВидСубконтоДт3,
    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт1 КАК ВидСубконтоКт1,
    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2 КАК ВидСубконтоКт2,
    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3 КАК ВидСубконтоКт3,
    ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК СубконтоДт1,
    ХозрасчетныйДвиженияССубконто.СубконтоДт2 КАК СубконтоДт2,
    ХозрасчетныйДвиженияССубконто.СубконтоДт3 КАК СубконтоДт3,
    ХозрасчетныйДвиженияССубконто.СубконтоКт2 КАК СубконтоКт2,
    ХозрасчетныйДвиженияССубконто.СубконтоКт3 КАК СубконтоКт3,
    ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1
ПОМЕСТИТЬ ДокументыИзОборота
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
            &НачалоПериода,
            &КонецПериода,
            Активность = ИСТИНА
                И Счет В ИЕРАРХИИ (&Счета44_91) {(Организация = &Организация)},
            ,
            ) КАК ХозрасчетныйДвиженияССубконто

потом вторая часть запроса где

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДокументыИзОборота.СчетДт КАК СчетДт,
    ДокументыИзОборота.СчетКт КАК СчетКт,
    ДокументыИзОборота.Документ КАК Документ,
    ДокументыИзОборота.ДатаДокумента КАК ДатаДокумента,
    ДокументыИзОборота.Сумма КАК Сумма,
    ДокументыИзОборота.Содержание КАК Содержание,
    ДокументыИзОборота.Документ.Дата КАК ВхДата,
    ДокументыИзОборота.Документ.Номер КАК ВхНомер,

и далее некрасивая лапша из

ВЫБОР
КОГДА ДокументыИзОборота.ВидСубконтоДт1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат)
ТОГДА ДокументыИзОборота.СубконтоДт1
Когда ... и так про всем сбуконто Дт и Кт, да еще несколько раз для Контрагенты, Договоры, Номенклатура, Склад и т.д.

Все думаю как его переписать - и никак не придумаю. Вроде бы взять ХозрасчетныйОборотыДтКт и указать в параметрах массив субконто, но в нем нет реквизита Содержание.
1 cons74
 
03.04.18
07:42
Что-то ни одного ответа. Что, совсем нет вариантов?
2 cons74
 
03.04.18
11:06
Последняя попытка. Ап.
3 PR
 
03.04.18
11:23
Хрень какая-то.
Смотрите, это крокодил, он зеленый.
А это второй танк, он с дулом.
Как бы сделать так, чтобы Миша не писался по ночам?
Что, действительно нет идей?

Неужели ты думаешь, что твой (0) кто-то будет тщательно расшифровывать, что ты имел в виду?
4 piter3
 
03.04.18
11:23
Лучше расскажи коллегам,что хотел добиться
5 tesseract
 
03.04.18
11:25
(0) Если передать массив субконто в запрос по регистру ХозрасчетныйОбороты - все субконто сразу выстроятся по типам указанным в этом массиве. Читайте документацию.
6 cons74
 
03.04.18
15:20
(5) я в (0) писал, что в таблице Обороты нет реквизита Содержание
7 piter3
 
03.04.18
15:22
(6) Это не нужно тебе.
8 Адинэснег
 
03.04.18
15:23
(5) причем тут содержание, он говорит отбор по субконто в параметры виртуальной тыблицы передай в виде массива пвх субконто хозрасчетные
9 cons74
 
03.04.18
15:25
(4) имеем отчет http://shot.qip.ru/00Qtkp-1oZhWgxC3/
"движения по 44м и 91м".
Выводим данные по движениям для 44го и 91го (в иерархии). В отчет выводим: данные из регистра бухгалтерии Хозрасчетный, в т.ч из реквизита "Содержание", и путем "перебора" субконто - заполняем колонки "Контрагент", "Договор", "Номенклатура", "Склад" и т.д.
Вопрос: как сделать это простым и красивым запросом вместо "крокодила".
10 ptiz
 
03.04.18
15:25
(0) "Активность = ИСТИНА " - бессмысленно
"Счет В ИЕРАРХИИ " - плохо
11 cons74
 
03.04.18
15:25
(7), (8) а как еще заполнять колонку "содержание"?
12 cons74
 
03.04.18
15:26
(10) очень познавательно, а по-делу?
13 unregistered
 
03.04.18
15:45
(10) >> "Активность = ИСТИНА " - бессмысленно

С чего бы вдруг?
Или ты думаешь его устроит, когда в отчет прилетят записи из Док-та Операция с выключенной активностью?
14 unregistered
 
03.04.18
15:48
(12) >> а по-делу?

Задачу сформулируй.
Твои картинки в (9) не всем доступны.

Заранее предположу, что ваш отчет - какая-то безумная хотелка больного мозга буха. И, если я прав, то её действительно проще реализовать методом из (0).
15 RomanYS
 
03.04.18
16:13
(6) Если проблема только в этом, бери виртуальную таблицу с разворотом до записи и соединяй с живой таблицей РБ по регистратору и номеру строки.

И да таблица ДвиженияССубконто жутко медленная.
16 ptiz
 
03.04.18
17:08
(13) В виртуальные таблицы неактивные записи не попадают.
17 Buster007
 
03.04.18
17:12
    ДокументыИзОборота.Документ.Дата КАК ВхДата,
    ДокументыИзОборота.Документ.Номер КАК ВхНомер,
18 RomanYS
 
03.04.18
17:12
(16)  в ДвиженияССубконто попадают
19 unregistered
 
03.04.18
17:13
(16) ХозрасчетныйДвиженияССубконто - исключение.
Эта таблица - соединение двух физических таблиц. Нужна она в связи с тем, что у РБ (в отличии от, например, рег.накопления) нет единой физической таблицы первичных движений - первичные движения пишутся в две таблицы - в одну счета, измерения и ресурсы, а во вторую - аналитика (значения субконто).
20 cons74
 
04.04.18
06:08
(15) спасибо, что-то вроде этого и думал