Хранилище конфигурации 1С через HTTP работает так: на сервере запускается служба сервера хранилища (crserver), к ней по tcp обращается веб-сервер с модулем расширения 1С, а разработчики подключаются уже к веб-серверу по адресу вида http://сервер/repo/repo.1ccr/ИмяХранилища. Связующее звено — небольшой XML-файл с расширением .1ccr, в котором записана строка подключения к серверу хранилища.
Такую схему я использую, когда команда разработки распределённая и пробрасывать порт сервера хранилища наружу не хочется. Ниже — сборка на Windows с Apache 2.4: что установить, какие файлы поправить и где обычно ломается.
Когда нужен доступ к хранилищу через веб-сервер
Хранилище можно открыть тремя способами:
| Способ | Адрес | Когда подходит |
|---|---|---|
| Файловый | \\server\repo\erp | Один-два разработчика в одной сети |
| Сервер хранилища (tcp) | tcp://server:1542/erp | Команда в локальной сети или VPN |
| Через веб-сервер (http/https) | http://server/repo/repo.1ccr/erp | Удалённые разработчики, доступ из интернета, прокси с журналом |
Файловый вариант самый медленный и чувствителен к обрывам сети. Сервер хранилища быстрее и надёжнее. Веб-публикация добавляет поверх него ещё один слой: снаружи виден только веб-сервер, на нём легко включить HTTPS, ограничить доступ по IP, вести журнал запросов. Для распределённой команды это обычно лучший вариант.

Что понадобится
- Платформа 1С:Предприятие той же версии, на которой работают разработчики, с компонентами «Сервер хранилища конфигураций» и «Модули расширения веб-сервера».
- Apache 2.4 для Windows. Его разрядность должна совпадать с разрядностью установленной платформы: модуль
wsap24.dllиз 32-битной платформы не загрузится в 64-битный Apache и наоборот. Это самая частая ошибка при первой установке. - Каталог для хранилищ на быстром диске с регулярным резервным копированием.
- Отдельная учётная запись Windows для службы сервера хранилища с правами на этот каталог.
Все компоненты я раскладываю в один корневой каталог, например D:\devops: D:\devops\Apache24, D:\devops\repo-data, D:\devops\repo-web. Так проще переносить стенд и писать инструкции для коллег.
Шаг 1. Сервер хранилища конфигурации
Служба сервера хранилища ставится утилитой crserver.exe из каталога bin установленной платформы. Запускаем командную строку от имени администратора:
cd "C:\Program Files\1cv8\8.3.24.1342\bin"
crserver.exe -instsrvc -usr .\repo_svc -pwd "ПарольСлужбы" -port 1542 -d "D:\devops\repo-data"Здесь -d — каталог данных сервера хранилища, -port — порт, -usr и -pwd — учётная запись службы. После установки служба запускается из оснастки «Службы». Номер версии в пути — пример, подставьте свою.
Если нужно держать хранилища разных версий платформы, ставится по службе на каждую версию на разных портах: 1542, 1642 и так далее.
Проверка: в конфигураторе выберите «Конфигурация → Хранилище конфигурации → Создать хранилище», укажите tcp://localhost:1542/test и создайте пустое тестовое хранилище. Если не получается — дальше идти нет смысла, сначала разберитесь со службой и брандмауэром.
Шаг 2. Файл .1ccr
Веб-сервер не хранит конфигурацию, он лишь передаёт запросы серверу хранилища. Куда передавать, описывает файл с расширением .1ccr. Создайте каталог D:\devops\repo-web и в нём файл repo.1ccr:
<?xml version="1.0" encoding="UTF-8"?>
<repository connectString="tcp://localhost:1542"/>Имя файла может быть любым, расширение — обязательно .1ccr. Если сервер хранилища стоит на другой машине, в connectString пишется её имя или адрес. Для второй версии платформы рядом кладётся второй файл, например repo-24.1ccr с другим портом.
Шаг 3. Apache 2.4 и модуль 1С
Распакуйте Apache в D:\devops\Apache24. В файле conf\httpd.conf поправьте Define SRVROOT на фактический путь и, при необходимости, порт в Listen.
Затем в конец httpd.conf добавьте подключение модуля расширения 1С и описание каталога с файлом .1ccr:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.24.1342/bin/wsap24.dll"
Alias "/repo" "D:/devops/repo-web/"
<Directory "D:/devops/repo-web/">
AllowOverride None
Options None
Require all granted
SetHandler 1c-application
</Directory>Обратите внимание на слеши: в конфигурации Apache пути пишутся через прямой слеш /, даже на Windows. Путь с обратными слешами — вторая по частоте причина, почему модуль «не находится».
Проверяем синтаксис и регистрируем Apache как службу:
cd D:\devops\Apache24\bin
httpd -t
httpd -k install
httpd -k startКоманда httpd -t должна вывести Syntax OK. Если она ругается на LoadModule, проверьте путь и разрядность.
Шаг 4. Подключение из конфигуратора
У разработчика: «Конфигурация → Хранилище конфигурации → Подключиться к хранилищу». В поле адреса:
http://repo.local/repo/repo.1ccr/erpГде repo.local — имя веб-сервера, /repo — псевдоним из Alias, repo.1ccr — файл подключения, erp — имя хранилища на сервере хранилища. Учётная запись и пароль — пользователя хранилища, а не Windows.
Для работы через интернет обязательно включайте HTTPS: в хранилище уходят исходные тексты всей конфигурации. Сертификат можно повесить на сам Apache или на обратный прокси перед ним (nginx и аналоги). Через прокси же удобно ограничить размер тела запроса: помещение в хранилище большой конфигурации — это крупные запросы, и слишком маленький лимит прокси обрывает операцию.
Типичные ошибки
| Симптом | Причина | Что сделать |
|---|---|---|
httpd -t ругается на LoadModule | Разрядность Apache и платформы разная или неверный путь | Поставить Apache нужной разрядности, проверить путь и прямые слеши |
| 404 при подключении | Неверный Alias или имя файла .1ccr в адресе | Сверить адрес с конфигурацией Apache |
| Ошибка соединения с сервером хранилища | Служба crserver не запущена или закрыт порт | Проверить службу и подключение по tcp:// напрямую |
| Несовпадение версий | Версия платформы у разработчика отличается от версии сервера хранилища | Обновить клиента или поднять службу нужной версии |
| Обрыв при помещении больших объектов | Лимиты тела запроса или таймауты на прокси | Увеличить лимиты на прокси и веб-сервере |
| После обновления платформы всё перестало работать | В LoadModule остался путь к старой версии | Обновить путь к wsap24.dll и перезапустить Apache |
Последний пункт встречается постоянно: платформу обновили, старый каталог удалили, а Apache продолжает ссылаться на него. Я держу путь к модулю в одной переменной через Define и меняю его в одном месте.
Обслуживание и резервное копирование
Хранилище — это вся история разработки, и потерять его больнее, чем рабочую базу. Минимальный набор:
- ежедневное копирование каталога данных сервера хранилища с остановкой службы или средствами, которые гарантируют целостную копию;
- журнал Apache с запросами к
/repo, чтобы видеть, кто и когда подключался; - периодическая проверка, что из копии хранилище реально поднимается.
Если вокруг хранилища уже выстраивается конвейер — автоматическая выгрузка в Git, сборка, проверки, — это отдельная задача DevOps для 1С. Подготовку сервера под платформу и хранилища удобно делать вместе с настройкой сервера 1С, а публикацию рабочих баз на том же веб-сервере — в рамках веб-доступа к 1С.
Веб-сервер в этой схеме ничего не хранит: он только пробрасывает запросы к серверу хранилища. Поэтому надёжность определяется службой crserver и её резервными копиями, а Apache достаточно правильно настроить один раз.
Итог
- Хранилище конфигурации 1С через HTTP — это цепочка «конфигуратор → Apache с модулем 1С → файл .1ccr → сервер хранилища».
- Разрядность Apache и платформы должна совпадать, пути в
httpd.confпишутся через прямой слеш. - Сначала проверьте подключение по
tcp://, потом настраивайте веб-сервер — так проще искать ошибки. - Для доступа из интернета нужен HTTPS и достаточные лимиты на размер запросов.
- После обновления платформы не забывайте менять путь к модулю веб-сервера.




