Текущее время: Пт, июл 18 2025, 15:41

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Как исключить документы сторно из выборки?
СообщениеДобавлено: Чт, янв 04 2007, 07:14 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 26 2006, 06:57
Сообщения: 47
Всем добрый день!

Вопрос такой: как исключить сторнируемые и сторнирующие бухгалтерские документы из выборки?

Поискал по форуму, а толкового ответа так и не нашел :oops:.

Нашел вот такие условия:
Цитата:
Условия, по которым сторно исключается (чтобы обороты за период, указанные в select-options so_budat были актуальными):
1) Если сторнируемый и сторнирующий в одном периоде или сторнируемый до указанного периода, а сторнирующий в периоде, то исключаем оба;
2) Если сторнируемый в периоде, а сторнирующий проведен после указанного периода, то первый оставляем (для оборотов).


А как теперь это реализовать :?:
Точнее, чем отличаются сторнируемый и сторнирующий документы?
Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 04 2007, 08:43 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Если это автоматическое сторно, а не обратный документ с установленным вручную Красное сторно, то у обоих документов проставляется номер корреспондирующего документа в поле STBLG, а год в SJAHR(по-моему так, системы под рукой нет). Думаю оптимальным решением будет отбирать документы за период в две внутр. таблицы:
1. Все документы(IT_ALL).
2. Документы с заполненным полем STBLG(IT_ST).
Во вторую таблицу для экономии памяти можно отбирать только два поля.
Далее примерно так:
LOOP AT IT_ALL.

READ TABLE IT_ST WITH KEY STBLG = IT_ALL-BELNR
SJAHR = IT_ALL-GJAHR.

IF SY-SUBRC = 0.
* есть сторно документ в периоде
DELETE IT_ALL.

ENDIF.

ENDLOOP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 04 2007, 10:27 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 26 2006, 06:57
Сообщения: 47
Спасибо за совет!

Сделал вот так (надеюсь, что правильно):
Code:
* select initial records from bkpf
* use BUDAT secondary index
  select
    bukrs belnr gjahr
    blart monat cpudt
    cputm stblg stjah
    stgrd xstov xreversal
  from bkpf
  into table pt_bkpf
  where bukrs in r_bukrs
      and bstat = space
      and budat in so_budat.

* exclude cancelled documents
  loop at pt_bkpf assigning <lfs_bkpf>
  where stblg <> space.
*   try to find it's reverse twin
    read table pt_bkpf assigning <lfs_bkpf2>
    with key bukrs = <lfs_bkpf>-bukrs
             belnr = <lfs_bkpf>-stblg
             gjahr = <lfs_bkpf>-stjah.

    if <lfs_bkpf>-blart = 'ST'.
*     it is a cancelling document
      if sy-subrc <> 0.
*       it's reverse twin is out of scope; delete it
        delete pt_bkpf.
      endif.
    else.
*     it is a document being cancelled
      if sy-subrc = 0.
*       both are in the same period -> exclude both
        delete pt_bkpf index sy-tabix.
        delete pt_bkpf.
      endif.
    endif.
  endloop.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 04 2007, 12:19 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
Как же в очередной раз все запутано с документами сторно :)

Итак,
во-первых, причины сторно хранятся в таблице T041C, при этом существует два основных типа (с точки зрения бухгалтерии): сторно в закрытом периоде и просто "отмена ошибок". При исключении документов сторно необходимо исключать только второй тип, а первый исключать нельзя, более того, крайне желательно, чтобы даты сторнируемого и сторнирующего документов совпадали.

во-вторых, поля номер документа (stblg stjah) и причина сторно (stgrd) могут быть заполнены лишь частично, например, в одном документе может быть задан и номер документа, и причина, а во втором только причина. Поэтому лучше всего _всегда_ исключать документы парами. С другой стороны, бывают ситуации когда в выборку попадают документы лишь "с одной стороны", тогда лучше удалять только в том случае, если точно найдена корректная пара (хотя бы в БД).

в-третьих, при обработке сторно из внешних систем, например, SD, FI-AA, MM, ... данные стандартные поля таблицы bkpf могут вообще быть не заполнены или заполнены как угодно, поэтому корректным способом будет переход (по AWTYP-AWKEY) в исходную систему, там поиск парного документа сторно и его номера бухгалтерского документа и возвращение обратно к обработке bkpf. (Но этим обычно не занимаются, так как в большинстве случаев проверка пар документов оказывается успешной).

в-четвертых, "красное сторно" - это не сторно и не имеет к нему ни малейшего отношения, поэтому забудьте вообще про его существование, пока не попросят уменьшить обороты по периодам как в f(s,d,k)10n.


Поэтому, алгоритм поиска пар документов сторно получается следующим:
в цикле по всем выбранным документам
--- если заполнено хоть одно из st??? полей, то получить парный документ и при корректной причине сторно исключить оба документа.

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 04 2007, 12:38 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, сен 10 2004, 14:16
Сообщения: 342
Откуда: 4.6C->4.7->ERP Belarus
Пол: Мужской
Tetty написал:
во-первых, причины сторно хранятся в таблице T041C, при этом существует два основных типа (с точки зрения бухгалтерии): сторно в закрытом периоде и просто "отмена ошибок". При исключении документов сторно необходимо исключать только второй тип, а первый исключать нельзя, более того, крайне желательно, чтобы даты сторнируемого и сторнирующего документов совпадали.


А вот если даты документов не совпадают, а бывает что и периоды разные, то становится интереснее. В закрытом периоде до даты сторно в оборотах изменений никаких быть не должно(если вдруг посчитают отчет за период, в котором есть сторнируемый документ). И только на дату сторно должна появится сторнирующая позиция в отчете, и после нее оба документа можно "удалять".

_________________
Ze dream vil finali kum tru! (C)EuroEnglish


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 04 2007, 13:19 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
JeKa написал:
А вот если даты документов не совпадают, .... И только на дату сторно должна появится сторнирующая позиция в отчете, и после нее оба документа можно "удалять".


здесь все зависит от создаваемого отчета, но я считаю, что в большинстве случаев их вообще удалять нельзя, так как в месячной отчетности они были учтены, поэтому, чтобы не было расхождений их и стоит показывать. Если все сделано правильно, то итоговые суммы будут корректны, а эта пара документов и покажет ошибку, иначе интересный эффект, когда по одному и тому же счету суммы по периодам могут отличаться в зависимости от выбранных периодов, ведь пользователь может потом выбрать подсуммирование и быть неприятно шокирован расхождением сумм.

JeKa, если не согласны с моей точкой зрения, то приведите, пожалуйста, пример отчета и аргументы за удаление документов сторно с разными датами

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 04 2007, 16:23 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, сен 10 2004, 14:16
Сообщения: 342
Откуда: 4.6C->4.7->ERP Belarus
Пол: Мужской
Tetty написал:
JeKa, если не согласны с моей точкой зрения, то приведите, пожалуйста, пример отчета и аргументы за удаление документов сторно с разными датами


Я отнюдь не выражал несогласие :wink:, а описал один из возможных вариантов требований отражения документов в отчетах бухгалтерии. Причем сколько главных бухгалтеров, столько и может быть этих вариантов. Ужос :shock:

_________________
Ze dream vil finali kum tru! (C)EuroEnglish


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 08 2007, 10:59 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, янв 08 2007, 10:39
Сообщения: 60
Откуда: USSR
Tetty написал:
в-третьих, при обработке сторно из внешних систем, например, SD, FI-AA, MM, ... данные стандартные поля таблицы bkpf могут вообще быть не заполнены или заполнены как угодно, поэтому корректным способом будет переход (по AWTYP-AWKEY) в исходную систему, там поиск парного документа сторно и его номера бухгалтерского документа и возвращение обратно к обработке bkpf. (Но этим обычно не занимаются, так как в большинстве случаев проверка пар документов оказывается успешной).
Поэтому, алгоритм поиска пар документов сторно получается следующим:
в цикле по всем выбранным документам
--- если заполнено хоть одно из st??? полей, то получить парный документ и при корректной причине сторно исключить оба документа.

Приходилось подробно иследовать данную ситуацию в случае MM.
Оказалось что не всегда можно удалить найденную пару документов (кстати их совсем не пара - а гораздо большее количество).
Приходилось проверять обороты по FI документам и удалять только в случае совпадения оборотов (естественно учитывая знак).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 08 2007, 12:12 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
Iskander написал(а):
Приходилось подробно иследовать данную ситуацию в случае MM.
Оказалось что не всегда можно удалить найденную пару документов (кстати их совсем не пара - а гораздо большее количество).
Приходилось проверять обороты по FI документам и удалять только в случае совпадения оборотов (естественно учитывая знак).


Можете привести конкретный пример "плохой" ситуации?

Я могу только предположить вариант с позициями, когда начальный FI документ был сформирован сразу по нескольким внешним движениям (каждое из которых сформировало одну позицию) , а сторнируется лишь одно из них, тогда надо исключить лишь отдельные позиции исхдного документа. Получается неприятно, но при отчете "по позициям" работать можно.

С ситуацией, чтобы из внешней системы сумма поступила в виде одной позиции, часть которой можно корректно сторнировать во внешеней подсистеме, никогда не сталкивался.

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 08 2007, 13:01 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, янв 08 2007, 10:39
Сообщения: 60
Откуда: USSR
Tetty написал:
Можете привести конкретный пример "плохой" ситуации?ктно

В настоящий момент доступа к системе заказчика не имею.

По памяти: Заказчик захотел "развернуть" расшифровку баланса в разрезе финпозиций и подразделений финансового менеджмента. Далее по его требованию пришлось убирать сторно.
Тут и столкнулся, что не удается без сверки оборотов убрать фактуры и MM документы, вернее их FI копии.
Причем такие случаи были не еденичны.
Сразу предупреждая вопросы: и исходный, и документы сторно находились в периоде отчета.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 08 2007, 16:53 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
Iskander написал(а):
Tetty написал:
Можете привести конкретный пример "плохой" ситуации?ктно

В настоящий момент доступа к системе заказчика не имею.

По памяти: Заказчик захотел "развернуть" расшифровку баланса в разрезе финпозиций и подразделений финансового менеджмента. Далее по его требованию пришлось убирать сторно.
Тут и столкнулся, что не удается без сверки оборотов убрать фактуры и MM документы, вернее их FI копии.
Причем такие случаи были не еденичны.
Сразу предупреждая вопросы: и исходный, и документы сторно находились в периоде отчета.

спасибо, интересная ситуация; когда появится под рукой настроенный ММ с FM обязательно посмотрю (хотя с контировками есть подозрение, что они просто могли не заполняться там, где нужно в документах ГК, а собирать данные по документам УБ уже совсем другая задача)...

_________________
Счастье есть!


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

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


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

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


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

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