Автор |
Сообщение |
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 и импортируются в системы банк-клиент.
По-моему мнению так удобнее работать. Кроме того все перекрытия делаются, через ГК под отдельными счетчиками (так тоже можно быстро различить ввод реального платежа и схлоп).
Как видно есть несколько способов различать платежи и схлопы. _________________ "Я люблю работу, она очаровывает меня. Я могу сидеть и смотреть на неё часами." © Джером К. Джером. |