← На главную
При совместной командной разработке в среде 1С:Предприятие часто встает вопрос выбора способа подключения к хранилищу конфигурации: использовать общий сетевой каталог (SMB-ресурс) или развернуть выделенный сервер хранилища (службу crserver). Разберем детально, как устроена работа службы, в каких сценариях переход на серверный вариант обязателен, с какими подводными камнями можно столкнуться и как правильно организовать эксплуатацию хранилища.
Архитектурные отличия службы crserver от файлового хранилища
В файловом варианте конфигуратор каждого разработчика обращается к файлам хранилища напрямую через протокол сетевого доступа ОС (SMB). В этом случае рабочая станция выполняет чтение и запись служебных таблиц хранилища по сети, что создает колоссальную нагрузку на файловый сервер и канал связи. Любое кратковременное прерывание сетевого соединения при выполнении коммита или захвата объекта может привести к нарушению целостности базы данных хранилища.
Рассмотрим, как меняется схема при использовании службы crserver:
- Служба сервера хранилища запускается непосредственно на машине, где лежат файлы хранилища, и работает с ними локально через системный дисковый кэш операционной системы.
- Клиентские конфигураторы обмениваются со службой оптимизированными блоками данных по собственному протоколу TCP (по умолчанию порт 1542) или через веб-сервер по протоколу HTTP/HTTPS.
- Блокировки и координация сеансов ложатся на процесс
crserver, исключая конфликты файловой системы и сетевых блокировок SMB.
Ключевые преимущества работы через службу
Проанализируем практические плюсы, которые дает служба сервера хранилища в реальной разработке:
- Стабильность при медленных и нестабильных каналах связи. При передаче данных по TCP клиенты не держат открытые файловые дескрипторы удаленного диска. На практике при распределенной разработке или подключении удаленных баз по широким, но географически удаленным каналам время получения обновлений сокращается в разы (например, с десятков минут до считанных минут) благодаря отсутствию накладных расходов протокола SMB.
- Безопасность и защита от повреждения данных. Файлы хранилища не требуется открывать в общий сетевой доступ с правами на запись для всех разработчиков. Каталог доступен только локальной учетной записи службы. Это защищает базу от случайного удаления файлов пользователями и предотвращает повреждение вирусами-шифровальщиками.
- Исключение проблем сетевой репликации и распределенных папок. Использование файлового хранилища поверх технологий распределенных файловых систем (например, DFS) категорически противопоказано, так как задержки синхронизации неизбежно вызывают рассинхронизацию версий и потерю кода. Служба
crserver исключает эту проблему, обеспечивая единую точку входа.
- Снижение вероятности блокировок. Количество коллизий при одновременной работе нескольких специалистов существенно снижается по сравнению с файловой шарой.
Технические требования и подводные камни
Рассмотрим ограничения и обязательные правила, которые необходимо учитывать при переходе на crserver:
- Строгое совпадение версий платформы. Версия запущенной службы
crserver должна абсолютно точно соответствовать версии платформы клиентского конфигуратора вплоть до номера сборки (билда). Если рабочая база данных подключена к хранилищу напрямую для обновления конфигурации поставщика, версия сервера 1С:Предприятия, разработчиков и сервера хранилища обязана быть идентичной. При регулярных обновлениях платформы необходимо не забывать обновлять и службу хранилища.
- Разрядность процесса службы. Для тяжелых конфигураций (таких как ERP, КА, Управление холдингом) критически важно регистрировать и запускать 64-разрядную версию
crserver. 32-разрядный процесс ограничен адресным пространством памяти в 2–4 ГБ и при фиксации объемных изменений или сравнении релизов может аварийно завершаться из-за нехватки оперативной памяти.
- Особенности работы через веб-сервер (HTTP/HTTPS). Если хранилище публикуется на веб-сервере для удаленных сотрудников, стандартные таймауты веб-сервера (IIS или Apache) могут приводить к ошибкам разрыва соединения при выгрузке крупных объектов. В конфигурации веб-сервера требуется задавать увеличенные таймауты обработки запросов (от 1800 до 3600 секунд).
- Ошибки локального кэша конфигуратора. В процессе интенсивной разработки на рабочей станции может повредиться локальный кэш версий хранилища. В таких ситуациях клиент 1С может аварийно закрываться. Решением является очистка каталогов кэша в профиле пользователя операционной системы (каталоги
%LOCALAPPDATA%\1C\1Cv8\...) либо отключение конфигурации от хранилища с повторным подключением.
Практические рекомендации по обслуживанию
Выясним, какие регулярные регламентные действия необходимы для поддержания высокой скорости работы службы:
- Оптимизация и сокращение истории. База хранилища хранит все версии метаданных и со временем значительно разрастается. Через меню «Конфигурация — Хранилище конфигурации — Администрирование хранилища» рекомендуется периодически запускать операцию «Сократить...» (удаление устаревших промежуточных версий), после чего обязательно выполнять команду «Оптимизировать» для дефрагментации страниц базы.
- Настройка прав на файловую систему. Учетная запись, от имени которой запущена служба операционной системы, должна обладать полными правами (Full Control) на папку с хранилищем, иначе служба не сможет создавать временные структуры и индексы версий.
- Периодический перезапуск службы. При непрерывной нагрузке и сотнях коммитов в неделю процесс службы может накапливать фрагментированную память, поэтому полезно настроить регламентный перезапуск службы
crserver во внерабочее время.
Таким образом, развертывание хранилища через службу crserver оправдано и рекомендуется для любых команд численностью более одного человека, а также при наличии удаленных разработчиков или нестабильной локальной сети.