Где баланс между производительностью и возможностями программы ? Исправление автоподбора контрагента в УНФ

27.08.21

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

Как и у многих ко мне стали поступать обращения от менеджеров о медленной работе 1с (эта ваша один с не дает нормально работать), и чтоб быть объективным, и не основываться на человеческом, субъективном восприятии решил вооружиться цифрами, а именно произвести анализ медленных запросов, и проблема была найдена, где я ее не ожидал.

Скачать исходный код

Наименование Файл Версия Размер
Оптимизация автоподбора контрагента
.cfe 8,71Kb
0
.cfe 8,71Kb Скачать

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

И как же помочь, чтоб ему жилось чуточку лучше.

Как известно в большинстве своем причиной медленной работы 1с являются запросы, их и решено было проанализировать, для этого был использован инструмент из арсенала Гилева, не рекламы ради пара хвалебных слов:

  1. Из коробки с минимум настроек получаем готовый инструмент для анализа запросов, не нужно вдаваться в подробности настройки технологического журнала, и искать инструменты визуализации ТЖ.
  2. Для моей задачи вполне хватило бесплатного режима.

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

 

 

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

 

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

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

 

Если ознакомиться с запросом мы увидим широкие возможности по поиску контрагента, вот тебе стандартные наименование или ИНН, а также  код, различные контактные данные, но на сколько часто вам нужны все варианты поиска в таком месте?

Для нас в 99% случаев поиск контрагента идет по наименованию или ИНН, и если и надо изредка найти контрагента по другим полям не поленимся откроем форму выбора контрагента.

Исходя из этого для оптимизации было сделано 2 шага:

1. Задана минимальная длинна строки в 4 символа при котором начинается поиск.

2. Максимально обрезан запрос, оставлено только необходимое для нас, вот что осталось

 

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

Данное поведение было выявлено в конфигурации УНФ 1.6.24.92, БД Postgre.

Во вложении расширение, которое реализует описанные исправления, если вдруг кому тоже доставляет неудобства данная операция

P.S

Повторю вопрос в заголовке, где баланс между производительностью и возможностями программы?

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

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4900    10    5    

19

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

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

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3268    6    0    

23

Результаты ревью кода 1500+ решений каталога Инфостарт: наиболее частые ошибки разработчиков в коде

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Поделюсь своим опытом аудита кода авторских продуктов с Infostart.ru как одним из элементов применения DevOps-практик внутри Инфостарт. Будет настоящий код, боевые скриншоты, внутренние мемы от команды ИТ-лаборатории Инфостарт и прочее мясо – все, что любят разработчики.

10.04.2024    9496    artbear    84    

100

Анализируем SQL сервер глазами 1С-ника

HighLoad оптимизация Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

1 стартмани

15.02.2024    9101    179    ZAOSTG    74    

105

Опыт оптимизации 1С на PostgreSQL

HighLoad оптимизация Системный администратор Программист Бесплатно (free)

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    10301    ivanov660    6    

77

ТОП проблем/задач у владельцев КОРП лицензий 1С на основе опыта РКЛ

HighLoad оптимизация Бесплатно (free)

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

15.11.2023    5686    a.doroshkevich    20    

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