GerhardW Wenn ich es richtig verfolgt habe, ist Deine Anfrage noch nicht richtig gelöst worden... (?)
Was Wolfgang meint ist, dass das argument "data" in deinem partial (noch) nicht zur Verfügung steht / bekannt ist.
Grundsätzlich verhält es sich so, dass bis zum Partial immer nur die tatsächlich notwendigen Argumente übergeben werden sollten und nicht immer alles arguments="{_all}". Grund dafür ist, dass dadurch weniger Daten übertragen werden und das in Summe auf einer Website dtl. an Zeit sparen kann.
Also wie kommst Du nun daran...
Dein Partial wo Du die if verwenden möchtest, kennt data noch nciht. Das erkennst Du daran, wenn du vor der if eine Zeile hinzufügst
<f:debug>{_all}</f:debug>
Er zeigt dir alle Daten an, welche das Partial bis hierher kennt. data dürfte hier nun noch fehlen.
Schau bitte, welches vorherige Partial oder Template dein aktuelles Partial mit der if aufruft.
Darin findest Du wieder einen view-helper f:render, welcher dein aktuelles Partial aufruft.
<f:render partial="Der Pfad zu deinem Partial mit der if" arguments="..."/>
Schau hier was bei arguments drin steht.
Auch hier kannst du wieder prüfen, was bisher als argumente bekannt ist. Eine Zeile darüber wieder einfügen:
<f:debug>{_all}</f:debug>
Ist auch hier kein data verfügbar, musst du die Schritte wiederholen, immer ein Partial weiter zurück gehen, also in Richtung Template bzw. Layout.
https://docs.typo3.org/other/typo3/view-helper-reference/12.4/en-us/typo3fluid/fluid/latest/Render.html