|
УТ 10. Отчет Задолженность контрагентов по периодам. | ☑ | ||
---|---|---|---|---|
0
JeHer
05.08.14
✎
06:55
|
Понадобилось пользователю в УТ 10.3 видеть задолженность контрагентов по периодам. Есть типовой отчет, который показывает эту задолженность на одну конкретную дату, т.е. данные берутся из таблицы остатков. Прикрутил к этому отчету таблицу ВзаиморасчетыСКонтрагентамиОстаткиИОбороты, чтобы получать остатки по периодам, но отчет формируется всё равно неправильно.
Грешу на условие связи, но никак не могу догнать, откуда берутся минусовые остатки, если &ПереключательЗадолженность = 1? ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК СуммаВзаиморасчетов, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК СуммаУпр, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодДень, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодНеделя, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодДекада, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодМесяц КАК ПериодМесяц, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодКвартал КАК ПериодКвартал, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодПолугодие КАК ПериодПолугодие, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодГод КАК ПериодГод, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка {ВЫБРАТЬ Контрагент.*, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.*, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка.*, ПериодДень, ПериодНеделя, ПериодДекада, ПериодМесяц, ПериодКвартал, ПериодПолугодие, ПериодГод} ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&ДатаНач {(&ДатаНач)}, &ДатаКон {(&ДатаКон)}, Авто, , ДоговорКонтрагента.Владелец = &Владелец {(ДоговорКонтрагента.Владелец).* КАК Контрагент, (Сделка).* КАК Сделка, (ДоговорКонтрагента).* КАК ДоговорКонтрагента}) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&ДатаНач {(&ДатаНач)}, &ДатаКон {(&ДатаКон)}, Секунда, , ДоговорКонтрагента.Владелец = &Владелец {(ДоговорКонтрагента.Владелец).* КАК Контрагент, (Сделка).* КАК Сделка, (ДоговорКонтрагента).* КАК ДоговорКонтрагента}) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОборотыНужногоТипа ПО (ВЫБОР КОГДА &ПереключательЗадолженность = 1 ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОборотыНужногоТипа.СуммаВзаиморасчетовКонечныйОстаток > 0 КОГДА &ПереключательЗадолженность = 2 ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОборотыНужногоТипа.СуммаВзаиморасчетовКонечныйОстаток < 0 ИНАЧЕ ИСТИНА КОНЕЦ) И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента = ВзаиморасчетыСКонтрагентамиОстаткиИОборотыНужногоТипа.ДоговорКонтрагента И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка = ВзаиморасчетыСКонтрагентамиОстаткиИОборотыНужногоТипа.Сделка {ГДЕ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.Владелец.* КАК Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.*, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка.*, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодДень, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодНеделя, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодДекада, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодМесяц, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодКвартал, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодПолугодие, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодГод} {УПОРЯДОЧИТЬ ПО Контрагент.*, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.*, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка.*, ПериодДень, ПериодНеделя, ПериодДекада, ПериодМесяц, ПериодКвартал, ПериодПолугодие, ПериодГод, СуммаВзаиморасчетов, СуммаУпр} ИТОГИ СУММА(СуммаВзаиморасчетов), СУММА(СуммаУпр) ПО Контрагент, ПериодМесяц {ИТОГИ ПО Контрагент.*, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.*, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка.*, ПериодДень, ПериодНеделя, ПериодДекада, ПериодМесяц, ПериодКвартал, ПериодПолугодие, ПериодГод} В результат запроса всё равно попадают остатки с минусом куда залить лучше картину? В чем может быть причина? |
|||
1
Cube
05.08.14
✎
07:19
|
(0) Берешь СКД, ложишь туда простой запрос:
ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодГод, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодМесяц, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодДень, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Авто, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты Заполняешь ресурсы. На последней закладке делаешь таблицу: группировка строк - ДоговорКонтрагента, группировка колонок - ПериодМесяц, выбранные поля - СуммаВзаиморасчетовКонечныйОстаток Сохраняешь. Пользуешься. Остальные настройки добавить по вкусу. |
|||
2
JeHer
05.08.14
✎
07:22
|
(1) В том-то и дело, что таким образом получаются свернутые остатки, а именно эта связь дает или дебиторскую или кредиторскую или остатки в зависимости от переключателя
(ВЫБОР КОГДА &ПереключательЗадолженность = 1 ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОборотыНужногоТипа.СуммаВзаиморасчетовКонечныйОстаток > 0 КОГДА &ПереключательЗадолженность = 2 ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОборотыНужногоТипа.СуммаВзаиморасчетовКонечныйОстаток < 0 ИНАЧЕ ИСТИНА КОНЕЦ) |
|||
3
JeHer
05.08.14
✎
07:23
|
(2)+ т.е. у контрагента по сделкам на конец периода остатки могут быть как положительные так и отрицательные.
|
|||
4
Cube
05.08.14
✎
07:34
|
(2) Я тебе про отчет на СКД (новый, с блекджеком и шл...), а ты мне про типовой отчет на построителе отчетов...
Делай на СКД. |
|||
5
Cube
05.08.14
✎
07:38
|
(2) А, так ты ещё и костыли какие-то лепишь там...
Вообще-то, характер отношений по договору (кто дебитор, а кто кредитор) определяет вид договора (с поставщиком, с покупателем)... Всегда так было. Единственное - вид договора "прочее" не дает однозначного ответа. |
|||
6
JeHer
05.08.14
✎
07:39
|
(4) какая разница: СКД или построитель? Результат один и тот же. Хоть к блекджеку и шлюхам еще и вискарь был бы.
|
|||
7
Godofsin
05.08.14
✎
07:54
|
(6) Никак нет! Свой отчет на СКД это свой блек-джек и свои шлюхи!
|
|||
8
JeHer
05.08.14
✎
08:01
|
(7) как не хочется рисовать нижеприведенную хрень:
- вытащить все обороты и остатки, чтобы определить периоды - затем в цикле по периодам получать положительные или отрицательные остатки на конец каждого периода Видимо, придется делать или убеждать пользователя, что Задолженность = Остатки по взаиморасчетам. Т.е. какая разница, по каким сделкам он нам должен, а по каким - мы ему? Всё равно в целом по итогам периода или он нам должен или мы ему, ну или сальдо нулевое - и все довольны. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |