Обновление нетиповой конфигурации 1С 8.3 без потери доработок

· 9 мин

Содержание

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

Безопасная схема всегда одна: копия базы → анализ доработок → объединение на копии → проверка → перенос в рабочую базу. Больше всего времени уходит на третий шаг: разбор объектов, которые изменили и вы, и поставщик.

1. Что именно доработано: анализ конфигурации перед обновлением

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

Проверяем режим поддержки

Откройте Конфигурация → Поддержка → Настройка поддержки. В окне видно:

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

Если в окне настройки поддержки написано, что конфигурация не на поддержке совсем, — это отдельный сценарий, о нём в разделе 3.

Находим все доработки

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

Сохраните этот список. Удобно выгрузить отчёт о сравнении в файл (кнопка отчёта есть в окне сравнения) и пройтись по нему вместе с тем, кто писал доработки.

💡 Отметьте для себя объекты, где правки большие: общие модули, модули менеджеров документов, формы. Именно в них будут конфликты.

Проверяем расширения

Откройте Конфигурация → Расширения конфигурации. Если часть доработок сделана расширениями, сама конфигурация может быть почти типовой. Тогда обновление проходит проще, но расширения после него нужно проверить отдельно (раздел 5).

2. Подготовка к обновлению доработанной 1С

Резервная копия

Сделайте выгрузку базы: Администрирование → Выгрузить информационную базу в Конфигураторе, файл .dt. Для клиент-серверной базы дополнительно сделайте бэкап средствами СУБД.

Выгрузка .dt требует, чтобы пользователи вышли из базы. Планируйте её на нерабочее время и предупредите людей заранее.

Сохраняем три файла конфигурации

Это главный приём практика: до любых изменений сохраните

  1. основную конфигурацию — Конфигурация → Сохранить конфигурацию в файл;
  2. конфигурацию поставщика текущей версии — Конфигурация → Поддержка → Конфигурация поставщика → Сохранить в файл;
  3. новый дистрибутив поставщика — полный файл 1Cv8.cf из шаблона обновления.

С этими тремя файлами любое неудачное объединение можно повторить с нуля за 10 минут, без восстановления всей базы.

Где обновлять

Объединение делают на копии базы, а не в рабочей. Разверните .dt в отдельную пустую базу и работайте там. Рабочую базу трогаете только в конце, загрузив готовый .cf.

Если база подключена к хранилищу

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

3. Какой режим обновления выбрать для нетиповой конфигурации

Способ зависит от того, как доработана база.

Как доработана ваша конфигурация?

Чем отличаются .cf и .cfu

ФайлЧто внутриКогда подходит
.cfuТолько изменения между версиямиЕсли ваша версия поставщика есть в списке версий, с которых разрешено обновление
.cfПолная конфигурация новой версииПочти всегда для доработанных баз; позволяет обновиться, даже если версия поставщика не совпадает

Для доработанной базы полный .cf удобнее: объединение идёт от полной новой версии, и вы не упираетесь в ограничение по исходной версии.

Можно ли прыгнуть через несколько релизов

Технически через .cf можно перейти сразу на свежий релиз. Но обработчики обновления данных рассчитаны на определённые исходные версии. В описании каждого релиза поставщик указывает, с каких версий допустим переход.

Если в описании сказано, что сначала нужен промежуточный релиз, — ставьте его. Иначе данные могут не пересчитаться, и это всплывёт через месяц в отчётах.

4. Как загрузить и установить обновление в доработанную 1С

Порядок для конфигурации на поддержке с включённой возможностью изменений:

  1. Откройте копию базы в Конфигураторе.
  2. Выберите Конфигурация → Поддержка → Обновить конфигурацию.
  3. Укажите «Выбор файла обновления» и выберите 1Cv8.cf из каталога шаблонов новой версии.
  4. Программа прочитает файл и покажет окно сравнения трёх конфигураций: старой поставщика, новой поставщика и вашей основной.
  5. В верхней части окна задайте фильтр, чтобы видеть только изменённые объекты, и включите показ дважды изменённых свойств.
  6. Пройдите конфликтные объекты (раздел ниже) и выставьте режим объединения.
  7. Нажмите «Выполнить». Программа объединит конфигурации и обновит конфигурацию поставщика до новой версии.
  8. Проверьте результат: Конфигурация → Проверка конфигурации с синтаксическим контролем и поиском ссылок на несуществующие объекты.

Для конфигурации, снятой с поддержки, вместо шагов 2-3 используйте Конфигурация → Сравнить, объединить с конфигурацией из файла. При постановке на поддержку программа спросит про режим — для дальнейших обновлений выбирайте сохранение поддержки с возможностью изменений.

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

5. Конфликты при объединении: как не потерять свой код

Что такое дважды изменённый объект

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

Режимы объединения

Для каждого конфликтного объекта или свойства выбирается режим. Смысл их такой:

РежимРезультатКогда выбирать
Взять из новой конфигурации поставщикаВаши правки в объекте пропадутДоработка устарела или поставщик сделал то же самое
Объединить с приоритетом основной конфигурацииСлияние, при конфликте строк побеждает ваш кодВаша логика важнее, изменения поставщика мелкие
Объединить с приоритетом новой конфигурации поставщикаСлияние, при конфликте побеждает код поставщикаПоставщик переписал механизм, ваша правка точечная
Не объединятьОбъект остаётся как в основной конфигурацииОбъект целиком ваш, изменения поставщика не нужны

Как разбирать модули

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

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

Формы

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

«Не объединять» для объекта, который поставщик менял, — частая причина ошибок после обновления. Новые общие модули поставщика будут вызывать процедуры, которых в вашей старой версии объекта нет.

Ведите журнал решений

На каждый конфликт — строка: объект, что выбрали, что поправили руками. При следующем обновлении этот список сэкономит половину времени: те же объекты будут конфликтовать снова.

6. Обновление базы данных и тестирование после обновления

Обновление структуры

После объединения выполните Конфигурация → Обновить конфигурацию базы данных (F7). Программа покажет список реструктуризации: какие таблицы изменятся.

Этот шаг требует монопольного доступа к базе. На копии это не проблема, в рабочей базе — только когда все пользователи вышли.

Обработчики обновления

Затем запустите базу в режиме 1С:Предприятие под пользователем с полными правами. Типовые конфигурации на БСП запустят обработчики обновления данных. Дождитесь окончания основной части; отложенные обработчики доработают в фоне.

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

Что проверять

Проверка доработанной базы после обновления
Выполнено: 0 / 8

Удобный приём для сверки: перед обновлением сформируйте оборотно-сальдовую ведомость и 2-3 ключевых отчёта за прошлый период, сохраните их. После обновления сформируйте те же отчёты и сравните цифры.

Перенос в рабочую базу

Когда копия проверена:

  1. Сохраните из неё готовую основную конфигурацию в .cf.
  2. В рабочей базе (после свежей выгрузки .dt) загрузите её: Конфигурация → Сравнить, объединить с конфигурацией из файла с проверкой расхождений или Загрузить конфигурацию из файла, если рабочая конфигурация не менялась за время работ.
  3. Обновите конфигурацию поставщика тем же релизом, чтобы версия поддержки совпала.
  4. Выполните F7 и запустите обработчики обновления.

7. Частые ошибки при обновлении модифицированной конфигурации

Диагностика: выберите симптом

Ещё две ошибки, которые не дают сообщений, но портят базу:

  • 🚫 Обновление сразу в рабочей базе. Если объединение пошло не так, вы откатываетесь из .dt и теряете всё, что пользователи ввели за это время.
  • 🚫 Снятие объекта с поддержки «чтобы не мешал». Объект перестаёт получать исправления поставщика. Через пару релизов он несовместим с остальной конфигурацией.

Частые вопросы

Сколько времени занимает обновление доработанной 1С?
Зависит от числа дважды изменённых объектов. При 10-20 точечных доработках — несколько часов. При переписанных механизмах проведения и десятках форм — несколько рабочих дней на объединение и тестирование.
Можно ли обновлять доработанную конфигурацию через интернет-поддержку в пользовательском режиме?
Только если основная конфигурация не менялась, а доработки вынесены в расширения. Если в основной конфигурации есть правки, автообновление их не объединяет, обновляйте через Конфигуратор.
Нужно ли ставить каждый релиз подряд?
Не каждый, но обязательны те промежуточные, которые поставщик указывает в описании релиза как необходимые для перехода. Остальные можно пропустить, обновившись полным .cf.
Как снизить стоимость будущих обновлений?
Переносите доработки в расширения, а изменения в типовых модулях делайте точечными: вызов своей процедуры из общего модуля вместо правки большого куска типового кода.
Что делать, если доработки писал программист, которого уже нет?
Сравните основную конфигурацию с конфигурацией поставщика той же версии. Список отличий и есть полный перечень доработок, по нему можно восстановить, что и зачем менялось.