Как ускорить файловую базу 1С при работе по сети

10.05.2019

В нашу компанию довольно часто обращаются с вопросом «вылетает/зависает/тормозит «1С», как ускорить или исправить?». Особенно часто подобные вопросы возникают при переходе на платформу 8.3 и конфигурацию на управляемых формах. К таким конфигурациям относятся:

  • Бухгалтерский учет для государственных учреждений Казахстана, редакция 4.0;
  • Бухгалтерский учет для государственных предприятий Казахстана, редакция 2.0;
  • Бухгалтерия для Казахстана, редакция 3.0;
  • Розница для Казахстана, редакция 2.0;
  • Управление торговлей для Казахстана, редакция 3.0;
  • Управление нашей фирмой для Казахстана;
  • Зарплата и управление персоналом для Казахстана, редакция 3.0;
  • и другие.

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

Совет 1. Регулярное тестирование и исправление информационной базы

Информационная база «1С» — специфичная, но полноценная СУБД. Она, как и любая другая СУБД, требует регулярного обслуживания.

Внимание! Всегда, при любых необратимых действиях с базой «1С» необходимо провести процедуру резервного копирования.

Шаг 1. Копирование базы

Под пользователем с правом «Администратор», в режиме «1С:Предприятие» открыть: Администрирование – Обслуживание. Раскрыть блок «Резервное копирование и восстановление» и перейти по ссылке «Создание резервной копии». Далее, выбрать каталог для сохранения резервной копии и нажать кнопку «Сохранить резервную копию». Имя файла присваивается автоматически с указанием даты и времени создания копии, файл имеет расширение .zip.

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

Скопировать информационную базу можно и другим способом: закрыть «1С» на всех компьютерах и скопировать файл 1Cv8.1CD из каталога с информационной базы в каталог с архивным копиями.

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

Шаг 2. Тестирование и исправление информационной базы

Открыть базу в режиме «Конфигуратор» на «главном» компьютере. Меню «Администрирование» — «Тестирование и исправление». Проставить флаги в «Проверки и режимы»:

  • Реиндексация таблиц информационной базы;
  • Проверка логической целостности информационной базы;
  • Проверка ссылочной целостности информационной базы;
  • Пересчет итогов;
  • Реструктуризация таблиц информационной базы.

Выбрать режим «Тестирование и исправление».

При наличии ссылок на несуществующие объекты: очищать ссылки.

При частичной потере данных объектов: удалять объект.

Тестирование и исправление информационной базы

Частота выполнения: один раз в 2-4 недели.

Совет 2. Улучшение аппаратных компонентов компьютера

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

  • количество оперативной памяти;
  • пропускная способность локальной сети;
  • производительность дисковой подсистемы.

Оперативная память (ОЗУ)

Конфигурациям «1С» без управляемых форм было достаточно 120-250 Мб оперативной памяти, новым редакциям уже требуется не менее 500 Мб (на каждую открытую ИБ). Это стоит учитывать при планировании ресурсов для работы с «1С».

При недостатке оперативной памяти часть данных может быть выгружена в дисковый кэш. Но, ведь потребность в данных не изменилась, и выгруженная часть рано или поздно потребуется. В этот момент «1С» придется обращаться к медленному файлу подкачки и загружать эти данные уже в ОЗУ, выгружая временно ненужные.

В таких ситуациях значительно увеличивается нагрузка на дисковую подсистему, а работа пользователя в программе «1С» становится крайне некомфортной.

Минимальный объем ОЗУ на компьютере для работы с «1С»: 2 Гб. Но, следует помнить, что помимо «1С» на компьютере наверняка будет открыт браузер, какие-либо офисные документы, антивирусные программы и другое.

Локальная сеть

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

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

Ограничение шириной канала

«1С» через Wi-Fi — плохо!

Не использовать нестабильное беспроводное соединение Wi-Fi, особенно при плохом уровне сигнала. В большинстве случаем Wi-Fi сеть не обеспечивает должной пропускной способности и стабильности.

Нужна стабильная сеть

Проверить стабильность соединения до основного компьютера: простейшая команда ping (ip-адрес-основного-компьютера) -t покажет общую картину.

Сетевой канал может резко терять стабильность на больших пакетах. Если обычная команда ping не выявляет потерь, то есть смысл проверить так:

ping server -n 100 -l 50000

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

Пример «плохой» локальной сети

ping server -t

Обмен пакетами с server [192.168.1.101] с 32 байтами данных:

Ответ от 192.168.1.101: число байт=32 время=1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=2мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=2мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=19мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=8мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=2мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=5мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=8мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=5мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=10мс TTL=128
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.101: число байт=32 время=1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=2мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=4мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=19мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=3мс TTL=128

Пример «хорошей» локальной сети

ping server -t

Обмен пакетами с server [192.168.1.101] с 32 байтами данных:

Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128

Работать через «тонкий клиент»

С конфигурациями на основе управляемого приложения можно и нужно работать через тонкий клиент.

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

Тонкий клиент 1С

Пропускная способность 1 Гбит/с

Новые конфигурации «1С» запускаются при работе в локальной сети с пропускной способностью 1 Гбит/с в 3-4 раза быстрее. Даже при достаточно большой нагрузке (например, групповое перепроведение) прирост в скорости работы сохраняется.

Результаты условного замера производительности

Дисковая подсистема

Существует миф, что если расположить информационную базу на твердотельном быстром SSD-диске, то даже у сетевых пользователей комфорт от работы улучшится. Однако, это не так. Дело в том, что производительность для сетевых пользователей упрется в пропускную способность сети и «железо» клиентских компьютеров, SSD-диск ускорит работу только на основном компьютере. Медленный диск способен замедлить некоторые операции, но сам по себе являться причиной «торможения» программы не может.

«Лайфхак» по ускорению выполнения задач, зависящих от процессора

Возможно это будет открытием, но операционная система Windows старается по максимуму экономить потребление электроэнергии уменьшая тактовую частоту процессорных ядер. Эта «экономия» в некоторых ресурсотребовательных задачах может приводить довольно к большим задержкам, а экономия малозначительна.

Панель управления — Все элементы управления — Электропитание — поставить флаг «Высокая производительность» — ОК. Так же имеет смысл пройти по ссылке «Настройка схемы электропитания» — «Изменить дополнительные параметры питания» — «Отключать жесткий диск через: 0»; «Управление питанием процессора» — «Минимальное состояние процессора: 100%».

Высокая производительность Электропитание Windows
Не отключать жесткий диск при простое

Совет 3. Настроить работу в связке 1С+веб-сервер

Работа с файловой базой данных через веб-сервер возможна с помощью тонкого клиента или веб-клиента. Но, лучше использовать тонкий клиент. Он быстрее чем браузер примерно на 20%, а также может использовать локальные лицензии. Веб-клиент может использовать только клиентские лицензии сервера.

Работа с файловой базой данных через веб-сервер

При работе с «1С» через веб-сервер нагрузка на локальную сеть снижается в разы и перестает быть «узким местом». Однако, повышаются требования к «железу» сервера, ведь модуль веб-сервера большую часть работы по обслуживанию клиентских подключений берет на себя (в среднем, веб-сервер Apache при работе с одной ИБ и 3-5 пользователей использует 1 Гб оперативной памяти).

Установка веб-сервера Apache 2.4 для «1С»

Рассмотрим пример публикации через веб-сервер Apache 2.4. Для начала необходимо скачать дистрибутив с http://www.apachelounge.com/download/.

Важно! Разрядность веб-сервера Apache должна совпадать с разрядностью платформы «1С:Предприятие». Например, если используется Apache 2.4 x64, соответственно необходимо выполнять публикацию информационной базы «1С» в «технологической платформе 1С:Предприятия (64-bit)».

Кроме того, для правильной работы связки, необходимо произвести установку распространяемого пакета Visual C++ для Visual Studio 2015, той же самой разрядности, что и Apache, и платформа «1С:Предприятие». Найти установочный файл распространяемого пакета Visual C++ можно распаковав архивный файл платформы «1С:Предприятие» (файл vc_redist.x64.exe) или с сайта https://www.microsoft.com/ru-ru/download/details.aspx?id=48145

Полученный архив дистрибутива нужно распаковать, например в каталог D:\www\Apache24. Далее, находим конфигурационный файл httpd.conf в каталоге bin (D:\www\Apache24\bin\httpd.conf) и открываем для редактирования (например, Блокнотом). Здесь важно внести несколько важных правок, а именно:

  • Listen 80 — указывается порт для работы веб-сервера, по умолчанию 80. Можно оставить по умолчанию;
  • Define SRVROOT "c:/Apache24" — указывается путь к каталогу веб-сервера. В нашем примере нужно изменить на D:/www/Apache24;
  • ServerAdmin admin@example.com — указать адрес электронной почты администратора;
  • #ServerName www.example.com:80 — раскомментировать строку, убрав символ «#» в начале строки и вместо «www.example.com:80» указать localhost.

Следующим шагом необходимо добавить в системную переменную Path путь к каталогу с веб-сервером. Для этого необходимо зайти: Панель управления — Все элементы панели управления — Система — Дополнительные параметры системы — кнопка «Переменные среды». В поле «Системные переменные» найти переменную Path, выделить ее, и нажать кнопку «Изменить». Добавить в конец строки разделитель значений ; и путь к веб-серверу D:\www\Apache24\bin.

Чтобы завершить установку веб-сервера Apache необходимо установить его службой в операционную систему: запустить командную строку cmd с правами администратора и выполнить следующую команду:

httpd.exe -k install

После создания службы стоит удостовериться в правильном ее создании и типе запуска: Панель управления — Все элементы управления — Администрирование — Службы. Если состояние службы «Выполняется», значит веб-сервер установлен и запущен. Тип запуска должен быть «Автоматически». Тогда веб-сервер будет стартовать автоматически вместе с запуском операционной системы. Для проверки работоспособности Apache необходимо в браузере ввести адрес http://localhost/. Если в браузере будет получено сообщение «It works!», значит все в порядке и можно приступать к публикации базы «1С».

Публикация базы «1С» на веб-сервере

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

Модули расширения веб-сервера 1С

Второе, запустить «1С» от имени «Администратора», открыть базу в режиме «Конфигуратор» — Администрирование — Публикация на веб-сервере.

Публикация 1С на веб-сервере

Заполнить несколько полей:

  • Имя — необходимо заполнять только латиницей. Никаких кириллических символов, а так же пробелов быть не должно. Допускается символ нижнего подчеркивания _. В нашем примере имя будет buh1;
  • Каталог — путь к каталогу публикации, в нашем примере можно использовать подкаталог в D:\www\pub1. Так же запрещено использовать кириллические символы в наименованиях каталогов.

Третье, нажать кнопку «Опубликовать». После успешной публикации необходимо вручную перезапустить службу Apache2.4, т.к. платформе «1С:Предприятие» не всегда корректно удается перезапустить веб-сервер.

Важно! Для публикации нескольких информационных баз «1С» необходимо давать уникальные имена и каталоги. Публикация в один каталог будет затирать предыдущую.

Четвертое, проверяем публикацию информационной базы. В браузере открываем следующий адрес http://localhost/buh1. Если все шаги были проведены верно, информационная база будет открыта прямо в браузере.

Доступ к опубликованной базе с других компьютеров

Для доступа к опубликованной базе на других компьютерах в локальной сети необходимо добавить в список существующую информационную базу, дать понятное наименование, установить флаг «на веб-сервере» и в поле «адрес информационной базы» указать: http://ip-адрес-главного-компьютера/имя-базы. В нашем примере получится следующее: http://192.168.1.101/buh1.

Статический ip-адрес

У сервера должен быть статический ip-адрес. Ведь, если главному компьютеру будет назначен другой ip-адрес, то клиентские компьютеры не смогут получить доступ к информационной базе.

Блокировка порта веб-сервера

По умолчанию, в настройках брандмауэра Защитника Windows (и других антивирусных продуктов со встроенным фаерволом) запрещен доступ к порту 80. Что бы «1С» смогла подключиться к веб-серверу главного компьютера необходимо добавить правило входящего подключения к порту веб-сервера: Панель управления — Все элементы панели управления — Брандмауэр Защитника Windows — Дополнительные параметры — Правила для входящих подключений — Создать правило. Указать следующие параметры: Для порта, Протокол: TCP, Определенные локальные порты: 80 Разрешить подключение, для всех профилей локальной сети (доменный, частный, публичный). Указать понятное имя для правила, например «1C Apache 80».

Выводы

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

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