Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 10:57

Сравнение и объединение конфигураций

Автор Vlad, 11 июл 2008, 10:04

0 Пользователей и 11 гостей просматривают эту тему.

Vlad

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

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

Режим сравнения и объединения конфигураций можно также использовать для сравнения двух конфигураций без объединения.

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

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

Внимание! Не рекомендуется использовать этот режим для объединения конфигураций, существенно отличающихся друг от друга. К сожалению, степень «существенности» различий конфигураций нельзя описать количественно, их можно оценить по какими-либо косвенным признакам. Например, в результате сравнения какого-либо модуля процедуры оказались одна «внутри» другой. В этом случае, скорее всего, корректного слияния конфигураций не произойдет, от слияния следует отказаться и выполнить необходимые изменения вручную.


Vlad

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

В частности, ссылки также сравниваются по идентификаторам. (Сравнение ссылок с одинаковыми идентификаторами необходимо потому, что, кроме идентификатора, у ссылки есть внутреннее программное содержание, которое и позволяет «правильно попадать» по ссылке в нужное место, и программе, возможно, придется изменить это содержание при объединении конфигураций). Например, не будут сравниваться ссылки в случае, когда в графу журнала нужно поместить сумму, являющуюся реквизитом документа Накладная, а идентификатор ссылки записан в текущей конфигурации как Накладная.Сумма, а в загружаемой — как Накладная.Итого. Такая ссылка считается двумя разными ссылками. Первая ссылка считается присутствующей только в текущей конфигурации, а в загружаемой конфигурации — удаленной. Вторая ссылка считается отсутствующей в текущей конфигурации, а в загружаемой конфигурации — новой.


Vlad

Запуск режима сравнения и объединения конфигураций
Как будет видно ниже, хотя сравниваемые конфигурации можно считать в основном равноправными (приоритет при объединении можно отдать любой из них), в определенном аспекте именно текущая конфигурация считается основной, в которую вносятся не повреждающие ее изменения из загружаемой конфигурации. Исходя из этих соображений, рекомендуется выбирать, какую из двух конфигураций сделать текущей.

Выбранная конфигурация становится текущей, когда с ней запускается 1 С Предприятие в режиме Конфигуратора. Для загрузки второй конфигурации, которую можно будет сравнить и объединить с текущей, нужно в меню «Конфигурация» выбрать пункт «Объединение конфигураций». Появится стандартный диалог «Открыть файл конфигурации», в котором нужно найти и открыть файл 1CV7.MD загружаемой конфигурации (см. о файле 1CV7.MD в предыдущем разделе).

Совет. Если загружаемая конфигурация установлена на компьютере, путь к файлу 1CV7.MD можно предварительно посмотреть, например, в окне «Запуск 1С:Прсднриятия»: выбрать в нем эту конфигурацию и нажать «Изменить»).

Процесс загрузки и сравнения загружаемой конфигурации с текущей сопровождается сообщениями в строке состояния Конфигуратора. В этих сообщениях указываются объекты метаданных, сравниваемые в настоящий момент.


Vlad

Окно «Объединение конфигураций»
Процесс загрузки и сравнения продолжается несколько секунд, после чего открывается окно «Объединение конфигураций». Оно позволяет:

·        ознакомиться с тем, какие объекты метаданных в двух конфигурациях отличаются,

·        выбрать объекты, по которым необходимо детально изучить различия,

·        вызвать выбранные объекты в специальное окно просмотра,

·        установить один из двух возможных режимов объединения конфигураций,

·        задать, какие из объектов включить в объединение,

·        запустить процесс объединения конфигураций.

Первая колонка окна «Объединение конфигураций» — «Объект» — содержит дерево, на вид отличающееся от дерева в окне «Конфигурация — Метаданные» только тем, что можно установить (или снять) флажок около каждого объекта (см. пункт «Отбор объектов и запуск процесса объединения» ниже).

Вторая колонка — «Статус объекта» — может для конкретного объекта содержать указание «Объект изменен», «Объект добавлен» или не содержать никакого указания. Последнее означает, что различий непосредственно по данному объекту метаданных в сравниваемых конфигурациях не найдено. Однако, нужно иметь в виду, что, в отличие от окна «Конфигурация», в окне «Объединение конфигураций» показаны только те объекты метаданных, по которым найдены какие-либо изменения. Поэтому отсутствие статуса изменения или добавления объекта означает, что это агрегатный объект, и что изменения найдены для какого-то из составляющих его элементов. Чтобы обнаружить измененный или добавленный элемент, нужно развернуть соответствующую агрегатному объекту ветвь дерева.

Третья колонка, «Дополнение», для некоторых объектов содержит сообщение «Возможна потеря данных!!!». Такое сообщение выдастся, если есть вероятность, что изменения могут привести к потере данных.

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

Нужно иметь в виду, что данное сообщение ориентировано на выбор загружаемой конфигурации в качестве приоритетной (см. переключатель в нижней части окна): в этом случае оцениваются потери данных в текущей конфигурации. Например, если некоторому параметру в текущей конфигурации определена длина 9 символов, а в загружаемой конфигурации — 5 символов, присвоение приоритета загружаемой конфигурации приведет при объединении к потере данных; именно эта ситуация отражена в колонке «Дополнение». Если же ситуация обратная, то есть, параметру в загружаемой конфигурации определена длина 9 символов, а в текущей конфигурации — 5 символов, то назначение текущей конфигурации приоритетной приведет при объединении к потере данных загружаемой конфигурации; но эта ситуация сообщениями в колонке «Дополнение» не учитывается. То есть, основным режимом работы в режиме объединения конфигураций считается такой, когда приоритет отдается загружаемой конфигурации и оценивается ущерб, который это может причинить текущей.


Vlad

Режим объединения
В нижней части окна «Объединение конфигураций» можно установить режим объединения, задаваемый методом объединения и приоритетом одной из конфигураций.

Выбор метода «Замещать объекты» означает, что объект метаданных будет добавлен, если он новый, или замещен, если он измененный. Причем переносится вся структура объекта, модули, описания, формы. При этом приоритет однозначно отдается загружаемой конфигурации.

При выборе метода «Объединять объекты» происходящее при объединении конфигураций зависит от установленного приоритета.

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

Тексты объединяются следующим образом:

·        удаленное (то есть то, что имеется в текущей конфигурации, по отсутствует в загружаемой) остается в тексте,

·        новое (то есть присутствующее в загружаемой конфигурации и отсутствующее в текущей) добавляется,

·        измененное (то, что есть в обоих конфигурациях, но различается в них) добавляется в виде комментариев из загружаемой конфигурации и остается неизменным то, что было в текущей.

Таблицы объединяются следующим образом:

·        таблица текущей конфигурации остается,

·        таблица загружаемой конфигурации добавляется, но, если ее имя совпадает с именем таблицы текущей конфигурации, оно изменяется (например, «Таблица» à «Таблица!»); таким образом, по этому имени в объединенной конфигурации будет вызываться таблица текущей конфигурации, но таблица загружаемой тоже не потеряна.

Диалоги объединяются следующим образом:

·        новые элементы добавляются,

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

Если приоритет у загружаемой конфигурации, объединение происходит следующим образом.

Добавляются новые объекты метаданных и меняются измененные.

Тексты:

·        удаленное превращается в комментарии,

·        новое добавляется,

·        измененное в текущей конфигурации превращается в комментарии, а из загружаемой конфигурации добавляется.

Таблицы объединяются следующим образом:

·        таблица загружаемой конфигурации добавляется,

·        таблица текущей конфигурации остается, но, если се имя совпадает с именем таблицы загружаемой конфигурации, имя таблицы текущей конфигурации изменяется (тем самым, таблица текущей конфигурации не потеряна, но вызываться будет та, что из загружаемой).

Диалоги объединяются следующим образом:

·        новые элементы добавляются,

·        те элементы диалога, что в двух конфигурациях отличаются, становятся такими, какие они в загружаемой.


Vlad

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

Кнопка недоступна, если объекты не текстовые и не объекты метаданных непосредственно: формы и таблицы визуально не сравниваются, по ним только фиксируется наличие изменений. Можно с помощью кнопки «Открыть» посмотреть, как они выглядят в текущей конфигурации. Для их просмотра в загружаемой конфигурации придется отдельно запустить с ней 1С:Предприятие в режиме Конфигуратора.

Кнопка «Сравнить» недоступна также в случае, если объект не имеет статуса «Объект изменен» или «Объект добавлен» (просмотр не имеет смысла, поскольку нет изменений).

Если кнопка «Сравнить» доступна, ее нажатие открывает окно «Различие между: ...». Если сравниваемые тексты большие, перед открытием окна может пройти несколько секунд.

В двух колонках окна просмотра различий помещены тексты, относящиеся в сравниваемых конфигурациях к выбранному объекту. В текстах разными цветами выделены удаленные, измененные и добавленные (новые) строки. В окне имеется панель инструментов со стандартными для текстового редактора 1С:Предприятия кнопками поиска и закладок, а также двумя кнопками, специфическими для данного окна. Это большие желто-зеленые стрелки, направленные одна вверх, другая вниз, служащие для перехода на начало ближайшего предыдущего или последующего измененного текста. Они полезны в том случае, если попался большой кусок текста без изменений. Для закрытия окна просмотра различий достаточно нажать Esc.


Vlad

Отбор объектов и запуск процесса объединения
Указать, какие объекты при объединении конфигураций следует включить в процесс объединения, а какие выключить, позволяет флажок около каждого объекта в окне «Объединение конфигураций». Установленный флажок показывает, что данные объекты двух конфигураций будут объединяться. Те объекты, в строке которых текст написан серым, не могут быть самостоятельно включены в объединение конфигураций, так как являются элементами других (агрегатных) объектов. Элементы агрегатного объекта могут быть включены или выключены вместе с самим объектом. Можно включить все и выключить все объекты кнопками «Вкл. все» и «Выкл. все».

После просмотра изменений, выбора режима объединения и установки или снятия «флажков включения в процесс объединения» объектам конфигураций можно запустить процесс объединения кнопкой «ОК».


Теги:
Рейтинг@Mail.ru

Поиск