Мы используем cookies для улучшения работы сайта
Используем cookies для улучшения сайта
Нет ничего сложного

Почему тормозит 1С

Вступление

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

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

Общее описание причин тормозов 1С

Все причины медленной работы можно разделить на несколько категорий: оборудование («железо»), неоптимальные алгоритмы («код»), некорректная настройка программного обеспечения («софт»), необдуманная настройка параметров конфигураций. В зависимости от того, как и где используется система, выделенные группы факторов могут влиять на ситуацию с разной силой. Основное различие в подходах поиска и решения проблем производительности обуславливается используемым режимом работы информационных баз – файловый вариант или клиент-серверный. Рассмотрим вопрос более подробно вначале отдельно для каждого из режимов, а затем общие для них обоих моменты.
Проблемы и решения, характерные для файловых баз 1С
· Недостаток оперативной памяти:
Платформа 1С, как и любое приложение, активно использует оперативную память. Начиная с версии 8.3 требования к ней значительно возросли. Если пользователи работают с базой непосредственно со своих не очень мощных офисных компьютеров – это узкое место номер один, которое нужно проверить. С учетом того, что на компьютере могут быть одновременно запущены много других ресурсоемких приложений (антивирус, офисный пакет, интернет-браузеры и т.д.), на машине должно быть установлено не менее 2 Гигабайт оперативной памяти. В случае же использования платформы 8.3 объем лучше довести до 4 Гигабайт. Обычно легко определить, что проблема с оперативной памятью присутствует, в момент «тормозов» (а лучше заранее) запустив Диспетчер задач и открыв «Производительность»:
Загрузка памяти близка к 100%? Дело как минимум в ней!
· Скорость сети (локальной или интернет):
В том случае, если доступ к информационной базе организован удаленно с помощью локальной сети или через интернет (например, с использованием веб-клиента), проблема может крыться в скорости обмена данными по сети. Особенно это актуально для «устаревших» платформ (8.2 и ниже) и режима обычного приложения, поскольку тонкий и веб-клиенты оптимизированы для «узких» каналов связи.
· Жесткий диск:
1С не так критична к скорости чтения/записи на жесткий диск, как к объему оперативной памяти. Проблема встает более остро, когда оперативная память заканчивается – в этом случае начинает использоваться кэш, расположенный на жестком диске. Поэтому при невозможности обеспечить достаточный объем оперативной памяти или при большом количестве операций, требующих работы с файловой системой, рекомендуется использовать более быстрые жесткие диски, в том числе рассмотреть использование SSD.
· Процессор:
Как и с жестким диском, программа не очень требовательна к процессору, за исключением случаев формирования «тяжелых» отчетов, групповых обработок, операций регламентированного закрытия и других подобных операций.

Проблемы и решения, характерные для серверных баз 1С

Настройка серверной части и масштабирование
При использовании клиент-серверного режима актуальным становится вопрос грамотной тонкой настройки используемого сервера, который обслуживает информационную базу: настройка служб сервера, максимальное отведенное количество оперативной памяти, максимальное количество потоков и другие настройки. Вопрос этот сложный и требует глубоких знаний области, поэтому даже при наличии собственного штата IT специалистов (в частности, системных администраторов), может быть полезно обратиться за помощью по настройке к внешним исполнителям, а также приобрести специализированное ПО, призванное найти узкие места производительности. Например, в поиске узких местах может помочь продукт «1С: Корпоративный Инструментальный Пакет», в частности включающий в себя инструмент «1С: Центр Управления Производительностью», позволяющий проанализировать производительность и оптимизировать работающую многопользовательскую информационную систему.
В том случае, если дальнейшая оптимизация невозможна или слишком сложна (читай, нерентабельна), существуют типовые решения по масштабированию информационной системы, обеспеченные 3-х уровневой архитектурой с использованием сервера приложений 1С: Предприятия и сервера базы данных (клиент - сервер приложений – сервер БД). При этом сервер приложений и сервер базы данных можно физически располагать на разных компьютерах. Дальнейшее масштабирование возможно в сторону создания кластера серверов (связка нескольких серверов в один), физически также расположенных на разных машинах.

Общие проблемы быстродействия 1С

Не оптимальный код
· Блокировки (транзакционные):
Использование файлового режима работы или автоматических блокировок при клиент-серверном режиме работы может создавать существенные задержки при многопользовательской работе, связанные с ожиданием при проведении документов. Когда пользователь проводит документ, для обеспечения корректности анализируемых алгоритмом проведения данных блокируются на изменение таблицы БД (регистры накопления, хранящие, например, остатки товаров). Если другой пользователь в этот же момент попытается провести свой схожий документ, то программа не даст ему это сделать – «зависнет» и будет ожидать завершения проведения первого документа (и разблокировки для изменения необходимых таблиц):

Для решения этой проблемы, в первую очередь, необходим обязательный переход на клиент-серверный режим, поскольку в файловой базе накладываются транзакционные блокировки высокого уровня (на таблицу в целом). Если уже используется клиент-серверный режим, то требуется более трудоемкий ряд мероприятий: переход на использование управляемых блокировок (позволяют более «тонко» блокировать данные), новой методики проведения документов (снижает общее время захвата таблиц), отказ от синхронных вызовов при проведении и другие мероприятия.
· Неоптимальный код:
Не оптимально написанный код, в частности, запросы к базе данных, может также являться причиной необоснованных «тормозов» при работе. Типовые конфигурации разрабатываются в строгом соответствии с принятыми методиками, и обычно лишены такого рода моментов. Но почти всегда при внедрении продукты дорабатываются под нужды организации, и при неквалифицированной доработке такие проблемы могут появиться. В любом случае, требуется проводить рефакторинг кода. Например, для этих целей можно использовать продукт «1С: Автоматизированная Проверка Конфигураций», а при написании нового кода придерживаться выработанных стандартов и рекомендаций «Системы стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8».
В качестве совета тем, кто привлекает к доработке своих конфигураций сторонних исполнителей или нанимает для этих целей новых сотрудников, хочется напомнить про избитую мудрость о скупом, который платит дважды. Современная разработка требует высокой квалификации специалистов, способных не только решать поставленную задачу, но и обеспечивать при этом надежность, быстродействие и масштабируемость решений. Обращайтесь только к проверенным исполнителям, проверяйте квалификацию нанимаемых сотрудников, потратьте деньги и силы на проверку результатов. Если нет возможности делать это собственными силами - нанимайте аудиторов, например. Грамотные алгоритмы – залог стабильности программы, что снижает риск простоев и необоснованной потери денег в период промышленной эксплуатации.
Настройка внутренних механизмов
· Версионирование:
Кроме программного обеспечения окружения необходимо аккуратно настраивать и параметры самой информационной базы. Например, следует обратить особое внимание на подсистему версионирования данных. Во-первых, нужно обдуманно подходить к выбору объектов, информацию об изменении которых необходимо хранить. Во-вторых, типовой механизм (в том числе используемый в Библиотеке Стандартных Подсистем) упрощен и может быть в ряде случаев оптимизирован. На просторах интернета есть много идей и готовых решений, как бороться с этим недугом.
· RLS (права доступа на уровне записей):
Механизм RLS позволяет тонко настраивать права доступа в системе 1С, накладывая ограничения на конкретные объекты (организации, подразделения и т.д.). Но его использование усложняет запросы к базе данных, что неизбежно приводит к снижению скорости выборки информации. Поэтому и этим механизмом нужно пользоваться обдуманно, а при серьезных «тормозах» также можно заняться его оптимизацией.
Прочее
· Подключаемое оборудование:
Проблема, почему «тормозит 1С» может крыться и в совершенно неочевидных вещах. К примеру, причиной могут служить периферийные устройства. При запуске на удаленном рабочем столе программа может пытаться подключить локальное оборудование (например, принтер), которое может или медленно работать, или быть вовсе не подключенным. Таймаут ожидания может быть большим, и всё это время пользователь вынужден ждать, даже не понимая причин простоя.

Также вызывать задержки может просто неисправное оборудование, неадекватно медленное отвечающее на запросы программы. В этом случае следует заменить такое оборудование или отказаться от его использования.
Итог
При возникновении медленной работы программы нужно системно подходить к вопросу поиска и устранения причин, приводящих к такому поведению. Необходимо искать узкие места потери производительности и, взвешенно оценивая их вклад в общую картину, принимать решения. Начинать лучше с оценки адекватности мощности используемого оборудования нагрузке. Но следует понимать, что закупка нового оборудования – это не только прямые расходы на его покупку, но и дополнительные затраты по его настройке, вводу в эксплуатацию, а отсюда риски простоев. Поэтому параллельно полезно проводить анализ качества кода и программного обеспечения. А если проблема не является системной, то есть появляется изредка и только у некоторых пользователей – правильным решением будет её локализация и ювелирное устранение.

Желаем успехов и быстрой 1С!

МОЖЕМ ПОМОЧЬ

У вас есть задачи для программистов 1С? Вам сюда