Пока во всем мире идут споры, какая система контроля версий лучше (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 .
Так же добавляю описание, что нужно закачать и поставить для работы:
- 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) хотя если ни разу не работали, тогда вариант по умолчанию. Как настраивать, думаю на скриншотах видно.
- 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" будет вызываться необходимая нам программа.
Файлы обработки:
- Sistemy_kontrolya_versii_i_1S.zip Для скачивания нужна регистрация
- Sistemy kontrolya versii i 1S.zip Для скачивания нужна регистрация
В этой группе 1С
- CfProject – декомпиляция/компиляция конфигураций 1С:Предприятие
- История выбранных элементов для справочников
- V8Reader (с расширенным анализом форм) Upd.
- Консоль запросов с возможностью обработки кода по результату запроса.
- Отчет по файлу обмена
- Отчет средствами 1С 8 (СКД) по данным из базы на 7.7
- Консоль запросов 1С и SQL (на основе View) + Edit (Управляемая форма)
- SOAP-клиент. Обработка для тестирования web-сервисов.