Ошибка при добавлении поля в форму запроса

Работая с запросом транзакций с ваучерами, я добавил настраиваемое поле в таблицу GeneralJournalEntry.

Когда я пытаюсь добавить это поле в свою форму запроса, оно добавляется правильно (отображается как раскрывающийся список), и я могу ввести значение или выбрать его из раскрывающегося списка - проблема заключается в том, что я пытаюсь ввести подстановочный знак символ (*), я получу ошибку трассировки стека:

SysDictType object not initialized.


(S)\Classes\SysTableRelation\getDictFieldID - line 7
(S)\Classes\SysTableRelation\findRelation - line 41
(C)\Classes\SysLookup\lookupTableRelation - line 13
(C)\Classes\SysLookup\lookupRange - line 133
(C)\Forms\SysQueryForm\Data Sources\Range\Fields\RangeValue\Methods\lookup - line 36
(C)\Classes\FormStringControl\PerformDBLookup
(C)\Classes\FormStringControl\lookup
(C)\Forms\SysQueryForm\Designs\DesignList\RangeValue\Methods\lookup - line 27

В этих классах нет никаких изменений, и я не могу найти ничего, что заставило бы меня поверить, что подстановочный знак недействителен в этом поле.


person tsweatt    schedule 22.03.2017    source источник


Ответы (2)


Эта проблема возникает из-за того, что метод \SysTableRelation\getDictFieldID использует EDT поля в строке dictType = new SysDictType (sysDictField.typeId ()) строки;

Я исправил, добавив EDT в поле.

person Otavio Anaga    schedule 05.06.2017
comment
Да, в конечном итоге была проблема с некоторыми работами из другой модификации, и виной тому был отсутствующий EDT. - person tsweatt; 06.06.2017

Я предполагаю, что вы не полностью скомпилировали/синхронизировали все и/или вам нужно перезапустить AOS. Однако вы должны иметь возможность отлаживать это с помощью отладчика.

Если вы посмотрите на код в верхней части трассировки стека, он относится к этому фрагменту кода:

dictType = new SysDictType(sysDictField.typeId());
if(dictType.arraySize() > 1) // <--This is the error...that it's not initialized

Вы можете видеть, где я добавил свой комментарий, что, если он не инициализирован, это означает, что приведенная выше строка не смогла создать тип dict. Однако у sysDictField не было проблем с возвратом typeId().

Поставьте точку останова на \Classes\SysTableRelation\getDictFieldID - line 7 и просто посмотрите, в чем проблема. Я подозреваю, что это просто среда, и некоторые компиляции / перезапуски исправят.

person Alex Kwitny    schedule 22.03.2017