Karmen написал(а):
Интересно, какой документ создается первым? Сам счет-фактура или FI-документ. Если сначала счет-фактура, то при выборке из таблицы по номеру которого получили из заглолвка FI-документа должны были выбранные данные, а их нет. Если сначала FI-Документ, то откуда там появляется ссылка на номер счет-фактуры? Цикл какой-то получается...
Фактура (SD) и accounting document (FI) в базу данных записываются в рамках одной транзакции. Иначе бы были такие приколы, что фактура почему-то не создалась, а accounting document - прошел (обратное, правда, разрешено, т.к. FI документ можно создать и позже).
Так вот, когда работает программа, которая создает фактуру, то она из соответствующей таблицы достает номер документа. Этот номер хранится в памяти (VBRK/VBRP или XVBRK/XVBRP). Т.е. в user exit'ах вам не нужно читать его из базы данных - он уже должен быть в какой-нибудь переменной (естественно, если код вызывается уже после того, как номер был получен, до того там будет какой-нибудь магический номер $0000001). Если по какой-то причине запись в базу не состоится, номер будет просто пропущен (хотя с этим вроде тоже можно бороться, не раз уже тут обсуждали).
Как уже правильно посоветовали, надо попробовать использовать поля VBRP-VGBEL, но не из базы данных, а
из памяти. Если по какой-то причине нужные поля не доступны (это часто бывает, к сожалению), то можно попробовать их вытащить с помощью ASSIGN.