Текущее время: Чт, июл 31 2025, 16:48

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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