Отключить сравнение объектов при обновлении 1с

Обновлено: 07.07.2024

В этой инструкции нетипового обновления измененной 1с 8.3 я не буду описывать базовые вещи, такие как: как открыть конфигуратор, что такое конфигурация БД, конфигурация поставщика и основная конфигурация. Об это и там много написано, и вы можете самостоятельно найти эту информацию на просторах интернета. Я постараюсь описать основные моменты процесса обновления и на что нужно обратить внимание.
Я взял для примера нетиповую бухгалтерию 3.0.51.22 и покажу как обновить ее до версии 3.0.53.29. На платформе версии 8.3.10.2561 (нет большой разницы на более старых платформах, просто раньше окошко сравнения выглядело чуть иначе).
Скажу сразу, будет много картинок и мало текста. Я считаю, что визуально проще запоминать процесс, чем читать море текста.

1. Проверить соответствие конфигурации БД и конфигурации поставщика.

Для этого вам нужно

    первое – открыть из меню «Справка» - «О программе»

и в разделе конфигурация найти версию, указанную в скобках.

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

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

При совпадении можете смело переходить к пункту 2.

1а. Постановка конфигурации на поддержку.

Если у вас отличаются версия БД и версия конфигурации поставщика, то вам нужно удалить текущую конфигурацию все через то же меню: конфигурация – поддержка – настройка поддержки. И нажать кнопку «Снять с поддержки».

Далее нужно сравнить-объединить с типовой конфигурацией версии, указанной в «Справка» - «О программе». И на вопрос «Поставить на поддержку?» нажать «Да».

После «недолгого» ожидания снимаем все галочки. Ну и можно убрать галку «Сохранять настройки автоматически». И жмем выполнить.

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

2. Обновление базы.

Теперь можно переходить к обновлению.

Скажу сразу обновление делать нужно ТОЛЬКО через меню «Конфигурация» - «Поддержка» - «Обновить конфигурацию…».
Использовать «Сравнить, объединить с конфигурацией из файла…» НЕЛЬЗЯ. При использовании этого механизма вам при следующем обновлении придется переходить к пункту 1а. Поэтому давайте не будем так делать и создавать себе (или тому, кто будет в следующий раз обновлять базу) лишние проблемы.

Ожидаем, пока пройдет сравнение объектов.
Далее нам нужно внизу из списка выбрать пункт «показывать только дважды измененные свойства.

Так же хочу сказать по старые версии, раньше это был флажок.



Итак, мы теперь видим гораздо меньше объектов.

Если у вас пусто, то вам несказанно повезло, и вы можете смело нажимать кнопку «выполнить» и считайте обновление закончено. Ну у нас не все так просто, поэтому пробегусь по основным объектам.

    Подсистемы – ставим режим «Объединить»

Первое что хочется сказать. Ни в коем случае не переключайте режим объединения. Он должен стоять «Взять из новой конфигурации поставщика». Иначе вы получите в базе мусор с комментарием MGR.
Никаких кнопок «показать различия в модулях…»!
Жмем именно на значок шестеренки рядом с модулем

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

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

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

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

Вернемся к обновляемой конфигурации. Там мы через значок шестеренки зашли с режим объединения модулей. Далее ставим все галки…вручную..говоря про себя «спасибо» разработчикам платформы :)

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

Копируем его из верхнего окна и вставляем в нижнее окно.

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

Отлично. Теперь пробежавшись по всем объектам можно снять галку «сохранять настройку автоматически» и потом «выполнить»

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

Все. Обновление нетиповой конфигурации 1с завершено.
Этот метод не претендует на идеал, но я думаю, многие совершают ошибки в этих шагах.
Конечно, я рассказал не все, тут еще много подводных камней. Но я думаю 90% обновлений можно смело обновлять по этой инструкции.

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

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

Вопрос

Подскажите, почему при обновлении типовой конфигурации (под замком) на ближайший релиз появляются дважды измененные объекты?

Реализация услуг и прочих активов

(нажмите, чтобы увеличить картинку)

Ответ

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

Реализация услуг и прочих активов

(нажмите, чтобы увеличить картинку)

При этом для других объектов “замок” может быть снят, в них могут вноситься изменения.

Комментарий слушателя

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

Комментарий тренера

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

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

Можно попробовать вернуть конфигурацию на поддержку, если никакие изменения в конфигурации больше не нужны. Для этого нужно загрузить типовой cf-файл этого же релиза (можно взять из дистрибутива конфигурации). Конечно, обязательно нужно сделать копию базы. Тогда конфигурация станет полностью типовой, без возможности редактирования. И окно сравнения не будет отображаться при обновлении.

Комментарий слушателя

Реализация услуг и прочих активов

(нажмите, чтобы увеличить картинку)

Комментарий тренера

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

На скриншоте видно, что разница появилась в теге color.

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

Также ранее платформа работала с HTML через Internet Explorer, в справочной информации появлялись разные теги, если работать с ней на компьютерах с разными операционными системами. Сейчас в платформе перешли на библиотеку WebKit. Возможно, из-за этого появились еще какие-то нюансы.

База Бухгалтерии 3.0 - клиенту известно, что изменения есть, но их не должно быть много, касаются нумерации некоторых документов.

При сравнении с базой поставщика, через Поддержка-Настройка поддержки, дает значительный разбег конфигураций - примерно 40% измененных объектов + 20% удаленных и новых, все объекты базы "разрешены изменения" у многих "снят с поддержки".

Однако, при сравнении с файлом (конфигурация поставщика выгружена в файл) - фактических различий в конфигурациях 1-2%.

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

Цель в идеале - вернуть конфу к виду, когда обновление через Поддержка-Обновить реально и обозримо по времени, оставив нужные изменения конфигурации и сохранив данные базы, а также закрыть "под замок" типовые объекты.

Объясняю, почему нельзя просто загрузить типовую конфу - теряем данные, сохраненные в тех объектах, которые разъехались по идентификаторам - их просто затрёт.

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

Опишу этапы, по которым действовала, может, кому поможет, кого-то наведет на мысль .

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

2. В базе данных проверяем объекты, которые хранят информацию и "разъехались" с типовой - есть ли в них информация.

В моем случае несказанно повезло: 3 регистра, 2 константы и 1 вид документа оказались не использованы - данных по ним не было и сохранять не нужно было - с ними я поступила аналогично 1 пункту.

В общем случае, когда данные есть - путей 2: либо эти объекты так и оставляем - "разъехавшимися" и каждое обновление обновляем их индивидуально, либо сохраняем "старый" объект с данными под другим именем и готовим обработку по переносу данных из него в типовой объект - переносим и удаляем "старый" объект.

Итого получаем конфигурацию более приближенную к типовой - в которой оставлены только нужные изменения.

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

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

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

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

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

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

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

Вызов механизма сравнения и объединения конфигураций

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

настройка состава информации о сравниваемых конфигурациях

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

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



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

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


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

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


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

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


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

Сравнение конфигураций 1С на разных языка

  • новые всегда добавляются;
  • совпадающие по именам заменяются, если приоритет у загружаемой, иначе не изменяются.


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

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

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

  • сохранять в xml файл;
  • загружать из xml файла;
  • добавлять из xml файла.
Рисунок "Сохранение (загрузка) настроек объединения конфигураций"

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

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

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

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

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

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

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

Для отправки комментария вам необходимо авторизоваться.

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

Читайте также: