Представляю вашему вниманию простенькое расширение конфигурации, предназначенное для загрузки приходящих по почте отчетов банка по операциям эквайринга (на примере файла от альфа банка).
Расширение представляет из себя по сути только справочник настроек загрузки и общий модуль, где собственно алгоритм обработки файла.
Настройки представляют из себя следующее:
здесь заполняется организация, расчетный счет, эквайер, и статья расходов - все остальные параметры - относятся к обработке почты, на которую приходят файлы отчетов.
После настройки учетной записи электронной почты, нужно настроить какие письма и какие файлы их этих писем выбирать.
Первый фильтр - строка вхождения в тему письма. Тут нюанс - наткнулся на то, что если сюда вписать строку содержащую кириллицу, то по крайнем мере по IMAP протоколу фильтр ведет себя некорректно. В моем случае я смог обойтись строкой без кириллицы.
Второй фильтр - шаблон имени файла. Объявляется благодарность автору сего волшебства:
вкратце, для того, чтобы отловить файлы 893288.003.csv, 893288.002.csv, 893288.003.csv и т.д. и нужно написать вот такую строку, используя регулярные выражения .*893288\..*\.csv.
Если НЕ поставить галочку "В том числе не прочитанные письма", то прочитаны будут только НЕ прочитанные письма. Если поставить, то будут считаны все письма (в форме списка настроек загрузки можно ограничить интервал дат считывания писем, по умолчанию устанавливается текущая неделя).
Об алгоритме обработки файла отчета.
Уникальным идентификатором платежа является сочетание даты операции и кода авторизации (повторно строки платежей не загружаются, если обнаружатся в базе).
Если обнаружится новый терминал, то обработка автоматически добавит новый элемент справочника, реквизиты элемента берутся из настроек загрузки. Кот терминала прописывается в наименование элемента справочника "Эквайринговые терминалы". Именно по вхождения в наименование элемента справочника ищется терминал по его номеру (в логике файла от альфа банка).