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

16.06.23

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Обратились с вопросом о необходимости ускорить загрузку банковских выписок, т.к. на тот момент обработка одного файла (>=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 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    16479    80    29    

74

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

Расширение для конфигурации 1С:Бухгалтерия 3.0. Многоуровневое согласование заявок на оплату с оповещением и делегированием прав.

15250 руб.

09.09.2025    2541    9    0    

7

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

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

12200 руб.

10.10.2017    42831    98    49    

82

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

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

20740 руб.

03.04.2013    133197    267    381    

171

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

Расширение для 1С:БП 3.0 по расчету процентов по статье 395 ГК РФ. Возможности расчета: 1. Расчет процентов без учета и с учетом отсрочек. 2. Расчет процентов с учетом отсрочек платежей. 3. Расчет процентов по контрагенту в целом. 4. Расчет процентов по одному, либо нескольким договорам (в 1С должна быть включена опция "Учет по договорам"

5084 руб.

04.08.2025    2314    3    1    

3

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

Групповая печать фискальных чеков по документам "Поступление на расчетный счет" с возможностью настройки НДС, признаков расчета и автоматической отправкой чеков клиентам.

6499 руб.

21.08.2019    23115    89    11    

26

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

Эффективное решение для загрузки банковской выписки из Клиент-Банка в 1С: Управление Торговлей ред. 10.3 Требования к файлу экспорта из клиент-банка: поддержка формата 1С:Предприятие для обмена с клиент-банками. Быстрая разноска выписки по видам операции, видам документов, статьям движения денежных средств, контрагентам, подразделениям. Легкая настройка правил разноски выписки. Работа с видами документов: Платежное поручение и Платежный ордер. Набор часто встречающихся правил разноски выписки при начале работы с обработкой: автозаполнение. Создание новых контрагентов (ИНН, КПП, полное наименование, банковский счет, договор) Проверка уникальности справочника "Контрагенты" по ИНН, номеру расчетного счета. Ранее созданные платежные поручения учитываются. Проведение документов банковской выписки.

4880 руб.

18.05.2015    75848    45    30    

52

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

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

8930 руб.

25.06.2025    2666    6    0    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Wakeonlan 07.06.26 09:02 Сейчас в теме
Ошибка инициализации модуля: МногопоточнаяОбработкаБанковскихВыписок ОбщийМодуль.ЗагрузкаВыпискиПоБанковскомуСчету.Модуль
по причине:
{МногопоточнаяОбработкаБанковскихВыписок ОбщийМодуль.ЗагрузкаВыпискиПоБанковскомуСчету.Модуль(30,11)}: Недостаточно фактических параметров (БанковскийСчетВыпискиОпределен)
Если Не <<?>>БанковскийСчетВыпискиОпределен(РаспознаннаяВыписка, УчастникиОпераций) Тогда
{МногопоточнаяОбработкаБанковскихВыписок ОбщийМодуль.ЗагрузкаВыпискиПоБанковскомуСчету.Модуль(139,11)}: Недостаточно фактических параметров (БанковскийСчетВыпискиОпределен)
Если Не <<?>>БанковскийСчетВыпискиОпределен(РаспознаннаяВыписка, УчастникиОпераций) Тогда
[ОшибкаКомпиляцииВстроенногоЯзыка]

на 1С-Рарус: Бухгалтерия для некоммерческой организации 5 (5.0.120.1) (https://www.otr-soft.ru/nko/)
Copyright (С) ООО "1C-Софт", 2009 - 2025. Все права защищены
(https://www.otr-soft.ru)

Расширения конфигурации:
- Многопоточная обработка банковских выписок (1.0.0.1)

там вроде обычная бух внтури
Для отправки сообщения требуется регистрация/авторизация