Групповая разработка в 1С 8.3: сервер хранилища, пользователи, захват объектов

· 9 мин

Содержание

Хранилище конфигурации 1С 8.3 создают в конфигураторе: Конфигурация → Хранилище конфигурации → Создать хранилище.... В поле адреса указывают каталог на диске или адрес сервера хранилища вида tcp://имя_сервера/имя_хранилища, затем задают администратора хранилища. Для командной работы на сервере ставят отдельную службу crserver (порт по умолчанию — 1542), а не кладут хранилище в общую сетевую папку.

Частое заблуждение: «создадим на сервере папку, откроем к ней общий доступ — и это уже хранилище на сервере». Технически это работает, но обращение идёт по SMB к файловой базе хранилища. При трёх-четырёх разработчиках, медленной сети и антивирусе на файловом сервере такая схема тормозит и рискует повредить файл. Настоящая организация хранилища на сервере — это служба сервера хранилища и подключение по TCP.

Что подготовить на сервере до создания хранилища

Три способа доступа к хранилищу отличаются скоростью и требованиями к инфраструктуре.

СпособАдрес в конфигуратореКогда подходитРиски
📁 Локальный или сетевой каталогD:\Repo\Buh или \\srv\Repo\BuhОдин разработчик, тестМедленно по сети, файл можно повредить при обрыве
🖥️ Сервер хранилища (crserver)tcp://srv/BuhКоманда в одной сетиНужна служба и открытый порт
🌐 Публикация через веб-серверhttp://srv/repo/...Разработчики вне офисаНужен веб-сервер, настройка публикации

Для командной работы выбирайте второй вариант. Подготовка займёт полчаса.

Компоненты платформы

Сервер хранилища входит в дистрибутив серверной части платформы. В установщике выберите компонент «Сервер хранилища конфигураций 1С:Предприятия». После установки исполняемый файл лежит в каталоге платформы, например C:\Program Files\1cv8\8.3.24.1548\bin\crserver.exe.

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

Каталог и учётная запись службы

  • 📂 Заведите каталог-корень для всех хранилищ, например D:\Repositories. Лучше на SSD и не на системном диске.
  • 👤 Служба работает от учётной записи (обычно USR1CV8 или отдельная доменная). Ей нужны полные права на каталог-корень.
  • 🛡️ Добавьте каталог в исключения антивируса: проверка файлов при каждой записи заметно замедляет помещение изменений.
  • 🔌 Откройте входящий TCP-порт 1542 в брандмауэре сервера.

Регистрация службы

Службу регистрируют из командной строки, запущенной от администратора:

cd "C:\Program Files\1cv8\8.3.24.1548\bin"
crserver.exe -instsrvc -usr .\USR1CV8 -pwd ПарольСлужбы -port 1542 -d "D:\Repositories"
crserver.exe -start

Параметр -d задаёт каталог-корень. Все адреса tcp:// дальше считаются относительно него. Хранилище по адресу tcp://srv/Buh окажется в папке D:\Repositories\Buh.

Нестандартный порт указывают в адресе: tcp://srv:1642/Buh. Это пригодится, если на одном сервере работают два сервера хранилища разных версий.

Проверьте, что служба запустилась: в services.msc она должна быть в состоянии «Выполняется». С рабочего места разработчика доступность порта проверяют в PowerShell:

Test-NetConnection srv -Port 1542

Создание хранилища конфигурации пошагово

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

Шаг 1. Подготовить базу-источник

  1. Сделайте резервную копию: Администрирование → Выгрузить информационную базу в файл .dt.
  2. Если конфигурация типовая и стоит на поддержке, проверьте, что изменения разрешены: Конфигурация → Поддержка → Настройка поддержки. При режиме «без возможности изменения» объекты нельзя будет захватывать и править.
  3. Сохраните основную конфигурацию в базу данных, если в ней есть несохранённые правки (F7). В хранилище попадёт именно основная конфигурация.

Шаг 2. Создать хранилище

  1. Откройте базу в режиме «Конфигуратор» и откройте дерево конфигурации.
  2. Выберите Конфигурация → Хранилище конфигурации → Создать хранилище....
  3. В поле «Адрес хранилища» введите tcp://srv/Buh (или путь к каталогу для файлового варианта).
  4. Укажите имя и пароль первого пользователя. Он станет администратором хранилища.
  5. Подтвердите создание. Платформа выгрузит конфигурацию в хранилище, и база автоматически окажется к нему подключена.

На большой типовой конфигурации вроде Бухгалтерии предприятия первичная выгрузка занимает от нескольких минут до получаса. Прерывать её нельзя.

Шаг 3. Подключить остальных разработчиков

У каждого разработчика своя копия базы для работы. Подключение из его базы:

  1. Конфигурация → Хранилище конфигурации → Подключиться к хранилищу....
  2. Адрес тот же, имя и пароль — его личные, выданные администратором.
  3. Платформа предложит заменить конфигурацию базы конфигурацией из хранилища. Согласитесь: база должна совпадать с хранилищем.

Конфигурация базы при подключении замещается конфигурацией хранилища. Несохранённые в хранилище доработки в этой базе пропадут. Если они нужны — сначала сохраните конфигурацию в файл .cf.

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

Пользователи хранилища и права доступа

Пользователи хранилища не связаны ни с пользователями информационной базы, ни с учётными записями Windows. Это отдельный список, который ведёт администратор хранилища.

Окно управления открывается командой Конфигурация → Хранилище конфигурации → Администрирование.... Там можно добавить пользователя , сменить ему пароль и задать права.

ПравоЧто даётКому выдавать
ЧтениеПодключение, получение версий, просмотр истории (есть у всех)Тестировщики, аналитики
Захват объектовЗахват и помещение измененийРазработчики
Изменение состава версийРабота с метками и составом версийВедущий разработчик
Административные функцииПользователи, права, отмена чужих захватов1-2 человека

Практические правила, которые экономят разбор конфликтов:

  • 👥 Один человек — один пользователь хранилища. Общий логин «Разработчик» не даёт понять, кто и что поместил.
  • 🔁 Одна база — одно подключение пользователя. Если разработчик подключится тем же пользователем из второй базы, платформа предупредит о существующей привязке. Согласие перепривязывает пользователя, и первая база перестаёт видеть его захваты.
  • 🔐 Пароль администратора хранилища храните в менеджере паролей команды. Восстановить его без резервной копии хранилища нельзя.
  • 🚪 Уволившемуся сотруднику не удаляйте пользователя сразу. Сначала отмените его захваты из окна администрирования, затем заблокируйте вход сменой пароля. История его версий сохранится.

Захват объектов и версии в хранилище

Хранилище работает по принципу «один объект — один редактор». Пока справочник захвачен одним разработчиком, другой может только читать его.

Основной цикл работы

  1. Открыть окно хранилища: Конфигурация → Хранилище конфигурации → Хранилище. Иконки в дереве показывают состояние: зелёная галочка — объект захвачен вами, красный замок — захвачен другим пользователем.
  2. Получить свежую версию: Обновить конфигурацию из хранилища. Делайте это перед каждым захватом.
  3. Захватить объекты: правой кнопкой по объекту → Захватить в хранилище. Флаг «Рекурсивно» захватывает объект вместе с подчинёнными (реквизитами, формами, макетами).
  4. Внести изменения и проверить их.
  5. Поместить: Поместить в хранилище..., обязательно с комментарием. Флаг «Оставить объекты захваченными» нужен, если работа продолжается.
  6. Обновить конфигурацию базы данных (F7), чтобы изменения применились в вашей копии базы.

Комментарий к версии пишите так, чтобы его понял человек через год: «Задача 1482: добавлен реквизит Подразделение в документ Поступление товаров» вместо «правки».

Что захватывать при типовых доработках

ЗадачаЧто захватить
Новый реквизит документаДокумент (с формой, где выводится реквизит)
Новый объект (справочник, отчёт)Родительскую ветку в дереве, например «Справочники»
Новая подсистема или рольКорень конфигурации и ветку «Общие»
Обновление типовой конфигурацииКорень конфигурации рекурсивно

Обновление поставщика в базе, подключённой к хранилищу, требует захватить всю конфигурацию. Значит, на время обновления остальные разработчики не смогут ничего поместить. Планируйте это на вечер и предупредите команду.

История, метки и откат

Команда История хранилища показывает список версий: номер, автора, дату, комментарий. Из истории можно:

  • 🔍 сравнить версию с текущей конфигурацией или с другой версией;
  • 💾 сохранить любую версию в файл .cf — удобно для передачи в рабочую базу;
  • 🏷️ поставить метку, например «Релиз от 15.09», чтобы быстро найти точку выпуска;
  • ⏪ получить старую версию в свою базу, а затем поместить её как новую версию, если нужно откатить неудачную доработку.

Откат в хранилище не удаляет историю. Неудачная версия остаётся в списке, а исправление приходит следующей версией.

Для доработок, которые не должны трогать основную конфигурацию, рассмотрите расширения: они подключаются к хранилищу отдельно, со своим хранилищем для каждого расширения.

Обслуживание и скорость работы хранилища

Хранилище растёт с каждой версией. Через год активной разработки типовой конфигурации каталог может занимать десятки гигабайт. Ниже — что держит его в рабочем состоянии.

Резервное копирование

Хранилище — это каталог с файлом 1cv8ddb.1CD и служебными папками. Копию делают целиком.

  1. Убедитесь, что никто не помещает изменения: копия посреди помещения версии может оказаться несогласованной.
  2. Остановите службу сервера хранилища (crserver.exe -stop или через services.msc). Подключённые разработчики получат ошибку соединения: делайте это ночью или по договорённости.
  3. Скопируйте каталог хранилища в архив.
  4. Запустите службу обратно.

Пример ночного задания для планировщика Windows:

net stop "1C:Enterprise 8.3 Configuration Repository Server"
robocopy "D:\Repositories\Buh" "E:\Backup\Repo\Buh" /E /R:1 /W:1
net start "1C:Enterprise 8.3 Configuration Repository Server"

Имя службы зависит от версии и способа регистрации. Посмотрите его в свойствах службы в services.msc и подставьте точное значение в скрипт.

Что ускоряет работу

  • ⚡ Подключение по tcp:// вместо сетевой папки. Разница на типовой конфигурации заметна уже при обновлении из хранилища.
  • 💽 Каталог на SSD, локальный диск сервера, не сетевой ресурс.
  • 🧹 Отмена «зависших» захватов. Захваченные месяцами объекты мешают команде и размывают ответственность.
  • 🧩 Мелкие помещения. Десять помещений по пять объектов проходят проще одного на двести объектов и легче разбираются в истории.
  • 📦 Отдельное хранилище на каждую конфигурацию и расширение. Не складывайте разные проекты в одно.

Проверка целостности

Файл 1cv8ddb.1CD проверяют той же утилитой, что и файловые базы, — chdbfl.exe из каталога bin платформы. Запускайте её только на копии хранилища при остановленной службе. Если копия проходит проверку без ошибок, исходный каталог можно заменить исправленной копией.

Ошибки подключения к хранилищу и как их устранить

Диагностика: выберите симптом

Ещё одна неочевидная ситуация — копирование базы разработчика. Копия сохраняет привязку к хранилищу. Если открыть её в конфигураторе и начать захватывать объекты, хранилище будет считать, что работа идёт из исходной базы. Сразу после копирования выполните в копии Конфигурация → Хранилище конфигурации → Отключиться от хранилища.

Перезапуск службы сервера хранилища обрывает текущие операции у всех подключённых разработчиков. Перед перезапуском убедитесь, что никто не помещает изменения: прерванное помещение придётся повторить.

Частые вопросы

Можно ли перенести хранилище на другой сервер?
Да. Остановите службу, скопируйте каталог хранилища целиком в каталог-корень нового сервера, запустите там службу той же версии. Разработчики подключаются заново по новому адресу.
Нужна ли отдельная лицензия для сервера хранилища?
Отдельной лицензии на сам сервер хранилища нет. Лицензии нужны разработчикам для запуска конфигуратора, как и при обычной работе.
Как передать доработки из хранилища в рабочую базу?
Сохраните нужную версию из истории хранилища в файл .cf и загрузите его в рабочую базу через сравнение и объединение или загрузку конфигурации, сделав перед этим резервную копию.
Можно ли работать в хранилище без сети, например в дороге?
Читать и править захваченные объекты в своей базе можно. Поместить изменения и захватить новые объекты получится только после подключения к хранилищу.
Сколько разработчиков выдерживает один сервер хранилища?
Жёсткого ограничения нет. Узкое место — диск и сеть: при десятке активных разработчиков на типовой конфигурации важны SSD и подключение по tcp://, а не через общую папку.