Вводные
- Различные обработки и расширения для клиентов
- Разработки нужно тестировать локально, поле доставлять до базы клиента
- Разработки дорабатываются как локально, так и на стороне клиента
- Разработка ведется по задачам и изменения нужно привязывать к ним
- Есть сервисы, как настраивать описано в отдельной статье (ссылка)
- трекер на базе redmine,
- git сервер
- хранилище конфигурации 1С
- У клиентов различные версии платформы что нужно учитывать при локальном тестировании и взаимодействии с хранилищем конфигурации
Вариант решения
1. Расширения привязываются к хранилищу конфигурации и на стороне разработчика и на стороне клиента, после скриптом выгружаются с помощью gitsync в git
Изменения на клиентской стороне отправляются в хранилище.
2. Обработки/отчеты добавляются в папку с git проектом, распаковываются с помощью precommit1c
Изменения на клиентской стороне копируются на локальный ПК вручную (сделал доработку, перенеси, зафиксируй).
Порядок настройки
1. Конфигуратор 1С
Берем с официального сайта, устанавливаем нужной версии.
2. git клиент, ключи доступа
Ссылка на скачивание https://git-scm.com/downloads, установка с параметрами по умолчанию.
доступ к репозиторию лучше/проще организовать через SSH, поэтому генерируем ключ в git GUI (от присутствует в меню пуск)
при генерации ключа система запросит passphrase (пароль к ключу), на начальном этапе можно оставить пустым.
после генерации будут сформированы файлы с ключами
Открытую часть ключа нужно скопировать из GUI
и добавить в профиль пользователя git сервера
3. git клиент с интерфейсом, установка имени и email автора коммита
есть множество вариантов, сам использую GitHub Desktop
Ссылка на скачивание https://desktop.github.com/, установка с параметрами по умолчанию, подключаться к github не обязательно, нормально работает и без этого.
При добавлении изменений в репозиторий нужно указывать имя и email автора, эти параметры можно указать глобально
4. клонирование репозитория
предполагаю что репозиторий уже создан
Получаем ссылку например "git@gitlab.com:malikov-pro/test.git"
Клонируем репозиторий используя GitHub Desktop
5. установка onescript, precommit1c, gitsync
Ссылка на установку onescript https://github.com/EvilBeaver/OneScript/releases, инструкция там же, в результате доступен opm (пакетный менеджер)
Установка precommit1c
opm install precommit1c
Ссылка на проект https://github.com/xDrivenDevelopment/precommit1c
Установка gitsync
opm install gitsync
Ссылка на проект https://github.com/oscript-library/gitsync
6. настройка precommit1c для репозитория
переходим в папку с проектом и устанавливаем настройки, скрипт добавляет в папку .git настройки
cd f:\git\client_1c\test\
precommit1c --install
7. Организация структуры папок
Писать все в корневую папку неудобно, потому что смешиваются обработки, настройки, расширения. В своей работе организую таким образом
- src - исходные тексты
- ExternalConfisurations - расширений
- ExternalDataProcessors - обработок
- ExternalDataProcessors - исходные (.erf) данные обработок
Использование
Работа с обработками
1. Добавляю обработку в папку ExternalDataProcessors репозитория
2. захожу в GitHub Desktop
3. вижу изменения обработки
4. Указываю задачу в комментарии и добавляю изменения
5. отправляю изменения на сервер
Работа с расширениями в хранилище
1. В хранилище добавляю пользователя export
2. прописываю скрипт с использованием gitsync
3. перед первым запуском добавляю в корень папки с исходным кодом файлы VERSION и AUTHORS
4. запускаю скрипт
5. отправляю изменения с помощью GitHub Desktop
При использовании gitsync одно добавление в хранилище равняется одному коммиту в репозитории.
Итог
Из бесплатных инструментов можно организовать фиксацию изменений разработок в git.
Благодарю за внимание.