Текущее время: Сб, июл 19 2025, 00:16

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


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

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


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

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