Имя: Пароль:
1C
1С v8
Просроченная дебиторская задолженность
, , ,
0 Viktosha
 
20.08.12
11:37
Необходимо разработать отчет по просроченной задолженности, при этом не учитывая, стоит ли галка "по документам расчетов" в договорах. Т.е. запрос необходимо сделать по регистру "Взаиморасчеты с контрагентами".
Пытаюсь определить закономерность, т.е. найти период(регистратор), с которого возникает задолженность (считаем, что она закрывается по ФИФО).
Например:
реал1: +250  остаток +250
плат1: -100  остаток +150
реал2: +300  остаток +450
плат2: -200  остаток +250
реал3: +100  остаток +350
Здесь реал2 - будет первой, по которой существует задолженность, причем не вся. а только 250.
Второй пример:
реал1: +600  остаток +600
плат1: -500  остаток +100
реал2: +100  остаток +200
плат2: -100  остаток +100
Здесь  вся реал2

Как определить период, с которого будет считаться задолженность? (что-то мозг уже сломан, хотя еще только понедельник)
1 Alex S D
 
20.08.12
11:39
посмотри отчет "задолженность по срокам долга"
2 Viktosha
 
20.08.12
15:47
Он высчитывает сумму долга на определенный интервал и обороты. Не совсем то, что нужно.
3 pumbaEO
 
20.08.12
15:49
Остатки на каждый день .
4 Viktosha
 
20.08.12
15:52
(3) это же строится будет сутки, особенно. если учесть что есть остатки с лохматого года
5 Viktosha
 
20.08.12
16:31
Каким то образом в запросе можно вытащить все реализации, по которым есть долг? Мы знаем остаток долга, знаем общую сумму прихода и расхода и конечный остаток на конкретный документ-регистратор, каким образом из этих чисел вытащить нужный период задолженности.
6 John83
 
20.08.12
16:33
кстати не была озвучена конфа
(5) в той же УПП запросто делается, но только по БУ
7 Viktosha
 
20.08.12
16:34
УПП 1.3. но ведется только управленческий учет, по БУ все понятно
8 х86
 
20.08.12
16:51
(0)ФИФО в запросе, тяжолый запрос, но думается мне твоя задача реализуема
9 andrewks
 
20.08.12
16:52
10 sanja26
 
20.08.12
16:52
если по договору в целом расчеты - будет очень тяжелый запрос
11 Viktosha
 
20.08.12
16:55
(9) к сожалению нет прав там скачивать. Может, если у Вас они есть, Вы перешлете мне эту обработку;)))
12 sanja26
 
20.08.12
16:57
(10)+ смотрится остаток долга, далее в обратном порядке отсчитываются неоплаченные реализации...
или наоборот, сначала определить оплаченные по общим суммам долга и продажи, а далее уже найти неоплаченные
13 Viktosha
 
20.08.12
17:00
(12) как в запросе сделать обратный отсчет?
14 sanja26
 
20.08.12
17:08
(13) обратный отсчет - образно выразился)
15 Kashemir
 
20.08.12
17:09
Простой пример (0 оптимизации)


ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОстатки.Организация,
   ВзаиморасчетыСКонтрагентамиОстатки.Контрагент,
   ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток
ПОМЕСТИТЬ ТаблицаОстатков
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&НаДату, ) КАК ВзаиморасчетыСКонтрагентамиОстатки
ГДЕ
   ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток > 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОбороты.Период,
   ВзаиморасчетыСКонтрагентамиОбороты.Регистратор,
   ВзаиморасчетыСКонтрагентамиОбороты.Организация,
   ВзаиморасчетыСКонтрагентамиОбороты.Контрагент,
   ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
ПОМЕСТИТЬ ВсеОбороты
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(, &НаДату, Регистратор, ) КАК ВзаиморасчетыСКонтрагентамиОбороты
ГДЕ
   ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот > 0
;

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

СГРУППИРОВАТЬ ПО
   ВложенныйЗапрос.Организация,
   ВложенныйЗапрос.Регистратор,
   ВложенныйЗапрос.Контрагент,
   ВложенныйЗапрос.Период

УПОРЯДОЧИТЬ ПО
   Организация,
   Контрагент,
   Период,
   Регистратор
ИТОГИ
   СУММА(Оборот)
ПО
   Организация,
   Контрагент,
   Период,
   Регистратор
16 Kashemir
 
20.08.12
17:18
По хорошему такие отчеты чистыми запросами не пишутся, ибо глубина раскрутки не ограничена что чревато проблемами. Потому лучше раскручивать запросы допустим по месяцу за проход - с отбрасыванием уже закрывшихся остатков, пока все не закроется
17 Viktosha
 
20.08.12
17:23
Остатки на дату - весьма условно:
Пример:

Р1: +300 остаток +300
П1: -200 остаток +100
Р2: +100 остаток +200
П2: -100 остаток +100

на каждую дату есть остаток по взаиморасчетам, при этом первая реализация по ФИФО закрыта
18 Kashemir
 
20.08.12
17:33
(17) У тебя есть сумма финальной задолжености. Все что тебе надо - набрать на эту сумму последних документов.
19 sanja26
 
20.08.12
17:34
(18) может отсеять оплаченные все-таки лучше?
20 Viktosha
 
20.08.12
17:35
(18) дак возможно ли это сделать запросом
(19) как их отсеять?))))
21 sanja26
 
20.08.12
17:39
есть сумма оплаты, есть сумма продажи
условие в запросе
Сумма(СуммаПродажи) < Сумма(СуммаОплаты)
Предварительно документы должны быть упорядочены в запросе
22 Maniac
 
20.08.12
17:41
Есть у меян отчет. могу бесплатно скинуть
23 Viktosha
 
20.08.12
17:42
(22) Буду очень признательна [email protected]
24 Viktosha
 
20.08.12
17:43
(21) Это просто условие, СуммаКонечныйостаток>0
25 Rovan
 
гуру
20.08.12
17:47
(23) отправил тебе отчет....см. - пришел ?
26 Viktosha
 
20.08.12
17:53
(25) Пришел, спасибо большое))))) - буду разбираться, (в типовой УПП не работает, то ли доработан, то ли для УТ)
27 Kashemir
 
20.08.12
17:54
(20) Можно - я же тебе готовый запрос дал в (15) предоставил. Вопрос устроит ли тебя его скорость.
28 Viktosha
 
20.08.12
17:58
(27) посмотрю его получше, потому как на первый взгляд - построил неверные остатки.
(25) я так понимаю, что таблица документов задолженности получена в цикле, а затем ее помещают в запрос и выходит универсальный запрос, верно?
29 Rovan
 
модератор
20.08.12
17:58
(26) для УТ
(27) я тоже сначала запросом всё хотел сделать - тормозит,
сделал часть алгоритма через ТЗ !
30 Rovan
 
гуру
20.08.12
18:00
(28) сначала берутся документы оплаты, потом поставки
потом просчитываются суммы Приход, Расход, Остаток
потом берутся документы поставки и для них вычисляется документ оплаты...
31 Maniac
 
20.08.12
18:02
Вот качайте http://subsystems.ru/catalog/35/134/
32 Maniac
 
20.08.12
18:06
не помню точно. если модуль запаролен попробуйте пароль - 1
33 sanja26
 
20.08.12
18:11
(32) бесплатно даже?)
я тоже делал, но в доработанной базе, неохота править. вариантов и так накидали
34 Злопчинский
 
20.08.12
18:15
ох уж мне эти любители накропать отчет штатными средствами.. повыпендриваться - такой отчет еще да, реально работать - фиг...
35 Viktosha
 
21.08.12
09:13
(31) Спасибо большое, буду сегодня пробовать и из всех вариантов собирать то, что нужно;)))
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший