Оптимизация быстродействия 1С

Дата создания: 13.10.2016
Автор: Жадаев Иван
оптимизация быстродействия 1С, советы
Изображение статьи

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

  1. Возможные аппаратные проблемы

    Слабый сервер (или его отсутствие). Подобная ситуация наиболее характерна для небольших организаций, где сервером называют обычную рабочую станцию с установленной Windows XP. На таком компьютере чаще всего отсутствуют необходимые "признаки сервера": резервирование основных компонентов (жесткие диски, блоки питания, вентиляторы), быстрая дисковая система (несколько дисков SCSI, SATA, SAS, объединенных в массив), два или более процессоров, достаточный объем оперативной памяти. Сложно ожидать от компьютера, не обладающего хоть частью из вышеперечисленного чудес производительности и надежности в работе! Если с Вашей базой банных работает более 10 человек, то Вам стоит задуматься о приобретении и настройке специализированного сервера.

    Перегрев оборудования. Наиболее частая причина, которая вызывает множество мелких и не очень проблем при эксплуатации компьютерного оборудования. Чаще всего проявлется в непонятном ("глючном") поведении оборудования, когда компьютер начинает плохо загружаться, сам выключаться, "тормозить" и т.д. А если плохо работает компьютер, то также плохо начинают работать и программы, запущенные на нем. Особенно это касается программ, которые могут создавать пиковую (неравномерную) нагрузку на основные компоненты компьютера: процессор, память, сетевой адаптер, жесткий диск. Например, такая ситуация может возникнуть при формировании достаточно большого отчета в программе "1С:Предприятие" или при интенсивном проведении накладных. Нужно соблюдать температурный режим при эксплуатации компьюторного оборудования, если этого правила придерживаться, то многие проблемы исчезают.

    Неправильные настройки аппаратных компонентов. Программы "1С:Предприятие" чувствительны к качеству локальной сети, поэтому необходимо уделять повышенное внимание к подбору компонентов для локальной сети. Рекомендуется использовать по возможности одинаковые сетевые платы, коммутаторы, аккуратно монтировать локальную сеть.

    СОВЕТ: Если процессор Вашего сервера поддерживает технологию HT (Hyper-Threating) и на сервере установлена только одна база данных "1С:Предприятие", то рекомендуется отключить эту опцию в BIOS. Это связано с тем, что при включенной опции HT программа "1С:Предприятие" использует не более 50% вычислительных возможностей процессора (только один из двух виртуальных процессоров). Это можно легко увидеть на графике загрузки процессора в "Диспетчере задач". Для серверов с двумя или более базами данных необходимо произвести дополнительные испытания и определить наиболее оптимальный в Вашем случае вариант. Для серверов с двумя физическими процессорами (Intel Xeon) рекомендуется всегда отключать эту опцию при работе с базами данных "1С:Предприятие".

  2. Настройка параметров операционной системы и локальной сети

    Драйверы периферийных устройств. Если в вашей организации используются принтеры Canon 810 или Canon 1120 не устанавливайте программу «Монитор» (отображается в правом нижнем углу в виде значка с принтером). Использование данной программы приводит к существенному снижению производительности работы программ "1С:Предприятие".

    Антивирусные программы. Для повышения быстродействия работы программы "1С:Предприятие" мы рекомендуем исключать из проверки антивирусными программами файлы следующих типов: *.dbf – файлы данных, *.cdx – индексы, 1cv7.md – файл конфигурации, 1cv7.dd – словарь данных (для DBF версии) или 1cv7.dds – словарь данных (для SQL версии). Файлы этих типов не могут быть заражены вирусами, однако их постояная проверка на вирусы приводит к снижению скорости работы программы.

    Межсетевые экраны. Использование межсетевых экранов ("фаэрволов","брандмауэров") необходимо для защиты Вашего компьютера от несанкционированного доступа через локальную сеть. Чаще всего неправильная настройка подобных программ приводит к проблемам с ключами защиты (HASP) для "1С:Предприятие", снижению скорости загрузки и работы в программе. Имеет смысл отключить межсетевые экраны на большинстве рабочих станций в локальной сети, оставив его включенным только на компьютере непосредственно подключенным к интернету.

  3. Неправильное программирование

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

    • подбор по справочнику;
    • проведение документа;
    • формирование отчета.

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

    Расчет значений в вычиляемых полях формы списка происходит не всегда. Так при движении по горизонтали (вправо-влево, между колонками) по форме списка, программа не перерассчитывает значения. А при перемещении по вертикали (вверх-вниз, между строками) по форме списка, вычисляются только значения в текущей строке, т.е. строке в которой находится курсор. Однако если мы начинаем быстрый подбор по форме списка, то при перемещении на первое найденное значение вычисляются все строки в видимой части формы списка. Эту особенность важно помнить при разработке быстрых форм подбора (форм списка)!

    ПРИМЕР: Перемещение на одну строку вверх-вниз в форме подбора в справочнике «Номенклатура» конфигурации «1С: Торговля и Склад» вызывает 23 запроса к базе данных, набор только одной буквы при быстром подборе – 245 запросов при видимой части формы в 12 строк и 47 запросов при видимой части формы в 2 строки!

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

    Второй, для программистов:

    • избегайте использования большого числа вычисляемых полей на формах списка и формах подбора;
    • переносите вычисляемые поля из многострочной части на саму форму;
    • не используйте большое число периодических величин для показа в форме списка, каждая из них – это отдельный запрос к таблице периодических реквизитов (таблице констант);
    • не используйте строковые реквизиты неопределенной длины без крайней необходимости, каждая из них – это отдельный запрос к таблице длинных строк (таблице "blob").
  4. Ограничения сетевой версии

    Этот пункт относится прежде всего к сетевым базам данных формата DBF, производительность которых резко падает при увеличении как объема отдельных таблиц (например, справочника «Номенклатура») или при общем росте базы данных. Для комфортной работы с базами данных большего размера рекомендуется использовать клиент серверную (SQL) версию программы "1С:Предприятие" или выделенный терминал сервер.

    Переход на клиент серверную версию "1С:Предприятия" позволяет существенно повысить производительность отдельных операций программы (построение отчетов, расчет временных итогов, проведение документов, поиск по справочнику), повысить надежность программы и снять ограничение на допустимый объем базы данных. При многолетней работе в единой базе данных не происходит такого резкого падения производительности как в сетевой DBF версии, поэтому можно отказаться от необходимости периодической свертки старого периода.

    Базы данных формата SQL могут обслуживать до 100 пользователей. Некорректный выход из базы данных пользователя не приводит к необходимости переиндексации базы данных. Сервер может выполнять автоматическое резервное копирование базы данных.

Частые проблемы, которые мы решаем:
Недостача на складе или магазине, воровство
Низкая скорость обслуживания клиентов
Отсутствует обмен информацией между подразделениями
Ручной учет на бумаге, Excel или самописной программе
Нет контроля за движением денег в компании
Расчет зарплаты сотрудникам
Обмен товарами и заказами с интернет-магазином
Большие затраты времени на выполнение ежедневных задач
Отзыв о нашей работе
Скрыть
Перезвоним Вам в течении 30 минут!

...ну в рабочее время разумеется =)

Нажимая кнопку «Перезвоните мне», Вы принимаете условия Пользовательского соглашения