Командная разработка расширения в 1С: хранилище с нуля до рабочего процесса

· 9 мин

Содержание

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

Ниже — как создать такое хранилище, подключить к нему рабочие базы, раздать права и не запутаться в версиях. Работаем в Конфигураторе платформы 8.3 с интерфейсом «Такси».

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

Хранилище расширения не заменяет хранилище основной конфигурации. Это отдельное хранилище, привязанное к одному расширению. У основной конфигурации может быть своё.

Перед началом проверьте пять вещей:

  • 🧩 Расширение уже существует в базе разработки и в нём есть хотя бы минимальный состав. Пустое расширение тоже годится, но удобнее начинать с рабочего.
  • 🖥 Платформа одинаковая у всех участников. Номер не ниже того, на котором создавалось хранилище. Разные релизы платформы дают предупреждения при подключении.
  • 📁 Место для хранилища — каталог на файловом сервере или служба хранилища. Для 2-3 разработчиков хватает каталога в общей сетевой папке.
  • 🔑 Права на каталог. У каждого, кто будет работать, должна быть запись в папку хранилища. Без неё подключение завершится ошибкой доступа.
  • 🗄 Отдельная база разработки у каждого. Работать «в рабочей базе» с захватом объектов нельзя: изменения расширения попадут в боевой контур.

Хранилище должно лежать на надёжном диске с резервным копированием. Внутри него вся история версий. Потеряли каталог — потеряли историю.

Файловый вариант или служба хранилища

ВариантКогда подходитМинусы
Каталог в сетевой папкеКоманда до 3-5 человек, одна локальная сетьМедленно по VPN, чувствителен к обрывам связи
Служба хранилища (серверный режим)Больше разработчиков, удалённая работаНужен сервер и администрирование службы

Начните с каталога. Перейти на серверный режим можно позже, когда сеть начнёт тормозить.

Как создать хранилище для расширения

Откройте базу разработки в Конфигураторе. В главном меню Конфигурация найдите пункт Расширения конфигурации. В списке выберите нужное расширение и откройте его в окне конфигурации.

Дальше порядок такой:

  1. Откройте расширение для редактирования (в окне списка — команда открытия конфигурации расширения).
  2. В меню Конфигурация перейдите в Хранилище конфигурации и выберите команду создания хранилища.
  3. Укажите каталог. Лучше пустую папку с понятным именем, например \\server\repo\ext_sklad.
  4. Задайте имя и пароль первого пользователя. Он станет администратором.
  5. Дождитесь сообщения об успешном создании.

После создания в каталоге появится файл 1cv8ddb.1CD. Это и есть данные хранилища. Не открывайте его руками и не копируйте на работающей системе без остановки доступа.

Создание из командной строки

Для автоматизации есть пакетный режим Конфигуратора. Для расширений в командах работы с хранилищем используется параметр -Extension с именем расширения. Пример:

"C:\Program Files\1cv8\8.3.25.1445\bin\1cv8.exe" DESIGNER /F "D:\bases\dev" /ConfigurationRepositoryF "\\server\repo\ext_sklad" /ConfigurationRepositoryN Админ /ConfigurationRepositoryP "пароль" /ConfigurationRepositoryCreate -Extension "МоёРасширение" /Out "D:\logs\repo_create.txt"

Номер платформы в пути подставьте свой. Результат читайте в файле из /Out: в окно ничего не выводится.

Подключение базы разработчика к хранилищу

Хранилище создано. Теперь каждый разработчик привязывает к нему свою базу.

Первое подключение

  1. Откройте свою базу в Конфигураторе.
  2. Загрузите в неё то же расширение или получите его из хранилища, если база пустая.
  3. В меню Конфигурация → Хранилище конфигурации выберите команду подключения к хранилищу.
  4. Укажите путь, логин и пароль своей учётной записи.
  5. На вопрос о синхронизации выберите загрузку конфигурации из хранилища.

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

Что видно после подключения

В дереве объектов у каждого элемента появляются значки состояния. Захваченный вами — один значок, захваченный другим — другой. Не захваченный изменить нельзя: платформа не даст открыть его на запись.

Если значки не появились, закройте и заново откройте окно конфигурации. Иногда дерево не обновляется после подключения.

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

Первый пользователь — администратор. Он создаёт остальных.

В меню Конфигурация → Хранилище конфигурации откройте администрирование хранилища. Там есть список пользователей. Для каждого задаются логин, пароль и уровень прав.

Уровни прав

УровеньЧто можетКому выдавать
Только чтениеСмотреть историю и получать версииТестировщикам, аналитикам, ревьюерам
Работа с объектамиЗахватывать объекты и помещать измененияРазработчикам
Добавление новых объектовДополнительно добавлять в хранилище новые объектыВедущим разработчикам
АдминистрированиеУправлять пользователями и версиямиОдному-двум людям

Названия уровней в окне могут чуть отличаться, но ступеней именно столько: чтение, работа с объектами, добавление, администрирование.

Практика выдачи прав

  • Заведите по отдельной учётке на человека. Общий логин «dev» лишает вас истории: непонятно, кто и что менял.
  • Администраторов держите минимальным числом. Администратор может отменить помещение версии, а это опасная операция.
  • Уволившегося сотрудника не удаляйте из списка, а отключайте: старые версии останутся подписаны его именем.
  • Пароли хранилища не совпадают с паролями пользователей базы. Это два разных набора учёток.

Захват, правка и помещение объектов

Рабочий цикл одинаков для всех.

  1. Получите свежие изменения. В меню хранилища выберите обновление конфигурации из хранилища. Платформа покажет, что изменилось, и подтянет чужие версии.
  2. Захватите объект. Правой кнопкой по нему в дереве → команда захвата в хранилище. Платформа предложит захватить и подчинённые объекты (формы, макеты, модули). Берите только то, что будете править.
  3. Внесите изменения. Редактируйте, запускайте в тестовой базе.
  4. Поместите изменения. Команда помещения в хранилище. В окне обязательно заполните комментарий: что и зачем изменили.
  5. Освободите объект. По умолчанию после помещения захват снимается. Если нужно продолжить правки, оставьте галочку захвата.

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

Что делать, если объект захвачен другим

Увидите значок чужого захвата — менять объект нельзя. Варианты:

  • Договориться с коллегой, чтобы он поместил изменения.
  • Подождать и затем получить обновление.
  • Если коллега ушёл в отпуск, а объект остался захвачен — администратор снимает захват принудительно. Несохранённые правки коллеги в этом случае пропадут, поэтому сначала свяжитесь с ним.
Перед помещением версии
Выполнено: 0 / 5

Сравнение, объединение и откат версий

История версий — главная причина заводить хранилище. Открыть её можно из меню хранилища: список версий с автором, датой и комментарием.

Сравнение

Выберите две версии и запустите сравнение. Платформа покажет дерево отличий по объектам, а для модулей — построчное сравнение. Так удобно находить, что именно сломало поведение после чьей-то правки.

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

Объединение

Когда два разработчика правили один объект (при отключённом ограничении захвата или в ветках), используется объединение. Платформа сопоставляет три состояния: старую версию, вашу и новую из хранилища. По каждому отличию вы выбираете, чью версию оставить.

Правила для спокойной работы:

  • Объединяйте небольшими кусками, а не весь объект сразу.
  • После объединения запустите расширение и проверьте сценарий вручную.
  • Не помещайте результат, пока не прошёл синтаксический контроль.

Откат

Хранилище не умеет «вернуться на версию 12» одной кнопкой с удалением версий 13-15. История остаётся. Рабочие способы такие:

СпособЧто делаетРиск
Получить нужную версию в базу и поместить как новуюИстория сохраняется, откат виден как отдельная версияМинимальный
Отмена помещения последней версии (только администратор)Удаляет последнюю версию из историиВерсия теряется безвозвратно
Выгрузка старой версии в файл расширенияПозволяет проверить её в отдельной базеНужна отдельная база

Предпочитайте первый способ. Он честный: в истории видно, что вы откатились и почему.

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

Типичные ошибки подключения и доступа

Здесь собраны ситуации, которые возникают именно с хранилищем расширения.

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

Если не помогло

  • Закройте Конфигуратор у всех и проверьте, не держит ли файл 1cv8ddb.1CD кто-то из процессов (антивирус, резервное копирование).
  • Скопируйте каталог хранилища в другое место и попробуйте подключиться к копии: так вы поймёте, повреждены данные или виновата сеть.
  • Если файл данных повреждён, восстанавливайте каталог из резервной копии. Чинить файл вручную не нужно.

Как закрепить порядок в команде

Технически хранилище работает само. Сложности создают люди. Несколько привычек, которые снимают большинство споров:

  • 📌 Помещайте изменения раз в день, а не раз в неделю. Большие версии трудно сравнивать и откатывать.
  • 📌 Один объект — один владелец в данный момент. Не захватывайте «на всякий случай» всё дерево.
  • 📌 Ведите короткую договорённость о комментариях: номер задачи, суть, затронутые объекты.
  • 📌 Копируйте каталог хранилища по расписанию. Ночного копирования достаточно.
  • 📌 Раз в квартал проверяйте список пользователей и отключайте лишних.

После обновления расширения в рабочих базах помните: загрузка .cfe и применение изменений к базе данных — это отдельные шаги, хранилище их не заменяет. Хранилище отвечает за исходники расширения, а не за его установку у пользователей.

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

Можно ли держать несколько расширений в одном хранилище?
Нет. Хранилище привязывается к одной конфигурации или одному расширению. Для каждого расширения создаётся своё хранилище.
Нужно ли хранилище, если расширение пишет один человек?
Не обязательно, но полезно: вы получаете историю версий и возможность вернуться к рабочему состоянию. Достаточно каталога на локальном диске с копированием.
Чем хранилище отличается от выгрузки расширения в файл?
Файл .cfe — снимок состояния. Хранилище хранит всю историю и управляет совместной работой, а .cfe годится для переноса на боевую базу.
Можно ли переместить хранилище в другую папку?
Да. Остановите работу с ним, скопируйте каталог целиком и заново подключите базы разработчиков, указав новый путь.
Потерян пароль администратора хранилища. Что делать?
Другой администратор сбросит пароль в списке пользователей. Если администратор был один, понадобится восстановление каталога из резервной копии, где пароль известен.