Как привязать расширение к хранилищу конфигурации и начать в нём работать
Содержание
Подключиться к
хранилищу расширений можно только из Конфигуратора: откройте базу, выберите нужное расширение, затем Конфигурация → Хранилище конфигурации → Подключиться к хранилищу. Укажите путь к хранилищу, имя пользователя и пароль. После этого объекты расширения закрыты от правки, пока вы не захватите их командой Захватить в хранилище.
Хранилище расширения устроено так же, как хранилище основной конфигурации: общий каталог (или сервер хранилища), история версий и захват объектов. Разница одна. Вы работаете не с конфигурацией, а с конкретным расширением, и привязка идёт именно к нему. Если расширений в базе несколько, у каждого может быть своё хранилище.
Что подготовить до подключения
Пять минут проверок сэкономят час поиска ошибок. Пройдите по списку.
- 🔑 Права на каталог. Если хранилище лежит на файловом ресурсе, у пользователя Windows, под которым запущен Конфигуратор, должен быть доступ на чтение и запись. Без записи подключиться получится, а поместить изменения — нет.
- 👤 Пользователь хранилища. Он создаётся внутри самого хранилища и не совпадает с пользователем информационной базы. Логин и пароль вам выдаёт администратор хранилища.
- 🧩 Расширение в базе. Оно должно быть добавлено в разработческую базу. Меню:
Конфигурация → Расширения конфигурации. - 🔢 Версия платформы. Номер платформы на вашем компьютере не должен быть ниже того, на котором хранилище создавали. Платформа более раннего номера хранилище не откроет.
- 💾 Копия базы. Перед первой привязкой выгрузите базу в
.dt. Привязка меняет состояние объектов, и откатить её проще из копии.
Храните хранилище на надёжном диске с резервным копированием. Это единственное место, где лежит вся история изменений. Потеряете каталог — потеряете историю.
Какие бывают права
В хранилище у каждого пользователя один из четырёх уровней доступа. Они складываются по нарастающей.
| Уровень | Что разрешено | Кому выдавать |
|---|---|---|
| Чтение | Получать версии, смотреть историю, сравнивать | Тестировщикам, аналитикам |
| Захват объектов | Брать объекты на редактирование | Разработчикам |
| Изменение версий | Помещать изменения в хранилище | Разработчикам, ведущему |
| Администратор | Создавать пользователей, управлять хранилищем | Одному-двум ответственным |
Не давайте администраторские права всем подряд. Администратор может удалить версии из истории, и восстановить их будет нечем.
Создание хранилища, если его ещё нет
Если администратор уже создал хранилище, переходите к следующему разделу. Если вы первый, делайте так.
- Откройте Конфигуратор и войдите в разработческую базу.
- Выберите расширение, которое будет храниться в хранилище. Для этого откройте его конфигурацию через
Конфигурация → Расширения конфигурации. - Выполните
Конфигурация → Хранилище конфигурации → Создать хранилище. - Укажите каталог. Он должен быть пустым и доступным всем разработчикам по одному и тому же сетевому пути.
- Задайте логин и пароль первого пользователя. Он станет администратором.
- Подтвердите. В каталоге появится набор служебных файлов, которые трогать вручную нельзя.
Не открывайте служебные файлы в каталоге хранилища и не копируйте их по одному. Хранилище — это связанный набор файлов. Если скопировать часть, получите повреждённую историю.
После создания добавьте остальных разработчиков: Конфигурация → Хранилище конфигурации → Администрирование → Пользователи хранилища. Для каждого задайте логин, пароль и уровень прав из таблицы выше.
Заведите отдельного технического пользователя с правом изменения версий для автоматических сборок. Тогда в истории будет видно, что изменение пришло не от человека.
Как подключиться к готовому хранилищу
Теперь основной сценарий. Вы разработчик, у вас есть адрес хранилища и учётные данные.
- Откройте Конфигуратор с базой, где лежит нужное расширение.
- Откройте конфигурацию расширения.
- Выберите
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу. - В поле пути укажите каталог хранилища. Подойдёт сетевой путь вида
\\server\repo\ext1или локальный. Если администратор развернул сервер хранилища, адрес будет начинаться сtcp://. - Введите логин и пароль пользователя хранилища.
- Выберите вариант привязки. Если база пустая или объекты нужно заменить версией из хранилища, соглашайтесь на загрузку. Если в расширении у вас уже есть свои изменения, сначала сохраните их в отдельный файл.
- Дождитесь окончания. В дереве объектов у каждого элемента появится значок, показывающий состояние.
Если подключение прошло, в меню хранилища станут активны команды получения и захвата. Если команды серые, значит привязка не удалась или выбрано не то расширение.
Что значат значки в дереве
- ⚪ Объект не захвачен. Редактировать нельзя.
- ✅ Захвачен вами. Правьте, потом помещайте.
- 🔒 Захвачен другим пользователем. Увидите его имя в подсказке.
- 🔄 В хранилище лежит более новая версия, чем у вас.
Если значков нет, вы не подключены.
Работа с версиями и захват объектов
Правило простое: правишь только то, что захватил. Порядок работы повторяется из раза в раз.
- Получите свежие изменения.
Конфигурация → Хранилище конфигурации → Обновить конфигурацию из хранилища. Делайте это перед началом любой работы. - Захватите объекты. Выделите их в дереве, команда
Захватить в хранилище. Можно отметить флажок «Рекурсивно», чтобы взять и подчинённые объекты. - Внесите правки и проверьте их запуском в режиме 1С:Предприятие.
- Поместите изменения.
Поместить изменения в хранилище. Напишите комментарий: что изменили и зачем. - Проверьте историю.
Отчёт по историипокажет версии, авторов и комментарии.
Комментарий не формальность. Через полгода по нему вы поймёте, почему появился тот или иной код.
Сколько объектов брать
Берите минимум. Захваченный объект блокирует коллег, а общие модули и подсистемы нужны многим.
| Ситуация | Как поступить |
|---|---|
| Правите один реквизит | Захватите только этот объект |
| Меняете форму и модуль | Захватите объект целиком |
| Нужно изменить общий модуль | Договоритесь с командой, захватите ненадолго |
| Не уверены, что понадобится | Не захватывайте. Сначала посмотрите код |
Если вы захватили объект и ушли в отпуск, пользователь с правами администратора может снять захват. Это крайняя мера: ваши несохранённые правки пропадут.
Отмена захвата и сравнение
Передумали править? Команда Отменить захват вернёт объект в исходное состояние, локальные правки сбросятся. Перед отменой выгрузите объект в файл, если правки жалко.
Чтобы понять, чем ваша копия отличается от хранилища, воспользуйтесь сравнением с хранилищем. Эта команда есть в том же меню. Она показывает объекты, которые различаются, и позволяет разобрать различия по строкам.
Регулярные операции и автоматизация
Ручные клики хороши для разработки, но сборку и обновление тестовой базы удобнее поручить скрипту. Конфигуратор умеет работать с хранилищем из командной строки.
Базовый запуск выглядит так:
"C:\Program Files\1cv8\<версия платформы>\bin\1cv8.exe" DESIGNER ^
/F "D:\bases\dev" ^
/ConfigurationRepositoryF "\\server\repo\ext1" ^
/ConfigurationRepositoryN "buildbot" ^
/ConfigurationRepositoryP "пароль" ^
/ConfigurationRepositoryUpdateCfg -Extension "МоёРасширение" -force ^
/UpdateDBCfg ^
/Out "D:\logs\update.log"
Что здесь важно:
/ConfigurationRepositoryFзадаёт каталог хранилища, а/ConfigurationRepositoryNи/ConfigurationRepositoryP— логин и пароль./ConfigurationRepositoryUpdateCfgполучает изменения из хранилища, ключ-Extensionуказывает, какое именно расширение обновлять./UpdateDBCfgприменяет полученное к базе данных./Outпишет результат в файл. Без него вы не узнаете, что пошло не так.
Пароль в тексте скрипта хранить плохо. Выносите его в переменную окружения или в защищённое хранилище секретов сборочной системы. Точный набор параметров для вашей версии платформы смотрите в справке Конфигуратора: раздел про параметры командной строки.
Что стоит автоматизировать
- 🌙 Ночное обновление тестовой базы свежей версией расширения.
- 📦 Выгрузку расширения в файл
.cfeна каждую версию из хранилища. - 📝 Выгрузку журнала истории, чтобы отправлять сводку за неделю.
Для первых двух операций достаточно планировщика Windows или любой системы непрерывной сборки. Журнал истории выгружайте тем же способом отдельным запуском.
Разбор ошибок подключения
Большинство отказов укладывается в несколько причин. Найдите свой симптом.
Администрирование → Пользователи хранилища.Если ничего не помогло
Проверьте по порядку три вещи.
- Откройте Конфигуратор от имени другого пользователя Windows, у которого точно есть доступ к каталогу. Если подключение прошло, дело в правах файловой системы.
- Скопируйте весь каталог хранилища целиком в тестовое место и подключитесь к копии. Если получилось, исходный каталог блокирует антивирус или сетевой ресурс.
- Закройте Конфигуратор у всех пользователей и повторите. Бывает, что служебные файлы хранилища заняты зависшим сеансом.
Не удаляйте служебные файлы из каталога хранилища, пытаясь «разблокировать» его. Это самый быстрый способ испортить историю. Сначала сделайте копию всего каталога.
Когда в расширении уже есть свои правки
Типичный случай: вы полгода дорабатывали расширение в одиночку, а теперь команда решила перейти на хранилище. Просто нажать «Подключиться» нельзя, иначе локальная версия потеряется или смешается с чужой.
Действуйте в таком порядке:
- Выгрузите расширение в файл
.cfeи сохраните отдельно. Это страховка. - Создайте хранилище из вашей текущей версии: она станет первой в истории.
- Остальные разработчики подключаются к уже готовому хранилищу и получают эту версию целиком.
- Старые копии расширения у коллег удалите и больше не используйте. Две параллельные ветки без хранилища снова приведут к ручному слиянию.
Если коллега успел наработать правки на своей копии, пусть сохранит их файлом, подключится к хранилищу и перенесёт изменения через сравнение и объединение конфигураций. Делайте это по одному человеку за раз, чтобы не запутаться в версиях.
Как не сломать хранилище
Хранилище живёт годами, и почти все проблемы возникают из-за привычек команды.
- Договоритесь о правилах комментариев. Достаточно двух строк: что изменили и номер задачи.
- Не держите захват дольше рабочего дня без необходимости.
- Раз в неделю копируйте каталог хранилища целиком, пока никто в нём не работает.
- Раз в месяц проверяйте список пользователей и удаляйте тех, кто ушёл из команды.
- Не работайте напрямую в рабочей базе. Разработка идёт в отдельной базе, в рабочую расширение попадает файлом
.cfe.
Можно ли подключить одно и то же хранилище к нескольким расширениям?
Чем хранилище расширения отличается от хранилища основной конфигурации?
Что будет с хранилищем, если у меня пропал доступ к сети?
Как отключиться от хранилища?
Конфигурация → Хранилище конфигурации выберите Отключиться от хранилища. Объекты станут редактируемыми без захвата, а история останется на месте. Отключайтесь, только поместив или отменив все свои захваты.