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

03.05.18

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

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

Файлы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

…            

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

 

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

 

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

 


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

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

 

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

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

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

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

 

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

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

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

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

 

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

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

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Рабочее место Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь 1С:Предприятие 8 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С-Совместимо

135530 руб.

11.06.2015    63658    39    20    

51

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

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

10099 руб.

18.04.2017    56959    316    45    

106

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

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

18800 руб.

01.11.2012    108163    134    1    

144

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

Расширение, добавляющее в конфигурации 1С:УТ 11.5, КА 2.5 и ERP 2.5 автомобили, марки, модели, нормо-часы. Предусмотрена запись на ремонт, документ заказ наряд, вывод ведомости по заказ нарядам, вывод выработки мастеров.

14640 руб.

29.07.2021    24497    54    22    

54

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

Данная обработка - удобный инструмент в 1С для менеджеров по продажам для повседневной работы с клиентами. Позволяет упростить весь цикл работы с клиентом: первичная консультация по наличию товара, быстрое оформление нового заказа, контроль исполнения заказов. Обработка будет особенно актуальна для компаний, работающих, в основном, с юридическими лицами.

18300 руб.

08.11.2016    67501    56    24    

72

Рабочее место Логистика, склад и ТМЦ Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Фармацевтика, аптеки Россия Управленческий учет Платные (руб)

Удобное отображение аналогов номенклатуры в 1С для УТ 11, КА 2, ERP прямо в списке. Легкое добавление и удаление аналогов к номенклатуре. Доработка в виде расширения, изменение конфигурации не требуется.

12709 руб.

19.03.2019    57636    464    85    

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