Дополнительные средства разработки
25.11.2020

1С:ГитКонвертер

Конфигурация предназначена для односторонней синхронизации хранилища конфигурации "1С:Предприятия" с репозиторием Git и последующим переходом на разработку в 1C:Enterprise Development Tools (1C:EDT) с сохранением истории.

Основные возможности

Необходимые компоненты

Начальная настройка

Параметры настройки и сценарии применения в официальном репозитории компании 1С на GitHub https://github.com/1C-Company/GitConverter/wiki

Настройка базы ГитКонвертера

  1. Разместите базу ГитКонвертера на сервере "1С:Предприятия". Работа в файловом режиме может быть использована только в демонстрационных целях.
  2. Заполните константу "Путь к версиям платформы на сервере", где располагаются файлы Конфигуратора 1cv8(.exe) в формате: C:\Program files (x86)\1cv8\%ВерсияПлатформы%\bin , где в параметр %ВерсияПлатформы% - будет подставлена текущая версия хранилища из настроек.
  3. Для ограничения производительности можно включить константу "Использовать очереди выполнения" - количеством очередей можно балансировать нагрузку на сервер.

Настройка сервера "1С:Предприятия"

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

Для легкого удаления и архивирования журнала регистрации можно переключить его формат на старый режим. Для этого необходимо в каталог журнала регистрации информационной базы скопировать пустой файл с именем: 1Cv8.lgf.
Для больших проектов рекомендуется  выполнить такую настройку (удаление/резервное копирование файлов журнала регистрации).

Также рекомендуется переключить регистрацию событий - только ошибки. Для этого следует выбрать команду в Конфигураторе  Администрирование - Настройка журнала регистрации... = Регистрировать ошибки и в открывшемся диалоге установить минимально необходимую вам периодичность.

Настройка конвертации хранилища "1С:Предприятия"

Рекомендуется использовать сервер хранилищ конфигураций "1С:Предприятия".

Для оптимальной работы сервера хранилищ настройте Размер глобального кэша в "Администрировании" в 1,5-2 раза больше количества параллельных потоков (если используются "копии хранилища") получения версий * размер одной версии, Мб.

Параметры конвертации

Дополнительная настройка репозитория Git

По умолчанию создается файл исключений .gitignore, в который добавляются файлы DumpFilesIndex.txt и ConfigDumpInfo.xml - не требуемые для работы с исходными файлами конфигурации "1С:Предприятия".

Если репозиторий был создан с помощью кнопки в карточке хранилища, в локальный конфиг репозитория добавляются настройки для более комфортной работы:

Копировать в буфер обмена

git config --local core.quotepath false
git config --local gui.encoding utf-8
git config --local i18n.commitEncoding utf-8
git config --local diff.renameLimit 1
git config --local diff.renames false


Символы окончания строк

Если разработчики, работающие с репозиторием, используют разные операционные системы (Microsoft Windows, Linux, macOS), нужно настроить конвертацию символов окончания строк при чтении из репозитория. Следующие команды настраивают Git таким образом, что в рабочей копии разработчика будут использоваться "родные" для его операционной системы символы, а в репозитории всегда будет использоваться LF.


Для операционной системы Microsoft Windows:

Копировать в буфер обмена

git config --global core.autocrlf true
git config --global core.safecrlf true

Для операционных систем Linux и macOS:

Копировать в буфер обмена

git config --global core.autocrlf input
git config --global core.safecrlf true

Подробнее о назначении этих параметров вы можете прочитать в документации Git на английском языке git config core.safecrlf (http://git-scm.com/docs/git-config#git-config-coresafecrlf) и git config core.autocrlf (http://git-scm.com/docs/git-config#git-config-coreautocrlf).

Git LFS

Для увеличения быстродействия репозитория Git можно использовать расширение git lfs (https://git-lfs.github.com).

Если используется сервер репозиториев Git, необходимо убедиться, что он поддерживает это расширение и включить настройки для проекта. Например, GitLab, GitHub, BitBucket - поддерживают.

Выполнить начальную настройку репозитория до выполнения первого коммита:

Копировать в буфер обмена

git lfs install

Включить отслеживание бинарных файлов конфигурации:

Копировать в буфер обмена

git lfs track "*.cf"
git lfs track "*.bin"
git lfs track "*.png"
git lfs track "*.gif"
git lfs track "*.bmp"
git lfs track "*.jpg"
git lfs track "*.zip"

В этом примере - все файлы конфигураций поставщиков, файлы макетов с "Двоичными данными" и картинки из конфигурации попадут в lfs.

Например, чтобы переносить в LFS только некоторые типы файлов с расширением "*.bin" можно включить отслеживание только шаблонов и модулей без исходного кода по маске:

Копировать в буфер обмена

git lfs track "*/Ext/Template.bin"
git lfs track "*/Ext/Module.bin"

Копии хранилища

Копии хранилища используются для ускорения получения версий из хранилища.

Можно использовать тот же адрес серверного хранилища конфигураций, но с разными пользователями. Количество "копий" влияет на размер создаваемого глобального кэша версий на сервере хранилища "1С:Предприятия". Желательно установить кэш в настройках сервера хранилищ "1С:Предприятия" в полтора раза больше, чем количество копий в ГитКонвертере.

Укажите другой адрес архивной копии хранилища, если в текущем хранилище конфигураций выполнялось сокращение версий, и установите ограничение номеров версий в этой копии.

Укажите расписание получения версий из этой копии. Если в "копии" указан адрес основного хранилища, необходимо в расписании учесть возможность работы разработчиков с хранилищем - запуски на получение выполнять с промежутками, обеспечивающими комфортную работу разработчиков.

Очереди выполнения

Если включена константа "Использовать очереди выполнения", то для каждого хранилища конфигураций необходимо указать 2 очереди:

Можно указать диапазоны количества версий для каждой очереди для разграничения "рабочей зоны".

Укажите ограничение количества версий обрабатываемых очередью за один запуск и расписание запусков.

Очередь может быть общей на всю базу или привязанной к конкретному хранилищу. Для очереди общего типа выбор версий для обработки выполняется по дате версии - это следует учитывать при конвертации проектов с длинной историей и более "молодых" проектов в одной базе ГитКонвертера.

Информация пользователей

Хранилище конфигураций "1С:Предприятия" использует для идентификации Пользователя, а в репозитории Git основным идентификатором является email и имя пользователя. Для этих целей предназначен регистр сведений Информация пользователей, позволяющий указать соответствие пользователей хранилищ пользователям репозитория Git.

Можно выполнять коммиты анонимно, с потерей информации об авторстве. Пользователь хранилища будет указан в дополнении к комментарию к каждой версии.

Пользователи могут быть указаны общие для всех хранилищ или с уточнением по хранилищам.

Обновление с версии 1.0.4

Внимание! Конвертация хранилища 1С в формат выгрузки xml 1С:Предприятия является устаревшей функциональностью и не доступна для новых настроек конвертации хранилища. Текущие настройки синхронизации хранилища, конвертирующие в формат выгрузки xml 1С:Предприятия будут работать корректно, но рекомендуется выполнить разовую конвертацию в формат 1C:EDT (см. тут) и продолжить синхронизацию в этом формате.

Функциональность конвертирования в формат xml 1С:Предприятия будет удалена в 1.0.6.

Если что-то пошло не так (FAQ)

Расписание конвертации включено, но список версий пуст

Версии в списке ИБ 1С:ГитКонвертера есть, но конкретная версия зависла (зациклилась) на этапе выгрузки конфигурации в xml

Версии обрабатываются, но не коммитятся в Git

Коммиты не появляются на сервере Git

В какой-то версии произошел сбой и файлы версии закоммичены не полностью

Т.е. в этой версии часть файлов или все были сначала удалены в репозитории, а следующая версия добавила файлы заново - сквозная история была потеряна:

В хранилище версия есть, а в Git она пропущена

Файл конфигурации  GitConverter находится в каталоге \1CITS\EXE\GitConverter

Копировать