Transcription
Привет. Что делать, если тормозит 1С? Пользователи жалуются, говорят, что документы проводятся медленно, отчёты формируются медленно и вообще одинска ваша не работает.
В этом видео я расскажу, с чего нужно начать, что нужно сделать в первую очередь, если вы столкнулись с такой проблемой. Меня зовут Ваня, это канал Iron Skills, и здесь мы рассказываем про разработку в 1S. Погнали.
Итак, если у вас тормозит 1S, то первое, что вам нужно сделать - это рассчитать адекс. Что это такое, сейчас расскажу. Адекс - это индекс, который позволяет оценить производительность приложения. Этот индекс рассчитывается по специальной формуле и принимает значение от нуля до единицы. Еслидекс нулевой, это значит, что всё вообще очень плохо. Еслидекс равен единице, значит производительность на отличном уровне.
Для того, чтобы рассчитать абдекс, мы сначала должны определить список ключевых операций, для которых мы этот расчёт будем выполнять. Что подразумевается под ключевой операции? Это может быть проведение документа, это может быть формирование отчёта, это может быть нажатие на какую-то кнопку в какой-то обработке. Всё это может быть ключевой операции. Чуть позже в этом видео расскажу критерии ключевой операции, то есть как понять, ключевая операция либо не ключевая.
Итак, мы определили список ключевых операций. Дальше для этих операций мы определяем целевое или приемлемое для нас время выполнения этой операции в секундах. Например, проведение документа- 3 секунды, формирование такого-то отчёта 5 секунд. И далее для каждой из этих операций мы можем рассчитать абдекс, вот этот индекс по формуле. Но для этого нам, конечно, нужно сначала собрать ещё статистику по времени выполнения операции. Вот имея эту статистику, мы можем использовать формулу такую. К количеству выполнения операции от нуля до целевого времени мы добавляем делённое на два количество выполнения операции с временем выполнения от целевого времени до четырёх целевых времён, то есть максимально долгое. И дальше делим вот эту сумму на общее количество выполнений. конкретной ключевой операции. Получаем число от нуля до единицы. Это и будет наш апдекс. И дальше по шкале можно получить оценку, какая у нас производительность конкретной операции. А также можно по списку операций получить, можно сказать, усреднённый апдекс, который позволит нам понять производительность приложения в целом.
Методика ABDК следующая. Первое, что нам нужно сделать - это составить список ключевых операций. То есть это может быть проведение каких-то документов конкретных, формирование конкретных отчётов, закрытие месяца, может быть нажать на какую-то кнопку обработки. Этих ключевых операции может быть достаточно много, но начать можно, например, с десяти операций. Этого обычно на практике достаточно. Дальше для каждой из этих операций надо определить приоритет. То есть какая операция самая важная, какая чуть менее важная и так далее. Пронумеровать просто цифрами 1 2 3 и так далее. Далее, для каждой операции мы должны определить целевое время, то, которое нас устроит. То есть как бы мы хотели, с какой скоростью, чтобы проводился документ, с какой скоростью мы хотим, чтобы формировался этот отчёт. Это время обычно указывается и в секундах. То есть, допустим, проведение документа 3 секунды хотим, формирование отчёта хотим 10 секунд. Следующий шаг, четвёртый - это сбор информации о времени выполнения каждой операции. То есть нам нужно реализовать сбор замеров времени. То есть когда пользователи будут проводить документы, формировать отчёты, мы куда-то должны записывать информацию, что вот этот документ проводился по факту столько-то секунд, а отчёт формировался столько-то секунд. и эту информацию где-то хранить. И затем на основе вот этой собранной статистики. Лучше её собрать не за один день, а желательно, чтобы статистика была репрезентативная, сделать период побольше, допустим, неделя. И после этого можно рассчитать уже оценку на основании собранных данных по формуле, которая была на предыдущем слайде, и получить вот что-то вроде такой таблицы. Ключевая операция, какой приоритет, целевое время. Ну и самое главное здесь для нас - это апдекс.
По поводу ключевых операций. Какая операция считается ключевой? Это операция, которая удовлетворяет одному из условий. Она является критичной для бизнес-процессов заказчика. Пример - это оформление заказа клиента. Допустим, есть какая-то торговая компания, есть интернет-магазин. Ключевой операция будет, например, проведение заказа клиента, потому что если мы документ будем проводить долго, соответственно, человек будет ждать долго, соответственно, это может повлиять на то, что он откажется от своего заказа. В общем, могут быть разные проблемы. То есть проведение заказа, вот пример ключевой операции. или, например, загрузка банковской выписки. Тоже может быть ключевой операция, потому что нам важно, чтобы у нас оплаты загружались вовремя, чтобы быстро отслеживать, когда заказ оплачен, чтобы дальше отправлять его уже, допустим, в сборку и в доставку. Второй критерий - это операция выполняется одновременно большим количеством пользователей. Опять же, это могут быть проведения каких-то документов. То есть у нас, допустим, отдел продаж, 10 менеджеров, они все одновременно проводят заказы. Это тоже признак ключевой операции. Ну либо ключевая операция может быть та операция, на которую явно жалуются пользователи. То есть есть группа пользователей, они говорят: "Вот, ребята, вообще работать не могу, не проводятся документы, жду по 5 минут, так не годится, давайте что-то с этим делать". Тоже операция в этом случае считается ключевой.
Для того, чтобы рассчитать для базы 1S, можно использовать разные инструменты. Один из инструментов - это встроенная в типовые конфигурации подсистема ИБСП. Она называется оценка производительности. Как это работает, сейчас покажу на примере управления торговлей. Сначала в конфигураторе, где это находится? Значит, если вы откроете конфигуратор любой типовой, УТ, бухгалтерия, ERP, любую, здесь вы найдёте стандартный подсистемы. И среди стандартных подсистем есть подсистема оценка производительности. Отберём объекты по этой подсистеме. Основное, что здесь есть - это справочник, ключевые операции. Сюда мы добавляем те операции, которые являются ключевыми, и задаём их приоритеты и целевые времена. Дальше, профили ключевых операций - это справочник, который позволяет нам группировать операции в какие-то группы отдельные. Звучит так себе, конечно. Но, в общем, собирать операции в группы, допустим, проведение документов - это будет один профиль, другой профиль формирования отчётов. И это позволит нам потом оценивать производительность отдельно конкретного профиля, то есть как у нас проводятся документы, как формируются отчёты, как, допустим, закрывается месяц. Для хранения замеров тут используются регистры сведений, замеры времени и замеры времени технологические. В регистре сведений фиксируется какая ключевая операция, дата начала замера, номер сеанса, дата записи начала часа, ну и большой набор данных. В том числе замеры записываются с регистрацией того пользователя, который операцию выполнял, потому что это важно. Бывает так, что на практике у одного пользователя, допустим, документ проводится быстро, а у другого медленно из-за ограничения правдоступа. Поэтому эта информация тоже записывается регистр сведений. Далее, здесь есть регламентное задание, которое выполняет очистку замеров, чтобы вот эту таблицу периодически очищать замеров, если они уже не нужны. И из основного здесь-то отчёт, пожалуй, оценка производительности, которая позволяет нам просто посмотреть уже визуально на апдекс и на целевые времена и на реальные времена выполнения операций.
Как выполняется настройка? В режиме предприятия мы заходим в NS администрирование, дальше обслуживание, оценка производительности. И нужно поставить флажок, включить опцию, оценка производительности. Следующий этап - это создание профилей ключевых операций. То есть тут все операции, они разбиваются по профилям. И создавая новый профиль, мы задаём ему какое-то имя. Ну, допустим, проведение документов. То есть мы для всех документов создаём какой-то отде отдельный профиль. Дальше нажимаем на кнопку заполнить, и сюда попадут все ключевые операции, в которые встроены замеры уже разработчиками типовых изначально. То есть, когда разрабатывалась типовая конфигурация, в те документы, которые в ней есть, уже встроены фрагменты кода, которые делают замеры, то есть записывают запись вот этот регистр. И здесь можем найти операции, связанные с проведением по ключевому слову проведения. Так, ну тут правда будет несколько, правда, событий проведение, ну или можно найти, допустим, провести и закрыть. Вот такие операции. То есть я нашёл по кчвому слову, допустим, вот эти операции. Дальше всё, что не касается них, я просто из этой табличной части сейчас удалю. В общем, мы ставим только проведение документов. Ну и тут есть, причём по кнопке провести, по кнопке провести и закрыть, то есть разные замеры. Допустим, оставим провести и закрыть. Дальше запишем этот профиль. И вот у нас есть профиль проведения документов. Дальше могу создать профиль, назвать его, допустим, формирование отчётов. Заполним список операций. Найдём здесь формирование отчёта какого-нибудь. Вот, допустим, отчёт формирования. И всё, что связано с формированием отчётов, мы оставляем, а остальные всякие операции отсюда убираем. Запишем этот профиль. Итак, у нас профиль ключевых операций созданы, включена оценка производительности, то есть замеры уже собираются. Если мы заглянем в регистр, который называется замеры времени, там мы уже сможем увидеть какие-то записи. Можно сделать сортировку по дата записи начала или, например, вправо. Лучше вот дату записи по ней отсортируем, посмотрим. Вот у нас начали собираться замеры за 9 апреля. Так, вы, наверное, не очень сейчас видите из-за того, что я немножко заслоняю. Давайте с в левую часть это уберу. То есть вот это замеры по последним операциям. Значит, если я сейчас зайду как пользователь уже просто в список документов заказа клиентов, допустим, и начну открывать документы проводить, информация о том, сколько по времени это занимает проведение, будет записываться в регистр. Нажал записать закрыть или провести закрыть. Замеры формируются. Ну и, соответственно, пользователи в рабочее время будут проводить большое количество документов. у нас будет собираться вот эта большая статистика в регистре сведений. Ну и следующий этап - это уже по результатам сбора данных мы формируем отчёт. Отчёт можно найти через функции для тех специалистов. Я его в избранной уже добавил изначально. Оценка производительности. В этом отчёте мы выбираем период, за который мы анализируем производительность нашей системы. Дальше выбираем профиль ключевых операций. Дальше можно настроить периодичность замеров, отбор по пользователю, но мы без отбора сделаем. И сформируем отчёт. Так. Ну и вот видим, что сейчас у нас пока что ещё данных здесь нету, потому что замеры, видимо, ещё пока не все были записаны. Проведение документов. Так-с. Ну что можем сделать ещё, кстати? Перейти а в nс администрирование, в обслуживание. Там ещё можно настроить период записи замеров. Тут можно поставить поменьше. Тут смысл такой, что замеры времени сначала накапливаются, а потом записываются пачкой сразу в регистр. Чтобы это было чаще, мы здесь можем более короткий промежуток поставить. Так, посмотрим сейчас на формирование отчёта. Но пока что здесь данных у нас никаких нету. Хорошо, давайте выберем какой-то период. Это демобаза. Тут наверняка может данные у нас какие-то есть за двадца четвёртый год. Выбрать, сформировать. Ну и вот так это выглядит. То есть у нас виденс в виде графика. Это именно усреднённый апдекс по ключевым операциям из вот этого профиля. А дальше детальная разво развёрнутая статистика по каждой операции. Вот у нас какой-то конкретно документ перемещения товаров. Целевое время 1 секунда. Приоритет пть стоит абдекс 0,5. И дальше указано среднее время проведения, минимальное время и максимальное время. Где задаются приоритеты? Я тоже вам не показал. Если зайти в профиль, то вот здесь как раз-таки и задавать можно приоритет операции и её целевое время. То есть порядок действий ещё раз такой. Мы создаём профиль, в профиль добавляем ключевые операции. Дальше для каждой операции назначаем приоритет, назначаем целевое время и дальше собираем статистику. Собрали статистику, идём в отчёт, формируем отчёт и анализируем, как у нас проводятся документы, как формируются отчёты. И дальше уже на основании этих данных принимаем следующее решение.
Итак, первый способ оценивать производительность - это использовать подсистему СБСП. Тут ещё один момент, который хотел вам показать- это что, если, допустим, вы создали свой документ или свой отчёт и вам нужно его тоже замерять время выполнения. Для этого вам придётся тогда встроить замеры времени в свой собственный документ или свой отчёт. И как это сделать, можно посмотреть в документации БСП. То есть вы открываете документацию БСП конкретной версии. Здесь нужно найти главу три настройка использования подсистем. Дальше подсистема оценка производительности. И вот тут будут примеры, как замерять разные операции. Примеры кода прямо, например, как замерить время проведения документа на клиенте. Потом как замерить выполнение регламентного задания, как замерить то, как замерить это. В общем, всё здесь вы найдёте в документации. Вы встраиваете замеры, и тогда по вашим уже собственным объектам тоже будет собираться статистика и попадать в регистр сведения, а затем уже и в отчёт.
Помимо подсистемы СBSP для оценки производительности по методике ABDКС можно использовать и другие сервисы, например, сервис gof.ru. Принцип такой, что здесь вам нужно будет зарегистрироваться на сайте. В данном случае сервис уже является платным. Вы встраиваете замеры также в свою конфигурацию. Отличие от штатной подсистемы БСП, что здесь все замеры, они улетают в облачный сервис и обрабатываются уже на стороне этого облачного сервиса. Вы заходите далее на сайт и здесь можете получить информацию по своей базе в виде различных отчётов. Здесь тоже будет показана оценка производительности.
Итак, если у вас тормозит 1С, то теперь вы знаете, с чего нужно начать. Нужно внедрить замеры и рассчитать апдекс. Если это видео было вам полезно, поставьте лайк, напишите небольшой комментарий. С вами был Ваня, канал Iron Skills. И здесь мы рассказываем про разработку в 1С. Увидимся в следующих роликах. Пока. M.