diff --git a/src/components/common/VnSelect.vue b/src/components/common/VnSelect.vue
index b78c99b8ae8..243f3ece109 100644
--- a/src/components/common/VnSelect.vue
+++ b/src/components/common/VnSelect.vue
@@ -294,7 +294,7 @@ async function onScroll({ to, direction, from, index }) {
     }
 }
 
-defineExpose({ opts: myOptions });
+defineExpose({ opts: myOptions, vnSelectRef });
 
 function handleKeyDown(event) {
     if (event.key === 'Tab' && !event.shiftKey) {
@@ -346,7 +346,6 @@ function getCaption(opt) {
         :emit-value="nullishToTrue($attrs['emit-value'])"
         :map-options="nullishToTrue($attrs['map-options'])"
         :use-input="nullishToTrue($attrs['use-input'])"
-        :hide-selected="nullishToTrue($attrs['hide-selected'])"
         :fill-input="nullishToTrue($attrs['fill-input'])"
         ref="vnSelectRef"
         lazy-rules
diff --git a/src/components/common/VnSelectDialog.vue b/src/components/common/VnSelectDialog.vue
index 12322c3fa4f..a4cd0011d29 100644
--- a/src/components/common/VnSelectDialog.vue
+++ b/src/components/common/VnSelectDialog.vue
@@ -1,5 +1,5 @@
 <script setup>
-import { computed } from 'vue';
+import { ref, computed } from 'vue';
 import { useRole } from 'src/composables/useRole';
 import { useAcl } from 'src/composables/useAcl';
 
@@ -7,6 +7,7 @@ import VnSelect from 'src/components/common/VnSelect.vue';
 const emit = defineEmits(['update:modelValue']);
 
 const value = defineModel({ type: [String, Number, Object] });
+const select = ref(null);
 const $props = defineProps({
     rolesAllowedToCreate: {
         type: Array,
@@ -33,10 +34,13 @@ const isAllowedToCreate = computed(() => {
     if ($props.acls.length) return acl.hasAny($props.acls);
     return role.hasAny($props.rolesAllowedToCreate);
 });
+
+defineExpose({ vnSelectDialogRef: select });
 </script>
 
 <template>
     <VnSelect
+        ref="select"
         v-model="value"
         v-bind="$attrs"
         @update:model-value="(...args) => emit('update:modelValue', ...args)"
diff --git a/src/pages/InvoiceIn/Card/InvoiceInVat.vue b/src/pages/InvoiceIn/Card/InvoiceInVat.vue
index f7ef7d525be..b702851b310 100644
--- a/src/pages/InvoiceIn/Card/InvoiceInVat.vue
+++ b/src/pages/InvoiceIn/Card/InvoiceInVat.vue
@@ -33,15 +33,19 @@ defineProps({
     },
 });
 
+function test(row) {
+    console.log('test', row);
+    return `${row.id}: ${row.name}`;
+}
+
 const columns = computed(() => [
     {
         name: 'expense',
         label: t('Expense'),
-        field: (row) => row.expenseFk,
         options: expenses.value,
         model: 'expenseFk',
         optionValue: 'id',
-        optionLabel: (row) => `${row.id}: ${row.name}`,
+        optionLabel: (row) => test(row),
         sortable: true,
         align: 'left',
     },
@@ -119,6 +123,8 @@ function taxRate(invoiceInTax) {
     return ((taxTypeSage / 100) * taxableBase).toFixed(2);
 }
 
+const expensesRef = ref();
+const exponseShow = ref(false);
 function autocompleteExpense(evt, row, col) {
     const val = evt.target.value;
     if (!val) return;
@@ -127,9 +133,17 @@ function autocompleteExpense(evt, row, col) {
     const lookup = expenses.value.find(
         ({ id }) => id == useAccountShortToStandard(param)
     );
-
-    if (lookup) row[col.model] = lookup;
+    if (lookup) {
+        row[col.model] = lookup?.id;
+        expensesRef.value.showItem = true;
+    }
 }
+
+const formatOpt = (row, { model, options }, prop) => {
+    const obj = row[model];
+    const option = options.find(({ id }) => id == obj);
+    return option ? `${obj}:${option[prop]}` : '';
+};
 </script>
 <template>
     <FetchData
@@ -167,15 +181,19 @@ function autocompleteExpense(evt, row, col) {
                 <template #body-cell-expense="{ row, col }">
                     <QTd>
                         <VnSelectDialog
+                            ref="expensesRef"
                             v-model="row[col.model]"
                             :options="col.options"
                             :option-value="col.optionValue"
-                            :option-label="col.optionLabel"
                             :filter-options="['id', 'name']"
                             :tooltip="t('Create a new expense')"
                             @keydown.tab="autocompleteExpense($event, row, col)"
+                            @input-value="(data) => (row[col.model] = undefined)"
                         >
-                            <template #option="scope">
+                            <template #selected-item="scope">
+                                A{{ scope.opt.id }}B</template
+                            >
+                            <!-- <template #option="scope">
                                 <QItem v-bind="scope.itemProps">
                                     {{ `${scope.opt.id}: ${scope.opt.name}` }}
                                 </QItem>
@@ -184,7 +202,7 @@ function autocompleteExpense(evt, row, col) {
                                 <CreateNewExpenseForm
                                     @on-data-saved="$refs.expensesRef.fetch()"
                                 />
-                            </template>
+                            </template> -->
                         </VnSelectDialog>
                     </QTd>
                 </template>