Сравнить с конфигурацией поставщика 1с

Содержание
  1. Сопоставление объектов при сравнении конфигураций
  2. Правила сопоставления объектов
  3. Влияние сопоставления объектов на скорость сравнения конфигураций
  4. Замечания по методике использования механизма
  5. Удаление объектов поставщика
  6. Удаление пользователем
  7. Удаление поставщиком
  8. Предназначение
  9. Общая схема обновления
  10. Реализация в платформе "1С:Предприятие 8"
  11. Общие понятия
  12. Выполнение обновления
  13. Модификация алгоритма обновления с помощью правил поддержки
  14. Ограничения действий пользователя со стороны поставщика с помощью правил поставки
  15. Механизм сравнения и объединения конфигураций обеспечивает сравнение:
  16. Установка соответствия объектов в 1С
  17. Сравнение конфигураций 1С
  18. Алгоритмы сопоставления объектов сравниваемых конфигураций:
  19. В качестве сравниваемых конфигураций могут выступать:
  20. Объединение конфигураций 1С
  21. Установка режима объединения конфигураций возможна:
  22. Особенности сравнения (объединения) конфигураций 1С:
  23. Сохранение (загрузка) настроек объединения конфигураций
  24. Использование для сравнения и объединения модулей конфигурации 1С внешней программы
  25. Добавить комментарий Отменить ответ

Сопоставление объектов при сравнении конфигураций

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

Для сопоставления объектов при объединении конфигурации в 1С:Предприятии 8 используются свойство "Имя" объекта метаданных и его внутренний идентификатор. Однако в различных вариантах сравнения алгоритм сопоставления объектов разный. Прежде чем подробно описать различные варианты, сначала опишем правила изменения внутреннего идентификатора. Идентификатор в пределах одной конфигурации никогда не изменяется. Идентификатор не изменяется при выгрузке конфигурации в cf или dt файлы (включая файлы поставки cf и обновления cfu ). Идентификатор не изменяется при использовании механизма групповой разработки (в процессе перемещений между конфигурацией и хранилищем). Идентификатор всегда изменяется при копировании объекта, в том числе в процессе объединения конфигураций. Поясним на примере. Создаем новую конфигурацию. Выполняем команду " Конфигурация – Сравнить, объединить с конфигурацией из файла. ". Программа обнаружит что текущая конфигурация пустая и предложит выполнить полную загрузку (аналогично команде " Конфигурация – Загрузить конфигурацию из файла "). Если согласится на предложенный вариант, то в результате все объекты сохранят свои идентификаторы. Если же отказаться и выполнить обычное объединение, то все объекты идентификаторы поменяют, хотя логически получатся две одинаковые конфигурации.

Теперь рассмотрим алгоритмы сопоставления объектов. Существуют три варианта.

  1. Сравнение произвольных конфигураций. Выполняется сопоставление по имени объекта. Если для каких-то объектов пару найти не удалось, выполняется сопоставление по идентификатору.
  2. Сравнение родственных конфигураций. Имеются ввиду конфигурации, про которые можно точно утверждать, что они являются различными версиями одной и той же конфигурации (примеры – сравнение основной конфигурации с конфигурацией базы данных или с конфигурацией хранилища). Выполняется сопоставление только по идентификатору объекта. Имя объекта не используется.
  3. Сравнение с конфигурацией поставщика. Выполняется сопоставление по идентификаторам, но при этом идентификаторы не обязательно должны быть одинаковы.

Третий вариант мы рассмотрим отдельно, но сначала некоторые уточнения про первые два. Сравнение конфигураций можно вызвать из различных режимов. Например, используя команды " Конфигурация – Сравнить, объединить с конфигурацией из файла. ", " Конфигурация – Конфигурация базы данных – Сравнить, объединить с конфигурацией базы данных ", из диалога настройки поддержки, и так далее. Во всех этих случаях вариант сопоставления выбирается автоматически. Есть также команда универсального сравнения конфигураций "Конфигурация – Сравнить конфигурации. ". Где можно выбрать любую пару (например конфигурацию базы данных с некоторой версией из хранилища конфигураций). В случае если будет указана пара конфигураций, связь между которыми известна, вариант сопоставления так же будет выбран автоматически. В противном случае, будет доступен флажок "Устанавливать соответствия по именам объектов", который позволяет в явном виде выбрать один из двух алгоритмов.

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

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

Влияние сопоставления объектов на скорость сравнения конфигураций

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

  1. Среди сопоставленных объектов нет пар с различными идентификаторами.
  2. Среди несопоставленных объектов нет возможных пар с одинаковыми идентификаторами.

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

Читайте также:  Тип раздела первичный или логический

Замечания по методике использования механизма

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

Удаление объектов поставщика

Рассмотрим варианты удаления объекта поставщика.

Удаление пользователем

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

Удаление поставщиком

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

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

Предназначение

Рассмотрим типичную ситуацию. Фирма-поставщик выпускает тиражную конфигурацию. Клиент приобретает ее и адаптирует под свои требования. Через некоторое время поставщик выпускает новую версию, и перед клиентом встает вопрос обновления, то есть интеграции своих изменений с изменениями поставщика. Ручное объединение в подобных случаях очень трудоемко. Требуется составить список всех отличий своей конфигурации от старой конфигурации поставщика и заново внести их в новую версию. Можно делать и наоборот, то есть подготовить список изменений поставщика и внести их в свою конфигурацию, но это ничего не меняет. Многое также зависит от механизма сравнения конфигураций и подготовки отчета различий. В платформе "1С:Предприятие" версии 8 этот механизм был существенно улучшен по сравнению с "1С:Предприятием" версии 7.7, но даже самый лучший и подробный отчет от дальнейшей утомительной ручной работы не освобождает. Механизм поставки и поддержки конфигураций в значительной степени автоматизирует этот процесс.

Общая схема обновления

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

Пользователь Поставщик Правило обновления
1 Менял Не менял Взять из конфигурации пользователя
2 Менял Менял ?
3 Не менял Не менял Взять из конфигурации пользователя
4 Не менял Менял Взять из конфигурации поставщика

Таблица 1. Правила обновления по умолчанию

Нетрудно заметить, что варианты 1, 3, 4 в большинстве случаев не требуют модифицировать предложенное правило. Самый сложный случай – второй. Здесь нельзя сделать никаких предположений, но можно по крайней мере автоматически определить все такие свойства и предоставить пользователю отфильтрованный список для указания правила в каждом конкретном случае.

Реализация в платформе "1С:Предприятие 8"

Общие понятия

В "1С:Предприятии 8" любая конфигурация может стоять на поддержке одной или нескольких других конфигураций, называемых конфигурациями поставщика. В качестве конфигурации поставщика может выступать конфигурация, созданная командой Конфигурация – Поставка конфигурации – Создать файлы поставки и обновления конфигурации . В результате выполнения этой команды создается файл конфигурации ( cf) . Файл, подготовленный командой Конфигурация – Сохранить конфигурацию в файл , в качестве конфигурации поставщика использовать нельзя. Для того чтобы получить конфигурацию поставщика в виде файла информационной базы (1cd) или файла выгрузки информационной базы (dt), требуется подготовленный вышеописанным способом файл cf загрузить в требуемую информационную базу (возможно, в пустую), выполнив команду Конфигурация – Загрузить конфигурацию из файла . Затем, при необходимости, можно штатными средствами создать файл dt.

Существуют два способа встать на поддержку конфигурации поставщика. Первый – использовать конфигурацию, подготовленную вышеописанным способом (при необходимости внося в нее изменения). Фактически подготовленная конфигурация поставщика находится на поддержке той конфигурации, в которой она была создана. Аналогичный результат достигается через команды Конфигурация – Загрузить конфигурацию из файла и Администрирование – Загрузить информационную базу . Второй способ позволяет поставить на поддержку уже созданную конфигурацию пользователя. Для этого необходимо выполнить команду Конфигурация – Сравнить, объединить с конфигурацией из файла . Если в качестве выбранного файла указывается файл конфигурации поставщика, и конфигурация пользователя уже не находится на ее поддержке, предлагается после объединения встать на поддержку.

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

Читайте также:  Топовые ники для инсты

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

Приведем пример. Если конечная версия "4", а обновление создается только для версии "2", то невозможно будет выполнить обновление не только для версии "1", но и для версии "3". Такое ограничение связано с возможностью "обратных" изменений. То есть представим себе, что при переходе к версии "3" поставщик увеличил длину строки в типе реквизита, а в версии "4" изменил ее обратно. При подготовке обновления "2" – "4" это свойство в файл не попадет (поскольку в этих версиях значения совпадают). Если позволить использовать такой файл для обновления версии "3", то у пользователя окажется неправильная, увеличенная длина строки. Файлы обновления конфигурации имеют минимальный размер не только за счет включения в них только необходимых объектов, но и за счет применяемого в них сжатия данных. Они оптимальны для доставки обновления пользователю по низкоскоростным каналам связи. Обратной стороной является описанная выше меньшая гибкость их применения. С точки зрения дальнейшего процесса обновления применение файлов cf и cfu ничем не отличается.

Рисунок 1. Общая схема взаимодействия поставщика и пользователя

Выполнение обновления

Если конфигурация пользователя находится на поддержке без возможности внесения изменений, обновление представляет собой тривиальный, полностью автоматизированный процесс. Пользователь выполняет команду Конфигурация – Поддержка – Обновить конфигурацию , и после получения подтверждения выполняется обновление. Рассмотрим второй, наиболее интересный случай. Пользователь включил возможность изменения. Обновление конфигурации производится с использованием стандартного механизма сравнения и объединения, но пользователю предоставляется существенный дополнительный сервис. В процессе сравнения участвуют не две а три конфигурации – конфигурация пользователя, старая конфигурация поставщика (она хранится в конфигурации пользователя) и новая конфигурация поставщика, до которой и производится обновление. При этом система автоматически производит анализ сделанных изменений и, в соответствии с таблицей 1, расставляет правила объединения. Главную сложность представляет собой вариант 2, когда и пользователь, и поставщик меняли одно и то же свойство. Как отмечалось, разумных предположений автоматически сделать невозможно, но можно выделить эти случаи для пользователя. Все подобные свойства в дереве объединения показываются жирным шрифтом. Кроме того, в настройке фильтра просмотра можно указать флажок Показывать только дважды измененные свойства , и в дереве объединения будут показываться только те свойства, которые требуют ручной установки правил объединения. После выполнения объединения хранимая внутри пользовательской конфигурации конфигурация поставщика будет обновлена до новой версии.

Модификация алгоритма обновления с помощью правил поддержки

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

  • "Объект поставщика не редактируется" – пользователь не может изменять объект поставщика. Основное предназначение этого правила будет описано ниже, но пользователь может установить его с целью страховки от случайных изменений. При обновлении такие объекты будут полностью заменяться на объекты поставщика новой версии.
  • "Объект поставщика редактируется с сохранением поддержки" – основное правило. В этом случае алгоритм объединения в точности совпадает с описанным.
  • "Объект поставщика снят с поддержки" – пользователь не хочет выполнять дальнейшие обновления данного объекта. Для того чтобы удалить объект поставщика, предварительно ему необходимо установить данное правило.

Приведем расширенный вариант таблицы 1, с учетом правил поддержки.

Пользователь Поставщик Правила поддержки и обновления
1 Менял Не менял
Любое Взять из конфигурации пользователя
2 Менял Менял
Объект поставщика не редактируется Невозможно Объект поставщика редактируется с сохранением поддержки Взять из конфигурации поставщика Объект поставщика снят с поддержки Взять из конфигурации пользователя 3 Не менял Не менял
Любое Взять из конфигурации пользователя 4 Не менял Менял
Объект поставщика не редактируется Взять из конфигурации поставщика Объект поставщика редактируется с сохранением поддержки Взять из конфигурации поставщика Объект поставщика снят с поддержки Взять из конфигурации пользователя

Таблица 2. Правила обновления по умолчанию с учетом правил поддержки

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

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

  • "Изменения разрешены";
  • "Изменения не рекомендуются";
  • "Изменения запрещены".
Читайте также:  Юлия соловьева гугл биография

Далее приводятся правила поддержки (по умолчанию и доступные для выбора пользователем), соответствующие различным правилам поставки.

Рисунок 2. Соответствие правил поставки и поддержки

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

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

Механизм сравнения и объединения конфигураций обеспечивает сравнение:

  1. общих свойств объектов прикладного решения (справочников, документов и т.д.);
  2. отдельных реквизитов, табличных частей объектов прикладного решения;
  3. форм (сравниваются тексты модулей, тексты описаний и макеты).

Все результаты сравнения можно просмотреть в детальном виде.

Вызов механизма сравнения и объединения конфигураций осуществляется с помощью меню "Конфигурация":

Установка соответствия объектов в 1С

При запуске режима сравнения система анализирует сравниваемые конфигурации и устанавливает соответствие между их объектами, исходя из имен:

В случаях, когда

  • одинаковые объекты прикладного решения будут иметь различные имена или наоборот,
  • различные объекты будут называться одинаково

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

Сначала отменяем автоматические соответствия:

Затем устанавливаем вручную:

Сравнение конфигураций 1С

Алгоритмы сопоставления объектов сравниваемых конфигураций:

  • Сравнение произвольных конфигураций:
    1. Выполняется сопоставление по имени объекта.
    2. Если для каких-то объектов пару найти не удалось, выполняется сопоставление по идентификатору.
    3. Сравнение родственных конфигураций. Имеются ввиду конфигурации, про которые можно точно утверждать, что они являются различными версиями одной и той же конфигурации (примеры – сравнение основной конфигурации с конфигурацией базы данных или с конфигурацией хранилища).
      1. Выполняется сопоставление только по идентификатору объекта. Имя объекта не используется.
      2. Сравнение с конфигурацией поставщика.
        1. Выполняется сопоставление по идентификаторам, но при этом идентификаторы не обязательно должны быть одинаковы.

        Его особенность связана с наличием двух вариантов поддержки:

        1. с включенной возможностью изменений;
        2. без возможности изменений.

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

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

        В качестве сравниваемых конфигураций могут выступать:

        • основная конфигурация;
        • конфигурация базы данных;
        • конфигурация, сохраненная во внешнем файле;
        • конфигурация поставщика.

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

        Результат сравнения конфигураций отображается в специальном окне. При этом разработчик имеет возможность настроить состав информации, отображаемой в этом окне и установить отображение:

        • всех объектов прикладного решения;
        • только отличающихся объектов;
        • только измененных объектов;
        • присутствующих только в какой-либо одной конфигурации;
        • только неизмененных объектов.

        Для каждого отличающегося объекта можно просмотреть детальную информацию об отличиях.

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

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

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

        Установка режима объединения конфигураций возможна:

        • для всей конфигурации в целом;
        • для каждого элемента прикладного решения в отдельности.

        Особенности сравнения (объединения) конфигураций 1С:

        1. При объединении с приоритетом загружаемой конфигурации текст модулей, измененный в основной конфигурации, будет закомментирован, а текст из загружаемой конфигурации будет добавлен.
        2. При выполнении сравнения, объединения с конфигурацией из файла, в режиме "Взять из файла" измененный объект будет замещен полностью.

        Сохранение (загрузка) настроек объединения конфигураций

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

        • сохранять в xml файл;
        • загружать из xml файла;
        • добавлять из xml файла.

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

        Использование для сравнения и объединения модулей конфигурации 1С внешней программы

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

        В конфигураторе 1С:Предприятия уже содержатся параметры командной строки для запуска самых распространённых программ:

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

        Добавить комментарий Отменить ответ

        Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

        Оцените статью
        Добавить комментарий

        Adblock
        detector