Организация хранения внешних обработок 1С в git
При разработке каких-либо внешних обработок в 1С достаточно удобно использовать систему контроля версий git.
Почему именно git, а не встроенную в 1С систему контроля версий? Есть ряд причин, но основная — нет возможности работать с внешними файлами обработок. Надо создавать конфигурацию, вставлять в ветку Обработки нужную вам обработку и только потом работать с системой.
В итоге количество конфигураций будет только увеличиваться, а учитывая что при интенсивной работе с 1С накапливается огромное количество обработок, то рано или поздно наступит… хм… назовем это информационный хаос;-)
Поэтому я и решил использовать систему контроля версий отличную от встроеннй.
Данная статья не претендует на полное изложение работы 1С и git, а только дает азы, которые помогут вам начать работу самостоятельно, не тратя времени на разгребание жемчужин опыта в навозе Интернета.
Итак первое, что надо сделать — скачать последнюю версию git под Windows. Данная программа находится по адресу:
Я выбрал portable версию.
Далее создаете на диске d папку git и распаковываете скачанный архив в него. В папке git я создал подпапку repo (можете как хотите называть) , а в ней уже подпапки в которых хранятся мои обработки 1С. Первый шаг сделан.
Вторым этапом я скачал небольшую программку V8Unpack.exe для распаковки внутреннего содержимого файлов обработок (модулей и форм). Внимание! Нужно скачать эту программку + файл библиотеки zlib1.dll.
https://github.com/e8tools/v8unpack/releases/
Для удобства я скопировал эти файлы в корень папки 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