-
Notifications
You must be signed in to change notification settings - Fork 18
Home
Проект позволяет синхронизировать хранилище 1С:Предприятия 8 с git как автоматическом так и в ручном режиме. С появлением в 8.3 возможности полной выгрузки файла .cf в структуру файлов, появилась возможность использовать альтернативные системы контроля версий для просмотра и анализа истории разработки 1С.
К сожалению, формат выгрузки не очень удобен для анализа - выгрузка всей конфигурации делается в один каталог и если для маленьких тестовых конфигураций все визуально видно, то на больших конфигурациях, таких как УПП и УТ11 очень тяжело переходить по файлам. Данный проект появился для пост-обработки файлов и их копирования в каталоги, повторяющие структуру дерева конфигурации в конфигураторе.
Файлы перемещаются по каталогам повторяющим структуру дерева метаданных. Дополнительно файлы форм (толстых, неуправляемых) распаковываются, т.к. посмотреть модуль такой формы невозможно. При штатной распаковке невозможно просмотреть модуль формы, т.к. он выгружается во внутреннем представлении 1С. Управляемые формы конечно победоносно шагают по планете 1С, но ...
renames.txt - текстовый файл хранит порядок переименований файла Catalog.КатегорииОбъектов.Form.ФормаСписка.xml в структуру каталогов Catalog\КатегорииОбъектов\Form\ФормаСписка.xml . Разделителем служит -->
.
AUTHORS - в чистом виде для разборки и сборки не используется, используется для определения автора в случае синхронизации хранилища с git репозиторием. Имеет вид
0f259df0-e82a-4615-879f-687b9cd603d0;Shenja Sosna <[email protected]>
Разделитель ; , указывается Уникальный идентификатор из файла USERS.xml , данный файл формируется с помощью распаковки хранилища программой toolcd.
VERSION - файл, в котором хранится последняя версия. В идеале соответствует номеру версии в хранилище. При синхронизации номер версии из этого файла определяет, стоит или не стоит производить синхронизацию.
<?xml version="1.0" encoding="UTF-8"?> <VERSION>1223</VERSION>
xml формат выбран специально, тогда при показе diff (различий) будет показано именно различие версии. Если просто писать номер версии без форматов, то популярные "диффалки" будут показывать как 2 различные строки. Не очень удобно.
Для обратной сборки применяется обратное преобразование из файла renames.txt в линейную структуру и загрузки в пустую базу файлов.