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

16.06.23

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

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

Файлы

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

Наименование Скачано Купить файл
Оптимизация загрузки банковской выписки с использованием механизма подсистемы БСП Длительные операции ВыполнитьФункциюВНесколькоПотоков:
.cfe 13,37Kb
30 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Обратились с вопросом о необходимости ускорить загрузку банковских выписок, т.к. на тот момент обработка одного файла (>=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С:Предприятие 8 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

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

19520 руб.

21.03.2023    21236    150    27    

117

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

Корректируйте банковские документы быстро и легко! Создайте правило обработки, и оно автоматически применится при загрузке выписки, экономя ваше время (Можно настроить отбор по любому реквизиту или по регулярному выражению). Решение позволяет автоматически заполнять расшифровку платежа, исключать загрузку ненужных документов (дублей) из банка, заполнять комиссию за эквайринг и многое другое. Вам не нужно доплачивать за алгоритмы, они уже включены в решение. Автоматическая обработка применяется при загрузке данных как из файлов клиент банка, так и через DirectBank. Доступен AI чат бот который умеет консультировать по функционалу решения.

15250 руб.

20.12.2024    14035    61    27    

57

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

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

12200 руб.

10.10.2017    41890    95    49    

80

Банковские операции Обмен с ГосИС Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

Обработка для выгрузки платежных поручений из конфигураций 1С:БП 3.0 и ERP/КА в банк Департамента финансов г. Москвы. Поддерживается выгрузка в текстовом и XML-форматах.

19520 руб.

15.06.2020    25967    85    42    

60

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

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

20740 руб.

03.04.2013    131660    266    378    

170

Банковские операции Взаиморасчеты Оборотно-сальдовая ведомость, Анализ счета Анализ продаж Бухгалтер Пользователь 1С 8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

«Умные отчеты в один клик» – инструмент, от которого невозможно отказаться! Получайте отчеты «ОСВ по счету» и «Анализ субконто» мгновенно, прямо из документа – все параметры подставляются автоматически. Незаменимо в ежедневной работе бухгалтера: благодаря простоте получения отчетов вы будете чаще проверять учет "оборотками", снижая риск ошибок. Экономьте время каждый день – используйте «Умные отчеты»!

8930 руб.

25.06.2025    2044    6    0    

8

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

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

9760 руб.

17.06.2025    2747    8    0    

8
Для отправки сообщения требуется регистрация/авторизация