Имя: Пароль:
1C
1С v8
УТ 10.3: Продажи по оплате - глючит
0 TSRh
 
01.10.15
17:08
Здравствуйте все!
В УТ 10.3 в отчёте "Продажи по оплате за период" наблюдаю такое поведение:
Если в Реализации товаров и услуг сумма документа = 0 и в договоре контрагента указано ведение взаиморасчетов "По заказам" и стоит галочка "Вести по документам расчетом с контрагентами", то такая продажа не попадает в отчёт.
Если же в Реализации товаров и услуг сумма документа = 0 и в договоре контрагента указано ведение взаиморасчетов "В целом по договору" и галочка "Вести по документам расчетом с контрагентами" не стоит, то такая продажа попадает в отчёт с суммой равной себестоимости продаж.

Мне нужно чтобы в обоих вариантах продажа попадала в отчёт. Оба варианта пишут движения в РН "Продажи себестоимость", но почему-то первый не входит в отчёт.

Может кто-то решал подобную проблему ?

Спасибо!
1 shuhard_серый
 
01.10.15
17:10
(0)[но почему-то первый не входит в отчёт]
что-то мешает кож позырить ?
2 TSRh
 
01.10.15
17:15
(1) я попробовал

    
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВзаиморасчетыСКонтрагентамиОбороты.Регистратор,
    ВзаиморасчетыСКонтрагентамиОбороты.Период,
    ВзаиморасчетыСКонтрагентамиОбороты.Сделка,
    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход
ПОМЕСТИТЬ
    ВзаиморасчетыСКонтрагентамиОборотыНаДатуКон
ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(, &ДатаКон, Регистратор, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыСКонтрагентамиОбороты
ГДЕ НЕ ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
;
ВЫБРАТЬ РАЗРЕШЕННЫЕ  
    ВзаиморасчетыСКонтрагентамиОбороты.Регистратор,
    ВзаиморасчетыСКонтрагентамиОбороты.Период,
    ВзаиморасчетыСКонтрагентамиОбороты.Сделка,
    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход
ПОМЕСТИТЬ
    ВзаиморасчетыСКонтрагентамиОборотыНаДатуНач
ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(, &ДатаНач, Регистратор, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыСКонтрагентамиОбороты
ГДЕ НЕ ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
;            
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВзаиморасчетыПоДок.Регистратор,
    ВзаиморасчетыПоДок.Период,
    ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом,
    ВзаиморасчетыПоДок.ДоговорКонтрагента,
    ВзаиморасчетыПоДок.СуммаВзаиморасчетовПриход
ПОМЕСТИТЬ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДатуКон
ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(, &ДатаКон, Регистратор, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыПоДок
ГДЕ ВзаиморасчетыПоДок.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
;
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВзаиморасчетыПоДок.Регистратор,
    ВзаиморасчетыПоДок.Период,
    ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом,
    ВзаиморасчетыПоДок.ДоговорКонтрагента,
    ВзаиморасчетыПоДок.СуммаВзаиморасчетовПриход
ПОМЕСТИТЬ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДатуНач
ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(, &ДатаНач, Регистратор, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыПоДок
ГДЕ ВзаиморасчетыПоДок.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
;
ВЫБРАТЬ
    ВзаиморасчетыОиО.ДоговорКонтрагента,
    ВзаиморасчетыОиО.Сделка,
    ВзаиморасчетыОиО.Период,
    МИНИМУМ(ВзаиморасчетыОиО.Регистратор) КАК ПервыйРегистратор
ПОМЕСТИТЬ НеоплаченныеНаДатуКон
ИЗ
    (    ВЫБРАТЬ   ВзаиморасчетыОиО.Регистратор
                , ВзаиморасчетыОиО.ДоговорКонтрагента
                , ВзаиморасчетыОиО.Сделка
                , ВзаиморасчетыОиО.Период
        ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуКон КАК ВзаиморасчетыОиО
        ОБЪЕДИНИТЬ
        ВЫБРАТЬ   ВзаиморасчетыПоДок.Регистратор
                , ВзаиморасчетыПоДок.ДоговорКонтрагента
                , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
                , ВзаиморасчетыПоДок.Период
        ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДатуКон КАК ВзаиморасчетыПоДок
    ) КАК ВзаиморасчетыОиО
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        (
        ВЫБРАТЬ
            ДоговорКонтрагента,
            Сделка,
            МИНИМУМ(ПериодКон) КАК Период,
            СуммаВалОстаток
        ИЗ
        (ВЫБРАТЬ
            ВзаиморасчетыОиО.ДоговорКонтрагента КАК ДоговорКонтрагента,
            ВзаиморасчетыОиО.Сделка КАК Сделка,
            МИНИМУМ(ВзаиморасчетыОиО.Период) КАК ПериодКон,
            ВзаиморасчетыО.СуммаВалОстаток
        ИЗ
            (    ВЫБРАТЬ   ВзаиморасчетыОиО.Регистратор
                        , ВзаиморасчетыОиО.ДоговорКонтрагента
                        , ВзаиморасчетыОиО.Сделка
                        , ВзаиморасчетыОиО.Период
                ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуКон КАК ВзаиморасчетыОиО
                ОБЪЕДИНИТЬ
                ВЫБРАТЬ   ВзаиморасчетыПоДок.Регистратор
                        , ВзаиморасчетыПоДок.ДоговорКонтрагента
                        , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
                        , ВзаиморасчетыПоДок.Период
                ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДатуКон КАК ВзаиморасчетыПоДок
            ) КАК ВзаиморасчетыОиО
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ
            (ВЫБРАТЬ
                    ВзаиморасчетыОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента,
                    ВзаиморасчетыОстатки.Сделка КАК Сделка,
                    ВзаиморасчетыОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВалОстаток
                ИЗ
                    (    ВЫБРАТЬ   ВзаиморасчетыОстатки.ДоговорКонтрагента
                                , ВзаиморасчетыОстатки.Сделка
                                , ВзаиморасчетыОстатки.СуммаВзаиморасчетовОстаток
                        ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКонОст, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыОстатки
                        ГДЕ НЕ ВзаиморасчетыОстатки.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
                        ОБЪЕДИНИТЬ
                        ВЫБРАТЬ   ВзаиморасчетыОстаткиПоДок.ДоговорКонтрагента
                                , ВзаиморасчетыОстаткиПоДок.ДокументРасчетовСКонтрагентом
                                , ВзаиморасчетыОстаткиПоДок.СуммаВзаиморасчетовОстаток
                        ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&ДатаКонОст, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыОстаткиПоДок
                        ГДЕ ВзаиморасчетыОстаткиПоДок.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
                    ) КАК ВзаиморасчетыОстатки
                ГДЕ
                (ВзаиморасчетыОстатки.СуммаВзаиморасчетовОстаток > 0)) КАК ВзаиморасчетыО
            ПО ВзаиморасчетыО.ДоговорКонтрагента = ВзаиморасчетыОиО.ДоговорКонтрагента
                И ВзаиморасчетыО.Сделка = ВзаиморасчетыОиО.Сделка
            // теперь остались только те договоры-сделки, по которым сальдо на
            // конец периода положительно
            ЛЕВОЕ СОЕДИНЕНИЕ
            (    ВЫБРАТЬ   ВзаиморасчетыОиО2.Регистратор
                        , ВзаиморасчетыОиО2.Период
                        , ВзаиморасчетыОиО2.Сделка
                        , ВзаиморасчетыОиО2.ДоговорКонтрагента
                        , ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
                ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуКон КАК ВзаиморасчетыОиО2
                ОБЪЕДИНИТЬ
                ВЫБРАТЬ   ВзаиморасчетыПоДок.Регистратор
                        , ВзаиморасчетыПоДок.Период
                        , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
                        , ВзаиморасчетыПоДок.ДоговорКонтрагента
                        , ВзаиморасчетыПоДок.СуммаВзаиморасчетовПриход
                ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДатуКон КАК ВзаиморасчетыПоДок
            ) КАК ВзаиморасчетыОиО2
            ПО ВзаиморасчетыОиО.ДоговорКонтрагента = ВзаиморасчетыОиО2.ДоговорКонтрагента
                И ВзаиморасчетыОиО.Сделка = ВзаиморасчетыОиО2.Сделка
                И (ВзаиморасчетыОиО.Период < ВзаиморасчетыОиО2.Период
                    ИЛИ ВзаиморасчетыОиО.Период = ВзаиморасчетыОиО2.Период И ВзаиморасчетыОиО.Регистратор < ВзаиморасчетыОиО2.Регистратор)
        СГРУППИРОВАТЬ ПО
            ВзаиморасчетыОиО.ДоговорКонтрагента,
            ВзаиморасчетыОиО.Сделка,
            ВзаиморасчетыОиО.Регистратор,
            ВзаиморасчетыО.СуммаВалОстаток
        ИМЕЮЩИЕ
            СУММА(ВЫБОР
                КОГДА (ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход) ЕСТЬ NULL
                    ТОГДА 0
                ИНАЧЕ ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
            КОНЕЦ) < ВзаиморасчетыО.СуммаВалОстаток
        ) КАК ПервыеПериодыПромежуточный
        СГРУППИРОВАТЬ ПО
            ДоговорКонтрагента,
            Сделка,
            СуммаВалОстаток
        ) КАК ПервыеПериоды
    ПО ПервыеПериоды.Период = ВзаиморасчетыОиО.Период
    И ПервыеПериоды.Сделка = ВзаиморасчетыОиО.Сделка
    И ПервыеПериоды.ДоговорКонтрагента = ВзаиморасчетыОиО.ДоговорКонтрагента
    ЛЕВОЕ СОЕДИНЕНИЕ
        (    ВЫБРАТЬ   ВзаиморасчетыОиО2.Регистратор
                    , ВзаиморасчетыОиО2.ДоговорКонтрагента
                    , ВзаиморасчетыОиО2.Сделка
                    , ВзаиморасчетыОиО2.Период
                    , ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
            ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуКон КАК ВзаиморасчетыОиО2
            ОБЪЕДИНИТЬ
            ВЫБРАТЬ   ВзаиморасчетыПоДок.Регистратор
                    , ВзаиморасчетыПоДок.ДоговорКонтрагента
                    , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
                    , ВзаиморасчетыПоДок.Период
                    , ВзаиморасчетыПоДок.СуммаВзаиморасчетовПриход
            ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДатуКон КАК ВзаиморасчетыПоДок
        ) КАК ВзаиморасчетыОиО2
        ПО ВзаиморасчетыОиО2.Сделка = ВзаиморасчетыОиО.Сделка
        И ВзаиморасчетыОиО2.ДоговорКонтрагента = ВзаиморасчетыОиО.ДоговорКонтрагента
        И (//ВзаиморасчетыОиО.Период < ВзаиморасчетыОиО2.Период ИЛИ
        ВзаиморасчетыОиО.Период = ВзаиморасчетыОиО2.Период И ВзаиморасчетыОиО.Регистратор < ВзаиморасчетыОиО2.Регистратор)
СГРУППИРОВАТЬ ПО
    ВзаиморасчетыОиО.ДоговорКонтрагента,
    ВзаиморасчетыОиО.Сделка,
    ВзаиморасчетыОиО.Период,
    ПервыеПериоды.СуммаВалОстаток
    ИМЕЮЩИЕ
СУММА(ВЫБОР
    КОГДА (ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход) ЕСТЬ NULL
        ТОГДА 0
    ИНАЧЕ ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
    КОНЕЦ) < ПервыеПериоды.СуммаВалОстаток
;

ВЫБРАТЬ
    ВзаиморасчетыОиО.ДоговорКонтрагента,
    ВзаиморасчетыОиО.Сделка,
    ВзаиморасчетыОиО.Период,
    МИНИМУМ(ВзаиморасчетыОиО.Регистратор) КАК ПервыйРегистратор
ПОМЕСТИТЬ НеоплаченныеНаДатуНач
ИЗ
    (    ВЫБРАТЬ   ВзаиморасчетыОиО.Регистратор
                , ВзаиморасчетыОиО.ДоговорКонтрагента
                , ВзаиморасчетыОиО.Сделка
                , ВзаиморасчетыОиО.Период
        ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуНач КАК ВзаиморасчетыОиО
        ОБЪЕДИНИТЬ
        ВЫБРАТЬ   ВзаиморасчетыПоДок.Регистратор
                , ВзаиморасчетыПоДок.ДоговорКонтрагента
                , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
                , ВзаиморасчетыПоДок.Период
        ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДатуНач КАК ВзаиморасчетыПоДок
    ) КАК ВзаиморасчетыОиО
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        (
        ВЫБРАТЬ
            ДоговорКонтрагента,
            Сделка,
            МИНИМУМ(ПериодКон) КАК Период,
            СуммаВалОстаток
        ИЗ
        (ВЫБРАТЬ
            ВзаиморасчетыОиО.ДоговорКонтрагента КАК ДоговорКонтрагента,
            ВзаиморасчетыОиО.Сделка КАК Сделка,
            МИНИМУМ(ВзаиморасчетыОиО.Период) КАК ПериодКон,
            ВзаиморасчетыО.СуммаВалОстаток
        ИЗ
            (    ВЫБРАТЬ   ВзаиморасчетыОиО.Регистратор
                        , ВзаиморасчетыОиО.ДоговорКонтрагента
                        , ВзаиморасчетыОиО.Сделка
                        , ВзаиморасчетыОиО.Период
                ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуНач КАК ВзаиморасчетыОиО
                ОБЪЕДИНИТЬ
                ВЫБРАТЬ   ВзаиморасчетыПоДок.Регистратор
                        , ВзаиморасчетыПоДок.ДоговорКонтрагента
                        , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
                        , ВзаиморасчетыПоДок.Период
                ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДатуНач КАК ВзаиморасчетыПоДок
            ) КАК ВзаиморасчетыОиО
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ
            (ВЫБРАТЬ
                    ВзаиморасчетыОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента,
                    ВзаиморасчетыОстатки.Сделка КАК Сделка,
                    ВзаиморасчетыОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВалОстаток
                ИЗ
                    (    ВЫБРАТЬ   ВзаиморасчетыОстатки.ДоговорКонтрагента
                                , ВзаиморасчетыОстатки.Сделка
                                , ВзаиморасчетыОстатки.СуммаВзаиморасчетовОстаток
                        ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаНачОст, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыОстатки
                        ГДЕ НЕ ВзаиморасчетыОстатки.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
                        ОБЪЕДИНИТЬ
                        ВЫБРАТЬ   ВзаиморасчетыОстаткиПоДок.ДоговорКонтрагента
                                , ВзаиморасчетыОстаткиПоДок.ДокументРасчетовСКонтрагентом
                                , ВзаиморасчетыОстаткиПоДок.СуммаВзаиморасчетовОстаток
                        ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&ДатаНачОст, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыОстаткиПоДок
                        ГДЕ ВзаиморасчетыОстаткиПоДок.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
                    ) КАК ВзаиморасчетыОстатки
                ГДЕ
                (ВзаиморасчетыОстатки.СуммаВзаиморасчетовОстаток > 0)) КАК ВзаиморасчетыО
            ПО ВзаиморасчетыО.ДоговорКонтрагента = ВзаиморасчетыОиО.ДоговорКонтрагента
                И ВзаиморасчетыО.Сделка = ВзаиморасчетыОиО.Сделка
            // теперь остались только те договоры-сделки, по которым сальдо на
            // конец периода положительно
            ЛЕВОЕ СОЕДИНЕНИЕ
            (    ВЫБРАТЬ   ВзаиморасчетыОиО2.Регистратор
                        , ВзаиморасчетыОиО2.Период
                        , ВзаиморасчетыОиО2.Сделка
                        , ВзаиморасчетыОиО2.ДоговорКонтрагента
                        , ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
                ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуНач КАК ВзаиморасчетыОиО2
                ОБЪЕДИНИТЬ
                ВЫБРАТЬ   ВзаиморасчетыПоДок.Регистратор
                        , ВзаиморасчетыПоДок.Период
                        , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
                        , ВзаиморасчетыПоДок.ДоговорКонтрагента
                        , ВзаиморасчетыПоДок.СуммаВзаиморасчетовПриход
                ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДатуНач КАК ВзаиморасчетыПоДок
            ) КАК ВзаиморасчетыОиО2
            ПО ВзаиморасчетыОиО.ДоговорКонтрагента = ВзаиморасчетыОиО2.ДоговорКонтрагента
                И ВзаиморасчетыОиО.Сделка = ВзаиморасчетыОиО2.Сделка
                И (ВзаиморасчетыОиО.Период < ВзаиморасчетыОиО2.Период
                    ИЛИ ВзаиморасчетыОиО.Период = ВзаиморасчетыОиО2.Период И ВзаиморасчетыОиО.Регистратор < ВзаиморасчетыОиО2.Регистратор)
        СГРУППИРОВАТЬ ПО
            ВзаиморасчетыОиО.ДоговорКонтрагента,
            ВзаиморасчетыОиО.Сделка,
            ВзаиморасчетыОиО.Регистратор,
            ВзаиморасчетыО.СуммаВалОстаток
        ИМЕЮЩИЕ
            СУММА(ВЫБОР
                КОГДА (ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход) ЕСТЬ NULL
                    ТОГДА 0
                ИНАЧЕ ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
            КОНЕЦ) < ВзаиморасчетыО.СуммаВалОстаток
        ) КАК ПервыеПериодыПромежуточный
        СГРУППИРОВАТЬ ПО
            ДоговорКонтрагента,
            Сделка,
            СуммаВалОстаток
        ) КАК ПервыеПериоды
    ПО ПервыеПериоды.Период = ВзаиморасчетыОиО.Период
    И ПервыеПериоды.Сделка = ВзаиморасчетыОиО.Сделка
    И ПервыеПериоды.ДоговорКонтрагента = ВзаиморасчетыОиО.ДоговорКонтрагента
    ЛЕВОЕ СОЕДИНЕНИЕ
        (    ВЫБРАТЬ   ВзаиморасчетыОиО2.Регистратор
                    , ВзаиморасчетыОиО2.ДоговорКонтрагента
                    , ВзаиморасчетыОиО2.Сделка
                    , ВзаиморасчетыОиО2.Период
                    , ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
            ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуНач КАК ВзаиморасчетыОиО2
            ОБЪЕДИНИТЬ
            ВЫБРАТЬ   ВзаиморасчетыПоДок.Регистратор
                    , ВзаиморасчетыПоДок.ДоговорКонтрагента
                    , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
                    , ВзаиморасчетыПоДок.Период
                    , ВзаиморасчетыПоДок.СуммаВзаиморасчетовПриход
            ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДатуНач КАК ВзаиморасчетыПоДок
        ) КАК ВзаиморасчетыОиО2
        ПО ВзаиморасчетыОиО2.Сделка = ВзаиморасчетыОиО.Сделка
        И ВзаиморасчетыОиО2.ДоговорКонтрагента = ВзаиморасчетыОиО.ДоговорКонтрагента
        И (//ВзаиморасчетыОиО.Период < ВзаиморасчетыОиО2.Период ИЛИ
        ВзаиморасчетыОиО.Период = ВзаиморасчетыОиО2.Период И ВзаиморасчетыОиО.Регистратор < ВзаиморасчетыОиО2.Регистратор)
СГРУППИРОВАТЬ ПО
    ВзаиморасчетыОиО.ДоговорКонтрагента,
    ВзаиморасчетыОиО.Сделка,
    ВзаиморасчетыОиО.Период,
    ПервыеПериоды.СуммаВалОстаток
    ИМЕЮЩИЕ
СУММА(ВЫБОР
    КОГДА (ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход) ЕСТЬ NULL
        ТОГДА 0
    ИНАЧЕ ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
    КОНЕЦ) < ПервыеПериоды.СуммаВалОстаток
;



ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот КАК СуммаПродажи,
    ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот КАК КоличествоОборот,
    ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницДляОтчетовОборот,
    ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК Себестоимость,
    ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК Маржа,
    ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК ЧистаяМаржа,
    0 КАК СуммаЗатрат,
    РСЦеныКомпании.Цена * ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / РСЦеныКомпании.ЕдиницаИзмерения.Коэффициент * РСКурсыВалютыЦен.Курс / РСКурсыВалютыЦен.Кратность * РСКурсыВалютыУпрУчета.Кратность / РСКурсыВалютыУпрУчета.Курс * &КоэффициентОтБазовогоТипа КАК ПлановаяСебестоимость,
    ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - РСЦеныКомпании.Цена * ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / РСЦеныКомпании.ЕдиницаИзмерения.Коэффициент * РСКурсыВалютыЦен.Курс / РСКурсыВалютыЦен.Кратность * РСКурсыВалютыУпрУчета.Кратность / РСКурсыВалютыУпрУчета.Курс * &КоэффициентОтБазовогоТипа КАК ПлановаяПрибыль,
    ПродажиСДатамиЦенИДатамиКурсов.Регистратор КАК ДокументРеализации,
    ПродажиСДатамиЦенИДатамиКурсов.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ПродажиСДатамиЦенИДатамиКурсов.Подразделение КАК Подразделение,
    ПродажиСДатамиЦенИДатамиКурсов.ЗаказПокупателя КАК ЗаказПокупателя,
    ПродажиСДатамиЦенИДатамиКурсов.ДоговорВзаиморасчетовПокупателя КАК ДоговорВзаиморасчетовПокупателя,
    ПродажиСДатамиЦенИДатамиКурсов.Контрагент.ОсновнойМенеджерПокупателя КАК Ответственный,
    ПродажиСДатамиЦенИДатамиКурсов.Номенклатура КАК Номенклатура,
    ПродажиСДатамиЦенИДатамиКурсов.Контрагент КАК Покупатель
{ВЫБРАТЬ
    СуммаПродажи,
    КоличествоОборот,
    КоличествоЕдиницДляОтчетовОборот,
    Себестоимость,
    Маржа,
    ЧистаяМаржа,
    СуммаЗатрат,
    ПлановаяСебестоимость,
    ПлановаяПрибыль,
    ДокументРеализации.*,
    ХарактеристикаНоменклатуры.*,
    ЗаказПокупателя.*,
    Ответственный.*,
    ДоговорВзаиморасчетовПокупателя.*,
    Покупатель.*,
    Подразделение.*,
    Номенклатура.*,
    ПродажиСДатамиЦенИДатамиКурсов.ДокументПродажи.*}
ИЗ (
ВЫБРАТЬ
    ПродажиОбороты.СтоимостьОборот*ДопКоэффициент КАК СуммаПродажиОборот,
    (ВЫБОР КОГДА (ПродажиСебестоимостьОбороты.СтоимостьОборот) ЕСТЬ NULL  ТОГДА 0 ИНАЧЕ ПродажиСебестоимостьОбороты.СтоимостьОборот КОНЕЦ + ВЫБОР КОГДА (ПродажиСебестоимостьКорректировка.Стоимость) ЕСТЬ NULL  ТОГДА 0 ИНАЧЕ ПродажиСебестоимостьКорректировка.Стоимость КОНЕЦ)*ДопКоэффициент КАК СебестоимостьОборот,
    ПродажиОбороты.КоличествоОборот*ДопКоэффициент КАК КоличествоОборот,
    ПродажиОбороты.Регистратор,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.ХарактеристикаНоменклатуры,
    ПродажиОбороты.ДоговорКонтрагента КАК ДоговорВзаиморасчетовПокупателя,
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.ЗаказПокупателя,
    ПродажиОбороты.Подразделение,
    ПродажиОбороты.ДокументПродажи,
    СписокРегистраторов.ДатаКурсаВалютыУпрУчета,
    МАКСИМУМ(РСЦеныКомпании.Период) КАК ДатаЦены,
    МАКСИМУМ(РСКурсыВалют.Период) КАК ДатаКурсаВалютыЦены
ИЗ
    РегистрНакопления.Продажи.Обороты(, &ДатаКон, Регистратор,
        {Номенклатура.*, ХарактеристикаНоменклатуры.*, ЗаказПокупателя.*, Подразделение.*, ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель, ДокументПродажи.*}
                                    ) КАК ПродажиОбороты
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        (ВЫБРАТЬ РАЗЛИЧНЫЕ
            ОсновнаяТаблица.Регистратор,
            ВЫБОР    КОГДА ОсновнаяТаблица.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
                    ТОГДА НЕОПРЕДЕЛЕНО
                    ИНАЧЕ ОсновнаяТаблица.Сделка
            КОНЕЦ КАК Сделка,
            МАКСИМУМ(ВЫБОР КОГДА
                ВЫБОР //документ не был оплаченным на ДатаНач
                    КОГДА НеоплаченныеНаДатуКон.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
                        ОсновнаяТаблица.Период < НеоплаченныеНаДатуКон.Период
                        ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуКон.Период
                            И ОсновнаяТаблица.Регистратор<НеоплаченныеНаДатуКон.ПервыйРегистратор
                    ИНАЧЕ
                        ОсновнаяТаблица.Период <= &КонДата
                КОНЕЦ
                И
                ВЫБОР //и стал оплаченным на ДатаКон
                    КОГДА НеоплаченныеНаДатуНач.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
                        ОсновнаяТаблица.Период > НеоплаченныеНаДатуНач.Период
                        ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуНач.Период
                            И ОсновнаяТаблица.Регистратор>=НеоплаченныеНаДатуНач.ПервыйРегистратор
                    ИНАЧЕ
                        ОсновнаяТаблица.Период >= &НачДата
                КОНЕЦ ТОГДА 1
            ИНАЧЕ -1 КОНЕЦ) КАК ДопКоэффициент,
            МАКСИМУМ(РСКВ.Период) КАК ДатаКурсаВалютыУпрУчета //это даты курсов
        ИЗ
            (    ВЫБРАТЬ   ОсновнаяТаблица.Регистратор
                        , ОсновнаяТаблица.ДоговорКонтрагента
                        , ОсновнаяТаблица.Сделка
                        , ОсновнаяТаблица.Период
              &
3 TSRh
 
01.10.15
17:17
даже в эту формочку для постинга код не влез (
я честно говоря, толком не понял как ЭТО работает, даже засунув в конструктор (
4 TSRh
 
01.10.15
21:53
Мдя, видно никто не сталкивался ( Жаль
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.