Системы контроля версии и 1С


Системы контроля версий на службе у 1С-ника.

Пока во всем мире идут споры, какая система контроля версий лучше (svn, git, hg, bzr и т.д.), в плане 1С эти споры бесмысленны. 

Есть хранилище конфигураций, вот его и используйте. Но что делать, когда у вас множество внешних отчетов, обработок? 

Если честно мне надоели  в папках файлы "МояСуперОбработка_20120115.epf" и "МояСуперОбработка_20120201.epf" и захотелось воспользоваться одной из систем контроля версии. В принципе даже для простой истории изменений и записи в конце дня, что сделал очень полезно. Но как всегда есть маленькая ложка дегтя - все системы контроля версий в основном предназначенны для исходных текстов, а формат epf, erf для них звучит как binary и не хотят они показывать изменения. 


Но благодоря V8Reader (с расширенным анализом форм)  можно исправить ситуацию в плане показа изменений.  Хотелось бы на этом акцентировать внимание.

Итак, берем данную обработку, встариваем ее в пустую конфигурацию. При начале работы системы парсим параметры командной строки и выводим сравнение для обработок или отчетов. Дальше больше, возмем вашу любимую систему контроля версий и настроим ее: задача для определенных файлов вызывать не стандратный просмотр различий, а необходимую нам командную строку. 

Для svn, в частности TortioseSVN, идем в настройки "External programm" -> "Advanced ..." и добавляем для необходимых нам расширений файлов вызов diff-1c-cf.bat по аналогии с другими вариантами. 

Для bzr и в частности графическая оболочка Qbzr в настройках пользователя добаляем свою программу для просмотра изменений. (Для bzr есть нюанс, отдельно для определенного расширения файла невозможно настроить свою комманду, только в целом для всех изменений. Но при этом можно выбирать смотреть с помощью определенной программы или встроенным).

И для окончательной настройки нам достаточно в diff-1c-cf.js прописать правильные переменные pathTo1C и pathToBase (путь к базе).

Как это выглядит:

 

Приятным бонусом стало: возможность сравнить mxl файлы для семерки средствами 8.


Upd: 22.02.2012


Добавил на общедоступный репозитарий https://bitbucket.org/Shenja/diff1c/overview .

Так же добавляю описание, что нужно закачать и поставить для работы:

  1. BZR : http://www.python.org/getit/ (версия 2.7), http://www.riverbankcomputing.co.uk/software/pyqt/download (PyQT 4.9 для python2.7) http://wiki.bazaar.canonical.com/WindowsDownloads (я бы советовал 2.5b), Qbzr  https://launchpad.net/qbzr/ и наконец https://launchpad.net/bzr-explorer/+download красивая графическая оболчка. (Пока все перечислил, аж вспотел. Как же в linux с этим проще - это просто констатация факта). Устанавливаем все в порядке указания ссылок. После этого я бы советовал создавать новые репозитарии с типом "colocated " (в случаии версии bzr 2.5) хотя если ни разу не работали, тогда вариант по умолчанию. Как настраивать, думаю на скриншотах видно.
  2. fossil: http://www.fossil-scm.org/download.html(желательно скопировать в каталог, который есть в переменной PATH) и http://sourcegear.com/diffmerge/index.html (инструмент для просмотра различий, отличительная возможность которого, для определенных расширений файлов вызывать сторонние приложения). В принципе настройка производиться diffmerge, в меню Tools - Options - External toll добавляем для расширений cf, epf, erf, mxl свою настройку  и для каталога под версионным контролем fossil делаем настройку: "fossil set gdiff-command d:\WORK\1C\DiffMerge\sgdm.exe" ну или путь, где у вас будет ваш viewer. После этого командой "fossil gdiff" будет вызываться необходимая нам программа.

Файлы обработки:

-