Когда я сохраняю RecId в объекте любого типа, номер искажается. В моей реализации я храню RecId в поле значения элемента дерева. Всякий раз, когда я получаю значение данных, число, которое я сохранил, всегда сильно изменяется. Есть предложения?
Вот пример:
void fillTree()
{
ABC_Menus _ABC_Menus;
TreeItemIdx parentItemIdx;
;
while select Prompt, RecId from _ABC_Menus
{
parentItemIdx = SysFormTreeControl::addTreeItem(formTreeControl, _ABC_Menus.Prompt, FormTreeAdd::Root, _ABC_Menus.RecId, 0, true);
}
}
public void endLabelEdit(int _idx, str _text, anytype _data)
{
FormTreeItem formTreeItem = this.getItem(_idx);
;
formTreeItem.text(_text);
this.setItem(formTreeItem);
info(_data); //this number comes out all wrong
super(_idx, _text, _data);
}
Я храню RecId в поле значения дерева. Однако, если я получу его позже, появится совершенно другое число.
- Запись в таблице: 5637144588
- RecId, отображаемый методом endLabelEdit: 202520592908288
Я также пытался использовать num2str (ABC_Table.RecId, 0, 0, 0) при сохранении RecId в поле. При сохранении таким образом число совпадает, но выдается предупреждение «Назначение / Сравнение теряет точность». Это нормально, или есть лучший способ?
Спасибо