Имя: Пароль:
1C
1С v8
Запрос
,
0 programer_
1c_nn15
 
30.08.11
15:49
Добрый день есть такой запрос, вывод расходов по подразделениям и статьям затрат.Нужно чтобы выводил все подразделения в том числе по которым расходов не было, выводит соответственно не все, проболвал через левое соединение не выходит.
1 programer_
1c_nn15
 
30.08.11
15:49
"ВЫБРАТЬ
   |    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК СтатьяДвиженияДС,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокРеклама)
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК НачальныйОстатокКт,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокСодержаниеРАО)
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК ОборотКт,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокСЗ)
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК НачальныйОстатокДт,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокПрочиеКапРАО)
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК КонечныйОстатокКт,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокЗарплата)
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК КонечныйОстатокДт,
   |    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК ОборотДт,
   |    ПодразделенияОрганизаций.Ссылка КАК Ссылка,
   |    ПодразделенияОрганизаций.Представление
   |ИЗ
   |    Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, , , , ) КАК ХозрасчетныйОстаткиИОбороты
   |        ПО  ПодразделенияОрганизаций.Ссылка = ХозрасчетныйОстаткиИОбороты.Подразделение
   |ГДЕ
   |    ХозрасчетныйОстаткиИОбороты.Счет = &счет
   |    И ХозрасчетныйОстаткиИОбороты.Организация = &организация
   |
   |СГРУППИРОВАТЬ ПО
   |    ХозрасчетныйОстаткиИОбороты.Субконто1,
   |    ПодразделенияОрганизаций.Ссылка,
   |    ПодразделенияОрганизаций.Представление
   |ИТОГИ
   |    СУММА(НачальныйОстатокКт),
   |    СУММА(ОборотКт),
   |    СУММА(НачальныйОстатокДт),
   |    СУММА(КонечныйОстатокКт),
   |    СУММА(КонечныйОстатокДт),
   |    СУММА(ОборотДт)
   |ПО
   |    ОБЩИЕ,
   |    Ссылка ИЕРАРХИЯ,
   |    СтатьяДвиженияДС
   |АВТОУПОРЯДОЧИВАНИЕ";
3 viktor_vv
 
30.08.11
15:50
А через правое :)?
4 programer_
1c_nn15
 
30.08.11
15:51
(3) тоже самое
5 proger2011
 
30.08.11
15:52
Избавься от ГДЕ, перенеси из ГДЕ в ПО
6 programer_
1c_nn15
 
30.08.11
15:53
(5) как вариант, поточней можешь сказать или короткий пример кода
7 programer_
1c_nn15
 
30.08.11
15:55
(5) попробую "где" в связи перенести  чтобы "по" было
8 programer_
1c_nn15
 
30.08.11
15:57
(5) чет нестыковка выходит
9 viktor_vv
 
30.08.11
15:57
Условие по организации лучше оставь в Где, только через справочник подразделений. Не знаю какая конфа, но скорее всего подразделения как-то привязаны к организации.
10 viktor_vv
 
30.08.11
15:58
Судя по всему владелец там организация.
11 viktor_vv
 
30.08.11
15:59
А &счет засунь параметром в ВТ.
12 programer_
1c_nn15
 
30.08.11
15:59
(9) Конфа Бухгалтерия КОРП
13 viktor_vv
 
30.08.11
16:00
Мне это все равно не поможет :). Страны у нас разные. Но см (10).
14 programer_
1c_nn15
 
30.08.11
16:02
Пробую)
15 programer_
1c_nn15
 
30.08.11
16:03
может организацию вобще убрать?она одна, хотя наверно подразделения к ней привязаны
16 programer_
1c_nn15
 
30.08.11
16:07
Ессс!))) работает, спасибо, счёт в вт поставил, организацию убрал , сходу неашёл как она с подразделением связана
17 programer_
1c_nn15
 
30.08.11
16:08
Быа у меня смутная догадка насчёт где:)
18 programer_
1c_nn15
 
30.08.11
16:11
осталось только отбор по подразделению сделать которое является группой и сохранить такой же вывод
19 programer_
1c_nn15
 
30.08.11
16:15
С отбором по подр. тоже всё работает ещё раз большое спасибо!)
20 GROOVY
 
30.08.11
16:16
Условия по счету, организации, виду субконто и массивам субконто в параметры виртуальной таблицы поставь.
21 programer_
1c_nn15
 
30.08.11
16:18
(20) хороший вариант, сразу не заметил всех параметров там вниз промотать надо, всё туда переношу
22 Axel2009
 
30.08.11
16:19
для того чтобы выводить по 2м измерениям подразделение и статья затрат, необходимо создать временную таблицу с пересечением этих множеств. и уже к этой таблице присоединять обороты
23 Beduin
 
30.08.11
16:20
(21) Дело не в параметрах, а в способе построения запроса. Условие "ГДЕ" накладывается после того как таблицы соединены.
24 programer_
1c_nn15
 
30.08.11
16:22
С каждым разом лучше и лучше)
25 programer_
1c_nn15
 
30.08.11
16:36
а вот ещё может кто подскажет такой же запрос сделаю по 20 и их надо соеденить в один, тоесть чтобы по каждому подразделению было видно движения и по 26 и в этой же строчке по 20 но соответственно в другой колонке как лучше сделать?
26 luckyluke
 
30.08.11
16:42
(25) например можно так:
ВЫБРАТЬ
   |    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК СтатьяДвиженияДС,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокРеклама) И ХозрасчетныйОстаткиИОбороты.Счет = &Счет26
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК НачальныйОстатокКт_26,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокРеклама) И ХозрасчетныйОстаткиИОбороты.Счет = &Счет20
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК НачальныйОстатокКт_20,
...
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, ,Счет В (&Счет26, &Счет20) , , )
27 programer_
1c_nn15
 
30.08.11
16:45
тоесть уже второе левое соединение будет, с подразделением уже есть одно? ещё вариант может быть с объединением запросов ну или по этому пути
28 luckyluke
 
30.08.11
16:46
(27) нет, я же написал отбор уже в таблице остатков и оборотов для 20 и 26-го счета:
Счет В (&Счет26, &Счет20)
29 luckyluke
 
30.08.11
16:47
+(28) ну и раскидать просто теперь в зависимости от того какой счет в нужную колонку. Правда с 20-м счетом будет субконто2, а не субконто1.
30 programer_
1c_nn15
 
30.08.11
16:49
Ага буду пробовать))
31 luckyluke
 
30.08.11
16:49
(29) Можно конечно сделать соединение или объединение, но тогда придется виртуальную таблицу остатков и оборотов вызывать дважды.
32 programer_
1c_nn15
 
30.08.11
17:14
улётный запрос выходит)
33 programer_
1c_nn15
 
30.08.11
17:14
Радует что обошлось без редактирования вывода все отборы нруппировки можно в самом запросе настроить
34 luckyluke
 
30.08.11
17:20
(33) А для вывода, группировки и отбора есть СКД.
35 programer_
1c_nn15
 
30.08.11
17:24
как расшифровывается? последнее время часто встречаю абривматуру эту
36 luckyluke
 
30.08.11
17:28
(35) система компоновки данных, реклама на бесплатный видеокурс в правом верхнем углу.
37 programer_
1c_nn15
 
30.08.11
17:33
ясно, у меня книга есть, начал изучать, ещё вопрос появился сделал запрос по 20 и26, тоесть совместил, а группировку как теперь прописать? субконто1 26 такое же как субконто2 20
сейчас такая:
|СГРУППИРОВАТЬ ПО
   |    ХозрасчетныйОстаткиИОбороты.Субконто1,
   |    ПодразделенияОрганизаций.Ссылка,
   |    ПодразделенияОрганизаций.Представление,
   |    ХозрасчетныйОстаткиИОбороты.Счет

тоесть просто субконто 2 добавить?
38 programer_
1c_nn15
 
30.08.11
17:36
пока сделал так
|СГРУППИРОВАТЬ ПО
   |    ХозрасчетныйОстаткиИОбороты.Субконто1,
   |    ПодразделенияОрганизаций.Ссылка,
   |    ПодразделенияОрганизаций.Представление,
   |    ХозрасчетныйОстаткиИОбороты.Счет,
   |    ХозрасчетныйОстаткиИОбороты.Субконто2
позже проверю что получится по 26 пока работает когда колонки по 20 добавятся будет видно
39 luckyluke
 
30.08.11
17:37
(37) да также, через оператора выбор:
ВЫБОР
   |        КОГДА  ХозрасчетныйОстаткиИОбороты.Счет = &Счет26
   |            ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1
   |        ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Субконто2
   |    КОНЕЦ КАК СтатьяЗатрат,
40 programer_
1c_nn15
 
30.08.11
17:39
это я уже сделал немного другое спрашивал)) ну ладно потом когда по 20 доделаю прверю
41 programer_
1c_nn15
 
30.08.11
17:40
сейчас пока такой получился

"ВЫБРАТЬ
   |    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК СтатьяДвиженияДС,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокРеклама)
   |                И ХозрасчетныйОстаткиИОбороты.Счет = &Счет
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК НачальныйОстатокКт,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокСодержаниеРАО)
   |                И ХозрасчетныйОстаткиИОбороты.Счет = &Счет
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК ОборотКт,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокСЗ)
   |                И ХозрасчетныйОстаткиИОбороты.Счет = &Счет
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК НачальныйОстатокДт,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокПрочиеКапРАО)
   |                И ХозрасчетныйОстаткиИОбороты.Счет = &Счет
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК КонечныйОстатокКт,
   |    ВЫБОР
   |        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 В (&СписокЗарплата)
   |                И ХозрасчетныйОстаткиИОбороты.Счет = &Счет
   |            ТОГДА СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК КонечныйОстатокДт,
   |    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК ОборотДт,
   |    ПодразделенияОрганизаций.Ссылка КАК Ссылка,
   |    ПодразделенияОрганизаций.Представление,
   |    ХозрасчетныйОстаткиИОбороты.Субконто2
   |ИЗ
   |    Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
   |                &ДатаНач,
   |                &ДатаКон,
   |                День,
   |                ,
   |                Счет В (&Счет, &Счет20),
   |                ,
   |                Подразделение В ИЕРАРХИИ (&подротбор)
   |                    И организация = &организация) КАК ХозрасчетныйОстаткиИОбороты
   |        ПО ПодразделенияОрганизаций.Ссылка = ХозрасчетныйОстаткиИОбороты.Подразделение
   |ГДЕ
   |    ПодразделенияОрганизаций.Ссылка В ИЕРАРХИИ(&подротбор)
   |
   |СГРУППИРОВАТЬ ПО
   |    ХозрасчетныйОстаткиИОбороты.Субконто1,
   |    ПодразделенияОрганизаций.Ссылка,
   |    ПодразделенияОрганизаций.Представление,
   |    ХозрасчетныйОстаткиИОбороты.Счет,
   |    ХозрасчетныйОстаткиИОбороты.Субконто2
   |ИТОГИ
   |    СУММА(НачальныйОстатокКт),
   |    СУММА(ОборотКт),
   |    СУММА(НачальныйОстатокДт),
   |    СУММА(КонечныйОстатокКт),
   |    СУММА(КонечныйОстатокДт),
   |    СУММА(ОборотДт)
   |ПО
   |    ОБЩИЕ,
   |    Ссылка ИЕРАРХИЯ,
   |    СтатьяДвиженияДС
   |АВТОУПОРЯДОЧИВАНИЕ";

   Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаКон));
   Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
   Запрос.УстановитьПараметр("организация", организация);
   Запрос.УстановитьПараметр("счет", счет);
   Запрос.УстановитьПараметр("счет20", счет20);

   Запрос.УстановитьПараметр("СписокСЗ", СписокСЗ);
   Запрос.УстановитьПараметр("СписокСодержаниеРАО", СписокСодержаниеРАО);
   Запрос.УстановитьПараметр("СписокПрочиеКапРАО", СписокПрочиеКапРАО );
   Запрос.УстановитьПараметр("СписокРеклама", СписокРеклама);
   Запрос.УстановитьПараметр("СписокЗарплата", СписокЗарплата);
   Запрос.УстановитьПараметр("ПодрОтбор",ПодрОтбор);