Универсальная выгрузка данных документа в текстовый файл






Область применения: обмен данными с клиентом банка.

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

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

Итак, нам понадобится добавить в конфигурацию 3 объекта:

 Перечисление.ТипДанныхВыгрузки
Значения:

— Текст
— РеквизитДокумента
— ПереносСтроки
— ВыгрузкаТаблицы
— РеквизитТабличнойЧасти
— Запрос
— ТекстИсполняемогоКода

 Справочник.НастройкаВыгрузки
Реквизиты:

-НаименованиеДокумента (строка, 50)
-НаименованиеТабличнойЧасти (строка, 50)
-ИмяТекстовогоФайла (строка, 50)
-ПутьВыгрузки (строка, 100)
-Табличные части: ШаблонВыгрузкиШапки и ШаблонВыгрузкиТабличнойЧасти

Структура данных табличной части идентичная:

— ТипДанных (Перечисление.ТипДанныхВыгрузки)
— Значение (Строка неограниченной длины)
— ФорматнаяСтрока (Строка, 20)

 Обработка. ВыгрузкаДокументов. Собственно, данная обработка формирует по заданному пользователем шаблону многострочный текстовый документ и записывает на диск. Строки для добавления в документ формируются в зависимости от значения перечисления ТипДанныхВыгрузки :

Значение РеквизитДокумента добавляет к строке значение реквизита документа, по его имени, заданному в конфигураторе. Значение элемента справочника получается по основному представлению . Для примитивных типов данных можно указывать значение форматной строки.

 Если нет возможности получить из документа нужного значения, применяется запрос. Требование к запросу – получение единственного значения

 ТекстИсполняемогоКода содержит текст, который система может преобразовать в выполняемый код (может содержать, например, ссылку на процедуру общего модуля)

 ПереносСтроки добавляет символ переноса строки.

 ВыгрузкаТаблицы перебирает в цикле все строки табличной части, наименование которой задано реквизитом НаименованиеТабличнойЧасти и формирует на ее основании строки для добавления в текстовый документ

Для примера, рассмотрим некоторые элементы настройки, используемой  для выгрузки списков на зачисления средств на карт-счета для одного из наиболее распространенного клиента банка «Электронные платежи» разработка компании «Системные технологии» (его используют, например, «Приорбанк», «Белинвестбанк», банк «БелВЭБ» , банк «Москва-Минск» ).

Необходимо добавить в текстовый документ следующую строку: «***** #k8SjZc9DxkType=61#k8SjZc9Dxk #k8SjZc9DxkAcc=0000000000000#k8SjZc9Dxk — Список для зачисления денежных средств на счета физических лиц». Для этого в настройку выгрузки необходимо добавить 2 строки:

Для добавления текста «#k8SjZc9DxkDate=10.12.2012#k8SjZc9Dxk» необходимо добавить в настройку 4 строки, при этом представить дату документа в нужном формате: 

Для преобразования суммы документа в число прописью в строке «#k8SjZc9DxkAccountBYRByWords=Два миллиона шестьсот три тысячи белорусских рублей#k8SjZc9Dxk»  пришлось добавить в общий модуль соответствующую процедуру, и вызвать ее с помощью метода Выполнить()

Список сотрудников с указанием лицевого счета  и сумы к зачислению должны выглядеть в виде строки: «#k8SjZc9Dxk_Table=Npp=1~Name1=Иванов Иван Петрович~Nch1=1111111111~Sum1=500000~Npp=2~Name1=Смирнова Наталья Васильевна~Nch1=2222222222~Sum1=300000~#k8SjZc9Dxk» , для этого в табличную часть Настройка выгрузки добавлены  следующие строки:

Когда обработка встречает тип данных ВыгрузкаТаблицы , делается выборка строк соответствующей табличной части, на каждом витке цикла обрабатываются данные строки по правилам, аналогичным описанным выше:

Если необходимо получить некоторое значение, которое в явном виде нельзя получить из данных документа используется запрос. Например, нужно получить строку «#k8SjZc9DxkUNN=200452784#k8SjZc9Dxk», где 200425784 это учетный номер плательщика, для этого используется запрос, и настройка выглядит следующим образом:

В выгрузке каркасной конфигурации реализована настройка выгрузки списка для зачисления средств на карт-счета физических лиц.

 

 

1 Comment

  1. Xershi

    Для Бухгалтерия для Беларуси, редакция 2.1 есть готовое решение, которое не требует настроек Обмен с клиентом банка для Беларуси (расширение)

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *