Github и 1С. Пошаговая инструкция на конкретном примере
27.10.17 23:58

Всем привет. 


Статья для тех, у кого есть неудержимое желание программировать и хочется доработать какую-то конфигурацию (или проект на 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. Устанавливаем платформу 1С, в этом репозитории требуется версия 8.3.9.1850 – версия платформы очень важна, т.к. она влияет на выгрузку/загрузку конфигурации в файлы. Периодически фирма 1С изменяет формат выгрузки и загрузки.
  2. Скачиваем и устанавливаем SourceTree - программа нужна для отправки изменений(коммитов) в Git (или любую другую, но в примере будет рассказываться именно SourceTree);
    1. Ссылка для скачивания https://www.sourcetreeapp.com
    2. При установке SourceTree если будут проблемы с авторизацией, тогда авторизируйтесь с помощью Google. И установка продолжится.
  3. Регистрируемся на https://github.com
    1. Для этого примера создал специального пользователя ForInfostart

  1. Скачиваем и устанавливаем GIT
    1. Заходим на официальный сайт Git и скачиваем последнюю версию git для windows. Официальный сайт Git http://git-scm.com/
    2. При установке используем Далее – Далее
    3. Пошаговая инструкция как установить 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» (ветка с нашего форка). 

 

Жмем Create pull request. 

Все, теперь остается ждать, когда владелец, того репозитория, примет Ваш пул реквест.

Как только он примет, то код будет влит в основную ветку проекта.

Поздравляю, теперь Вы, стали участником OpenSource сообщества=).

Если все равно остались вопросы или что то пошло не так в процессе, тогда можно смело, не боясь, писать в чат https://gitter.im/Tasks_/Lobby (или сюда https://gitter.im/EvilBeaver/oscript-library) там попробуем все разрулить.

Некоторый список 1С проектов, которые выложены на Github:

 

Ссылки на замечательные статьи про Git:

 

Спасибо, что Вы дочитали до этого места.

Read Full Article