23.08.2007, 10:33 | #1 |
Участник
|
Подскажите где узнать побольше об этом поле (таблицы 17,21 и т.п.) ? В справке всего три предложения.
Я столкнулся с тем что каждый день нумерация начинается с меньшей (ненулевой) цифры. Хотя я полагал, что номер должен быть уникальный. А так получается что разные операции имеют одинаковый номер транзакции. |
|
23.08.2007, 10:46 | #2 |
Участник
|
Цитата:
Сообщение от alpt
Подскажите где узнать побольше об этом поле (таблицы 17,21 и т.п.) ? В справке всего три предложения.
Я столкнулся с тем что каждый день нумерация начинается с меньшей (ненулевой) цифры. Хотя я полагал, что номер должен быть уникальный. А так получается что разные операции имеют одинаковый номер транзакции. InitCodeunit GLEntry.LOCKTABLE; IF GLEntry.FIND('+') THEN BEGIN NextEntryNo := GLEntry."Entry No." + 1; NextTransactionNo := GLEntry."Transaction No." + 1; END ELSE BEGIN NextEntryNo := 1; NextTransactionNo := 1; END; По умолчанию, берется последняя запись, и к ней прибавляется 1, этим достигается что новые транзакции будут иметь новый, больший номер (в рамках одной транзакции может быть несколько строк в таблице). Возможно, кто-то у вас дописывал этот кодюнит, установил фильтр, или ключ на GLEntry(Их быть не должно!) либо изменения в расчет NextTransactionNo, врезультате и произошел сбой. Да, переменная глобальная, поэтому фильтр могли установить где-нибудь в другом месте, но до вызова функции InitCodeunit. |
|
23.08.2007, 10:46 | #3 |
Участник
|
Этот номер как раз объединяет совокупность операций записываемых за одну учетную единицу времени... так сказать...
__________________
Want to believe... |
|
23.08.2007, 11:19 | #4 |
Участник
|
|
|
23.08.2007, 13:59 | #5 |
Moderator
|
Цитата:
Берем последнее значение поля и увеличиваем на 1 при генерации новой записи... А зачем Вам это (если не секрет), оно же автоматически заполняется всегда, да и при исправлении данных его обычно не трогают.... |
|