Правила автоматической настройки объединения конфигураций

Операцию сравнения и объединения конфигураций вы можете вызвать прямой командой (например, Сравнить/объединить в контекстном меню проекта) либо опосредованно, выполняя слияние веток Git'а. Если это трехстороннее сравнение без конфликтных изменений, 1C:EDT объединит конфигурации автоматически. Трехстороннее сравнение, например, очень часто выполняется в Git'е.

Во всех остальных случаях после сравнения 1C:EDT автоматически установит настройки объединения конфигураций и откроет редактор сравнения и объединения. Это нужно для того, чтобы вы могли подтвердить или изменить настройки объединения, установленные автоматически.

В этом разделе описываются правила, в соответствии с которыми 1C:EDT устанавливает эти настройки.

Настройки объединения

В редакторе сравнения и объединения 1C:EDT показывает конфигурацию в виде, который очень похож на то представление, которое она имеет в панели Навигатор. Разница заключается в том, что в редакторе дерево конфигурации более подробное. Например, оно содержит в себе все те свойства объектов, которые при работе в панели Навигатор показываются в отдельной панели Свойства (на рисунке у узла Конфигурация есть дочерний узел Свойства).

Настройка объединения представляет собой совокупность флажка (в первой колонке слева) и режима объединения (в последней колонке). Такая настройка есть у каждого узла в дереве (у каждой строки).

Флажок отображается для всех узлов, но не во всех узлах вы можете его изменить. Например, если сравниваемые значения одинаковые, флажок будет сброшен и установить его нельзя.

Режим объединения отображается не для всех узлов, а только:

Флажки объединения

Каждый флажок имеет три состояния:

Состояние установлен частично возможно только для тех узлов, у которых есть потомки. Оно устанавливается автоматически, его нельзя установить в явном виде, кликая по флажку.

Клик по флажку, который находится в состоянии установлен частично , переводит его в состояние снят .

При установке или снятии флажка у всех дочерних узлов также устанавливаются или снимаются флажки. При этом родительским узлам устанавливается состояние, соответствующее текущей расстановке флажков у детей.

Режимы объединения

Существует четыре режима объединения:

Правила настройки объединения

1C:EDT автоматически устанавливает флажки в состояние снят и не позволяет изменять их в следующих случаях:

Если ни одно из этих правил не сработало, то дальше 1C:EDT действует следующим образом:

Есть исключение, которое касается настроек поддержки. Если при объединении конфигураций есть конфликтные изменения в настройках поддержки, настройки поддержки объединяются всегда с режимом объединения Взять справа;

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

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