Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Отчет с полем "Сумма долга на начало".

Отчет с полем "Сумма долга на начало".
Я
   lirt82
 
28.01.21 - 17:30
В базе есть самописный отчет его необходимо доработать, добавив новые поля. Суть отчета, это отслеживание каждой конкретной РеализацииТМЗ.
Сумма документа реализации "закрывается" следующим образом.
Сумма реализации 1000 тенге это для регистра плюс (+) приход, далее на основании этой реализации могут быть созданы, ПКО - оплата наличными, Платежное поручение входящее - это Безнал, ОперацияБух - это "Под зарплату" не совсем понятна суть но в проводке есть субконто Контрагент. и Возврат товаров от покупателя - все эти доки это минус (-) расход от суммы Реализации.  
У реализации есть признак тип булево "Консигнация" означает что по этой реализации оплата будет позже не в день даты реализации, образно это отгрузка в долг. Таким образом получается:

реализация от 01.12.2020 на сумму 1000, далее 02.12.2020 есть ПКО на сумму 200 и есть возврат от 31.12.2020 на сумму 100 =

1000 - 200 - 100 = 700 это будет долгом по этой конкретной реализации, и такой долг должен накапливаться как в разрезе документа Реализация так и на уровень выше по контрагенту из реализации.

в итоге если брать пример выше должна быть картина при формировании отчета за 1 день с 01.12.2020 по 01.12.2020


1000        200    100     700 - остаток на конец периода


а при формировании отчета с периодом с 02.12.2020 по ХХХХХХХ

остаток на начало по контрагенту будет 700 и далее
Сделал для пяти документов регистр накопления остатки, отчет собрал но проблема с полем "Сумма долга на начало" как его рассчитать за период до периода указанного в отчете и отобразить?)) По-моему не в регистре проблема). Либо клиенту нужно объяснить на примере что это поле бессмысленно.
https://ibb.co/QJkBRkm
   DrShad
 
1 - 28.01.21 - 17:36
зачем его рассчитывать если в остаточном регистре оно есть в виртуальной таблице ?
   lirt82
 
2 - 28.01.21 - 17:42
(1) ок, делаю запрос в нем беру одну таблицу этого регистра ОстаткиИОбороты на нее накладываю параметр НачалоПериода 01.12.2020 и КонецПериода 01.12.2020 23:59:59, получаю данные и рассчитанный остаток на конец периода (01.12.2020 23:59:59) он равен допустим 200. Но этот остаток на конец дня 01.12.2020, далее пользователь формирует этот отчет с периодом НачалоПериода 02.12.2020 и КонецПериода 03.12.2020 23:59:59, каким образом в отчет с таким периодом передать остаток 200 с 01.12.2020?
   lirt82
 
3 - 28.01.21 - 17:43
по ссылке 
https://ibb.co/QJkBRkm
наглядно расписано
   lirt82
 
4 - 28.01.21 - 17:47
(1) неужели в запросе делать по этому полю вложенный запрос в котором получать остаток на конец дня по контрагенту предыдущего дня который пользователь указал в параметре отчета?)
т.е. пользователь задал параметры отчета с 01.01.2021 по 31.01.2021 и мне в поле "Сумма долга на начало периода" нужно передать остаток на конец дня 31.12.2020?
   DrShad
 
5 - 28.01.21 - 17:49
а начальный остаток тебе по религии не подходит?
   lirt82
 
6 - 28.01.21 - 17:49
(4) + еще хотят расшифровку из каких движении сложился этот остаток на начало:)
   lirt82
 
7 - 28.01.21 - 17:50
(5) не понял?)
   DrShad
 
8 - 28.01.21 - 17:50
запрос покажи
   lirt82
 
9 - 28.01.21 - 18:02
ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка КАК ДокРеализации,
    РеализацияТоваровУслуг.Контрагент КАК Контрагент,
    РеализацияТоваровУслуг.СуммаДокумента КАК СуммаРеализации,
    РеализацияТоваровУслуг.ТорговыйПредставитель КАК ТорговыйПредставитель,
    ВЫРАЗИТЬ(РеализацияТоваровУслуг.Комментарий КАК СТРОКА(50)) КАК Комментарий
ПОМЕСТИТЬ втВыбранныеРеализации
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2
    И РеализацияТоваровУслуг.Проведен = ИСТИНА
    И РеализацияТоваровУслуг.Организация = &Организация
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    втВыбранныеРеализации.ТорговыйПредставитель,
    втВыбранныеРеализации.Контрагент,
    втВыбранныеРеализации.ДокРеализации,
    втВыбранныеРеализации.Комментарий,
    втВыбранныеРеализации.СуммаРеализации,
    КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор,
    ВЫБОР
        КОГДА ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) = ТИП(Документ.ПриходныйКассовыйОрдер)
            ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход
        ИНАЧЕ 0
    КОНЕЦ КАК ОплатаНаличными,
    ВЫБОР
        КОГДА ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) = ТИП(Документ.ПлатежноеПоручениеВходящее)
            ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход
        ИНАЧЕ 0
    КОНЕЦ КАК БезНаличнаяОплата,
    ВЫБОР
        КОГДА ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) = ТИП(Документ.ОперацияБух)
            ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход
        ИНАЧЕ 0
    КОНЕЦ КАК ПодЗарплату,
    ВЫБОР
        КОГДА ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя)
            ТОГДА НАЧАЛОПЕРИОДА(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор.Дата, ДЕНЬ)
        ИНАЧЕ 0
    КОНЕЦ КАК ДатаВозврата,
    ВЫБОР
        КОГДА ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя)
            ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаВозврата,
    ВЫБОР
        КОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.ДокументОснование.Консигнация
            ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаКонсигнации,
    ВЫБОР
        КОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.ДокументОснование.Консигнация
                И ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) <> ТИП(Документ.ВозвратТоваровОтПокупателя)
            ТОГДА НАЧАЛОПЕРИОДА(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор.Дата, ДЕНЬ)
        ИНАЧЕ 0
    КОНЕЦ КАК ДатаОплатыКонсигнации,
    ВЫБОР
        КОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.ДокументОснование.Консигнация
            ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход
        ИНАЧЕ 0
    КОНЕЦ КАК Консигнация
ИЗ
    втВыбранныеРеализации КАК втВыбранныеРеализации
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.КонтрольДолгаПоОстаткамТоваров.ОстаткиИОбороты(, , Авто, , ) КАК КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты
        ПО втВыбранныеРеализации.ДокРеализации = КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.ДокументОснование
   lirt82
 
10 - 28.01.21 - 18:03
и второй набор данных, связь по контрагенту и документу основанию
ВЫБРАТЬ
    КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаДолгаНаНачалоПериода,
    КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Организация,
    КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Контрагент,
    КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.ДокументОснование,
    КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаДолгаНаКонецПериода
ИЗ
    РегистрНакопления.КонтрольДолгаПоОстаткамТоваров.ОстаткиИОбороты(, , Авто, , Организация = &Организация) КАК КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты
   lirt82
 
11 - 28.01.21 - 18:07
сам файл отчета
https://dropmefiles.com/2b5DN
   DrShad
 
12 - 28.01.21 - 18:07
сжечь весь запрос
   DrShad
 
13 - 28.01.21 - 18:08
зачем куча таблиц, когда достаточно только одной?
РегистрНакопления.КонтрольДолгаПоОстаткамТоваров.ОстаткиИОбороты
   lirt82
 
14 - 28.01.21 - 18:22
(13) делаю запрос в нем беру одну таблицу этого регистра ОстаткиИОбороты на нее накладываю параметр НачалоПериода 01.12.2020 и КонецПериода 01.12.2020 23:59:59, получаю данные и рассчитанный остаток на конец периода (01.12.2020 23:59:59) он равен допустим 200. Но этот остаток на конец дня 01.12.2020, далее пользователь формирует этот отчет с периодом НачалоПериода 02.12.2020 и КонецПериода 03.12.2020 23:59:59, каким образом в отчет с таким периодом передать остаток 200 с 01.12.2020?
   DrShad
 
15 - 28.01.21 - 18:24
(14) т.е. начальный остаток тебе не дает эта таблица?
   lirt82
 
16 - 28.01.21 - 18:59
(15) да он всегда 0
   lirt82
 
17 - 28.01.21 - 19:03
(15) а если сумма реализации будет меньше чем ПКО напрм. реализация от 01.12.2020 на сумму 400, и приходник на ее основании на сумму 500, тогда при выборе периода отчета с 01.12.2020 остаток на начало будет -100. Это и понятно так как остаток рассчитался исходя из заданных параметров отчета. При таких параметрах отчета откуда системе знать что было ранее даты 01.12.2020 :) и какой там остаток и из чего он сложился:-)
   lirt82
 
18 - 28.01.21 - 19:07
(17) добавлю остаток на начало периода отчета рассчитался исходя из параметров по измерениям регистра.
   lirt82
 
19 - 29.01.21 - 06:56
это называется "переходящий" остаток:)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.