Каталог решений - Оптимизация проведения документов списания партий в УПП 1.3

Оптимизация проведения документов списания партий в УПП 1.3

Оптимизация проведения документов списания партий в УПП 1.3

В наличии

Почти в каждой конфигурации УПП 1.3 (возможно, и в УТ 10.3) есть медленный запрос, тормозящий проведение документа списания. Данная публикация раскрывает места вызова данного запроса и приводит пример оптимизации.
Пример показывает результаты проведения документа «Реализация товаров и услуг», но метод работает и для других документов списания партий.

Категория:

Описание

Примерно, в 2019 году я отлаживал некоторую разработку в УТ 10.3.15.9, в ходе которой проводил документ «Реализация товаров и услуг» (РТУ). После многочисленных проведений и я обнаружил, что иногда при проведении происходит длительное зависание (минута-две), когда обычно РТУ проводится в течение 10 секунд. В конфигураторе замер производительности показал топовую строку кода:

 

  УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Ссылка, Движения.СписанныеТовары.Выгрузить(),,,,,,,,,,Отказ);

Другие детали конфигуратор скрыл, на тот момент у меня отсутствовал доступ к технологическому журналу (ТЖ), к СУБД тоже отсутствовал (хотя было известно, что это MS SQL Server 2008 R2), и задача была другая, поэтому дальнейшее расследование остановлено.

Прошло время (2018, 2019, 2020), и вот в 2021 году поступила задача: в системе УПП 1.3.162 медленно проводится реализация.

Для начала проверен программный код, и обнаружена следующая конструкция:

 

 

 

 

Что мы наблюдаем: в модуле РТУ создается COM-соединение с базой MySQL (которая может оказаться достаточно далеко, и связь с которой может оказаться достаточно медленной и с прерываниями), выполняется команда в базе MySQL(которая тоже может быть длительной), и все это выполняется два раза: в процедурах ПередЗаписью, ОбработкаПроведения.

Очевидно, что данный функционал следует перестроить архитектурно, что в первую очередь и сделано:

1) создан регистр сведений «Документы интеграции», в который записывается информация при проведении РТУ;

2) создано регламентное задание, которое соединяется с базой MySQL и выполняет необходимые команды.

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

На этот раз доступ к ТЖ был, собраны события: CALL, SCALL, DBMSSQL, EXCP.

ТЖ показал:

 

has been added to your cart:
Оформление заказа