Путем экспериментов разобрался самостоятельно.
1. Есть встроенные функции модели и нодинтерфейса, позволяющие получить значение любого атрибута текущего элемента либо пути:
listeners: {
itemclick: function(view, record, item, index, e, obj) {
console.log(record.get('text'));
console.log(record.getPath('text'));
console.log(getDepth('text'));
}
}
2. Стандартный json файл можно расширять с помощью полей модели:
Ext.define('ECS2.model.model_treestore_invoices', {
extend: 'Ext.data.Model',
fields: [
{name: 'text', type: 'string'}, // указывать обязательно для визуального вывода в дерево
{name: 'invoice_date', type: 'date'},
{name: 'invoice_number', type: 'string'},
{name: 'invoice_item', type: 'string'}
]
});
Затем эти скрытые поля можно использовать в логике приложения:
...
console.log(record.get('invoice_item'));
...