Ускорение отчета 'Контроль передвижений агентов (онлайн-карты)' от AgentPlus v1.5.2

03.05.18

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

У пользователей системы AgentPlus (Агент Плюс) отчет 'Контроль передвижений агентов (онлайн-карты)' v1.5.2 вызывает восторг и разочарование одновременно. Восторг – потому, что позволяет увидеть маршрут передвижения пользователя системы с привязкой к карте и дорогам, разочарование – от длительности построения отчета. Отчет по 45 точкам маршрута у меня строится больше минуты. Тестировалось на "Управление торговым Предприятием" 1.2.45.2.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Ускорение отчета 'Контроль передвижений агентов (онлайн-карты)' от AgentPlus.:
.epf 187,29Kb
3
3 Скачать (1 SM) Купить за 1 850 руб.

Анализ кода показал, что причиной задержек при построении отчёта является запрос в цикле.

За построение отчета отвечает обработка «кпкКонтрольПередвиженийАгентовОнлайн».

Непосредственно построение отчета начинается с вызова «ДеревоТрековВыбор».

Стек выглядит следующим образом:

ПолучитьДатуДокументаМУ

                ПолучитьДатуДокумента

                СформироватьМаркерыДокумента

…            

                ДеревоТрековВыбор

 

В процедуре «СформироватьМаркерыДокументов» есть цикл по элементам таблицы документов. В цикле вызывается функция ПолучитьОписаниеДокумента, а из нее функция ПолучитьДатуДокументаМУ.

 

Ниже текст функции ПолучитьДатуДокументаМУ

 


Функция ПолучитьДатуДокументаМУ(ТекДок)
                ДатыДокумента = Неопределено;
                
                //получим из регистра дату и время создания документа
                Запрос = Новый Запрос;
                Запрос.Текст = "ВЫБРАТЬ
                               |             кпкСведенияДокумента.ДатаВремяСоздания,
                               |             кпкСведенияДокумента.Период
                               |ИЗ
                               |             РегистрСведений.кпкСведенияДокумента.СрезПоследних КАК кпкСведенияДокумента
                               |ГДЕ
                               |             кпкСведенияДокумента.КПКДокумент = &ТекДокумент";
                Запрос.УстановитьПараметр("ТекДокумент", ТекДок);
                
                Результат = Запрос.Выполнить();
                
                Если Не Результат.Пустой() Тогда
                                Выборка = Результат.Выбрать();
                                Выборка.Следующий();
                                ДатаВМУ = СокрЛП(Выборка.ДатаВремяСоздания);
                                ДатаЗагрузки = СокрЛП(Выборка.Период);
                                ДатыДокумента = Новый Структура("ДатаВМУ, ДатаЗагрузки", ДатаВМУ, ДатаЗагрузки);
                КонецЕсли;
                
                Возврат ДатыДокумента;
КонецФункции

Функция возвращает структуру ДатыДокумента = Новый Структура("ДатаВМУ, ДатаЗагрузки", ДатаВМУ, ДатаЗагрузки).

 

Есть два способа решения проблемы.

Первый. Годится для не слишком щепетильных, т.к. принимаем допущение, что

ДатаВМУ = ТекДок.Дата и

ДатаЗагрузки = ТекДок.Дата

 

Тогда функция ПолучитьДатуДокументаМУ примет вид
 

Функция ПолучитьДатуДокументаМУ(ТекДок)
                ДатыДокумента = Неопределено;
                ДатаВМУ = ТекДок.Дата; 
                ДатаЗагрузки = ТекДок.Дата;

                ДатыДокумента = Новый Структура("ДатаВМУ, ДатаЗагрузки", ДатаВМУ, ДатаЗагрузки);
                
                Возврат ДатыДокумента;
КонецФункции

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

 

Способ Второй.

При втором способе функция ПолучитьДатуДокументаМУ примет вид
 

Функция ПолучитьДатуДокументаМУ2(ТекДок)
                ДатыДокумента = Неопределено;
                
                Выборка = ТабДокументы.Найти(ТекДок,"Документ");
                Если Выборка = Неопределено Тогда
                                Возврат ДатыДокумента;
                КонецЕсли;        
                ДатаВМУ = СокрЛП(Выборка.ДатаСозданияВМУ);
                ДатаЗагрузки = СокрЛП(Выборка.Период);
                ДатыДокумента = Новый Структура("ДатаВМУ, ДатаЗагрузки", ДатаВМУ, ДатаЗагрузки);
                Возврат ДатыДокумента;
КонецФункции

Использовать функцию ПолучитьДатуДокументаМУ без изменения таблицы значений ТабДокументы нельзя.

Обработка со всеми внесенными изменениями в прикрепленном к статье файле. Изменения помечены маркером //Олег.

Агент Плюс Agent Plus Маршрут Карта

См. также

Рабочее место Документооборот и делопроизводство (СЭД) Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Документооборот 1С:Комплексная автоматизация 2.х 1С:КА 1С:ДО Платные (руб)

Продукт "Интеграция с 1С:Документооборот" позволяет использовать функции программы "1С:Документооборот 8" напрямую из учетной системы (1С:УПП; 1С:КА, 1С:УТ 10.3, 1С:БГУ 1.0, 1С:ЗБУ 1.0, 1С:УПП для Казахстана и отраслевых решений, разработанных на их основе) на платформе "1С:Предприятие 8": выполнять и ставить задачи, просматривать документы, скан-копии и прочие файлы, штрих-кодировать документы отправлять письма, вести учет рабочего времени - не входя в "1С:Документооборот 8", работая в одной программе, что значительно сокращает время и делает работу более комфортной и эффективной. Продукт прошел сертификацию 1С-Совместимо

96000 руб.

11.06.2015    57902    36    20    

45

Рабочее место Розничная торговля Обмен с ГосИС Бухгалтер Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Управленческий учет Акцизы Платные (руб)

Помощник ЕГАИС для 1С Розница 2.2/2.3 - обновление сопоставлений алкогольных классификаторов, инвентаризация по марке, проверка накладных по check1.fsrar.ru, поиск продукции по акцизке, запрос новых акцизных марок и многое другое!

12000 руб.

05.01.2016    147637    522    707    

229

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

Модуль или расширение «Сервисный центр для 1С» позволяет принимать в ремонт оборудование (компьютеры, бытовая техника и т.п.), оформлять заявки инженеров на посещение клиентов и вести начисление заработной платы для сотрудников. Позволяет наладить автоматизированный учет в сервисном центре на уже существующей базе.

16800 руб.

01.11.2012    95465    113    1    

121

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

Полнофункциональное расширение для формирования и ведения учета перевозочных документов всех видов (ТН, ТТН, ЭТрН). Печать документов или отправка через ЭПД (Электронный перевозочный документооборот). Поддержка регистрации нескольких перевозок на одну финансовую реализацию (в виде УПД, например), а также одной перевозки на основании нескольких финансовых реализаций. Формирование всех сопроводительных документов из одной отгрузки. Формирование реестра грузосопроводительных документов, доверенности менеджеров для указания ответственных лиц (руководитель, главный бухгалтер, кладовщик) организации для пользователей ИБ. Гибкая настройка функциональности под потребности организации.

2670 руб.

18.04.2017    49306    241    43    

89

Рабочее место Производство готовой продукции (работ, услуг) Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Управленческий учет Платные (руб)

Расширение для 1С:УНФ с комплектом из двух АРМ: «АРМ для начальника производства» и «АРМ для рабочего цеха». «АРМ Начальника производства» позволяет анализировать общую картину состояния заказов покупателей и наличие конечных комплектующих и сырья для производства заказанной продукции. Есть возможность направлять заказы в производственную работу (в случае, если заказанную продукцию нужно произвести), резервировать и отгружать готовую продукцию. «АРМ рабочего цеха» позволяет обычным работникам оперативно закрывать производственные задания (оформлять документы выпуска) сразу в программе 1С.

14400 руб.

15.09.2017    52837    59    41    

97

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

Расширение "Входной контроль" в 1С:ERP, КА 2.5, УТ11.5 и предназначено для удобства отражения операций входного контроля и их результатов в учетной системе, а также фотофиксации брака.

12000 руб.

02.02.2019    37272    45    22    

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