Обновление типовой доработанной конфигурации для начинающих

Опубликовал Виктор Александров (docerman) в раздел Программирование - Практика программирования

Инструкция по обновлению типовой доработанной конфигурации для начинающих

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

В свое время не смог найти краткой инструкции по обновлению, поэтому пишу эту статью.

Помните анекдот про молодых охотников и медведя. Так вот – главное не бояться.

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

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

Выгружаем конфигурацию рабочей базы в cf-файл.

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

Подготавливаем файл обновления (скачиваем с сайта 1С и устанавливаем какую-нибудь свою папку).

В копии нажимаем: Конфигурация – Поддержка – Обновить конфигурацию.

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

После того как появилось окно сравнения, первым делом снимаем галочку с корневого элемента конфигурации.

Потом заходим в настройки и ставим галочку разрешить удаление – это важно иначе можем получить ошибки после обновления

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

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

 

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

 Применяем фильтр – ну вот объектов значительно меньше и уже не так страшно (помним – главное не бояться).

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

У модулей в колонке «Режим объединения и порядок подчинения» нажимаем «Открыть».

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

Если в новой конфигурации поставщика отсутствует типовая процедура (не наша) то нужно установить галочку (режим объединения – Удалить).

 Если есть изменения и наши и поставщика – то нужно режим объединения установить «объединить». Записать в каком модуле, в какой процедуре, какие изменения и после объединения откорректировать соответствующий модуль. Т.е. например, ставим «объединить с приоритетом новой конфигурации», а потом снимаем комментарии с наших изменений (программа закомментирует наши изменения).

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

Далее делаем настройку как показано на скриншоте. И анализируем изменения.

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

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

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

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

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

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

Успехов всем!

См. также

Добавить вознаграждение
Лучшие комментарии
8. Валерий К (klinval) 165 27.12.16 10:33 Сейчас в теме
1. Помимо: Развитие сравнения/объединения модулей, произошли ещё изменения в обновлении: Улучшение сравнения и объединения конфигураций. В этих 2 ссылках самое важное, что теперь при обновлении можно сразу именять результат объединения процедур и функций. Об этом в статье нет ни слова, хотя если уж и дополнять то, что было сказано в культовой статье Технология обновления нетиповых конфигураций 1С:Предприятия 8 (редакция 12.04.2012) - то эта новая особенность одна из основных. Есть ряд других и все их можно почитать в зазеркалье.

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

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

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

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

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

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

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

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

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

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

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

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

Но эта информация не для краткой инструкции для НОВИЧКОВ! Для новичков всё просто: делайте как рекомендует поставщик конфигурации, обновляйте последовательно! Если поставщик сказал, что можно с 1 версии перескочить на 3, то делайте, нельзя - не делайте.
karpik666; Бывалый77; sbcode; sergelemon; borodatii; +5 Ответить 1
11. Виктор Александров (docerman) 35 27.12.16 11:58 Сейчас в теме
1. Замечание верное. Про новые возможности в 8.3 я в статье упустил. Но ведь обновление приходится делать и под 8.2.
2. Все верно, копия базы должна быть того-же релиза что и рабочая.
3. Этот способ универсален. Поэтому и описан.
4. Пробовал - результат разный - в первом случае выбрано больше объектов чем необходимо.
5. После объединения с приоритетом у меня проблем не было.
6. Статья писалась специально что-бы было кратко. О подробностях можно (и нужно) найти информацию в других источниках. О том как определить что форма изменена, в статье указано.
7. Перепрыгивать через несколько релизов при накатывании конфигурации на рабочую базу считаю вполне допустимым - никогда проблем не было.

Конфигурация "Управление птицефабрикой" - это отраслевое решение на базе УПП - так что вполне себе актуальная конфигурация.
Остальные комментарии
1. Андрей Карпов (karpik666) 308 23.12.16 04:23 Сейчас в теме
Инструкция из серии: рисуем линию, а затем рисуем сову, она точно для начинающих? Как открыть файл поставки у вас куча иллюстраций, а вот в самом важном обновлении у вас практически ничего. Интересен момент со снятием и установкой галочек перед обновлением, но по моему эти действия излишни. Как обновлять роли, критерии отбора? Что делать, если при обновлении выскочит окно, что есть связанные объекты, но не помеченные?
klinval; ekomova; LeXXeR; +3 Ответить 1
2. Виктор Александров (docerman) 35 23.12.16 06:59 Сейчас в теме
(1) Как обновлять роли, критерии отбора?
- об этом есть в статье: У ролей и тех объектов, у которых изменен состав – устанавливаем «объединить с приоритетом новой конфигурации поставщика».
- Что делать, если при обновлении выскочит окно, что есть связанные объекты, но не помеченные?
- об этом тоже есть: ...игнорируем страшные предупреждения программы если они появляются и не соглашаемся на предложения включить дополнительные объекты в объединение...

Писал статью, вспоминая как сам делал первые обновления - мне бы эта статья пригодилась.
sbcode; citicat; Светлый ум; vaxhab; +4 Ответить 2
3. Константин Куликов (Светлый ум) 190 23.12.16 08:09 Сейчас в теме
4. Андрей Карпов (karpik666) 308 23.12.16 08:37 Сейчас в теме
(2)
об этом тоже есть: ...игнорируем страшные предупреждения программы если они появляются и не соглашаемся на предложения включить дополнительные объекты в объединение...
Этот момент, когда читал в статье не понял.
По поводу ролей, в роли же могут не только установлено новые права, но и убраны уже существующие, поэтому с приоритетом конфигурации поставщика лучше не обновлять
А вообще я читал вот такую статью http://infostart.ru/public/18562/, хоть она и старая, но сохраняет актуальность и на текущий момент, надеялся, что в этой статье можно почерпнуть что-то новое.


5. Виктор Александров (docerman) 35 23.12.16 09:11 Сейчас в теме
(4) По поводу ролей:
Если из типовой роли убирались права - об этом нужно знать. Особенно это может касаться роли "Пользователь" - очень много прав в типовых у нее. Проверить это можно запустив отчет о сравнении старой конфигурации поставщика и основной конфигурации. Но и в этом случае я думаю нужно объединять с приоритетом новой конфигурации поставщика, а в получившейся конфигурации убрать не нужные права. Спасибо за замечания.
karpik666; +1 Ответить
6. Armando Armando (Armando) 1369 25.12.16 02:29 Сейчас в теме
Почему-то ничего не сказано, например, про kdiff3. С ним модули обновлять одно удовольствие - вжух и готово.
7. Виктор Александров (docerman) 35 26.12.16 13:02 Сейчас в теме
Отстал от жизни, работаю в основном на 8.2, на 8.3 возможностей для объединения модулей больше: http://v8.1c.ru/o7/201404merge/index.htm
9. Виктор Александров (docerman) 35 27.12.16 10:53 Сейчас в теме
(8) Спасибо за внимание уделенное статье. По пунктам отвечать не буду. Инструкцию считаю полезной для новичков (сужу по себе).
10. Валерий К (klinval) 165 27.12.16 11:10 Сейчас в теме
(9) Вот именно, что это больше похоже не на статью, а на памятку самому себе. И как любая памятка - она не всегда понятна для постороннего, некоторые советы в других конфигурациях бесполезны и/или вредны.
И очень странная реакция на конкретную критику: "Спасибо, но учитывать не буду. Для меня и так сойдёт". Вы написали не в текстовый файл для себя, а на ИС для других. Тут правильно либо оппонировать, если считаете критику необоснованной, либо исправить статью в соответствии с критикой...

Для новичков всё-таки рекомендую читать статью: Технология обновления нетиповых конфигураций 1С:Предприятия 8. Букв больше придётся прочитать, но знаний и правильных мыслей тоже больше.
Anchoret; +1 Ответить
12. Валерий К (klinval) 165 27.12.16 12:58 Сейчас в теме
(11)
4.
4. Пробовал - результат разный - в первом случае выбрано больше объектов чем необходимо.

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

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

...О том как определить что форма изменена, в статье указано.

В статье написано:
Для того чтобы понять что менялась сама форма а не просто модуль, делаем следующее: встаем на необходимый объект, нажимаем правую кнопку мыши и выбираем «Отчет о сравнении объектов»

Что мы увидим благодаря этому: что форма поменялась (или не поменялась) относительно сравнения "Основная конфигурация" - "Новая конфигурация поставщика". А смысл смотреть, анализировать, если до этого не был произведён анализ, а меняли ли мы сами эту форму (ситуацию, когда мы наизусть помним что меняли не учитываем)? Т.е. не произведено сравнение "Основная конфигурация" - "Старая конфигурация поставщика". Вот об этом ни слова.

7.
Перепрыгивать через несколько релизов при накатывании конфигурации на рабочую базу считаю вполне допустимым - никогда проблем не было.

Сегодня нет, завтра нет, а потом вдруг резко возникнут. Почитайте статью данную в сообщении выше, там написаны возможные проблемы. Если на примере:
Релиз 1. В конфигурации есть Реквизит1 в каком-нибудь справочнике.
Релиз 2. Реквизит1 переименовывают в УдалитьРеквизит1 и создают новый Реквизит2. В обработке обновления данные из УдалитьРеквизит1 переносятся в Реквизит2. 1С-ники так часто делают. Реквизит2 может иметь другой тип, или взамен одного реквизита создали два или наоборот.
Релиз 3. УдалитьРеквизит1 удаляют, т.к. он не нужен. Все данные перенесены в Реквизит2.
Вы рабочую обновляете с релиза1 сразу на релиз 3. Данные пропадут.
Стоит "удачно" прыгнуть и будет косяк. Не факт, что его сразу заметят. Рекомендовать прыгать через несколько релизов новичкам точно не стоит.
13. Виктор Александров (docerman) 35 27.12.16 13:59 Сейчас в теме
(12)
4. По умолчанию на моей версии платформы фильтр установлен "Показывать отличия основной и новой конфигурации поставщика от старой конфигурации поставщика". Раз значения по умолчанию на разных релизах платформы различаются - тем более нужно действовать как описано в статье, что-бы быть уверенным что выбраны те объекты которые необходимы.
6. Написано что нужно сравнить формы и сравнение может потребоваться и то какое указали вы, и различные другие в том числе на отличие старой конфигурации поставщика от новой конфигурации поставщика. Если мы на сравнении основной конфигурации от новой конфигурации поставщика не видим в отчете изменений то можно дальше не анализировать.
7. Это полезное замечание. Нужно читать описание каждого релиза - что конкретно менялось. что-бы не попасть в такую ситуацию. Я думаю что удаление реквизитов описанное вами происходит (если смотреть пример) не на 3 релизе, а значительно позже, а может и вообще не происходит так и остаются реквизиты "УдалитьРеквизитТакойТо" - поэтому и проблем нет. Но что бы перестраховаться - я согласен лучше делать последовательно.
14. Валерий К (klinval) 165 27.12.16 14:16 Сейчас в теме
(13)
4. По умолчанию на моей версии платформы фильтр установлен "Показывать отличия основной и новой конфигурации поставщика от старой конфигурации поставщика". Раз значения по умолчанию на разных релизах платформы различаются - тем более нужно действовать как описано в статье, что-бы быть уверенным что выбраны те объекты которые необходимы.

Я на разных версиях пробовал - всегда результат предсказуем. Он аналогичен тому что у вас после ваших манипуляций. Я просто предположил, что возможно у вас косяк конкретной версии платформы. Можете скрин дать объекта (в окне сравнения конфигураций), у которого в настройках по-умолчанию стоит галочка, а после ваших действий не установлена. У меня на новой версии платформы загорается строка, если настройки по-умолчанию изменены. После предложенных вами манипуляций ничего не загорается, т.к. мы получаем те самые настройки по умолчанию.
6. Написано что нужно сравнить формы и сравнение может потребоваться и то какое указали вы,

Об этом я и пишу, что часть основных моментов не отражено. Вы написали про «Отчет о сравнении объектов», а начинать надо сравнение с «Отчет о сравнении объектов основной конфигурации со старой конфигурацией поставщика» или «Отчет о сравнении объектов новой конфигурации со старой конфигурацией поставщика» (в зависимости от выбранной тактики).
15. Виктор Александров (docerman) 35 27.12.16 16:23 Сейчас в теме
В приложенных файлах:
а1 - по умолчанию (фильтр - Показывать отличия основной и новой конфигурации поставщика от старой конфигурации поставщика)
а2 - с установленным фильтром - Показывать отличия новой конфигурации поставщика от старой конфигурации поставщика

Версия платформы 8.2.19.130

Надеюсь хоть в этом вам статья оказалась полезной.
Прикрепленные файлы:
16. Валерий К (klinval) 165 27.12.16 17:42 Сейчас в теме
(15) похоже у вас глючит платформа. Посмотрите сами: у вас есть 2 общие формы:
1. НастройкаПрограммы
2. ПодборРолейУправляемая
Обе формы изменены вами по сравнению со старой конфигурацией поставщика. Обе формы не изменены в новой конфигурации поставщика по сравнению со старой. Т.е. чисто по логике обе должны быть "без галочки". Так на моей памяти работает любая версия платформы. А у вас одна с галочкой, другая без.

Если хотите проверить: скачайте платформу посвежее - там обе формы будут без галочки! Или даже подревнее - там тоже должно быть всё ОК.
17. Виктор Александров (docerman) 35 27.12.16 19:59 Сейчас в теме
(16) Даже если это глюк платформы (платформы разных версий работают порой странно) - в чем я лично сомневаюсь - скорее именно в том, что и как менялось в объекте, то способ предложенный в статье позволяет избежать таких ошибок, к тому же понятно какие именно объекты и зачем выбираются.
18. Елена Царёва (citicat) 111 28.12.16 10:07 Сейчас в теме
За статью спасибо большое! Добавила бы, что, по опыту работы, удобнее добавлять новые объекты (те же роли, справочники или документы), а не изменять существующие. Не всегда это возможно, но желательно.
19. Jestery Wilson (Jestery) 05.01.17 16:51 Сейчас в теме
Здравствуйте, а можно поподробнее, зачем ставить галку "разрешить удаление объектов основной конфигурации"?
20. Роман Озеряный (rozer) 180 05.01.17 22:45 Сейчас в теме
(17)
то способ предложенный в статье позволяет избежать таких ошибок


в этом нет смысла - в (16) написано верно. Галка "дважды измененные" работает нормально только если стоит фильтр "Показывать отличия основной и новой конфигурации поставщика от старой конфигурации поставщика" т.е. показывает то что изменили вы и 1с и типо "дважды". Кста. интересно что использование внешних ПО объединения http://v8.1c.ru/o7/201404merge/index.htm при "тройственном" объединении (конф на поддержке) удобнее "штатной объединялки" 1с - визуально показывает например сразу три фрагмента кода...
21. Роман Озеряный (rozer) 180 05.01.17 23:39 Сейчас в теме
+ (20) хотя туплю... это
Показывать отличия новой конфигурации поставщика от старой конфигурации поставщика
вообще не имеет смысла ибо вы потом все равно ставите "дважды измененные" что означает всего лишь один из фильтров.... зачем это лишнее действия можете пояснить?
22. Алексей Малко (AlexeyMalko) 06.01.17 10:45 Сейчас в теме
а я вот не понял зачем снимать с поддержки ? сколько уже обновлял и просто загружал cf и всё отлично - зачем эти лишние движения?