SL платежи. Особености отражения проводок в базе данных.

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

Зарегистрирован: 22.05.2007
Сообщения: 92
Откуда: Almaty

Добавлено: 01.04.2008 11:50 Заголовок сообщения: SL платежи. Особености отражения проводок в базе данных.
Давно никто ничего не пишет на форуме и вот я решил нарушить тишину и выйти из сумрака Very Happy
У меня возникла интересная ситуация. У Покупателя который работает все время с одной валютой (местной, код валюты 0) в Сальдовках разное сальдо. СУММА ПО ГК и СУММА НА ТЕК. ДАТУ различны. Такая ситуация наблюдается по покупателям которые работают с иностранной валютой до переоценки валюты. Но тут особый случай — этот покупатель работает только с местной валютой и нет по нему ни одного движения в иностранной валюте.
Я нашел проводку которая дает расхождение, но не до конца понятна причина этого расхождения.
Дело в том, что в проводке в поле SL21003 значение счетчика строк дошло до ZZ и дальше не пошло (как настроить чтоб было 3-х значное? Rolling Eyes ).
В итоге получилось в Главной Книге 1952 строки, а в SL21 and SL03 всего 1921. Тридцать одна строка в SL была потеряна. (как это можно востановить теперь? Rolling Eyes )
Также в таблице SL21 обнаружена была подобная странность у других покупателей SL21007 не во всех случаях равна SL21008 при значении валюты 0 (местная) в поле SL21017 расхождения составляют 0,01. Откуда эта копейка выскакивает не понятно. Может кто-нибудь сталкивался с подобным?
_________________
Тот, кто задает вопрос, глупец в течение пяти минут, тот, кто его не задает, глупец всю свою жизнь.
Nikolay
Заслуженный форумщик

Зарегистрирован: 22.05.2007
Сообщения: 92
Откуда: Almaty

Добавлено: 16.04.2008 10:28 Заголовок сообщения: Нашел причину возникновения проблемы
Причина возникшей проблемы была найдена. У нас в параметрах Книги Продаж \ Расшир.Информ.о Платежах установлено значение 2 (использовать расширенную информацию и отслеживание платежей) Поэтому в момент матчинга (сочетания счетов-фактур с платежами) проводка генерируется не одной сводной суммой, а детально. В поле SL21003 автоматически генерируется счетчик строк. Так как счетчик 2-х значный, то в момент большой проводки не хватило строк. Поэтому когда счетчик достиг значения ZZ Scala перестала добавлять строки по проводке в таблицу SL21.
_________________
Тот, кто задает вопрос, глупец в течение пяти минут, тот, кто его не задает, глупец всю свою жизнь.
Vitaly Kofanov
Заслуженный форумщик

Зарегистрирован: 11.09.2007
Сообщения: 57
Откуда: Самара->Санкт-Петербург->Москва

Добавлено: 08.09.2011 12:53 Заголовок сообщения: Счёт-фактура на аванс КП
Не смог создать отдельную тему, эта наиболее возможно подходящая.

Кто поделится SQL скриптом счетфактуры по Книге продаж?
пишу отчет на RM по счетфактуре для авансов.
_________________
Виталий Кофанов

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

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

Добавлено: 09.09.2011 10:25 Заголовок сообщения: Re: Счёт-фактура на аванс КП
Запрос для построения отчёта:

Код:
/*
Исходный запрос by Ruslan Migunov
Изменил: Васильев А.А.
Дата создания/Последнего изменения: 13.07.2009/07.07.2011
Пример вызова: usr_RS_TaxNote ’01’, ‘0000000533#918/08#01′
*/
ALTER procedure [dbo].[usr_RS_TaxNote]
@CC nchar(2), @prepayment nvarchar(35)
as
declare @SQLString nvarchar(2000)
set @SQLString=N’
select
case SL03104 when »» then SL03002 else SL03104 end as TaxNoteNumber,
SL01002 custname,
case when ltrim(SL01021+SL01147)=»» then »» else SL01021+» / »+SL01147 end innkpp,
case when ltrim(SL01003)=»» then »» else SL01003+», » end+case when ltrim(SL01004)=»» then »» else SL01004+», » end+SL01005+», »+SL01099+», »+SL01194+», »+SL01195 deladdr,
case when ltrim(isnull(b1.SLB4004,»»)+isnull(b2.SLB4004,»»)+isnull(b3.SLB4004,»»)+isnull(b4.SLB4004,»»))=»» then N»Предоплата» else isnull(b1.SLB4004,»»)+isnull(b2.SLB4004,»»)+isnull(b3.SLB4004,»»)+isnull(b4.SLB4004,»») end descrline,
case when SY29001=»00» then »Без НДС» else cast(cast(»0»+SY29003 as numeric) as varchar)+»%» end vat,
abs(SL21a.SL21007) amnt,
abs(SL21a.SL21007)*100/(100+cast(»0»+SY29003 as numeric)) amnt_wo_vat,
abs(SL21a.SL21007)*(1-100/(100+cast(»0»+SY29003 as numeric))) vat_amnt,
SL21b.SL21002,
SL21b.SL21005
from SL21’+@CC+’00 SL21a
inner join SL21’+@CC+’00 SL21b on SL21a.SL21001=SL21b.SL21001 and SL21a.SL21002=SL21b.SL21002 and SL21b.SL21003=»01»
inner join SL01’+@CC+’00 on SL21a.SL21001=SL01001
inner join SL03’+@CC+’00 SL03 on SL03001=SL21a.SL21001 and SL03002=SL21a.SL21002
inner join SY29’+@CC+’00 on cast(SY29001 as numeric)=cast(»0»+ltrim(SL03052) as numeric)
left join SLB4’+@CC+’00 b1 on b1.SLB4001=SL21a.SL21001 and b1.SLB4002=SL21a.SL21002 and b1.SLB4003=»0»
left join SLB4’+@CC+’00 b2 on b2.SLB4001=SL21a.SL21001 and b2.SLB4002=SL21a.SL21002 and b2.SLB4003=»1»
left join SLB4’+@CC+’00 b3 on b3.SLB4001=SL21a.SL21001 and b3.SLB4002=SL21a.SL21002 and b3.SLB4003=»2»
left join SLB4’+@CC+’00 b4 on b4.SLB4001=SL21a.SL21001 and b4.SLB4002=SL21a.SL21002 and b4.SLB4003=»3»
where SL21a.SL21001+»#»+SL21a.SL21002+»#»+SL21a.SL21003=N»’+@prepayment+»»
exec(@SQLString)


Запросы для получения параметров для основного отчёта.
Внимание, счёт для авансовых расчётов с покупателями (62020) захардкоден, его нужно изменить на счёт, используемый в вашей компании.
Список покупателей, у которых были авансовые платежи:

Код:
/*
Исходный запрос by Ruslan Migunov
Изменил: Васильев А.А.
Дата создания/Последнего изменения: 13.07.2009/07.07.2011
Пример вызова: usr_RS_CustomersWithPayments ‘R2′
*/
ALTER procedure [dbo].[usr_RS_CustomersWithPayments]
@CC nchar(2)
as
declare @SQLString nvarchar(512)
set @SQLString=N’
select SL01001 code,
SL01001+space(1)+SL01002 descr
from SL01’+@CC+’00
inner join (
select distinct SL21001 from SL21’+@CC+’00
) SL21
   on SL01001=SL21001
inner join (
select distinct SL03001 from SL03’+@CC+’00
where left(SL03017,5)=»62020»
) SL03
   on SL01001=SL03001
order by SL01001′
exec(@SQLString)


и список авансовых платежей для конкретного покупателя:

Код:
/*
Original Query by Ruslan Migunov
Изменил: Васильев А.А.
Дата создания/Последнего изменения: 13.07.2009/07.07.2011
Пример вызова: usr_RS_CustomersAdvances ‘R2’, ‘100006’
*/
ALTER procedure [dbo].[usr_RS_CustomersAdvances]
@CC nchar(2), @customer nvarchar(15)
as
declare @SQLString nvarchar(512)
set @SQLString=N’
select SL21001+»#»+SL21002+»#»+SL21003 code,
left(SL21002+replicate(space(1),15),15)+space(1)+convert(varchar,SL21005,104)+space(1)+right(replicate(space(1),15)+cast(cast(SL21007 as numeric(18,2)) as varchar),15) descr
from SL21’+@CC+’00
inner join SL03’+@CC+’00 on SL03001=SL21001 and SL03002=SL21002
where SL03013=0
and left(SL03017,5)=»62020»
and SL21001=N»’+@customer+»’ and SL21003=»01»
order by SL21005,SL21007 desc’
exec(@SQLString)

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

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

Добавлено: 02.11.2011 16:10 Заголовок сообщения: Re: Счёт-фактура на аванс КП
Хочу рассказать, как мне удалось реализовать задачу сделать регистрацию счетов-фактур на авансы, оставшихся несвязанными на конец месяца "по нажатию одной кнопки (как в 1С)". В том числе, обрабатываются и ситуации частично несвязанных авансов. В этом случае регистрируется оставшаяся несвязанной сумма.
Интерфейс "той самой кнопки" реализован через отчёт MSRS. Если добавление информации за выбранный месяц ещё не производилось, выводится отчёт со строками, подлежащими добавлению:

В конце отчёта появляется ссылка:


При нажатии на ссылку происходит выполнение второго шага процедуры, информация добавляется в специальную таблицу (аналог SL17) и в Дневном Журнале Главной Книги создаются проводки, как по добавленным записям, так и по связыванию авансов предыдущих периодов со счетами-фактурами, произведенные в выбранном периоде:

Если попытаться выбрать период, в котором добавление уже выполнено ранее, никакая ссылка внизу не появляется, а в заголовке появляется текст, что информация уже была добавлена ранее:

Информация, добавленная в аналог SL17 таблицы, используется при построении отчётов "Книга Продаж" и "Книга Покупок" и самих форм счетов-фактур на авансы.