![]() |
|
Отчет с полем "Сумма долга на начало". | ☑ | ||
---|---|---|---|---|
0
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 |
|||
1
DrShad
28.01.21
✎
17:36
|
зачем его рассчитывать если в остаточном регистре оно есть в виртуальной таблице ?
|
|||
2
lirt82
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?
|
|||
3
lirt82
28.01.21
✎
17:43
|
||||
4
lirt82
28.01.21
✎
17:47
|
(1) неужели в запросе делать по этому полю вложенный запрос в котором получать остаток на конец дня по контрагенту предыдущего дня который пользователь указал в параметре отчета?)
т.е. пользователь задал параметры отчета с 01.01.2021 по 31.01.2021 и мне в поле "Сумма долга на начало периода" нужно передать остаток на конец дня 31.12.2020? |
|||
5
DrShad
28.01.21
✎
17:49
|
а начальный остаток тебе по религии не подходит?
|
|||
6
lirt82
28.01.21
✎
17:49
|
(4) + еще хотят расшифровку из каких движении сложился этот остаток на начало:)
|
|||
7
lirt82
28.01.21
✎
17:50
|
(5) не понял?)
|
|||
8
DrShad
28.01.21
✎
17:50
|
запрос покажи
|
|||
9
lirt82
28.01.21
✎
18:02
|
ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка КАК ДокРеализации, РеализацияТоваровУслуг.Контрагент КАК Контрагент, РеализацияТоваровУслуг.СуммаДокумента КАК СуммаРеализации, РеализацияТоваровУслуг.ТорговыйПредставитель КАК ТорговыйПредставитель, ВЫРАЗИТЬ(РеализацияТоваровУслуг.Комментарий КАК СТРОКА(50)) КАК Комментарий ПОМЕСТИТЬ втВыбранныеРеализации ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ГДЕ РеализацияТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2 И РеализацияТоваровУслуг.Проведен = ИСТИНА И РеализацияТоваровУслуг.Организация = &Организация ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втВыбранныеРеализации.ТорговыйПредставитель, втВыбранныеРеализации.Контрагент, втВыбранныеРеализации.ДокРеализации, втВыбранныеРеализации.Комментарий, втВыбранныеРеализации.СуммаРеализации, КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор, ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) = ТИП(Документ.ПриходныйКассовыйОрдер) ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход ИНАЧЕ 0 КОНЕЦ КАК ОплатаНаличными, ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) = ТИП(Документ.ПлатежноеПоручениеВходящее) ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход ИНАЧЕ 0 КОНЕЦ КАК БезНаличнаяОплата, ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) = ТИП(Документ.ОперацияБух) ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход ИНАЧЕ 0 КОНЕЦ КАК ПодЗарплату, ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) ТОГДА НАЧАЛОПЕРИОДА(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор.Дата, ДЕНЬ) ИНАЧЕ 0 КОНЕЦ КАК ДатаВозврата, ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход ИНАЧЕ 0 КОНЕЦ КАК СуммаВозврата, ВЫБОР КОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.ДокументОснование.Консигнация ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход ИНАЧЕ 0 КОНЕЦ КАК СуммаКонсигнации, ВЫБОР КОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.ДокументОснование.Консигнация И ТИПЗНАЧЕНИЯ(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор) <> ТИП(Документ.ВозвратТоваровОтПокупателя) ТОГДА НАЧАЛОПЕРИОДА(КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Регистратор.Дата, ДЕНЬ) ИНАЧЕ 0 КОНЕЦ КАК ДатаОплатыКонсигнации, ВЫБОР КОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.ДокументОснование.Консигнация ТОГДА КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаРасход ИНАЧЕ 0 КОНЕЦ КАК Консигнация ИЗ втВыбранныеРеализации КАК втВыбранныеРеализации ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.КонтрольДолгаПоОстаткамТоваров.ОстаткиИОбороты(, , Авто, , ) КАК КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты ПО втВыбранныеРеализации.ДокРеализации = КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.ДокументОснование |
|||
10
lirt82
28.01.21
✎
18:03
|
и второй набор данных, связь по контрагенту и документу основанию
ВЫБРАТЬ КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаДолгаНаНачалоПериода, КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Организация, КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.Контрагент, КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.ДокументОснование, КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаДолгаНаКонецПериода ИЗ РегистрНакопления.КонтрольДолгаПоОстаткамТоваров.ОстаткиИОбороты(, , Авто, , Организация = &Организация) КАК КонтрольДолгаПоОстаткамТоваровОстаткиИОбороты |
|||
11
lirt82
28.01.21
✎
18:07
|
сам файл отчета
https://dropmefiles.com/2b5DN |
|||
12
DrShad
28.01.21
✎
18:07
|
сжечь весь запрос
|
|||
13
DrShad
28.01.21
✎
18:08
|
зачем куча таблиц, когда достаточно только одной?
РегистрНакопления.КонтрольДолгаПоОстаткамТоваров.ОстаткиИОбороты |
|||
14
lirt82
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?
|
|||
15
DrShad
28.01.21
✎
18:24
|
(14) т.е. начальный остаток тебе не дает эта таблица?
|
|||
16
lirt82
28.01.21
✎
18:59
|
(15) да он всегда 0
|
|||
17
lirt82
28.01.21
✎
19:03
|
(15) а если сумма реализации будет меньше чем ПКО напрм. реализация от 01.12.2020 на сумму 400, и приходник на ее основании на сумму 500, тогда при выборе периода отчета с 01.12.2020 остаток на начало будет -100. Это и понятно так как остаток рассчитался исходя из заданных параметров отчета. При таких параметрах отчета откуда системе знать что было ранее даты 01.12.2020 :) и какой там остаток и из чего он сложился:-)
|
|||
18
lirt82
28.01.21
✎
19:07
|
(17) добавлю остаток на начало периода отчета рассчитался исходя из параметров по измерениям регистра.
|
|||
19
lirt82
29.01.21
✎
06:56
|
это называется "переходящий" остаток:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |