Как ускорить работу файловой базы 1С по сети и решить проблему с лицензиями при веб-публикации?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет IT и автоматизация бизнеса
← На главную

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

В этой статье мы подробно разберем, почему файловая база тормозит при работе по сети, как правильно настроить веб-публикацию для ускорения работы, как решить проблемы с раздачей лицензий и какие профилактические меры необходимы для баз объемом более 8 Гб.

Анализ проблемы: почему файловая 1С тормозит по локальной сети?

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

При выполнении любых запросов (поиске номенклатуры, формировании отчетов, проведении документов) тонкий клиент вынужден считывать огромные объемы данных и индексов непосредственно через локальную сеть. Даже в сети 100 Мбит/с пропускной способности катастрофически не хватает для постоянной передачи тяжелых таблиц базы данных. В результате возникают следующие проблемы:

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

Решение проблемы с помощью веб-публикации

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

При такой схеме работы веб-сервер запускается на машине с базой данных и взаимодействует с файлом 1Cv8.1CD локально на максимальной скорости. Клиентские компьютеры отправляют на сервер лишь легкие HTTP- или HTTPS-запросы и получают обратно готовые структуры данных интерфейса. Сетевой трафик снижается в десятки раз, а скорость работы на удаленных рабочих местах приближается к скорости работы на самом сервере.

Разбор конфликта лицензий: Веб-клиент против Тонкого клиента

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

Сценарий 1. Работа через браузер (Веб-клиент)
Браузеры (Chrome, Firefox, Safari) не умеют работать с локальными программными лицензиями 1С (файлами .lic), установленными на компьютерах пользователей. В этом случае задачу поиска и получения лицензии полностью берет на себя веб-сервер. Он обращается к файлам лицензий, расположенным на самом сервере. Если на сервере установлена обычная однопользовательская лицензия, веб-сервер отдает ее первому подключившемуся веб-клиенту. Сам сервер при этом остается без лицензии, и запуск 1С на нем становится невозможным.

Сценарий 2. Работа через платформу 1С (Тонкий клиент в режиме веб-сервера)
Это наиболее правильный и производительный вариант. Пользователи запускают не браузер, а стандартную установленную платформу «1С:Предприятие» на своих компьютерах. Однако в настройках подключения к информационной базе указывается не сетевой путь к папке, а URL-адрес веб-публикации.

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

Пошаговое руководство по настройке Тонкого клиента через веб-сервер

Разберем по шагам, как настроить подключение на стороне клиента для использования локальной лицензии:

  1. Запустите окно запуска «1С:Предприятие» на клиентском компьютере.
  2. Выберите нужную информационную базу и нажмите кнопку «Изменить».
  3. На первом шаге оставьте наименование базы прежним и нажмите «Далее».
  4. В окне выбора типа расположения базы выберите вариант «На веб-сервере».
  5. В поле «Адрес информационной базы» укажите точный URL-адрес вашей публикации (например, http://192.168.1.10/MyBase или http://имя_сервера/MyBase).
  6. Нажмите кнопку «Далее». В дополнительных параметрах запуска убедитесь, что в качестве основного режима запуска выбран «Тонкий клиент».
  7. Нажмите кнопку «Готово».

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

Борьба с ограничениями файлового режима: утилита cnvdbfl.exe

Если размер вашей файловой базы превысил 8 Гб, она находится в зоне повышенного риска. Архитектура файловой базы данных 1С накладывает жесткое ограничение: размер одной внутренней таблицы внутри файла 1Cv8.1CD (например, таблицы индексов или движений крупного регистра накопления) по умолчанию не может превышать 4 Гб. Если этот лимит будет достигнут, база аварийно прекратит работу на запись.

Для решения этой проблемы без дорогостоящего перехода на SQL-версию можно увеличить размер внутренней страницы файла базы данных со стандартных 4 Кб до 64 Кб. Это увеличит лимит размера одной таблицы до 6 Гб и более, обеспечив стабильную работу базы данных при росте ее объема.

Для конвертации базы воспользуемся штатной утилитой cnvdbfl.exe:

  1. Обязательно завершите работу всех пользователей и остановите службу вашего веб-сервера.
  2. Сделайте резервную копию папки с базой данных (скопируйте файл 1Cv8.1CD в безопасное место).
  3. Перейдите в каталог установленной платформы 1С на сервере (например, C:\Program Files\1cv8\8.3.15.1565\bin\).
  4. Найдите и запустите файл cnvdbfl.exe.
  5. В поле «Имя файла базы данных» выберите ваш рабочий файл 1Cv8.1CD.
  6. В выпадающем списке «Размер страницы» выберите значение 64 Кб (65536).
  7. Установите флаг «Сжатие таблиц» для оптимизации пространства и нажмите кнопку «Выполнить».

Процесс конвертации может занять некоторое время в зависимости от производительности дисковой подсистемы сервера.

Безопасное обслуживание и резервное копирование базы данных

При использовании веб-сервера важно помнить, что процессы Apache или IIS постоянно удерживают файл базы данных открытым и заблокированным. Простое копирование папки с базой «на горячую» во время работы веб-сервера может привести к созданию поврежденной резервной копии.

Рассмотрим правильный алгоритм создания «холодного» бэкапа:

  1. Остановите веб-сервер. Для этого запустите командную строку от имени администратора и выполните команду остановки службы. Если вы используете Apache: net stop Apache2.2 Если вы используете встроенный Windows IIS, выполните: iisreset /stop
  2. Скопируйте файл 1Cv8.1CD (или всю папку базы данных) в архивный каталог.
  3. Запустите веб-сервер обратно с помощью команд: net start Apache2.2 или для IIS: iisreset /start

Перед проведением любых регламентных работ в Конфигураторе (таких как «Тестирование и исправление») настоятельно рекомендуется выполнять предварительную проверку физической целостности базы данных с помощью утилиты chdbfl.exe, которая также находится в каталоге bin установленной платформы 1С. Она способна исправить физические повреждения структуры файла базы еще до того, как они приведут к логическим ошибкам в Конфигураторе.

Экономичный переход на полноценный SQL (клиент-сервер)

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

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

  1. Лицензия «1С:Сервер МИНИ на 5 подключений»: это официальная и доступная по цене лицензия от компании 1С. Она имеет ограничение на работу не более 5 сеансов пользователей одновременно (+ 1 сеанс Конфигуратора), чего вполне достаточно для небольших офисов.
  2. Использование бесплатной СУБД PostgreSQL: вам не потребуется покупать дорогостоящую лицензию Microsoft SQL Server. 1С официально поддерживает работу с PostgreSQL. Рекомендуется использовать специальную сборку, оптимизированную для работы с решениями 1С (например, Postgres Pro).

Связка из «1С:Сервер МИНИ» и СУБД PostgreSQL полностью избавит вас от проблем с ограничением размера базы данных, повысит безопасность хранения информации и обеспечит стабильную параллельную работу пользователей без взаимных блокировок.

Выбор веб-сервера на Windows: почему IIS лучше устаревшего Apache?

В учебных целях и для быстрых тестов часто используют старые версии веб-сервера Apache (например, ветку 2.2). Однако для реальной эксплуатации базы на операционных системах семейства Windows (Windows 7, 10, 11 или Windows Server) гораздо эффективнее использовать встроенный веб-сервер IIS (Internet Information Services).

Проанализируем преимущества использования IIS в среде Windows:

Для включения IIS достаточно перейти в «Панель управления» -> «Программы и компоненты» -> «Включение или отключение компонентов Windows», активировать службу IIS и службы разработки веб-приложений (включая ISAPI), после чего опубликовать базу из Конфигуратора 1С под правами Администратора.

← На главную