Re: Акт сверки расчётов с покупателем (в рублях)

Автор Сообщение
Dmitry Pestov
Заслуженный форумщик

Зарегистрирован: 21.06.2007
Сообщения: 94
Откуда: Москва, ApicoSoft

Добавлено: 25.03.2011 11:02 Заголовок сообщения: Re: Акт сверки расчётов с покупателем (в рублях)

aav писал(а):
В этом отчёте, как и в "карточке покупателя" отсутствуют так называемые проводки "разнесения" (многие ещё называют их проводками "схлопывания"), т.е. зачёта авансов в оплату счёта-фактуры. Они очень не нравятся бухгалтерам (искусственно увеличивая обороты), да и покупатели тоже не могут их понять, вот они в этом отчёте и фильтруются (тем более, что в сумме они всё равно дают 0), здесь только "реальные" платежи.

Привет!
Может ты еще и надежный способ определения схлопываний в PL21/SL21 знаешь? А то сколько я не сталкивался, все время приходится извращаться.
_________________
Dmitry Pestov

Блог ScalaHelp.RU — практические вопросы использования Scala

aav
Администратор
Администратор

Зарегистрирован: 14.09.2004
Сообщения: 1081
Откуда: Санкт-Петербург

Добавлено: 25.03.2011 14:18 Заголовок сообщения: Re: Акт сверки расчётов с покупателем (в рублях)

Dmitry Pestov писал(а):
Привет!
Может ты еще и надежный способ определения схлопываний в PL21/SL21 знаешь? А то сколько я не сталкивался, все время приходится извращаться.

Знаю. Более того, это уже здесь было описано: http://scala.org.ru/scala/viewtopic.php?t=397
В тех местах, где мне приходилось этот подход использовать, это работает.

Вот лишь один из вариантов определения таких проводок:

Код:
CREATE  FUNCTION [dbo].[IsRealPayment] (@Customer nvarchar(10), @TransactionNumber nvarchar(6))
/*
————————————————
Это реальный платеж или проводка разнесения?
Определяется по сумме проводки: для проводки
разнесения сумма равна нулю, с учетом
комментариев приведенных ниже
————————————————
   Алексей Васильев
   02.12.2005
————————————————
*/
RETURNS int
AS
BEGIN
declare
@TrSum numeric(20,8),
@Result int
select @TrSum=case
   when sum(ungroupped.LinesQty)=1 then 1
   when count(*)>1 then sum(ungroupped.LC)
   else sum(ungroupped.OC) end
from
— сначала группируем по покупателю, № проводки и коду валюты
   (select
   SL21001 as CustomerCode,
   SL21004 as TransactionNumber,
   sum(SL21007) as LC,
   sum(SL21008) as OC,
   SL21017 as CurrencyCode,
   count(*) as LinesQty
   from SL210100 (NOLOCK)
   where SL21001=@Customer and SL21004=@TransactionNumber
   group by SL21001, SL21004, SL21017)
   ungroupped
— затем группируем сгруппированное. Если валюты разные, смотрим суммы в локальной валюте, если одинаковые — в оригинальной
group by ungroupped.CustomerCode, ungroupped.TransactionNumber
   if @TrSum<>0
   — сумма по проводке не нулевая — это обычный платеж
   BEGIN
   set @Result=1
   END
   ELSE
   — это проводка разнесения
   BEGIN
   set @Result=0
   END
RETURN @Result
END

Dmitry Pestov
Заслуженный форумщик

Зарегистрирован: 21.06.2007
Сообщения: 94
Откуда: Москва, ApicoSoft

Добавлено: 28.03.2011 07:40 Заголовок сообщения: Re: Акт сверки расчётов с покупателем (в рублях)

aav писал(а):
Вот лишь один из вариантов определения таких проводок:

Здорово, обязательно попробую как в следующий раз столкнусь. Спасибо.
_________________
Dmitry Pestov

Блог ScalaHelp.RU — практические вопросы использования Scala

Maxim
Заслуженный форумщик

Зарегистрирован: 09.03.2005
Сообщения: 77
Откуда: Москва

Добавлено: 28.03.2011 12:00 Заголовок сообщения: Re: Акт сверки расчётов с покупателем (в рублях)

aav писал(а):
Вот лишь один из вариантов определения таких проводок:


Реальный платеж есть в SL03/PL03,с нулевыми значениями в SL03013/PL03013. Проводка схлопа только в SL21/PL21,

Сложнее разбирать, когда схлоп между книгами SL-PL происходит, но тоже возможно разделить, особенно если учитывать настройки местные.
_________________
"Я люблю работу, она очаровывает меня. Я могу сидеть и смотреть на неё часами." © Джером К. Джером.

aav
Администратор
Администратор

Зарегистрирован: 14.09.2004
Сообщения: 1081
Откуда: Санкт-Петербург

Добавлено: 28.03.2011 13:09 Заголовок сообщения: Re: Акт сверки расчётов с покупателем (в рублях)

Maxim писал(а):
Реальный платеж есть в SL03/PL03,с нулевыми значениями в SL03013/PL03013

А вот и нет! Не все "вешают" платёж как аванс, а потом делают разнесение. Кто-то привязывает платёж сразу на ранее выставленные счета, кто-то делает это частично…

Maxim
Заслуженный форумщик

Зарегистрирован: 09.03.2005
Сообщения: 77
Откуда: Москва

Добавлено: 28.03.2011 14:27 Заголовок сообщения:
Да это верно, просто везде где работал была и есть приоритетная цель быстро разнести поступления денег по банку.
У нас из систем банк-клиент настроены импорт платежей, а в этом случае все платежи заводятся как не разнесенные авансы и уже в течении дня-двух или перекрываются с выставленными сч.фактурами либо перекидываются на счет авансов (если известно что в отчетном периоде клиенту не будет выставлены сч.фактуры).
Тоже касается и ввода платежей в КЗ. Они заводятся как документы предоплаты в Scala и импортируются в системы банк-клиент.
По-моему мнению так удобнее работать. Кроме того все перекрытия делаются, через ГК под отдельными счетчиками (так тоже можно быстро различить ввод реального платежа и схлоп).
Как видно есть несколько способов различать платежи и схлопы.
_________________
"Я люблю работу, она очаровывает меня. Я могу сидеть и смотреть на неё часами." © Джером К. Джером.