Обычно импорт из csv используют в user view таблица.
Рассмотрим пример импорта выписок из тинькофф эквайринга в таблицу транзакции.
Создадим user view "tinkoff_shop_import".
В выписке из tinkoff эквайринга есть следующие поля:
В сущности транзакция обычно у нас уже есть поле "Сумма", создадим остальные поля для таблицы и выведем их в наш user view для импорта.
Теперь подпишем к каждому полю атрибут csv_column_name. Пропишем имя строки в стандартном csv файле, которых выгружается из эквайринга.
Обратите внимание, что при вставке данных в поле с типом reference(...) исходные данные для этого поля в файле должны быть валидным ID, а не строками
Раньше
csv_column_nameназывалсяcsv_import_column. Второй вариант всё ещё работает, но лучше использовать первый, так как он также поддерживает экспорт в csv по такому же названию.
Получим примерно такой код user view:
SELECT
    @title = 'Импорт: Tinkoff эквайринг',
    @create_link = &fin.transaction_form,
    @row_link = &fin.transaction_form,
    
    tks_state @{
        csv_column_name = 'Статус операции',
    },
    tks_date_time @{
        csv_column_name = 'Дата, время',
    },
    tks_order_id @{
        csv_column_name = '№ заказа',
    },
    "amount" @{
        csv_column_name = 'Сумма',
    },
    tks_phone @{
        csv_column_name = 'Телефон',
    },
    tks_shop @{
        csv_column_name = 'Магазин',
    },
[...]
Атрибуты можно прописать напрямую в свойствах поля, а не в user view
Можно добавить BEFORE/AFTER INSERT триггеры, чтобы обработать вставляемые данные (например, установить знак "-" в поле "Сумма" для исходящих транзакций или связать вставленную трнзакцию с заказом клиента по его номеру телефона.)