- Делит файл на строки. Один объект поддержки - одна строка.
- К каждой строке добавляется имя объекта в 1С.
Приложение имеет команды
convert- делит исходный файл на строки и добавляет имена 1Сrestore- склеивает файл до исходного состояния (полное совпадение с исходным, включая BOM)set-hook- устанавливает хукpre-commitinfo- выводит информацию о поддержке в зависимости от опцийdump-cache- подготавливает файл дампа конфигурации для версионирования: без идентификаторов версий и упорядоченно по имени метаданного (и идентификатору свойств)
PS: начальная реализация была выполнена через плагин
gitsync(см. здесь).
Исходный файл состоит из множества записей 0,0,{ГУИД},{ГУИД}, записанных в одну строку
Дубли {ГУИД} сокращаются. Каждый Гуид переносится на отдельную строку.
Из файла ConfigDumpInfo.xml читаются сопоставления гуидов именам объектов 1С. Имена каждого объекта поддержки добавляются в каждую строку.
Новые строки имеют вид 0,0,{ГУИД}, # Имя_в_1С
При снятии объекта с поддержки или изменении режима поддержки в git diff теперь возможно увидеть измененнения по каждому объекту.
1,0,a3f5e643-b9c4-4763-9c5d-91fc9be92710, # Configuration.ДокументооборотКОРП
0,0,7c9bc131-bc25-474d-979f-b84ebdb2145c, # Language.Русский
0,0,adbb653b-752d-45cf-8b2d-6f6030c33b43, # Subsystem.АдминистрированиеСервиса
0,0,e4993f80-2a2f-4b8e-ad88-a9e2c93472a1, # Subsystem.АдминистрированиеСервиса.Subsystem.ОбластиДанных
0,0,b913837a-e6bf-4de3-8b61-9b742a1947ba, # Subsystem.АдминистрированиеСервиса.Subsystem.ОчередьЗаданий
0,0,000932fc-f508-4326-93c6-e2351be1cf25, # Subsystem.АдминистрированиеСервиса.Subsystem.ПоставляемыеДанные
0,0,4d475095-19b1-45f0-8864-d6f161f6da1a, # Subsystem.АдминистрированиеСервиса.Subsystem.РазмерПриложений
0,0,b0c18399-297a-4617-9d6e-3c02294ebd35, # Subsystem.АдминистрированиеСервиса.Subsystem.Сообщения
0,0,69f8b7f9-a81b-4b6a-88f7-2f2dccc11717, # Subsystem.АдминистрированиеСервиса.Subsystem.Тарификация
...Командой info можно вывести объекты добавленные в конфигурацию (объекты без поддержки, см.опцию --added).
Или посмотреть Все объекты снятые с подержки. (см.опцию --filter). Это так же можно сделать следующим скриптом.
grep ^[^0],-?0, src/Ext/ParentConfigurations.bin | perl -pe 's/,\w{8}-\w{4}-\w{4}-\w{4}-\w{12},//'-
Заголовок:
{6,0,3,ГуидПоддержки,0,ГУИД,"2.5.12.147","Фирма ""1С""","УправлениеПредприятием",137634,...- первая цифра
6...? (всегда одинакова). - вторая цифра
0- флаг Включить возможность изменения поддержки:1- изменение запрещено,0- изменение разрешено. - третья цифра
3- количество поставок в файле. При нескольких поставках принимает значения 2, 3 и т.д. ГуидПоддержки- идентификатор поддержки. Используется в БД таблицеConfigв полеFileName. Об особенностях написано ниже.- четвертая цифра (вероятно) всегда равна второй.
- ГУИД - неизвестно.
"2.5.12.147"- версия поставки."Фирма ""1С"""- поставщик."УправлениеПредприятием"- имя поддерживаемой конфигурации; должно совпадать с именем файла поставки в каталогеExt/ParentConfigurations/*.cf137634- количество поддерживаемых объектов в каждом разделе поддержки.
- первая цифра
-
Объект:
0,0,ГуидОбъекта,-
первая цифра - вариант поддержки (см. здесь, спасибо автору)
- 0 - на замке
- 1 - на поддержке
- 2 - снято с поддержки
- 3 - нет поддержки
- 4 - не удалось определить уровень поддержки.
-
вторая цифра режим поставки
- 0 - изменения разрешены
- 1 - измерения не рекомендуются
- 2 - изменения запрещены
- -1 - включение в конфигурацию не рекомендуется
-
ГуидОбъекта - идентификатор объекта; в оригинальном файле гуиды хранятся парами одинаковых значений, но в неосновных(дополнительных) поставках второй гуид может отличаться.
-
-
в последней строке
0,0,0,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,1}каждые 10 цифр (с конца) принадлежат отдельной поставке. Предположительно являются флагами настроек обновления.
Файл поставки хранится в БД в таблице Config