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

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

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

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


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

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

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


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


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

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

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

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


Далее выбираем файл обновления.
Хотелось бы сказать про обновление через несколько релизов. 1С не рекомендует обновлять на CF файлы, сразу прыгая через несколько релизов. Это нужно делать последовательно. В теории это правильно.
Объясню почему так не рекомендуют делать. Если программисты хотят удалить какой-либо реквизит, то они сначала приписывают к нему приставку «удалить», потом через несколько релизов удаляют его. И могут в каком то релизе перенести из него информацию. Вот пропуская этот релиз, вы можете потерять данные. Но на практике за свои уже лет 10 работы с базами 1с у меня был такой один случай. Когда почему-то разработчики решили перенести данные с перечисления на справочник. При том ничем критичным это для меня не закончилось. Я написал простую обработку, которая перекинула эти данные из архива в текущую базу. Никакого повторного обновления делать не пришлось.
Можете кидать в меня камни, но я всегда обновляю базу через cf файлы на несколько релизов.
Итак мы нажали обновление, нам выскочило сообщение с какой на какую версию будет произведено обновление. Мы нажимаем ОК.



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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

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

2. Т.к. статья позиционируется как краткая инструкция для новичка многие моменты опущены, зато очевидный момент про то, что у нас должна быть 2 база копия текущей расписано аж на 3 абзаца. Причём расписано неправильно:

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


А если копия базы совсем древняя? Что будет если прыгнуть через 50 релизов таким вот способом? Да, cf-ник получится корректный, но возможны ошибки в режиме предприятия, на анализ которых уйдёт куча времени. И всё-равно программист должен будет вынужден снять актуальную копию и обновлять её. Риски см. в п.7, в и в , но эта информация не для новичка. Для новичка всё просто: см. п.7 чтобы не повторяться.

Устанавливаем переключатель на «Выбор файла обновления» и указываем наш файл обновления.


Зачем? Почему рекомендуется для новичков в краткой инструкции именно этот метод, а не рекомендованный фирмой 1с? Поиск доступных обновлений на конфигурации УправлениеПтицефабрикой не работает?

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


Вы пробовали сравнивать то что было до и что получилось после всех этих манипуляций? Боюсь результат одинаков: то что вы старательно первым делом убрали, то же в конце концов обратно и получилось! В новой версии платформы (ну как новой, для вас да - новой, а так она уже не новая, но и не старая) можно делать XML файл настроек объединения конфигураций. Попробуйте сделать до и после и сравнить их.

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


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

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


Во-первых: если это чисто ваша база и только вы её обновляете, возможно стоит задуматься чтобы сделать все изменения формы кодом. Минусы: придётся почитать ИС как это делается (если не знаете); на начальном этапе уйдёт куча времени. Плюс: экономия времени при каждом обновлении.
Во-вторых: ничего не сказано что нужно (и как это сделать) определить была ли форма изменена по сравнению со старой конфигурацией поставщика.
В-третьих: когда конкретно "возможно достаточно будет объединить форму с приоритетом"? Вообще статься про обновление, а основные моменты уж очень кратко расписаны!

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


Это инструкция для новичка? Если поставщиком не предусмотрен переход с версии 1 на 3, то и не нужно новичку этого делать. А не новичку нужно понимать, что он берёт на себя риск. В указанной выше статье написано:

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


Но эта информация не для краткой инструкции для НОВИЧКОВ! Для новичков всё просто: делайте как рекомендует поставщик конфигурации, обновляйте последовательно! Если поставщик сказал, что можно с 1 версии перескочить на 3, то делайте, нельзя - не делайте.

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

Чего там нет? Собственно самой технологии обновления. То есть поэтапного описания действий при анализе Основной конфигурации и Обновления. Попробуем описать этот процесс в виде алгоритма:

  1. После того как вы сделали копию информационной базы, запустили механизм обновления. Появится окно сравнения, объединения конфигураций.
  2. Понять какие объекты были изменены в конфигурации до Вас. Это можно сделать при помощи установки фильтра: Показывать отличия основной конфигурации от старой конфигурации поставщика(не забудьте при этом проверить текущий релиз конфигурации поставщика).
  3. Понять какие объекты должны будут изменены в ходе обновления. Это можно сделать несколькими способами. Первый способ, использовать файл описания изменённых объектов который можно найти в каталоге обновления либо на сайте users.v8.1c.ru. Второй способ, отключить фильтр, установить шаблон в значение «Показывать все». В этом случае все изменённые объекты будут содержать отметку о изменении объекта напротив соответствующего объекта в колонке (зеленый карандаш).

  4. На следующем шаге необходимо обратить внимание на объекты, которые были изменены до Вас и которые необходимо изменить в ходе обновления. Для этого установим фильтр: Показывать только дважды измененные объекты. С этими объектами необходимо разбираться в первую очередь. Итак, если объект изменен, это означает что изменилось одно из следующих составляющих:
    1. Изменено какое-либо свойство объекта;
    2. Изменены реквизиты объекта или реквизиты табличной части объекта;
    3. Изменён макет объекта;
    4. Изменён модуль объекта;
    5. Изменена форма объекта.
  5. По каждой составляющей необходимо принять решение о объединении.
    1. Если свойство объекта изменено в основной конфигурации и не изменяется в обновлении, то в этом случае необходимо установить соответствующий режим объединения этих свойств: «Объединить с приоритетом основной конфигурации».
    2. Если свойство объекта не изменялась в основной конфигурации (нет зеленого карандаша рядом с свойством в колонке «Основная конфигурация») в этом случае необходимо установить режим: «Взять из загружаемой конфигурации».
    3. Если свойство объекта было изменено в основной конфигурации, и должно быть изменено в ходе обновления: В этом случае можно устанавливать одно из возможных вариантов объединения. Примем за основу тот факт, что при обновлении необходимо максимально сохранить доработанный функционал, при этом добавив обновление в конфигурацию. В этом случае в зависимости от того что изменилось Модуль объекта, модуль формы или свойство, реквизит, макет, элементы формы будет разная стратегия обновления. Итак, если изменения коснулись модуля: Можно принять решение о каждом конкретном изменении, при этом существует 4 различных варианта исхода:
      1. Объединить с приоритетом основной.
      2. Отключить объединение модуля.

Если изменения коснулись реквизита, формы, макета то решение принимается в целом на подчиненный объект, в зависимости от степени изменения. Здесь так же 4 варианта объединения:

  1. Взять из загружаемой конфигурации.
  2. Объединить с приоритетом основной
  3. Объединить с приоритетом загружаемой конфигурации.
  4. Отключить объединение объекта.

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

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

6. После настройки режимов обновления необходимо нажать кнопку «Выполнить».

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

8. Еще одна ситуация к которой необходимо отнестись с вниманием, это вот такое сообщение:

(смотри картинку анонса:)


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

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

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

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

Установить режим для подчиненных объектов .

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

Режим объединения конфигураций

Описание режима

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

Установит порядок для подчиненных объектов

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

Отменить соответствие объектов Для сопоставленных объектов отменяет соответствие. После этого объекты будут считаться различными. Установить соответствие объектов Для объектов, не имеющих соответствия в другой конфигурации, позволяет выбрать соответствующий объект. Файл (Вторая конфигурация) В этой колонке отображаются объекты загружаемой конфигурации (отчета / обработки). Каждый объект имеет контекстное меню, аналогичное объектам из основной конфигурации. Режим объединения и порядок подчиненных объектов . В этой колонке отображается статус объектов с измененным порядком, а так же задается режим объединения для объектов и конкретных свойств. Объекты с измененным порядком относительно сопоставленных позволяют задать порядок (смотреть Порядок подчиненных объектов ). Важно отметить, что задание порядка объекта означает задание порядка всех объектов данного типа, имеющих общего владельца. Режим объединения может быть задан для объектов и конкретных свойств. Для объектов задание режима аналогично команде Установить режим для подчиненных объектов контекстного меню. Для конкретного свойства режим определяется типом данного свойства. Если свойство не поддерживает объединение в принципе (например, число) для него возможен только режим замещения (Взять из загружаемой конфигурации ). Если свойство поддерживает простое объединение (например, списки ссылок на объекты метаданных), то для него доступен режим Объединить . Если свойство поддерживает объединение с приоритетом (например, многоязыковые строки), для него доступны все режимы, описанные в команде Установить порядок подчиненных объектов .
Если в конфигурации используется несколько языков и в настройке указан режим выборочного сравнения по языкам, то для таких объектов производится сравнение и объединение с учетом указанных в настройке языков. Цветовое оформление объектов . Расшифровывает цветовое оформление статусов объектов. Возможны следующие варианты.
Статус Описание
Неизмененные Объект полностью идентичен соответствующему объекту в другой конфигурации.
Измененные Объект изменен относительно соответствующего объекта в другой конфигурации.
Изменения могут быть среди свойств данного объекта или среди объектов, подчиненных данному.
Неопределенные Объект имеет соответствие в другой конфигурации, но статус (Неизмененный или Измененный) в данный момент неизвестен. Для определения статуса требуется заново произвести сравнение с помощью кнопки Обновить
Только в основной Объект присутствует только в основной конфигурации
Только в загружаемой Объект присутствует только в загружаемой конфигурации
Изменен порядок объекта В конфигурациях изменен порядок соответствующих объектов.
Фильтр Определяет, с какими статусами будут отображаться объекты в дереве.
Фильтр Описание
Показывать все Показывать все объекты, существующие в конфигурациях
Показывать отличия в конфигурациях Не будут показаны неизмененные объекты
Показывать измененные Будут показаны только замененные объекты
Показывать присутствующие только в основной конфигурации Будут показаны только объекты из основной конфигурации, не имеющие соответствия в загружаемой
Показывать присутствующие только в загружаемой конфигурации Будут показаны только объекты из загружаемой конфигурации, не имеющие соответствия в основной
Показывать присутствующие только в расширении конфигурации* Будут показаны только объекты из расширения конфигурации, не имеющие соответствия в загружаемой
Показывать присутствующие только в файле* Будут показаны только объекты из файла загружаемого расширения, не имеющие соответствия в расширении
Показывать неизмененные Будут показаны только неизмененные объекты.
* - используется при сравнении/объединении расширений конфигурации . Действия В этом меню можно произвести действия по управлению объединением. Поиск неразрешимых ссылок на удаляемые объекты Выполняет поиск неразрешимых ссылок, на удаляемые объекты. Результат выводится в окно сообщений. Загрузить настройки из файла Текущие настройки объединения заменяются на настройки, хранящиеся в указанном файле. При этом путь к файлу сохранения настроек меняется на выбранный. Добавить настройки из файла К текущим настройкам добавляются настройки объединения из файла. При этом путь к файлу сохранения настроек не меняется. Сохранить настройки в файл Сохраняет установленные настройки в текущий файл настроек. Если текущий файл настроек не выбран, откроется диалог выбора файла. Сохранить настройки в файл как... Сохраняет установленные настройки в новый файл. Установить настройки по умолчанию Восстанавливает настройки, которые были использованы при открытии диалога сравнения/объединения. Объединить модули Выполняет объединение помеченных необъединенных модулей, для которых установлен один из режимов "Объединить... ". Установить режим для всех Аналогично установлению режима объединения из контекстного меню корня конфигурации. Отметить по подсистемам основной конфигурации / Отметить по подсистемам файла Позволяет установить флажок объединения для всех объектов, относящихся к указанным подсистемам. Отчет о сравнении конфигураций Формирует отчет о сравнении двух конфигураций (отчетов / обработок). Обновить Выполняет сравнение конфигураций для уточнения статуса сопоставленных объектов. Параметры Открывает диалог настройки сравнения/объединения.

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

Если флажок "Сохранять настройки автоматически " установлен, то перед выполнением операции настройки будут автоматически сохранены.

Чтобы выполнить объединение в соответствии с заданными правилами, следует нажать кнопку Выполнить .

см. также:

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

Перед нам откроется окно настройки поддержки конфигурации.

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

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

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

Распечатываем

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

Нажав на кнопку "ОК" мы получим подробный отчет об изменениях в типовой конфигурации в формате табличного документа, который платформа 1С:Предприятие позволяет сохранить в другие форматы (например, таблица Excel).

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



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: