Обсуждение БП импорта платежей

 

Вопрос

Просьба более подробно (чем в справке) рассказать по бизнес-процессу импорта платежей из файлов. Интересуют следующие вещи:

1.Есть ли какой то стандартный формат файла импорта, чтобы мы сделали файл из 1С в таком же формате?

2.По какому (каким) ключевому полю (полям) происходит поиск балансового счёта, на который нужно произвести оплату?

3.Должно (по идее) быть некое задание по обработке импортированных платежей. Судя по всему, мы должны его видеть в приложении plBilling.

Ответ

Для начала ознакомьтесь с разделами: Импорт платежей и Алгоритм разноски, они содержат в основном техническую информацию, но, возможно, на какие-то вопросы вы найдёте там ответы.

Механизм импорта платежей разделяется на два этапа. Первый - загрузка данных в промежуточную таблицу, второй - обработка данных из промежуточной таблицы.

Первый этап может осуществляться либо на стороне сервера, либо на стороне клиента.

а) на стороне сервера - в этом случае пишется скрипт, который "мониторит" определённый каталог на сервере, и, при появлении в нём файлов, разбирает файл и загружает его в БД. Важно: перед написанием скрипта необходимо заранее определить формат файла.

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

Второй этап - обработка загруженных данных, т.е. создание платежей в БД и связывание их с клиентами (с балансовыми счетами клиентов и/или со счетами клиентов). Обработка может быть запущена скриптом загрузки данных в БД (случай "а" первого этапа), либо по желанию пользователя (случай "б") сразу после загрузки файла, либо принудительно (вручную) для любого из загруженых файлов через интерфейс Управление импортированными платежами.

Иными словами, второй этап - это запуск процедуры разноски загруженных данных. У нас есть дефолтовая процедура (про неё сказано в справке и указанных txt-файлах), но она не для всех подходит. Поэтому мы (Инотех) пишем процедуру, которая разносит платежи по тем данным, которые можете предоставить Вы (наш клиент).

 

Делая выводы из описанного, отвечаю на вопросы.

1.Обычно, у каждого из наших клиентов используется свой формат. Причина проста - 1С у каждого настроена по своему (и, кстати, не все используют именно 1С). Поэтому у нас есть универсальный механизм загрузки файлов с платежами и последующая их разноска. Формат файла может быть произвольным.

2.Балансовый счёт клиента в БД биллинга однозначно идентифицируется ключевым полем accounts.account_id. Если вы печатаете извещения (или счета) для своих клиентов из нашей системы, то можно настроить шаблоны так, чтобы значение этого поля печаталось в штрих-код (а дальше есть возможность обработки штрих-кодов из приложения plPos).
Однако это необязательно. Можно написать индивидуальную процедуру разноски: балансовый счёт искать и по другим критериям (главное, чтобы их было достаточно), например по имени клиента (или имени договора) и по типу услуги. Обычно процедура разноски пишется таким образом: если по данным из строки файла находятся более одного балансового счёта, то такая строка помечается, и пользователю предлагается обработать платёж вручную (Управление импортированными платежами).

3.Обработка загруженных файлов может вызываться автоматически (задание в plBilling), но такое задание по умолчанию недоступно. Если вам такое задание действительно понадобится (например, если вы будете данные в промежуточную таблицу загружать своим способом) - откроем.