Github и 1С. Пошаговая инструкция на конкретном примере |
27.10.17 23:58 |
Всем привет.
В статье рассмотрен пример как доработать конфигурацию 1С, выложенную на github. Статья не претендует на полноту сведений, в ней будет рассказан один из сценариев работы. Да, об этом уже много раз и в разных местах рассказывали и показывали, и были вебинары и прочее, но все-таки мне захотелось расписать один из сценариев работы.
Итак, нам дано: Репозиторий: https://github.com/BlizD/Tasks (Управление задачами: Канбан доска) Задача: Добавить кнопку в документ Выпуск релиза, которая загружает данные из хранилища и обновляет данные в документе (https://github.com/BlizD/Tasks/issues/65) Набираемся сил и поехали.
Установка программ и регистрация
Подготовка среды для разработки В первую очередь создаем папку на диске, где будет хранится исходники и весь проект. При этом важно учесть, что чем короче путь, тем лучше. Есть ограничение в 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 жмем кнопку «Выполнить»: После загрузки, откроется окно с предупреждениями, пока просто игнорируем и просто жмем принять. Если кто знает, как победить это окно с предупреждениями, скажите, пожалуйста =). Далее жмем обновить конфигурацию ИБ.
Если кто уже устал к этому моменту, предлагаю сделать перекур и пойти подышать и чайку попить.
Как залить наш код в наш форк(Fork) Кодируем нашу задачу, проверяем ее, радуемся полученному результату. Теперь пора залить наши изменения в наш форк. Для этого в конфигураторе жмем кнопку «Конфигурация – Выгрузить конфигурацию в файлы» указываем путь D:\Rep\Tasks\src\cf. Теперь нам надо сделать коммит в git, для этого открываем программу SourceTree. И что мы видим тут, оказывается git узнал, какие файлы были изменены, и показал расхождения. Но прим этом расхождений намного больше, чем мы изменяли, это связано с особенностями платформы 1С (вариант обхода ниже).
Ставим галку «Сразу отправлять изменения в 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:
Ссылки на замечательные статьи про Git:
Спасибо, что Вы дочитали до этого места. |