15.02.2021, 20:57 | #1 |
Участник
|
Поиск NumberSequenceTable по полю Voucher
Доброго времени суток.
В АХ2012 возникла нетривиальная задача. Для финансового отдела край как стало необходимо видеть в отчете, по какой номерной серии был сгенерирован ваучер. Т.е. на таблице VendTrans имеется Voucher с префиксом и суффиксом, например VNC######R1, и нужно найти NumberSequenceTable.Txt. По данному шифру любой сотрудник может без труда определить, что за номерная серия использовалась. В ТЗ как обычно тыкают пальцем и говорят, вот мы же смогли определить, почему ты не можешь? Конечно можно выполнить задачу, распарсив значения ваучера, однако это будет код зависимый от данных, т.е. любой другой сотрудник, который не "в теме", создаст номерную серию по другому и у нас уже отчет не выводит корректные данные. Я уже вижу в своей базе другой пример: VNCF1######. И парсить его придется по другим правилам. Но есть выход, к которому я пришел, через пару промежуточных таблиц я нахожу поле с описанием номерной серии (см. пример ниже). Однако, для части данных LedgerJournalTrans отсутствует. И вот в этом-то и загвоздка. Может ли кто подсказать, как еще можно добраться до номерной серии "правильным" способом? X++: private Name voucherDescription() { NumberSequenceTable numberSequenceTable; LedgerJournalTrans ledgerJournalTrans; LedgerJournalTable ledgerJournalTable; select firstOnly Txt from numberSequenceTable exists join ledgerJournalTable where ledgerJournalTable.NumberSequenceTable == numberSequenceTable.RecId exists join ledgerJournalTrans where ledgerJournalTrans.JournalNum == ledgerJournalTable.JournalNum && ledgerJournalTrans.Voucher == vendTrans.Voucher; return numberSequenceTable.Txt; }
__________________
// no comments |
|