Всем привет.
Статья для тех, у кого есть неудержимое желание программировать и хочется доработать какую-то конфигурацию (или проект на 1с), выложенный на Github, но останавливают незнакомые слова Git, Github, Fork, Commit, Pull request, Merge, Issue.
В статье рассмотрен пример как доработать конфигурацию 1С, выложенную на github.
Статья не претендует на полноту сведений, в ней будет рассказан один из сценариев работы.
Да, об этом уже много раз и в разных местах рассказывали и показывали, и были вебинары и прочее, но все-таки мне захотелось расписать один из сценариев работы.
Будем рассматривать конкретный пример.
Итак, нам дано:
Репозиторий: https://github.com/BlizD/Tasks (Управление задачами: Канбан доска)
Задача: Добавить кнопку в документ Выпуск релиза, которая загружает данные из хранилища и обновляет данные в документе (https://github.com/BlizD/Tasks/issues/65)
Набираемся сил и поехали.
Установка программ и регистрация
- Устанавливаем платформу 1С, в этом репозитории требуется версия 8.3.9.1850 – версия платформы очень важна, т.к. она влияет на выгрузку/загрузку конфигурации в файлы. Периодически фирма 1С изменяет формат выгрузки и загрузки.
- Скачиваем и устанавливаем SourceTree - программа нужна для отправки изменений(коммитов) в Git (или любую другую, но в примере будет рассказываться именно SourceTree);
- Ссылка для скачивания https://www.sourcetreeapp.com
- При установке SourceTree если будут проблемы с авторизацией, тогда авторизируйтесь с помощью Google. И установка продолжится.
- Регистрируемся на https://github.com
- Для этого примера создал специального пользователя ForInfostart
- Скачиваем и устанавливаем GIT
- Заходим на официальный сайт Git и скачиваем последнюю версию git для windows. Официальный сайт Git http://git-scm.com/
- При установке используем Далее – Далее
- Пошаговая инструкция как установить GIT от rtnm https://bitbucket.org/rtnm/gittertutorial - необходимо смотреть раздел Установка Git
Подготовка среды для разработки
В первую очередь создаем папку на диске, где будет хранится исходники и весь проект. При этом важно учесть, что чем короче путь, тем лучше. Есть ограничение в Windows на длину пути и файлов. С учетом того, что в 1С часто бывают длинные имена метаданных это может быть проблемой.
В общем, создаем папку на диске D:\Rep\Tasks\
Теперь нам надо загрузить в эту папку нужный нам репозиторий.
Для этого заходим в браузер, открываем ссылку https://github.com/BlizD/Tasks.
Далее ставим звезду
Ладно, ладно шучу, пункт со звездой вообще не обязателен =)
По правде, нам нужна кнопка Fork, жмем на нее
Теперь копия репозитория Tasks переехала к нашему пользователю ForInfostart:
Далее нам надо загрузить наш репозиторий в созданную нами папку на диске D:\Rep\Tasks\
Заходим по ссылке https://github.com/ForInfostart/Tasks и жмем кнопку «Clone or download» копируем путь «https://github.com/ForInfostart/Tasks.git»
Запускаем SourseTree, жмем добавить (+).
Заполняем скопированную ссылку, путь к нашей папке и жмем кнопку «Клонировать»
Давайте проверим, появились ли файлы проекта в нашей папке. Откроем папку D:\Rep\Tasks\
Сменим ветку Master, на ветку Develope в программе SourceTree, для этого жмем двойным кликом «Внешние ветки – Origin – Develope» в открывшемся окне жмем ОК.
Теперь необходимо создать пустую базу 1с. Далее заходим в конфигуратор и жмем Конфигурация – Загрузить конфигурацию из файлов и выбираем папку D:\Rep\Tasks\src\cf жмем кнопку «Выполнить»:
После загрузки, откроется окно с предупреждениями, пока просто игнорируем и просто жмем принять.
Если кто знает, как победить это окно с предупреждениями, скажите, пожалуйста =).
Далее жмем обновить конфигурацию ИБ.
Фуууххх вот только теперь можно кодировать в 1С как обычно =)
Если кто уже устал к этому моменту, предлагаю сделать перекур и пойти подышать и чайку попить.
Отдохнули, поехали дальше
Как залить наш код в наш форк(Fork)
Кодируем нашу задачу, проверяем ее, радуемся полученному результату.
Теперь пора залить наши изменения в наш форк.
Для этого в конфигураторе жмем кнопку «Конфигурация – Выгрузить конфигурацию в файлы» указываем путь D:\Rep\Tasks\src\cf.
Теперь нам надо сделать коммит в git, для этого открываем программу SourceTree.
И что мы видим тут, оказывается git узнал, какие файлы были изменены, и показал расхождения.
Но прим этом расхождений намного больше, чем мы изменяли, это связано с особенностями платформы 1С (вариант обхода ниже).
Выделяем все файлы – жмем кнопку «Индексировать»
Указываем комментарий: #НомерЗадачи + название задачи, т.е.
#65 Добавить кнопку в документ Выпуск релиза, которая загружает данные из хранилища и обновляет данные в документе
Ставим галку «Сразу отправлять изменения в Origin/develop и жмем кнопку «Закоммитить»
Чтобы лишних расхождений не показывало, рекомендуется сделать прочистку «чакр», то есть сразу после того как загрузили изменения из файлов, сразу же выгрузить изменения в файлы и отправить их в ваш форк, а потом уже начинать кодировать задачу. Если бы такую прочистку сразу сделали, то показывались только вот эти изменения:
Как отправить наши изменения (из нашего форка) в основной проект (создание Pull Request)
Необходимо отправить Pull request (Запрос на добавление). Для этого заходим на сайт https://github.com/ForInfostart/Tasks жмем на закладку «Pull request». Теперь на кнопку "New pull request"
Указываем ветку приемник «Features», а ветка источник «Develope» (ветка с нашего форка).
Все, теперь остается ждать, когда владелец, того репозитория, примет Ваш пул реквест.
Как только он примет, то код будет влит в основную ветку проекта.
Поздравляю, теперь Вы, стали участником OpenSource сообщества=).
Если все равно остались вопросы или что то пошло не так в процессе, тогда можно смело, не боясь, писать в чат https://gitter.im/Tasks_/Lobby (или сюда https://gitter.im/EvilBeaver/oscript-library) там попробуем все разрулить.
Некоторый список 1С проектов, которые выложены на Github:
- https://github.com/BlizD/Tasks - Управление задачами: Канбан доска;
- https://github.com/BlizD/BPS - Подсистема для Согласования;
- https://github.com/Stepa86/1C-Gitter - Конфигурация для выгрузки из хранилища изменений в Git
- https://github.com/tormozit/1C-Runtime-Developer-Tools - Инструменты разработчика
- https://github.com/silverbulleters/vanessa-behavior - BDD for 1С:Enterprise
- https://github.com/xDrivenDevelopment/xUnitFor1C - Набор инструментов для выполнения тестирования (модульного/юнит, приемочного, сценарного для 1С 8.3, интеграционного) в 1С:Предприятие 8
- и еще много каких проектов.
Ссылки на замечательные статьи про Git:
- //infostart.ru/public/343317/ - Альтернативные системы контроля версий и их применение для хранения версий продуктов, разработанных на платформе 1С;
- //infostart.ru/public/310640/ - Git-flow В 1С (Система контроля версий);
- //infostart.ru/public/118207/ - Системы контроля версии и 1С;
- //infostart.ru/public/553119/ - Использование git для доработки типовых конфигураций 1С.
- https://git-scm.com/book/ru/v1 - книга про Git на русском;
Спасибо, что Вы дочитали до этого места.