Очень часто просят или спрашивают где задаются настройки загрузки банковских выписок в БП 3. И люди не охотно верят, когда говоришь что таких гибких настроек какие они хотят нет, что виды операций которые у них программа как-то определяет заложены внутри самой программы, а не где-то в пользовательских настройках. Поэтому привожу координаты и принцип по которому происходит загрузка выписок.
В общем модуле ЗагрузкаВыпискиПоБанковскомуСчету есть функция ХозяйственнаяОперация() в которой перебираются правила из таблицы ПравилаОпределенияХозяйственныхОпераций.
Для Каждого Правило Из ПравилаОпределенияХозяйственныхОпераций Цикл // Обязательные проверки, внешние по отношению к правилу (общие для всех правил) Если Правило.ПоступилоСписано <> Параметры.Операция.ПоступилоСписано Тогда Продолжить; КонецЕсли; РезультатОпределенияХозяйственнойОперации = ВыполнитьПравилоОпределенияХозяйственнойОперации(Параметры, Правило, Истина); Если РезультатОпределенияХозяйственнойОперации.Определена Тогда Возврат РезультатОпределенияХозяйственнойОперации.ХозяйственнаяОперация; Иначе ДежурноеПравило = Правило; КонецЕсли; КонецЦикла;
Таблица ПравилаОпределенияХозяйственныхОпераций состоит из предопределенных элементов между которыми в модулях ранее создано соответствие. Например по зарплате строка выглядит так:
Имя - "ЗаработнаяПлата" (строка)
ПоступилоСписано - "Списано" (строка)
ОсновнойВидОперации - Перечисление заработной платы работнику (перечисление)
ОсновнаяСтатьяДДС - Оплата труда (справочник)
В конечном счете из функции ВыполнитьПравилоОпределенияХозяйственнойОперации делается вызов функции, допустим по списанию ХозяйственнаяОперацияСписано(). В том же общем модуле. А уже из этой функции идет вызов функций соответствующих именам правил. В частности для той же зарплаты вызывается ХозяйственнаяОперацияЗаработнаяПлата().
Вызываемые функции как правило обращаются к общему модулю БанковскиеПравила, где в частности проверяется на какой счет происходит оплата или с какого счета идет поступление, точнее по 5 первым цифрам счета.
Например для определения операции Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПоступленияОтПродажПоПлатежнымКартамИБанковскимКредитам из общего модуля ЗагрузкаВыпискиПоБанковскомуСчету вызывается функция ХозяйственнаяОперацияВыручкаРозничнойТорговлиЧерезПосредника() из которой идет обращение к функции из общего модуля БанковскиеПравила:
Функция ЭтоСчетНезавершенныхРасчетов(БалансовыйСчет) Экспорт Возврат БалансовыйСчет = "30221" Или БалансовыйСчет = "30222" // незавершенные переводы и расчеты кредитной организации Или БалансовыйСчет = "30232" Или БалансовыйСчет = "30233" // незавершенные расчеты с операторами услуг платежной инфраструктуры и операторами по переводу денежных средств Или БалансовыйСчет = "30236" // Незавершенные переводы, поступившие от платежных систем и на корреспондентские счета Или БалансовыйСчет = "47422" // Обязательства по прочим операциям Или БалансовыйСчет = "47423" // Требования по прочим операциям Или БалансовыйСчет = "40907"; // Расчеты клиентов по зачетам КонецФункции
Какой вывод из всего этого я сделал - то, что настроки загрузки банковских выписок по сути дела заложены в модуль конфигурации и повлиять не этот процесс не представляется возможным. Те же статьи движения денежных средств, которые поставлены в соответствие видам операций в таблице ПравилаОпределенияХозяйственныхОпераций прописываются в модуле за счет предопределенных элементов.
Отправить комментарий