Вид операций в банковской выписке

Попросили меня на днях подсказать, как программа при загрузке банковских выписок определяет вид операции ‘КомиссияБанка’. Я сказал: дайте мне 10 минут и я все выясню! Но только спустя пару часов я смогу разобраться в этом вопросе. Даже поиск в интернете не выдал мне нужного ответа.

Как оказалось – механизм определения видов операций при загрузке банковской выписки это черный ящик, в котором не так-то просто разобраться.

И так, давай рассмотрим где же все таки хранятся эти срытые от всего мира механизмы. Имеем:

  • Конфигурацию: ‘Бухгалтерия предприятия, редакция 3.0 БИТ.ФИНАНС 3.1’;
  • Задачу: как программа определяет по данным из банковских выписок вид операции ‘КомиссияБанка’?

Бесконечная отладка и замеры производительности в конечном итоге вывели меня на функцию ‘ХозяйственнаяОперация‘ в общем модуле ‘ЗагрузкаВыпискиПоБанковскомуСчету‘:

Функция ХозяйственнаяОперация(Параметры, ПравилаОпределенияХозяйственныхОпераций, ВыполнитьПравилоОбязательно = Ложь).
Функция ХозяйственнаяОперация(Параметры, ПравилаОпределенияХозяйственныхОпераций, ВыполнитьПравилоОбязательно = Ложь).

И в этой функции есть вызов не менее интересной функции ‘ВыполнитьПравилоОпределенияХозяйственнойОперации‘, в которой собственно и происходит все самое интересное:

Здесь же стоит обратить внимание на две функции ‘ХозяйственнаяОперацияПоступило‘ и ‘ХозяйственнаяОперацияСписано‘, в которых собственно и происходит определение вида операции по параметрам платежа:

 'ХозяйственнаяОперацияПоступило' и 'ХозяйственнаяОперацияСписано'.
‘ХозяйственнаяОперацияПоступило’ и ‘ХозяйственнаяОперацияСписано’.

Эти функции со вспомогательными методами описаны в соответствующих областях ‘Списано’ и ‘Поступило’:

Область 'Списано' и 'Поступило'.
Область ‘Списано’ и ‘Поступило’.

Вот описание этих функций:

Ну и собственно ответ на сам вопрос про ‘КомиссиюБанка’:

 Вид операции комиссия банка.
Вид операции комиссия банка.
'ЭтоКомиссияБанка' ?
‘ЭтоКомиссияБанка’?.

В этих трех функциях ‘ЭтоСчетДоходовБанка‘, ‘ЭтоСчетРасчетовСБанком‘, ‘ЭтоБанковскийОрдер‘ общего модуля [БанковскиеПравила] и происходит определение данного вида операции по переданным параметрам:

Надеюсь данная информацию кому-нибудь пригодится, так как в интернете я не нашел ни одного полезного совета о том где смотреть или хотя бы где копать. Алгоритм этот я думаю в разных конфигурациях от 1с должен быть одинаков, ну или с небольшими изменениями в зависимости от версии, релиза и т.д.

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

2+

Оставить комментарий

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