Организация хранения внешних обработок 1С в git

При разработке каких-либо внешних обработок в 1С достаточно удобно использовать систему контроля версий git.

Почему именно git, а не встроенную в 1С систему контроля версий? Есть ряд причин, но основная — нет возможности работать с внешними файлами обработок. Надо создавать конфигурацию, вставлять в ветку Обработки нужную вам обработку и только потом работать с системой.

В итоге количество конфигураций будет только увеличиваться, а учитывая что при интенсивной работе с 1С накапливается огромное количество обработок, то рано или поздно наступит… хм… назовем это информационный хаос;-)

Поэтому я и решил использовать систему контроля версий отличную от встроеннй.

Данная статья не претендует на полное изложение работы 1С и git, а только дает азы, которые помогут вам начать работу самостоятельно, не тратя времени на разгребание жемчужин опыта в навозе Интернета.

Итак первое, что надо сделать — скачать последнюю версию git под Windows. Данная программа находится по адресу:

http://code.google.com/p/msysgit/downloads/list

Я выбрал portable версию.

Далее создаете на диске d папку git и распаковываете скачанный архив в него. В папке git я создал подпапку repo (можете как хотите называть) , а в ней уже подпапки в которых хранятся мои обработки 1С. Первый шаг сделан.

Вторым этапом я скачал небольшую программку V8Unpack.exe для распаковки внутреннего содержимого файлов обработок (модулей и форм). Внимание! Нужно скачать эту программку + файл библиотеки zlib1.dll.

http://svn2.assembla.com/svn/V8Unpack/track/bin/

Для удобства я скопировал эти файлы в корень папки git. Это позволит вам в дальнейшем более удобно вызывать эту программу для упаковки-распаковки обработок.

В принципе этого достаточно для работы, но я помимо этого решил использовать удаленное хранилище git для более надежной работы с кодом. Выбор пал на провайдера assembla.com. Одним из критериев выбора — Ассембла дает возможность работать в бесплатном плане с закрытым репозиторием. Для примера GitHub в бесплатном плане дает возможность работать с Open Source версиями программ.

Регистрируете логин на Ассембле и создаете свой репозиторий.

Теперь необходимо распаковать обработку с которой вы работаете программой V8Unpack.exe. Открываете командную строку windows и переходите в каталог git. Набираете команду распаковки:

V8Unpack.exe -P d:/git/repo/ВашаОбработка.epf d:/git/repo/

Эта строка распакует вашу обработку в каталог xx. В дальнейшем после программирования в конфигураторе выполняйте эту команду для замены исходных измененных файлов новыми.

Начинаем настраивать git под себя. Переходим в папку git и запускаем файл git-bash.bat. Открывается консоль в которой вы вводите команды для работы. К сожалению консоль не понимает кириллицы — работе с контролем версий это не мешает, основное неудобство ввод комментариев к коммитам на русском языке.

Первым делом генерируем ssh ключ командой в консоли:

ssh-keygen -t rsa

Данная команда создаст секретный ключ для доступа к удаленному хранилищу Ассембла. Сгенерированный ключ находится в папке C:UsersВаш аккаунт.ssh. Он называется id_rsa.pub. Сгенерированный ключ вам надо будет добавить в удаленное хранилище Ассемблы (закладка Профиль-Управление ключами SSH). Эта закладка находится вверху справа при нажатии на ваш аккаунт)

Настроим пользователя и емайл в git

git config -global user.name «John Doe»
git config -global user.email johndoe@example.com

Следующий шаг создание локального хранилища для конкретной обработки. Как мы упоминали ранее обработки у нас хранятся в подпапках по пути gitrepoлюбое название (предположим хх).

Заходим в консоли в данную папку

cd git/repo/хх
git init
git add *
git commit -m "мой первый коммит"

Предпоследняя команда добавляет все файл в репозитарий для дальнейшего коммита. Последняя и добавляет коммит.

Работа с git в дальнейшем происходит путем помещения слепков в удаленное хранилище Асемблы.

git push origin master: master
git залить <в удаленное хранилище> <имя локальной ветки>:<имя ветки в хранилище>
Для того, чтобы понять какие хранилища вообще у вас есть выполняете команду:
git branch -a

Вторая статья по работе с git последует чуть позже, а пока добавлю ссылку на замечательный ресурс на русском языке по работе с git
http://git-scm.com/book/ru