Развертывание клиент-серверной версии платформы 1С:Предприятие на базе клиентской операционной системы Windows 7 Professional x64 — задача нестандартная, но вполне выполнимая. Подобный сценарий часто встречается в небольших компаниях с ограниченным бюджетом, где уже имеется лицензионная копия Windows 7, приобретен сервер 1С (например, лицензия на сервер МИНИ), но покупка дорогостоящей серверной ОС от Microsoft (Windows Server) нецелесообразна.
В этой статье мы подробно рассмотрим, как правильно развернуть связку из сервера 1С и СУБД на Windows 7 x64 для 5 пользователей, проанализируем совместимость ПО, разберем необходимые системные обновления, а также изучим тонкости оптимизации системы на относительно слабом оборудовании.
Первый и самый важный вопрос, который возникает при планировании такой архитектуры: какую СУБД выбрать и какая версия запустится на Windows 7? Клиентская операционная система накладывает жесткие ограничения на современные версии баз данных. Рассмотрим два основных варианта СУБД.
Вариант 1: Microsoft SQL Server
Если вы планируете использовать СУБД от Microsoft, вам необходимо знать следующие ограничения:
SQL Server Express, однако помните о ее жестких ограничениях: использование только 1 CPU (до 4 ядер), до 1.4 ГБ оперативной памяти под буферный пул и максимальный размер базы данных в 10 ГБ.Вариант 2: PostgreSQL
Для работы с платформой 1С на Windows 7 оптимально использовать сборку PostgreSQL, адаптированную компанией «1С»:
pgAdmin 4 современных версий также имеет проблемы с совместимостью. Последняя стабильно работающая версия pgAdmin 4 под Windows 7 — это v4.30.Современные платформы 1С (начиная с релизов 8.3.18 и выше) и дистрибутивы СУБД не запустятся на «чистой» операционной системе Windows 7 сразу после установки с диска. Чтобы инсталляторы не выдавали критических ошибок, нам необходимо подготовить ОС. Выясним, какие патчи от Microsoft обязательно должны быть установлены в системе:
rphost, rmngr) и процессы PostgreSQL просто откажутся запускаться, выдавая системные ошибки об отсутствии библиотек api-ms-win-crt-runtime-l1-1-0.dll.SQL Server Management Studio (SSMS) версии 17.9 (последняя версия, поддерживающая Windows 7) требует предустановленного .NET Framework для корректного отображения интерфейса.Поскольку Windows 7 Professional — это клиентская операционная система, предназначенная для персонального использования, а не для серверов, в ее ядре заложены определенные лимиты, о которых нужно знать заранее:
Проанализируем конфигурацию оборудования, упомянутую в обсуждении: старый процессор Intel Core i3 и 12 ГБ оперативной памяти. При развертывании связки «Сервер 1С + СУБД + операционная система» на одном физическом компьютере с такими характеристиками, аппаратные ресурсы быстро станут узким местом. Без ручной оптимизации система неизбежно начнет зависать.
Рассмотрим по шагам, какие настройки необходимо выполнить для обеспечения стабильной работы.
Шаг 1: Ограничение потребления оперативной памяти СУБД
По умолчанию и MS SQL Server, и PostgreSQL настроены так, чтобы захватывать под свой кэш всю доступную оперативную память хоста. На сервере с 12 ГБ ОЗУ это приведет к тому, что СУБД заберет 10-11 ГБ, лишив операционную систему и сам сервер 1С (процессы rphost) ресурсов. Начнется активное использование файла подкачки (свопинг), что приведет к катастрофическому падению производительности.
Для ограничения аппетитов MS SQL Server выполним в среде SQL Server Management Studio следующий скрипт, устанавливающий верхний лимит использования памяти СУБД на уровне 4 ГБ (4096 МБ):
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'max server memory (MB)', 4096;
RECONFIGURE;
GO
Если вы используете PostgreSQL, откройте конфигурационный файл postgresql.conf и скорректируйте параметры распределения памяти для хоста с 12 ГБ ОЗУ, оставив под кэш базы данных разумный объем:
# Ограничиваем буферную память СУБД (выделяем около 25-30% от всей памяти хоста)
shared_buffers = 3GB
# Задаем объем памяти для временных операций сортировки на один запрос
work_mem = 32MB
# Ограничиваем максимальное количество одновременных подключений к СУБД
max_connections = 40
Шаг 2: Установка твердотельного накопителя (SSD)
Использование обычного жесткого диска (HDD) для размещения файлов баз данных SQL гарантирует медленную работу системы даже при 5 пользователях. Причина кроется в высоком времени отклика HDD при случайном чтении и записи мелких блоков данных, характерных для транзакционной нагрузки 1С. Установка даже бюджетного SSD-накопителя (SATA III) под операционную систему, базы данных СУБД и временные файлы 1С (каталоги сеансов, tempdb) увеличит скорость работы системы в несколько раз.
В ходе обсуждения на форуме было отмечено, что в качестве рабочей конфигурации используется «Управление торговлей 10.3». Данное прикладное решение разработано на обычных (неуправляемых) формах платформы 1С. Из этого следует важный вывод: запустить полноценный тонкий клиент или веб-клиент через интернет-браузер для работы пользователей не получится, так как обычные формы не поддерживают исполнение в веб-клиенте.
Тем не менее, веб-сервер (Apache или IIS) на нашем «сервере» под Windows 7 все равно может понадобиться. Автор темы упомянул необходимость круглосуточного обмена с сайтом интернет-магазина. Организовать надежный обмен данными лучше всего не через регламентные задания внутри 1С, которые могут зависнуть, а с помощью механизма HTTP-сервисов.
В этой схеме веб-сервер будет принимать входящие запросы от сайта (например, о наличии товара или для выгрузки новых заказов) и передавать их в базу 1С в режиме реального времени. Разберем особенности настройки веб-компонентов:
Выполнение этих рекомендаций позволит развернуть стабильно функционирующий сервер 1С на базе ОС Windows 7 Professional x64, который успешно справится с обслуживанием 5 активных пользователей в конфигурации УТ 10.3 и обеспечит бесперебойную интеграцию базы данных с веб-сайтом.