В практике администрирования систем на базе 1С:Предприятие часто возникает классическая проблема: файловая база данных, к которой пользователи подключаются через общую сетевую папку (по протоколу SMB, используя путь вида \\имя_сервера\база), начинает работать критически медленно. При этом на самом компьютере-сервере, где физически лежит база, скорость работы остается высокой. Попытки решить эту проблему через веб-публикацию часто приводят к конфликтам программных лицензий 1С.
В этой статье мы подробно разберем, почему файловая база тормозит при работе по сети, как правильно настроить веб-публикацию для ускорения работы, как решить проблемы с раздачей лицензий и какие профилактические меры необходимы для баз объемом более 8 Гб.
Рассмотрим механизм работы файловой базы 1С в режиме общего сетевого доступа. Когда клиентский компьютер запускает 1С и подключается к файлу 1Cv8.1CD через сетевую папку, вся вычислительная нагрузка ложится на процессор и оперативную память клиентского ПК. Сетевой компьютер выполняет роль обычного внешнего накопителя.
При выполнении любых запросов (поиске номенклатуры, формировании отчетов, проведении документов) тонкий клиент вынужден считывать огромные объемы данных и индексов непосредственно через локальную сеть. Даже в сети 100 Мбит/с пропускной способности катастрофически не хватает для постоянной передачи тяжелых таблиц базы данных. В результате возникают следующие проблемы:
Попытка решить проблему «в лоб» заменой сетевого оборудования не всегда дает желаемый результат, так как сам протокол SMB плохо приспособлен для работы с файлами баз данных в многопользовательском режиме.
Для того чтобы исключить передачу «сырых» данных базы по сети, необходимо перенести процесс выполнения запросов непосредственно на сторону сервера, где физически расположен файл базы данных. Сделать это в файловом режиме можно с помощью публикации базы на веб-сервере (под управлением Apache или IIS).
При такой схеме работы веб-сервер запускается на машине с базой данных и взаимодействует с файлом 1Cv8.1CD локально на максимальной скорости. Клиентские компьютеры отправляют на сервер лишь легкие HTTP- или HTTPS-запросы и получают обратно готовые структуры данных интерфейса. Сетевой трафик снижается в десятки раз, а скорость работы на удаленных рабочих местах приближается к скорости работы на самом сервере.
При первой настройке веб-публикации администраторы часто сталкиваются с проблемой: при подключении пользователя по веб-интерфейсу блокируется запуск 1С на самом сервере из-за нехватки лицензий. Выясним причину этого поведения, проанализировав два сценария работы:
Сценарий 1. Работа через браузер (Веб-клиент)
Браузеры (Chrome, Firefox, Safari) не умеют работать с локальными программными лицензиями 1С (файлами .lic), установленными на компьютерах пользователей. В этом случае задачу поиска и получения лицензии полностью берет на себя веб-сервер. Он обращается к файлам лицензий, расположенным на самом сервере. Если на сервере установлена обычная однопользовательская лицензия, веб-сервер отдает ее первому подключившемуся веб-клиенту. Сам сервер при этом остается без лицензии, и запуск 1С на нем становится невозможным.
Сценарий 2. Работа через платформу 1С (Тонкий клиент в режиме веб-сервера)
Это наиболее правильный и производительный вариант. Пользователи запускают не браузер, а стандартную установленную платформу «1С:Предприятие» на своих компьютерах. Однако в настройках подключения к информационной базе указывается не сетевой путь к папке, а URL-адрес веб-публикации.
Тонкий клиент при таком подключении работает так же быстро, как и браузер, но при этом он способен использовать локальную программную лицензию, установленную на клиентском компьютере! Веб-сервер в этом случае не тратит свои лицензии на раздачу клиентам.
Разберем по шагам, как настроить подключение на стороне клиента для использования локальной лицензии:
http://192.168.1.10/MyBase или http://имя_сервера/MyBase).Теперь при запуске базы данных тонкий клиент сначала считает локальный файл лицензии на клиентском ПК, успешно авторизуется и подключится к базе через веб-сервер без использования лицензий сервера.
Если размер вашей файловой базы превысил 8 Гб, она находится в зоне повышенного риска. Архитектура файловой базы данных 1С накладывает жесткое ограничение: размер одной внутренней таблицы внутри файла 1Cv8.1CD (например, таблицы индексов или движений крупного регистра накопления) по умолчанию не может превышать 4 Гб. Если этот лимит будет достигнут, база аварийно прекратит работу на запись.
Для решения этой проблемы без дорогостоящего перехода на SQL-версию можно увеличить размер внутренней страницы файла базы данных со стандартных 4 Кб до 64 Кб. Это увеличит лимит размера одной таблицы до 6 Гб и более, обеспечив стабильную работу базы данных при росте ее объема.
Для конвертации базы воспользуемся штатной утилитой cnvdbfl.exe:
1Cv8.1CD в безопасное место).C:\Program Files\1cv8\8.3.15.1565\bin\).cnvdbfl.exe.1Cv8.1CD.Процесс конвертации может занять некоторое время в зависимости от производительности дисковой подсистемы сервера.
При использовании веб-сервера важно помнить, что процессы Apache или IIS постоянно удерживают файл базы данных открытым и заблокированным. Простое копирование папки с базой «на горячую» во время работы веб-сервера может привести к созданию поврежденной резервной копии.
Рассмотрим правильный алгоритм создания «холодного» бэкапа:
net stop Apache2.2
Если вы используете встроенный Windows IIS, выполните:
iisreset /stop
1Cv8.1CD (или всю папку базы данных) в архивный каталог.
net start Apache2.2
или для IIS:
iisreset /start
Перед проведением любых регламентных работ в Конфигураторе (таких как «Тестирование и исправление») настоятельно рекомендуется выполнять предварительную проверку физической целостности базы данных с помощью утилиты chdbfl.exe, которая также находится в каталоге bin установленной платформы 1С. Она способна исправить физические повреждения структуры файла базы еще до того, как они приведут к логическим ошибкам в Конфигураторе.
Если база данных продолжает активно расти, а количество одновременно работающих пользователей увеличивается, даже веб-публикация файлового варианта со временем начнет вызывать задержки из-за транзакционных блокировок. В этом случае единственным надежным выходом является переход на клиент-серверный режим.
Для небольших компаний покупка стандартной серверной лицензии 1С может оказаться слишком дорогой. Рассмотрим экономичный вариант перехода на SQL:
Связка из «1С:Сервер МИНИ» и СУБД PostgreSQL полностью избавит вас от проблем с ограничением размера базы данных, повысит безопасность хранения информации и обеспечит стабильную параллельную работу пользователей без взаимных блокировок.
В учебных целях и для быстрых тестов часто используют старые версии веб-сервера Apache (например, ветку 2.2). Однако для реальной эксплуатации базы на операционных системах семейства Windows (Windows 7, 10, 11 или Windows Server) гораздо эффективнее использовать встроенный веб-сервер IIS (Internet Information Services).
Проанализируем преимущества использования IIS в среде Windows:
Для включения IIS достаточно перейти в «Панель управления» -> «Программы и компоненты» -> «Включение или отключение компонентов Windows», активировать службу IIS и службы разработки веб-приложений (включая ISAPI), после чего опубликовать базу из Конфигуратора 1С под правами Администратора.