Оптимизация загрузки банковских выписок используя многопоточное определение хозяйственной операции документа

16.06.23

База данных - HighLoad оптимизация

Оптимизация механизма загрузки банковской выписки с использованием механизма подсистемы БСП Длительные операции.ВыполнитьФункциюВНесколькоПотоков.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Оптимизация загрузки банковской выписки с использованием механизма подсистемы БСП Длительные операции ВыполнитьФункциюВНесколькоПотоков:
.cfe 13,37Kb
16
16 Скачать (1 SM) Купить за 1 850 руб.

Обратились с вопросом о необходимости ускорить загрузку банковских выписок, т.к. на тот момент обработка одного файла (>=2000 операций) в среднем занимала два с половиной часа.

Конфигурация Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.133.27), обработка КлиентБанк полностью типовая.

Анализируя типовой код, дошел до функции ЗагрузкаВыпискиПоБанковскомуСчету.РаспознатьВыписки и обратил внимание, что в цикле для каждой операции выполняется вызов ЗагрузкаВыпискиПоБанковскомуСчету.ХозяйственнаяОперация. 

 

 

На тестовой среде, время вызова для каждого документа было в районе 3 секунд, т.е. 100 минут для выписки с 2000 операций. Всё, что касается типового кода ДО функции РаспознатьВыписки и ПОСЛЕ неё, отрабатывало быстро и вопросов не возникало. 

На первый взгляд типовой механизм определения хозяйственной операции показался сложным и желания с ним разобраться не возникло.

Появилась идея оптимизировать определение хозяйственной операции, разбив на несколько потоков. 

Для этого я использовал механизм БСП, ДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков.

Для начала использования необходимо:

  1. Подключить расширение
  2. Установить значение константы Использовать параллельную обработку выписок в значение Истина
  3. Установить значение константы Размер порции параллельной обработки выписок предполагаемый размер порции для одного потока (например 400 и тогда файл с 2 000 операций будет обрабатываться в 5 потоков). 
  4. Установить значение константы Количество потоков длительных операций (если ранее не использовалась) в зависимости от возможностей вашего сервера. 

Некоторые особенности:

  1. Отключить данный механизм очень просто, достаточно установить значение константы Использовать параллельную обработку выписок в значение Ложь.
  2. Если количество операций в выписке <= значению константы Размер порции параллельной обработки выписок, будет работать типовой механизм.
  3. Количество потоков определяется в зависимости от количества операций в выписке и константы Размер порции параллельной обработки выписок. При этом нужно понимать, что количество одновременно работающих потоков не может быть больше значения константы Количество потоков длительных операций. Оставшиеся потоки будут добрасываться по мере завершения предыдущих.
  4. Решение не является чем-то на 100% правильным и универсальным, однако в моём случае результат получился положительным.

В результате применения расширения, время загрузки банковской выписки сократилось со 150 минут до 40-45 минут.

Надеюсь, это решение окажется для кого-то полезным.

Буду рад конструктивной критике и предложениям.

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.149.18

Загрузка банковских выписок Бухгалтерия3.0 МногопоточнаяОбработка ДлительныеОперации ВыполнитьФункциюВНесколькоПотоков ВыполнитьПроцедуруВНесколькоПотоков БСП ЗагрузкаВыпискиПоБанковскомуСчету КлиентБанк Оптимизация Обмен с банком DirectBank Банковские выписки

См. также

Банковские операции Обмен с интернет-банком Эквайринг/ридер магнитных карт Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

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

15000 руб.

21.03.2023    11462    75    16    

64

Обмен с интернет-банком Банковские операции Программист Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Модуль представляет собой комплексную автоматизацию обмена данными 1С с банком для БП 3.0, ERP 2.4, ERP 2.5. Выписка клиент-банка загружается и обрабатывается по Вашим правилам. Заполнение реквизитов документов, анализ назначения платежа. Работа с клиент банком не отличается от типового варианта, а документы автоматически заполняются так, как нужно вам. Дополнительная обработка, работающая совместно с основным расширением позволяет подключать собственные произвольные алгоритмы.

20400 руб.

03.04.2013    125125    253    377    

164

Банковские операции Обмен с интернет-банком Бухгалтер Платформа 1С v8.3 Бухгалтерский учет Конфигурации 1cv8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Беларусь Россия Бухгалтерский учет Платные (руб)

Типовая обработка "Клиент-банк" из конфигурации 1С "Бухгалтерия для Беларуси, редакция 2.1" корректно работает с выписками только банка "Дабрабыт", до 28.01.2019 "Москва-Минск". А бухгалтеру нужно работать и с другими банками и с другими конфигурациями. Для этого было разработано расширение, которое позволит решить данную проблему!

10.10.2017    38053    82    Xershi    41    

69

Банковские операции Обмен с интернет-банком Загрузка и выгрузка в Excel Программист Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

Обработка создания файла по стандарту обмена с системами "Клиент банка" kl_to_1c.txt Формат файла обмена Российская Федерация, версия 1.03 При восстановлении учета в случае отсутствия в 1с банковских выписок (например, р/с в банке закрыт в связи с банкротством и доступ к выгрузке из клиент-банка невозможен), можно запросить у банка выписку за период в формате Excel. С помощью этой обработки создается файл формата 1CClientBankExchange, в 1с77 он назывался kl_to_1c.txt который загружается штатными средствами в 1с8. При этом будут созданы загружаемые контрагенты и их р/с.

3840 руб.

19.04.2019    44243    150    53    

84

Внешние источники данных Банковские операции Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия государственного учреждения Россия Бухгалтерский учет Платные (руб)

Обработки для загрузки данных из УРМ "Криста" в бухгалтерию государственного учреждения редакция 2.0. Есть Демо доступ на вкладке Бесплатные файлы на 1 месяц со дня получения демонстрационного ключа регистрации. Поддерживает ПО "Web-исполнение" от НПО "Криста".

4800 руб.

19.06.2013    39621    139    104    

34

Пакетная печать Банковские операции Кассовые операции Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Обработка для групповой печати чеков ККМ с настройкой, загруженных из банковской выписки. На основании документа Поступление на расчетный счет!

4800 руб.

21.08.2019    20317    75    11    

25
Оставьте свое сообщение