Имя: Пароль:
1C
1С v8
Двоит в запросе
,
0 Масянька
 
01.09.20
16:31
День добрый!
Есть запрос:

    Текст = "ВЫБРАТЬ
    |    СчетНаОплатуПоставщика.Ссылка КАК Счет,
    |    СчетНаОплатуПоставщика.СуммаДокумента КАК СуммаСчета,
    |    СчетНаОплатуПоставщика.Контрагент КАК Контрагент,
    |    СчетНаОплатуПоставщика.ДоговорКонтрагента КАК ДоговорКонтрагента
    |ПОМЕСТИТЬ ВТСчетаНаОплату
    |ИЗ
    |    Документ.СчетНаОплатуПоставщика КАК СчетНаОплатуПоставщика
    |ГДЕ
    |    СчетНаОплатуПоставщика.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |    И НЕ СчетНаОплатуПоставщика.ПометкаУдаления ";
    
    СтрокаВЗапрос = "";
    Если (ЗначениеЗаполнено(Контрагент)) Тогда
        СтрокаВЗапрос = "
        |    И СчетНаОплатуПоставщика.Контрагент = &Контрагент";
    КонецЕсли;
    Если (ЗначениеЗаполнено(Договор)) Тогда
        СтрокаВЗапрос = СтрокаВЗапрос + " И СчетНаОплатуПоставщика.ДоговорКонтрагента = &ДоговорКонтрагента";
    КонецЕсли;
    
    Текст = Текст + СокрЛП(СтрокаВЗапрос) + Символы.ПС + "
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ХозрасчетныйОбороты.Субконто3 КАК СчетНаОплату,
    |    ХозрасчетныйОбороты.Регистратор КАК Поступление,
    |    ВЫБОР
    |        КОГДА ХозрасчетныйОбороты.Регистратор.ВалютаДокумента <> &ВалютаУчета
    |            ТОГДА ХозрасчетныйОбороты.Регистратор.КурсВзаиморасчетов * ХозрасчетныйОбороты.Регистратор.СуммаДокумента
    |        ИНАЧЕ ХозрасчетныйОбороты.Регистратор.СуммаДокумента
    |    КОНЕЦ КАК СуммаПоступления,
    |    ВЫБОР
    |        КОГДА ХозрасчетныйОбороты.Регистратор.ВалютаДокумента <> &ВалютаУчета
    |            ТОГДА ХозрасчетныйОбороты.Регистратор.СуммаДокумента
    |        ИНАЧЕ NULL
    |    КОНЕЦ КАК ВалСуммаПоступления
    |ПОМЕСТИТЬ ВТПоступления
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Счет В ИЕРАРХИИ (&Счета60_76), , , , ) КАК ХозрасчетныйОбороты
    |    
    |ГДЕ
    |    ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ХозрасчетныйОбороты.Субконто3 КАК СчетНаОплату,
    |    ХозрасчетныйОбороты.Регистратор КАК Оплата,
    |    ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаОплаты,
    |    ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт КАК ВалСуммаОплаты    
    |ПОМЕСТИТЬ ВТОплата
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Счет В ИЕРАРХИИ (&Счета60_76), , , КорСчет В ИЕРАРХИИ (&Счета51), ) КАК ХозрасчетныйОбороты
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ВТСчетаНаОплату.Контрагент КАК Контрагент,
    |    ВТСчетаНаОплату.ДоговорКонтрагента КАК ДоговорКонтрагента,
    |    ВТСчетаНаОплату.Счет.ВалютаДокумента КАК ВалютаДокумента,
    |    ВТСчетаНаОплату.Счет КАК СчетНаОплату,
    |    ВТСчетаНаОплату.СуммаСчета КАК СуммаСчета,
    |    ВТПоступления.Поступление КАК Поступление,
    |    ВТПоступления.СуммаПоступления КАК СуммаПоступления,
    |    ВТПоступления.ВалСуммаПоступления КАК ВалСуммаПоступления,
    |    ВТОплата.Оплата КАК Оплата,
    |    ВТОплата.СуммаОплаты КАК СуммаОплаты,
    |    ВТОплата.ВалСуммаОплаты    КАК ВалСуммаОплаты    
    |ИЗ
    |    ВТСчетаНаОплату КАК ВТСчетаНаОплату
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПоступления КАК ВТПоступления
    |        ПО ВТСчетаНаОплату.Счет = ВТПоступления.СчетНаОплату
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТОплата КАК ВТОплата
    |        ПО ВТСчетаНаОплату.Счет = ВТОплата.СчетНаОплату
    |    
    |УПОРЯДОЧИТЬ ПО
    |    ВТСчетаНаОплату.Контрагент.Наименование,
    |    ВТСчетаНаОплату.ДоговорКонтрагента.Наименование
    |ИТОГИ
    |    СУММА(СуммаСчета),
    |    СУММА(СуммаПоступления),
    |    СУММА(ВалСуммаПоступления),
    |    СУММА(СуммаОплаты),
    |    СУММА(ВалСуммаОплаты)
    |ПО
    |    Контрагент,
    |    ДоговорКонтрагента,
    |    СчетНаОплату";

Как только по счету более одного поступления или оплаты - двоит - http://pics.rsh.ru/img/_32dlnf3d.jpg.
Где ошибка?
Спасибо.
1 Beduin
 
01.09.20
16:33
В бух регистрах дубли
2 H A D G E H O G s
 
01.09.20
16:34
(0) В выборе профессии
3 Масянька
 
01.09.20
16:40
(1) Дубли чего?
У этого док-та - 3 проводки. Есть док-ты, у которых намного больше проводок, но док-т один.
4 mikecool
 
01.09.20
16:41
(3) смотри запросы сверху-униз, отсекай момент - когда появляется дубль
5 mikecool
 
01.09.20
16:41
+4 любое соединение может мультиплицировать
6 Масянька
 
01.09.20
16:45
(4) Если не соединять с оплатой - все норм.
Как соединить, чтобы не двоило?
7 mikecool
 
01.09.20
16:47
(6) если по сути в оплатах одинаковые записи, то сделай из них Выбрать Различные
иначе - добавляй условия соединения, пока не перестанет двоить
8 Масянька
 
01.09.20
16:48
(7) Различные попробовала в первую очередь - фигня.
Дело в соединении.
9 dka80
 
01.09.20
16:49
ХозрасчетныйОбороты.Субконто3 КАК СчетНаОплату,
    |    ХозрасчетныйОбороты.Регистратор КАК Оплата,
    |    ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаОплаты,
    |    ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт КАК ВалСуммаОплаты    

Вот этот результат посмотри. У тебя дублируется строки за счет СчетНаОплату и Оплата
Значит выбираешь избыточные данные или выбираешь не те данные
10 dka80
 
01.09.20
16:51
Например, один счет оплатили за два раза - соответственно два регистратора.
Сделай так
ХозрасчетныйОбороты.Субконто3 КАК СчетНаОплату,
    Максимум(ХозрасчетныйОбороты.Регистратор) КАК Оплата,
    Сумма(ХозрасчетныйОбороты.СуммаОборотДт) КАК СуммаОплаты,
    Сумма(ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт) КАК ВалСуммаОплаты
11 dka80
 
01.09.20
16:51
Или используй два набора в СКД. Тогда не будет задвоения
12 arsik
 
гуру
01.09.20
16:52
(10) да сразу видно, тут проблема
ИЗ
    |    ВТСчетаНаОплату КАК ВТСчетаНаОплату
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПоступления КАК ВТПоступления
    |        ПО ВТСчетаНаОплату.Счет = ВТПоступления.СчетНаОплату
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТОплата КАК ВТОплата
    |        ПО ВТСчетаНаОплату.Счет = ВТОплата.СчетНаОплату
13 mikecool
 
01.09.20
16:54
(8) Различные надо применять к ограниченной по полям выборке, а не ко всему набору
14 Масянька
 
01.09.20
16:57
(13) "к ограниченной по полям выборке" - в каждом запросе?
15 dka80
 
01.09.20
16:58
(14) блин. Ты понимаешь, что такое РАЗЛИЧНЫЕ в запросе?
Поле1 Поле2
1       1
1       2

Какой будет результат запроса со слово Различные?

И так:
Поле1
1      
1

А теперь какой:
16 Масянька
 
01.09.20
17:00
(15) Что "блин"? Я и в каждом запросе (таблице) делала, и в итоговом - ноль.
17 Масянька
 
01.09.20
17:01
(10) Убрала поступление, оставила оплату - норм.
18 Масянька
 
01.09.20
17:03
Суть в том, что общее (у поступления и оплаты) только счет.
19 Масянька
 
01.09.20
17:04
(12) Сначала было ЛЕВОЕ.
20 RomanYS
 
01.09.20
17:05
(8) дело действительно в соединение. Делай через ОБЪЕДИНИТЬ
21 Масянька
 
01.09.20
17:15
(20) Огромное человеческое спасибо!
22 RomanYS
 
01.09.20
17:19
Пожалуйста. Не ожидал быть понятым с одного поста :)
23 Масянька
 
01.09.20
17:22
(22) Не редко впечатления обманчивы ;)
24 Масянька
 
08.09.20
10:55
Возвращаясь к напечатанному...
Тот же самый запрос (ну, практически).
Опишу, что надо: в разрезе контрагентов и договоров собрать счета (с суммами), по счетам собрать оплаты и реализации.
Оплаты и реализации решила через проверку при обходе выборки. А вот группировка по договору - сумма счета двоит, троит (в зависимости от количества документов оплаты и реализации).
Сам запрос:
    Текст = "ВЫБРАТЬ
    |    СчетНаОплатуПоставщика.Ссылка КАК Счет,
    |    СчетНаОплатуПоставщика.Контрагент КАК Контрагент,
    |    СчетНаОплатуПоставщика.ДоговорКонтрагента КАК ДоговорКонтрагента,
    |    СчетНаОплатуПоставщика.СуммаДокумента КАК СуммаСчета
    |ПОМЕСТИТЬ ВТСчетаНаОплату
    |ИЗ
    |    Документ.СчетНаОплатуПоставщика КАК СчетНаОплатуПоставщика
    |ГДЕ
    |    СчетНаОплатуПоставщика.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |    И НЕ СчетНаОплатуПоставщика.ПометкаУдаления ";
    
    СтрокаВЗапрос = "";
    Если (ЗначениеЗаполнено(Контрагент)) Тогда
        СтрокаВЗапрос = "
        |    И СчетНаОплатуПоставщика.Контрагент = &Контрагент";
    КонецЕсли;
    Если (ЗначениеЗаполнено(Договор)) Тогда
        СтрокаВЗапрос = СтрокаВЗапрос + " И СчетНаОплатуПоставщика.ДоговорКонтрагента = &ДоговорКонтрагента";
    КонецЕсли;
    
    Текст = Текст + СокрЛП(СтрокаВЗапрос) + Символы.ПС + "
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ХозрасчетныйОбороты.Субконто3 КАК СчетНаОплату,
    |    ХозрасчетныйОбороты.Регистратор КАК Поступление,
    |    ХозрасчетныйОбороты.Регистратор.Дата КАК ДатаДок,
    |    ВЫБОР
    |        КОГДА ХозрасчетныйОбороты.Регистратор.ВалютаДокумента <> &ВалютаУчета
    |            ТОГДА ХозрасчетныйОбороты.Регистратор.КурсВзаиморасчетов * ХозрасчетныйОбороты.Регистратор.СуммаДокумента
    |        ИНАЧЕ ХозрасчетныйОбороты.Регистратор.СуммаДокумента
    |    КОНЕЦ КАК СуммаПоступления,
    |    ВЫБОР
    |        КОГДА ХозрасчетныйОбороты.Регистратор.ВалютаДокумента <> &ВалютаУчета
    |            ТОГДА ХозрасчетныйОбороты.Регистратор.СуммаДокумента
    |        ИНАЧЕ NULL
    |    КОНЕЦ КАК ВалСуммаПоступления,
    |    NULL КАК Оплата,
    |    NULL КАК СуммаОплаты,
    |    NULL КАК ВалСуммаОплаты
    |ПОМЕСТИТЬ ВТДокументы
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Обороты(
    |            &НачалоПериода,
    |            &КонецПериода,
    |            Регистратор,
    |            Счет В ИЕРАРХИИ (&Счета60_76),
    |            ,
    |            Субконто3 В
    |                (ВЫБРАТЬ
    |                    ВТСчетаНаОплату.Счет
    |                ИЗ
    |                    ВТСчетаНаОплату КАК ВТСчетаНаОплату),
    |            ,
    |            ) КАК ХозрасчетныйОбороты
    |    
    |ГДЕ
    |    ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ХозрасчетныйОбороты.Субконто3,
    |    NULL,
    |    ХозрасчетныйОбороты.Регистратор.Дата,
    |    NULL,
    |    NULL,
    |    ХозрасчетныйОбороты.Регистратор,
    |    ХозрасчетныйОбороты.СуммаОборотДт,
    |    ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Обороты(
    |            &НачалоПериода,
    |            &КонецПериода,
    |            Регистратор,
    |            Счет В ИЕРАРХИИ (&Счета60_76),
    |            ,
    |            Субконто3 В
    |                (ВЫБРАТЬ
    |                    ВТСчетаНаОплату.Счет
    |                ИЗ
    |                    ВТСчетаНаОплату КАК ВТСчетаНаОплату),
    |            КорСчет В ИЕРАРХИИ (&Счета51),
    |            ) КАК ХозрасчетныйОбороты
    |;
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ВТСчетаНаОплату.Контрагент КАК Контрагент,
    |    ВТСчетаНаОплату.ДоговорКонтрагента КАК ДоговорКонтрагента,
    |    ВТСчетаНаОплату.Счет.ВалютаДокумента КАК ВалютаДокумента,
    |    ВТСчетаНаОплату.Счет КАК СчетНаОплату,
    //|    ВТСчетаНаОплату.СуммаСчета КАК СуммаСчета,
    |    ВТСчетаНаОплату.Счет.СуммаДокумента КАК СуммаСчета,
    |    ВТДокументы.ДатаДок КАК ДатаДок,
    |    ВТДокументы.Поступление КАК Поступление,
    |    ВТДокументы.СуммаПоступления КАК СуммаПоступления,
    |    ВТДокументы.ВалСуммаПоступления КАК ВалСуммаПоступления,
    |    ВТДокументы.Оплата КАК Оплата,
    |    ВТДокументы.СуммаОплаты КАК СуммаОплаты,
    |    ВТДокументы.ВалСуммаОплаты КАК ВалСуммаОплаты    
    |ИЗ
    |    ВТСчетаНаОплату КАК ВТСчетаНаОплату
    |        ЛЕВОЕ СОЕДИНЕНИЕ ВТДокументы КАК ВТДокументы
    |        ПО ВТСчетаНаОплату.Счет = ВТДокументы.СчетНаОплату
    |УПОРЯДОЧИТЬ ПО
    |    ВТСчетаНаОплату.Контрагент.Наименование,
    |    ВТСчетаНаОплату.ДоговорКонтрагента.Наименование,
    |    ВТСчетаНаОплату.Счет,
    |    ВТДокументы.ДатаДок
    |ИТОГИ
    |    СУММА(СуммаСчета),
    |    СУММА(СуммаПоступления),
    |    СУММА(ВалСуммаПоступления),
    |    СУММА(СуммаОплаты),
    |    СУММА(ВалСуммаОплаты)
    |ПО
    |    Контрагент,
    |    ДоговорКонтрагента,
    |    СчетНаОплату";
25 toypaul
 
гуру
08.09.20
11:00
У меня двоит в в глазах
И в запросе дело швах
Не пойму как соединять
Левое иль правое
Оказалось объединять
Надо было правильно
26 Масянька
 
08.09.20
11:05
(25) Стишки так себе. По теме ничего?
27 RomanYS
 
08.09.20
11:11
(24) так и ответ тот же: ОБЪЕДИНИТЬ.

Или Максимум(СуммаСчета), но это прокатит только в итогах по счету. По контрагенту уже криво будет
28 lodger
 
08.09.20
11:12
(26) пересмотри связи и порядок их применения к таблицам.
29 Масянька
 
08.09.20
11:51
(27) Объединить первые две таблицы? А как в субконто (для поступлений и оплаты) запихнуть счет?
30 Масянька
 
08.09.20
11:53
(28) Как?
Контрагент, договор, счет - документы.
Делать через справочник (первая таблица - контрагенты) - смысл? Дольше, как минимум.
31 RomanYS
 
08.09.20
11:58
(29)
Объединить первые две таблицы?
Объединить таблицу счетов с таблицей документов. Сумму счета брать только из таблицы счетов.

А как в субконто (для поступлений и оплаты) запихнуть счет?
Так ты берешь "ХозрасчетныйОбороты.Субконто3 КАК СчетНаОплату", я правда не видел ни одной типовой где счёт бы в субконто сидел.
32 lodger
 
08.09.20
11:59
(30) вам шашечки или ехать? ©
33 RomanYS
 
08.09.20
12:02
(32) ответь в Поле объекта не обнаружено (стоимость) пожалуйста. Заинтриговал прямо )
34 Масянька
 
08.09.20
12:02
(31) Не типовая. Очень.
Да, в третьем субконто сидит счет.
35 Масянька
 
08.09.20
12:03
(32) И то, и другое. И можно без хлеба (С)
Я же говорю, задача: выбрать в разрезе контрагентов договора с документами (счет, оплата и поступление (по счету)).
36 RomanYS
 
08.09.20
12:04
(34) Значит он у тебя есть, зачем его ещё "запихивать"?
37 Масянька
 
08.09.20
12:09
(36) В таком виде полную хрень выдает:

ВЫБРАТЬ
    СчетНаОплатуПоставщика.Ссылка КАК Счет,
    СчетНаОплатуПоставщика.Контрагент КАК Контрагент,
    СчетНаОплатуПоставщика.ДоговорКонтрагента КАК ДоговорКонтрагента,
    СчетНаОплатуПоставщика.СуммаДокумента КАК СуммаСчета,
    NULL КАК СчетНаОплату,
    NULL КАК Поступление,
    NULL КАК СуммаПоступления,
    NULL КАК ВалСуммаПоступления,
    NULL КАК Оплата,
    NULL КАК СуммаОплаты,
    NULL КАК ВалСуммаОплаты
ПОМЕСТИТЬ ВТДокументы
ИЗ
    Документ.СчетНаОплатуПоставщика КАК СчетНаОплатуПоставщика
ГДЕ
    СчетНаОплатуПоставщика.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    И НЕ СчетНаОплатуПоставщика.ПометкаУдаления
    И СчетНаОплатуПоставщика.Контрагент = &Контрагент

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    NULL,
    NULL,
    NULL,
    NULL,
    ХозрасчетныйОбороты.Субконто3,
    ХозрасчетныйОбороты.Регистратор,
    ВЫБОР
        КОГДА ХозрасчетныйОбороты.Регистратор.ВалютаДокумента <> &ВалютаУчета
            ТОГДА ХозрасчетныйОбороты.Регистратор.КурсВзаиморасчетов * ХозрасчетныйОбороты.Регистратор.СуммаДокумента
        ИНАЧЕ ХозрасчетныйОбороты.Регистратор.СуммаДокумента
    КОНЕЦ,
    ВЫБОР
        КОГДА ХозрасчетныйОбороты.Регистратор.ВалютаДокумента <> &ВалютаУчета
            ТОГДА ХозрасчетныйОбороты.Регистратор.СуммаДокумента
        ИНАЧЕ NULL
    КОНЕЦ,
    NULL,
    NULL,
    NULL
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Счет В ИЕРАРХИИ (&Счета60_76), , , , ) КАК ХозрасчетныйОбороты
ГДЕ
    ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    NULL,
    NULL,
    NULL,
    NULL,
    ХозрасчетныйОбороты.Субконто3,
    NULL,
    NULL,
    NULL,
    ХозрасчетныйОбороты.Регистратор,
    ХозрасчетныйОбороты.СуммаОборотДт,
    ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, РЕгистратор, Счет В ИЕРАРХИИ (&Счета60_76), , , КорСчет В ИЕРАРХИИ (&Счета51), ) КАК ХозрасчетныйОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТДокументы.Контрагент КАК Контрагент,
    ВТДокументы.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ВТДокументы.СчетНаОплату.ВалютаДокумента КАК ВалютаДокумента,
    ВТДокументы.СчетНаОплату КАК СчетНаОплату,
    ВТДокументы.СуммаСчета КАК СуммаСчета,
    ВТДокументы.Поступление КАК Поступление,
    ВТДокументы.СуммаПоступления КАК СуммаПоступления,
    ВТДокументы.ВалСуммаПоступления КАК ВалСуммаПоступления,
    ВТДокументы.Оплата КАК Оплата,
    ВТДокументы.СуммаОплаты КАК СуммаОплаты,
    ВТДокументы.ВалСуммаОплаты КАК ВалСуммаОплаты
ИЗ
    ВТДокументы КАК ВТДокументы

УПОРЯДОЧИТЬ ПО
    ВТДокументы.Контрагент.Наименование,
    ВТДокументы.ДоговорКонтрагента.Наименование
ИТОГИ
    СУММА(СуммаПоступления),
    СУММА(ВалСуммаПоступления),
    СУММА(СуммаОплаты),
    СУММА(ВалСуммаОплаты)
ПО
    Контрагент,
    ДоговорКонтрагента,
    СчетНаОплату
38 Масянька
 
08.09.20
12:15
(36) Поступление и оплату нужно выбирать по счету, а не все подряд.
Или как?
39 RomanYS
 
08.09.20
12:44
(38) Ты не понимаешь как объединение работает?

СчетНаОплатуПоставщика.Ссылка и ХозрасчетныйОбороты.Субконто3 должны быть в одной колонке.
Контрагента и договор тоже вероятно можно взять из Субконто1 и Субконто2

(38) нужно наложить условие, или внутренне соединение сделать
40 Масянька
 
08.09.20
12:51
(39) Такая же хрень хреновая.
ВЫБРАТЬ
    СчетНаОплатуПоставщика.Ссылка КАК СчетНаОплату,
    СчетНаОплатуПоставщика.Контрагент КАК Контрагент,
    СчетНаОплатуПоставщика.ДоговорКонтрагента КАК ДоговорКонтрагента,
    СчетНаОплатуПоставщика.СуммаДокумента КАК СуммаСчета,
    NULL КАК Поступление,
    NULL КАК СуммаПоступления,
    NULL КАК ВалСуммаПоступления,
    NULL КАК Оплата,
    NULL КАК СуммаОплаты,
    NULL КАК ВалСуммаОплаты
ПОМЕСТИТЬ ВТДокументы
ИЗ
    Документ.СчетНаОплатуПоставщика КАК СчетНаОплатуПоставщика
ГДЕ
    СчетНаОплатуПоставщика.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    И НЕ СчетНаОплатуПоставщика.ПометкаУдаления
    И СчетНаОплатуПоставщика.Контрагент = &Контрагент

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ХозрасчетныйОбороты.Субконто3,
    NULL,
    NULL,
    NULL,
    ХозрасчетныйОбороты.Регистратор,
    ВЫБОР
        КОГДА ХозрасчетныйОбороты.Регистратор.ВалютаДокумента <> &ВалютаУчета
            ТОГДА ХозрасчетныйОбороты.Регистратор.КурсВзаиморасчетов * ХозрасчетныйОбороты.Регистратор.СуммаДокумента
        ИНАЧЕ ХозрасчетныйОбороты.Регистратор.СуммаДокумента
    КОНЕЦ,
    ВЫБОР
        КОГДА ХозрасчетныйОбороты.Регистратор.ВалютаДокумента <> &ВалютаУчета
            ТОГДА ХозрасчетныйОбороты.Регистратор.СуммаДокумента
        ИНАЧЕ NULL
    КОНЕЦ,
    NULL,
    NULL,
    NULL
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Счет В ИЕРАРХИИ (&Счета60_76), , , , ) КАК ХозрасчетныйОбороты
ГДЕ
    ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ХозрасчетныйОбороты.Субконто3,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    ХозрасчетныйОбороты.Регистратор,
    ХозрасчетныйОбороты.СуммаОборотДт,
    ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, РЕгистратор, Счет В ИЕРАРХИИ (&Счета60_76), , , КорСчет В ИЕРАРХИИ (&Счета51), ) КАК ХозрасчетныйОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТДокументы.Контрагент КАК Контрагент,
    ВТДокументы.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ВТДокументы.СчетНаОплату.ВалютаДокумента КАК ВалютаДокумента,
    ВТДокументы.СчетНаОплату КАК СчетНаОплату,
    ВТДокументы.СуммаСчета КАК СуммаСчета,
    ВТДокументы.Поступление КАК Поступление,
    ВТДокументы.СуммаПоступления КАК СуммаПоступления,
    ВТДокументы.ВалСуммаПоступления КАК ВалСуммаПоступления,
    ВТДокументы.Оплата КАК Оплата,
    ВТДокументы.СуммаОплаты КАК СуммаОплаты,
    ВТДокументы.ВалСуммаОплаты КАК ВалСуммаОплаты
ИЗ
    ВТДокументы КАК ВТДокументы

УПОРЯДОЧИТЬ ПО
    ВТДокументы.Контрагент.Наименование,
    ВТДокументы.ДоговорКонтрагента.Наименование
ИТОГИ
    СУММА(СуммаСчета),
    СУММА(СуммаПоступления),
    СУММА(ВалСуммаПоступления),
    СУММА(СуммаОплаты),
    СУММА(ВалСуммаОплаты)
ПО
    Контрагент,
    ДоговорКонтрагента,
    СчетНаОплату
Условие какое или соединение?
41 RomanYS
 
08.09.20
12:56
(40) естественно "хрень". Счёт ты исправила, а в контрагента и договор продолжаешь писать NULL.

Условие какое
приблизительно такое, например: Субконто3 в (выбрать Счёт из Счета)
42 Масянька
 
08.09.20
13:24
(41) Спасибо огромное!!!!!