1С оптимизация: что делать, если программа тормозит
Меню

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

Фразу «1С тормозит» наверняка приходилось слышать всем работающим с продуктами на платформе «1С:Предприятие». Кто-то жаловался на это, кто-то принимал жалобы. В этой статье мы постараемся рассмотреть наиболее распространенные причины этой проблемы и варианты ее решения.

Обратимся к метафоре: прежде, чем выяснять, почему человек куда-то не пришел, стоит убедиться, что у него есть ноги, чтобы ходить. Итак, начнем с требований к «железу» и сети.

Если установлена ОС Windows 7:

ОС Windows 7
ОС Windows 7

Если установлена ОС Windows 8 или 10:

ОС Windows 8 или 10
ОС Windows 8 или 10

Требования к «железу» и сети
Требования к «железу» и сети

Также помните, что свободного места на диске должно быть не менее 2ГБ, а подключение по сети – иметь скорость не менее 100 Мб/сек.

Характеристики серверов в клиент-серверном варианте рассматривать большого смысла не имеет, потому что в этом случае все зависит от количества пользователей и специфики тех задач, которые они решают в 1С.

При выборе конфигурации для сервера стоит помнить о следующем:

  • Один рабочий процесс сервера 1С потребляет в среднем 4 ГБ (не путать с соединением пользователя, т.к. на один рабочий процесс может приходиться столько соединений, сколько вы укажите в настройках сервера);
  • Использование на одном физическом сервере 1С и СУБД (особенно MS SQL) дает выигрыш при обработке больших массивов данных (например, закрытии месяца, расчете бюджета по модели и т.д.), но существенно снижает производительность при ненагруженных операциях (например, создание и проведение документа реализации и т.д.);
  • Помните, что сервера 1С и СУБД должны быть в связке по каналу «толщиной» от 1 ГБ;
  • Используйте высокопроизводительные диски и не совмещайте роли сервера 1С и СУБД с другими ролями (например, файловый, АД, контроллер домена и т.д.).

Если после проверки оборудования 1С все равно «тормозит»

У нас маленькая компания, 7 человек, а 1С «тормозит». Обращались к специалистам, и те сказали, что нас спасет только клиент-серверный вариант. Но для нас такое решение не приемлемо, это слишком дорого!

Проведите регламентные работы в базе*:

1. Запустите базу в режиме конфигуратора.

Запуск базы в режиме конфигуратора
Запуск базы в режиме конфигуратора

2. Выберите в главном меню пункт «Администрирование», а в нем – «Тестирование и исправление».

Тестирование и исправление
Тестирование и исправление

3. Установите все галочки, как на картинке. Нажмите «Выполнить».

*Эта процедура может занимать от 15 минут до часа в зависимости от размеров базы и характеристик вашего ПК.

Если это не помогло, то делаем клиент-серверное подключение, но без дополнительных вложений в «железо» и ПО:

1. Выберите самый не загруженный компьютер в офисе из числа стационарных (не notebook): у него должно быть не менее 4 ГБ оперативной памяти и сетевое подключение не менее 100 Мб/сек.

2. Активируйте на нем IIS (Internet Information Server). Для этого:

Активация IIS
Активация IIS

Активация IIS
Активация IIS

Активация Internet Information Server
Активация Internet Information Server

IIS
IIS

3. Опубликуйте свою базу на этом компьютере. По этой теме есть доступный материал на ИТС, или обратитесь к специалисту из поддержки.

4. На компьютерах пользователей настройте доступ к базе через тонкий клиент. Для этого:

Настройка доступа к базе через тонкий клиент
Настройка доступа к базе через тонкий клиент

Откройте окно запуска 1С.

Окно запуска 1С
Окно запуска 1С

Выберите вашу рабочую базу. Здесь это «Ваша база». Нажмите «Изменить». Установите переключатель в положение «На веб-сервере», укажите в строке под ним имя или IP-адрес сервера, на котором активировали IIS, и имя под которым публиковали базу. Нажмите кнопку «Далее».

Выбор рабочей базы
Выбор рабочей базы

Установите переключатель «Основной режим запуска» в режим «Тонкий клиент». Жмите «Готово».

У нас немаленькая компания, но и не очень большая, человек 50 – 60. Мы используем клиент-серверный вариант, но «тормозит» 1С жутко.

В этом случае рекомендуется разделить сервер 1С и сервер СУБД на два разных сервера. При разделении обязательно помните: если они остались на одном физическом сервере, который просто виртуализовали, то диски у этих серверов должны быть разными –разными физически! Также обязательно настройте регламентные задания на сервере СУБД, когда речь идет об MS SQL (подробнее об этом описано на сайте ИТС)

У нас немаленькая компания, более 100 пользователей. Все настроено в соответствии с рекомендациями 1С для такого варианта, но при проведении некоторых документов 1С очень сильно «тормозит», а иногда вообще возникает ошибка блокировки. Может быть, сделать свертку базы?

Подобная ситуация возникает из-за размера вполне конкретного регистра накопления или бухгалтерии (но чаще – накопления), из-за того что регистр либо вообще на «закрывается», т.е. есть движения приход, но нет движений расход, либо количество измерений, по которым считаются остатки регистра, очень велико. Может иметь место даже микс из двух предыдущих причин. Как определить, какой именно регистр все портит?

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

Открываем журнал регистрации.

Журнал регистрации
Журнал регистрации

Находим нужный нам документ, в нужное время, по нужному пользователю с типом события «Данные.Проведение».

Данные.Проведение
Данные.Проведение

Отсматриваем весь блок проведения до момента отмены транзакции, если была ошибка блокировки, или отыскиваем самое долгое изменение (время от предыдущей записи больше минуты).

Далее проверяем количество строк в регистре посредством простого запроса по остаткам (для регистра накопления желательно до 200 000 строк, для регистра бухгалтерии – несколько больше).

После этого принимаем решение, имея в виду, что свернуть именно этот регистр в любом случае дешевле, чем всю базу.

Мы очень крупная компания, более 1000 пользователей, тысячи документов в день, свой ИТ-департамент, огромный парк серверов, несколько раз оптимизировали запросы, но 1С «тормозит». Мы, видимо, переросли 1С, и нам нужно что-то более мощное.

В подавляющем большинстве таких случаев, «тормозит» не 1С, а архитектура используемого решения. Делая выбор в пользу новой программы для бизнеса помните, что написать свои бизнес-процессы в программе дешевле и проще, чем переделать их под какую-то, тем более, очень дорогую программу. Такую возможность предоставляет только 1С. Поэтому, лучше задаться вопросом: «Как исправить ситуацию? Как заставить 1С «летать» на таких объемах?». Вкратце рассмотрим несколько вариантов «лечения»:

  • Используйте технологии параллельного и асинхронного программирования, которые поддерживает 1С (фоновые задания и запросы в цикле).
  • При проектировании архитектуры решения откажитесь от использования регистров накопления и регистров бухгалтерии в самых «узких» местах.
  • Разрабатывая структуру данных (регистры накопления и/или сведений) придерживайтесь правила: «Самая быстрая таблица для записи и чтения – это таблица с одной колонкой». О чем идет речь, станет более ясно, если посмотреть на типовой механизм РАУЗ.
  • Для обработки больших объемов данных используйте вспомогательные кластеры, где подключена та же база (но ни в коем случае так нельзя делать при интерактивной работе!!!). Это позволит обойти стандартные блокировки 1С, что даст возможность работать с базой почти на той же скорости, что и при работе непосредственно средствами SQL.

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

Рассказать друзьям
Предыдущая статья статья
Просто о бюджете доходов и расходов (БДР)
Следующая статья статья
Создание и настройка внешней печатной формы в 1С
Комментарии