Текущее время: Ср, июл 30 2025, 21:54

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Сальдо дебитора/кредитора на заданную дату по заданному счету?
СообщениеДобавлено: Чт, фев 16 2006, 17:18 
Начинающий
Начинающий

Зарегистрирован:
Пт, фев 10 2006, 08:28
Сообщения: 12
Откуда: Izhevsk
Привет All !

Помогите..., plz.
Может есть готовый ФМ, откуда можно взять?
Можно конечно через RFKSLD00, но хочется не через ЛДБ
и чтобы отдельной функцией.

Спасибо.

Удачи. Сергей.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, фев 16 2006, 17:21 
Гость
если только без счета,
то функции
BAPI_AP_ACC_GETKEYDATEBALANCE
- кредитор
BAPI_AR_ACC_GETKEYDATEBALANCE
дебитор

со счетом - боюсь, что считать надо


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 17 2006, 07:55 
Начинающий
Начинающий

Зарегистрирован:
Пт, фев 10 2006, 08:28
Сообщения: 12
Откуда: Izhevsk
РМщик написал(а):
если только без счета,
то функции
BAPI_AP_ACC_GETKEYDATEBALANCE
- кредитор
BAPI_AR_ACC_GETKEYDATEBALANCE
дебитор

со счетом - боюсь, что считать надо

Это я уже, к сожалению, нашел.
Может так:
1) Начальное сальдо считается по LFC1/KNC1.
2) Обороты за оставшийся период по BSIK/BSAK или BSID/BSAD.

Если Гуру меня поправят, то буду благодарен.
Может есть какие-либо тонкости или другой алгоритм ?

Спасибо.

Удачи. Сергей.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 17 2006, 16:33 
Специалист
Специалист

Зарегистрирован:
Пт, янв 27 2006, 11:16
Сообщения: 105
Mihalkin Sergej написал(а):
РМщик написал(а):
если только без счета,
то функции
BAPI_AP_ACC_GETKEYDATEBALANCE
- кредитор
BAPI_AR_ACC_GETKEYDATEBALANCE
дебитор

со счетом - боюсь, что считать надо

Это я уже, к сожалению, нашел.
Может так:
1) Начальное сальдо считается по LFC1/KNC1.
2) Обороты за оставшийся период по BSIK/BSAK или BSID/BSAD.

Если Гуру меня поправят, то буду благодарен.
Может есть какие-либо тонкости или другой алгоритм ?

Спасибо.

Удачи. Сергей.


может, имеет смысл использовать 2 селекта?
SELECT * APPENDING CORRESPONDING FIELDS OF TABLE t
FROM bsik
WHERE bukrs IN ir_bukrs AND lifnr IN ir_lifnr
AND budat <= ir_budat-high
AND hkont IN ir_hkont
AND bstat = space.


SELECT * APPENDING CORRESPONDING FIELDS OF TABLE t
FROM bsak
WHERE bukrs IN ir_bukrs AND lifnr IN ir_lifnr
AND budat <= ir_budat-high AND augdt >= ir_budat-low
AND hkont IN r_hkont
AND bstat = space.

звездочку конечно лучше заменить набором выбираемых полей.
Первый селект выбирает все открытые позиции до даты ir_budat-high
Второй селект дополнительно выбирает позиции, проведенные до текущей даты, но выровненные позже...
Правда, для повышения производительности пришлось создать индекс для bsik/bsak по bukrs/lifnr/budat

А дальше обрабатывай как хочешь...
Может, гуру и что-нибудь получше подскажут
Поучимся...
:D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 20 2006, 10:39 
Начинающий
Начинающий

Зарегистрирован:
Пт, фев 10 2006, 08:28
Сообщения: 12
Откуда: Izhevsk
IMHO, смотреть таблицу за весь период не совсем хорошая практика.

Но смотреть начальное сальдо по таблицам LFC1/KNC1 тоже не получается, т.к. там нет поля счета (HKONT).

Подскажите: как добавить поле в таблицы LFC1/KNC1, и будут ли собиратся обороты в разрезе контрагентов/счетов ???
Или может такие данные в других таблицах уже имеются ?

Спасибо.

Удачи. Сергей.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 20 2006, 13:40 
Специалист
Специалист

Зарегистрирован:
Пт, янв 27 2006, 11:16
Сообщения: 105
Mihalkin Sergej написал(а):
IMHO, смотреть таблицу за весь период не совсем хорошая практика.


Воспользуйтесь логической базой данных KDF... (это стандарт). С ее помощю написан отчет по отдельным позициям.

А если посмотреть программу ЛБД, то увидите, что выборка организована точно таким же образом:
SELECT (BSIK_FIELDS) FROM BSIK
INTO CORRESPONDING FIELDS OF TABLE XBSIK
FOR ALL ENTRIES IN K_LIFNR
WHERE LIFNR EQ K_LIFNR-LOW
AND BUKRS IN KD_BUKRS
AND GJAHR IN KD_GJAHR
AND GJAHR BETWEEN '0001' AND '9999'
AND BUDAT IN KD_BUDAT
AND BUDAT LE KD_STIDA
AND ZUONR IN KD_ZUONR
AND UMSKZ IN KD_UMSKZ
AND SHKZG IN KD_SHKZG
AND BSCHL IN KD_BSCHL
AND (BSIK_WHERE).

SELECT (BSIK_FIELDS) FROM BSAK
INTO CORRESPONDING FIELDS OF TABLE XBSAK
FOR ALL ENTRIES IN K_LIFNR
WHERE LIFNR EQ K_LIFNR-LOW
AND BUKRS IN KD_BUKRS
AND GJAHR IN KD_GJAHR
AND AUGDT BETWEEN '00010101'
AND '99991231'
AND BUDAT IN KD_BUDAT
AND BUDAT LE KD_STIDA
AND AUGDT GT KD_STIDA
AND ZUONR IN KD_ZUONR
AND UMSKZ IN KD_UMSKZ
AND SHKZG IN KD_SHKZG
AND BSCHL IN KD_BSCHL
AND (BSIK_WHERE).

KD_STIDA - дата, на которую формируется отчет по открытым позициям


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 21 2006, 10:05 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Кажется я уже об этом говорил, что удобно и быстро можно получать сальдо организовав регистр в спецрегитрах. Сальдо на начало месяца берем из таблицы итоговых записей, по отдельным позициям докручиваем до нужной даты. Если нужен пример или как настроить регистр могу выложить


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 21 2006, 12:37 
Начинающий
Начинающий

Зарегистрирован:
Пт, фев 10 2006, 08:28
Сообщения: 12
Откуда: Izhevsk
Aval написал:
Кажется я уже об этом говорил, что удобно и быстро можно получать сальдо организовав регистр в спецрегитрах. Сальдо на начало месяца берем из таблицы итоговых записей, по отдельным позициям докручиваем до нужной даты. Если нужен пример или как настроить регистр могу выложить


Были бы интересны и пример и как настроить регистры.
Очень большая жажда знаний.

Спасибо.

Удачи. Сергей.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 21 2006, 14:03 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
У нас создано по регистру на дебиторов и кредиторов. В таблице объектов 1 добавляем соотв. поле или ZKUNNR, или ZLIFNR соответственно. Остальное там уже есть. При создании регистра устанавливаем флажки отд. позиций, дебета/кредита(если важны обороты за период), переноса сальдо. В присвоенных операциях у нас RFBU и RMRP(для кредиторов) или SD00(для дебиторов). В переносе полей :
RACCT <- HKONT
RZLIFNR <- LIFNR
или
RZKUNNR <- KUNNR

В выборе регистра правило:

Вид счета = 'D' AND Статус докум. = ''
или
Вид счета = 'K' AND Статус докум. = ''
соответственно.
Не забываем про отдельные позиции - флажок ОП

Это что касаемо регистров


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 21 2006, 14:20 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Вот код для получения сальдо:

SELECT * FROM <табл.итоговых записей>
WHERE rldnr = <Регистр> AND
rrcty = '0' AND
rvers = '001' AND
ryear = gjahr AND
rbukrs = bukrs AND
racct IN hkont AND
rzzkunnr IN kunnr.

* 1.1. Добавляем сальдо на начало года
ADD <табл.итоговых записей>-hslvt TO in_saldo.
* 1.2. Добавляем обороты за все месяца с начала года по предыдущий
mcounter = curr_month – 1.
DO mcounter TIMES VARYING hslxx FROM <табл.итоговых записей>-hsl01
NEXT <табл.итоговых записей>-hsl02.
ADD hslxx TO in_saldo.
ENDDO.

ENDSELECT.

SELECT sum(hsl) INTO curr_period
FROM <табл.отд.позоций>
WHERE rldnr = <Регистр> AND
rrcty = '0' AND
rvers = '001' AND
ryear = gjahr AND
poper = curr_month AND
budat <= date_saldo AND
rbukrs = bukrs AND
racct IN hkont AND
rzzkunnr IN kunnr.

saldo = in_saldo + curr_period.

Примерно вот так.
Объявления переменных пропустил.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сальдо дебитора/кредитора на заданную дату по заданному счету?
СообщениеДобавлено: Пт, июн 26 2009, 16:23 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, окт 28 2008, 10:39
Сообщения: 86
Я для вычисления оборотов использовал данный пример ( только задавал диапазон дат),
вибрасывал технические проводки ибо они увеличивали обороты,
но есть одна проблема с перенесенным остатком (не попадает в обороты если начальная дата меньше даты остатков)
ето проводко со счетом INITIAL і связать его с позициями в таблицах BKPF ,BSID, BSAD не представляется возможним
Как выйти с этой ситуации????


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сальдо дебитора/кредитора на заданную дату по заданному счету?
СообщениеДобавлено: Пн, июн 29 2009, 09:08 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
А какой смысл остатки отображать в оборотах? :shock:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сальдо дебитора/кредитора на заданную дату по заданному счету?
СообщениеДобавлено: Ср, авг 19 2009, 14:51 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, окт 28 2008, 10:39
Сообщения: 86
Цитата:
А какой смысл остатки отображать в оборотах?


Оборотно сальдовая ведомость.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB