Обновление нетиповой конфигурации 1С 8.3 без потери доработок
Содержание
Доработанную 1С обновляют вручную в Конфигураторе: Конфигурация → Поддержка → Обновить конфигурацию, файл обновления, затем сравнение и объединение новой версии поставщика с вашими изменениями. Автообновление из пользовательского режима для такой базы не подходит: оно рассчитано на конфигурацию «на замке» и либо откажется работать, либо потребует снять доработки.
Безопасная схема всегда одна: копия базы → анализ доработок → объединение на копии → проверка → перенос в рабочую базу. Больше всего времени уходит на третий шаг: разбор объектов, которые изменили и вы, и поставщик.
1. Что именно доработано: анализ конфигурации перед обновлением
Перед обновлением нужно понять три вещи: на поддержке ли конфигурация, в каком режиме и что в ней поменяли относительно типовой.
Проверяем режим поддержки
Откройте Конфигурация → Поддержка → Настройка поддержки. В окне видно:
- 📌 версию конфигурации поставщика — от неё зависит, какой файл обновления подойдёт;
- 🔒 правило для объектов — у каждого объекта стоит один из режимов:
| Режим объекта | Что это значит при обновлении |
|---|---|
| Объект поставщика не редактируется | Объект заменится новой версией целиком, без вопросов |
| Объект поставщика редактируется с сохранением поддержки | Программа сравнит три версии и предложит объединить |
| Объект поставщика снят с поддержки | Объект не обновится, новые изменения поставщика в него не придут |
Если в окне настройки поддержки написано, что конфигурация не на поддержке совсем, — это отдельный сценарий, о нём в разделе 3.
Находим все доработки
Самый надёжный способ — сравнить текущую конфигурацию с конфигурацией поставщика: Конфигурация → Сравнить конфигурации, слева «Конфигурация поставщика», справа «Основная конфигурация». В дереве останутся только изменённые объекты.
Сохраните этот список. Удобно выгрузить отчёт о сравнении в файл (кнопка отчёта есть в окне сравнения) и пройтись по нему вместе с тем, кто писал доработки.
💡 Отметьте для себя объекты, где правки большие: общие модули, модули менеджеров документов, формы. Именно в них будут конфликты.
Проверяем расширения
Откройте Конфигурация → Расширения конфигурации. Если часть доработок сделана расширениями, сама конфигурация может быть почти типовой. Тогда обновление проходит проще, но расширения после него нужно проверить отдельно (раздел 5).
2. Подготовка к обновлению доработанной 1С
Резервная копия
Сделайте выгрузку базы: Администрирование → Выгрузить информационную базу в Конфигураторе, файл .dt. Для клиент-серверной базы дополнительно сделайте бэкап средствами СУБД.
Выгрузка .dt требует, чтобы пользователи вышли из базы. Планируйте её на нерабочее время и предупредите людей заранее.
Сохраняем три файла конфигурации
Это главный приём практика: до любых изменений сохраните
- основную конфигурацию —
Конфигурация → Сохранить конфигурацию в файл; - конфигурацию поставщика текущей версии —
Конфигурация → Поддержка → Конфигурация поставщика → Сохранить в файл; - новый дистрибутив поставщика — полный файл
1Cv8.cfиз шаблона обновления.
С этими тремя файлами любое неудачное объединение можно повторить с нуля за 10 минут, без восстановления всей базы.
Где обновлять
Объединение делают на копии базы, а не в рабочей. Разверните .dt в отдельную пустую базу и работайте там. Рабочую базу трогаете только в конце, загрузив готовый .cf.
Если база подключена к хранилищу
Конфигурация в хранилище обновляется только после захвата объектов. Перед обновлением захватите корень конфигурации рекурсивно (команда захвата в контекстном меню корня в окне хранилища). Иначе программа не даст изменить объекты и обновление прервётся.
3. Какой режим обновления выбрать для нетиповой конфигурации
Способ зависит от того, как доработана база.
Чем отличаются .cf и .cfu
| Файл | Что внутри | Когда подходит |
|---|---|---|
.cfu | Только изменения между версиями | Если ваша версия поставщика есть в списке версий, с которых разрешено обновление |
.cf | Полная конфигурация новой версии | Почти всегда для доработанных баз; позволяет обновиться, даже если версия поставщика не совпадает |
Для доработанной базы полный .cf удобнее: объединение идёт от полной новой версии, и вы не упираетесь в ограничение по исходной версии.
Можно ли прыгнуть через несколько релизов
Технически через .cf можно перейти сразу на свежий релиз. Но обработчики обновления данных рассчитаны на определённые исходные версии. В описании каждого релиза поставщик указывает, с каких версий допустим переход.
Если в описании сказано, что сначала нужен промежуточный релиз, — ставьте его. Иначе данные могут не пересчитаться, и это всплывёт через месяц в отчётах.
4. Как загрузить и установить обновление в доработанную 1С
Порядок для конфигурации на поддержке с включённой возможностью изменений:
- Откройте копию базы в Конфигураторе.
- Выберите
Конфигурация → Поддержка → Обновить конфигурацию. - Укажите «Выбор файла обновления» и выберите
1Cv8.cfиз каталога шаблонов новой версии. - Программа прочитает файл и покажет окно сравнения трёх конфигураций: старой поставщика, новой поставщика и вашей основной.
- В верхней части окна задайте фильтр, чтобы видеть только изменённые объекты, и включите показ дважды изменённых свойств.
- Пройдите конфликтные объекты (раздел ниже) и выставьте режим объединения.
- Нажмите «Выполнить». Программа объединит конфигурации и обновит конфигурацию поставщика до новой версии.
- Проверьте результат:
Конфигурация → Проверка конфигурациис синтаксическим контролем и поиском ссылок на несуществующие объекты.
Для конфигурации, снятой с поддержки, вместо шагов 2-3 используйте Конфигурация → Сравнить, объединить с конфигурацией из файла. При постановке на поддержку программа спросит про режим — для дальнейших обновлений выбирайте сохранение поддержки с возможностью изменений.
💡 Пока вы не нажали «Обновить конфигурацию
базы данных», все изменения существуют только в основной конфигурации. Если объединение пошло не так, выполните Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД и начните заново.
5. Конфликты при объединении: как не потерять свой код
Что такое дважды изменённый объект
Объект «дважды изменён», если его правили и вы, и поставщик в новой версии. Именно такие места требуют ручного решения. Остальное программа объединит сама: ваши изменения останутся, изменения поставщика придут.
Режимы объединения
Для каждого конфликтного объекта или свойства выбирается режим. Смысл их такой:
| Режим | Результат | Когда выбирать |
|---|---|---|
| Взять из новой конфигурации поставщика | Ваши правки в объекте пропадут | Доработка устарела или поставщик сделал то же самое |
| Объединить с приоритетом основной конфигурации | Слияние, при конфликте строк побеждает ваш код | Ваша логика важнее, изменения поставщика мелкие |
| Объединить с приоритетом новой конфигурации поставщика | Слияние, при конфликте побеждает код поставщика | Поставщик переписал механизм, ваша правка точечная |
| Не объединять | Объект остаётся как в основной конфигурации | Объект целиком ваш, изменения поставщика не нужны |
Как разбирать модули
Для каждого дважды изменённого модуля откройте сравнение текста и пройдите процедуры по одной. Типовая ситуация: вы добавили три строки в процедуру проведения, а поставщик переписал эту процедуру целиком.
В этом случае выбирайте приоритет поставщика и вручную вставляйте свои три строки в новый текст. Автоматическое слияние строк в такой процедуре часто даёт рабочий синтаксически, но неверный по логике код.
Формы
Формы объединяются хуже модулей. Если вы добавили на форму пару полей, а поставщик перестроил её, проще взять форму поставщика и добавить поля заново. Свой вариант формы перед этим сохраните, чтобы не вспоминать, что было.
«Не объединять» для объекта, который поставщик менял, — частая причина ошибок после обновления. Новые общие модули поставщика будут вызывать процедуры, которых в вашей старой версии объекта нет.
Ведите журнал решений
На каждый конфликт — строка: объект, что выбрали, что поправили руками. При следующем обновлении этот список сэкономит половину времени: те же объекты будут конфликтовать снова.
6. Обновление базы данных и тестирование после обновления
Обновление структуры
После объединения выполните Конфигурация → Обновить конфигурацию базы данных (F7). Программа покажет список реструктуризации: какие таблицы изменятся.
Этот шаг требует монопольного доступа к базе. На копии это не проблема, в рабочей базе — только когда все пользователи вышли.
Обработчики обновления
Затем запустите базу в режиме 1С:Предприятие под пользователем с полными правами. Типовые конфигурации на БСП запустят обработчики обновления данных. Дождитесь окончания основной части; отложенные обработчики доработают в фоне.
Если обработчик упал с ошибкой, текст будет в журнале регистрации. Часто причина — ваша доработка, которая не учитывает новый реквизит или изменённую структуру регистра.
Что проверять
Удобный приём для сверки: перед обновлением сформируйте оборотно-сальдовую ведомость и 2-3 ключевых отчёта за прошлый период, сохраните их. После обновления сформируйте те же отчёты и сравните цифры.
Перенос в рабочую базу
Когда копия проверена:
- Сохраните из неё готовую основную конфигурацию в
.cf. - В рабочей базе (после свежей выгрузки
.dt) загрузите её:Конфигурация → Сравнить, объединить с конфигурацией из файлас проверкой расхождений илиЗагрузить конфигурацию из файла, если рабочая конфигурация не менялась за время работ. - Обновите конфигурацию поставщика тем же релизом, чтобы версия поддержки совпала.
- Выполните F7 и запустите обработчики обновления.
7. Частые ошибки при обновлении модифицированной конфигурации
Ещё две ошибки, которые не дают сообщений, но портят базу:
- 🚫 Обновление сразу в рабочей базе. Если объединение пошло не так, вы откатываетесь из
.dtи теряете всё, что пользователи ввели за это время. - 🚫 Снятие объекта с поддержки «чтобы не мешал». Объект перестаёт получать исправления поставщика. Через пару релизов он несовместим с остальной конфигурацией.