Как обновить доработанную конфигурацию 1С и сохранить свои изменения
Содержание
Доработанную базу 1С обновляют в Конфигураторе через Конфигурация → Поддержка → Обновить конфигурацию. Программа сравнивает три версии: старую поставщика, новую поставщика и вашу. Изменения поставщика, которые не пересекаются с доработками, переносятся сами. Где вы и фирма 1С правили один и тот же модуль или форму, решение принимаете вручную в окне объединения. Перед этим обязательна выгрузка базы в .dt.
Это общий порядок для платформы 8.3 и любой типовой конфигурации на поддержке: БП 3.0, ЗУП 3.1, УТ 11, ERP. Автообновление из пользовательского режима для доработанной конфигурации не подходит. Оно либо откажется работать, либо потребует снять доработки.
Подготовка: копия базы и опись доработок
Начинают не с файла обновления, а с понимания, что именно было изменено. Без этого вы не отличите при объединении свою правку от правки поставщика.
Что сделать до первого клика по обновлению:
- 💾 Выгрузите базу:
Администрирование → Выгрузить информационную базув Конфигураторе. Файл.dtсодержит и данные, и конфигурацию. - 📄 Сохраните конфигурацию отдельно:
Конфигурация → Сохранить конфигурацию в файл. Получится.cfс текущими доработками. Он пригодится для сравнения после обновления. - 🔍 Посмотрите текущий режим поддержки:
Конфигурация → Поддержка → Настройка поддержки. Если там написано «Конфигурация находится на поддержке» и изменения разрешены, база обновляется штатно. - 📋 Составьте опись доработок. Самый быстрый способ — сравнить основную конфигурацию с конфигурацией поставщика:
Конфигурация → Сравнить конфигурации, слева основная, справа поставщика. Отчёт о сравнении сохраните в файл. - 🧩 Отдельно перечислите расширения:
Конфигурация → Расширения конфигурации. Расширения обновление основной конфигурации не затрагивает, но после него могут перестать подключаться.
Опись — это не формальность. В ней по каждому объекту пометьте, кто и зачем его менял. При объединении через месяц вы уже не вспомните, почему в модуле документа стоит лишняя проверка.
Узнайте номер текущего релиза: Справка → О программе. От него зависит, какой файл обновления подойдёт.
Обновляйте сначала копию базы
, а не рабочую. Разверните .dt в отдельную пустую базу и пройдите на ней весь путь целиком.
Способы обновления доработанной конфигурации 1С
Выбор зависит от того, насколько глубоко правили типовую и насколько вы отстали по релизам.
| Способ | Когда подходит | Риски |
|---|---|---|
Файл обновления .cfu через поддержку | Отставание на 1–3 релиза, доработки умеренные | Нужно ставить релизы последовательно; на каждом своё объединение |
Полный дистрибутив .cf через поддержку | Большое отставание, нет подходящего .cfu | Окно сравнения длиннее, больше ручных решений |
| Обновление типовой + перенос доработок в расширения | Доработок немного, хотите обновляться без программиста | Не всё можно сделать расширением; нужен разовый перенос |
| Сравнение с конфигурацией из файла | Конфигурация снята с поддержки | Нет «старой версии поставщика» — сложнее понять, чьё изменение |
Последовательность релизов. Файл .cfu рассчитан на обновление с конкретных предыдущих релизов. Список указан в описании обновления и в самом диалоге выбора файла. Если вашего релиза в списке нет, ставьте промежуточный. Альтернатива — полный .cf новой версии: им можно обновиться через несколько релизов сразу.
Ручное или автоматизированное обновление. Для конфигураций с изменёнными объектами вручную объединяют в любом случае. Автоматизировать можно всё вокруг: выгрузку, загрузку, применение сохранённых настроек объединения, обновление структуры базы. Об этом — в разделе про скрипты.
Не снимайте конфигурацию с поддержки «чтобы не мешала». После снятия обновить её через .cfu уже нельзя, а вернуть поддержку можно только через сравнение с полным дистрибутивом.
Пошаговое обновление базы 1С с сохранением доработок
Порядок для одного релиза. Если релизов несколько, повторите цикл для каждого.
Шаг 1. Откройте базу в Конфигураторе
Предупредите пользователей. Само объединение можно делать при работающих сеансах. А вот запись в базу изменённой структуры потребует их отключения.
Шаг 2. Запустите обновление
Конфигурация → Поддержка → Обновить конфигурацию. Укажите поиск в каталогах шаблонов или выберите файл .cfu/.cf вручную. Программа покажет номер новой версии и проверит, подходит ли файл.
Шаг 3. Разберите окно сравнения и объединения
Это главный шаг. В окне три колонки смыслов: ваша конфигурация, старая версия поставщика, новая версия поставщика. Включите фильтр «Показывать только дважды измененные свойства». Это объекты, которые меняли и вы, и фирма 1С. Остальные изменения поставщика перенесутся без конфликтов.
Для каждого дважды изменённого объекта выберите режим:
- 🟢 Взять из новой конфигурации поставщика — ваша правка пропадёт. Годится, если поставщик сам исправил то, что вы когда-то чинили.
- 🟡 Объединить с приоритетом основной конфигурации или с приоритетом конфигурации поставщика — для модулей. Процедуры собираются из обеих версий, при конфликте побеждает выбранная сторона.
- 🔴 Не объединять (оставить текущее значение) — ваша версия остаётся целиком, новшества поставщика в этом объекте теряются.
В модулях раскройте объект и смотрите на уровне процедур. Двойной щелчок по модулю открывает сравнение текста, где видно каждую изменённую строку.
Сохраните настройки объединения в файл из окна сравнения. При следующем релизе или при повторе на рабочей базе их можно загрузить, а не расставлять галочки заново.
Шаг 4. Сравните результат с новой версией поставщика
После нажатия «Выполнить» программа может сообщить об объектах, ссылки на которые не разрешены. Обычно это новые реквизиты или общие модули поставщика, которые используются в оставленном вами коде. Чаще всего их нужно включить в объединение.
Затем проверьте синтаксис: Конфигурация → Проверка конфигурации. Отметьте синтаксический контроль модулей и поиск ссылок на несуществующие объекты. Ошибки здесь — признак того, что объединение собрало процедуру из несовместимых кусков.
Полезно ещё раз открыть Конфигурация → Сравнить конфигурации и сравнить основную с новой конфигурацией поставщика. Список отличий должен совпасть с вашей описью доработок. Лишнее отличие — забытая правка или неудачное объединение.
Шаг 5. Обновите конфигурацию базы данных
Конфигурация → Обновить конфигурацию базы данных (F7). Платформа покажет список изменений структуры и попросит подтверждения. Для реструктуризации нужен монопольный доступ к базе.
Шаг 6. Запустите базу в режиме 1С:Предприятие
При первом запуске типовая конфигурация выполнит обработчики обновления: перезаполнит данные, создаст новые предопределённые элементы. Дождитесь завершения. В больших базах часть обработчиков работает отложенно — в фоне, после входа пользователей. Их ход видно в разделе Администрирование → Обслуживание, в результатах обновления программы.
Клиент-серверная база и облачные варианты
В клиент-серверной базе файл .dt тоже работает, но на больших объёмах выгрузка идёт долго. Резервную копию удобнее делать средствами СУБД — бэкапом PostgreSQL или MS SQL Server.
Порядок для клиент-серверной базы:
- Установите блокировку начала сеансов и блокировку регламентных заданий. Это делается в свойствах информационной базы в консоли администрирования серверов 1С. Задайте код разрешения, чтобы сами могли войти.
- Завершите текущие сеансы. Пользователи потеряют несохранённые документы — предупредите их заранее и выбирайте время вне рабочего дня.
- Сделайте бэкап СУБД и при желании
.dt. - Выполните объединение и обновите конфигурацию базы данных.
- Снимите блокировки после первого запуска и окончания обработчиков обновления.
В современных версиях 8.3 часть изменений структуры можно применить без длительного монопольного режима. Но опирайтесь на то, что покажет диалог реструктуризации вашей платформы.
Не используйте динамическое обновление конфигурации на рабочей базе с доработками. Сеансы, открытые до обновления, работают со старой версией, и ошибки в объединённом коде проявятся непредсказуемо.
Облако. В сервисе 1С:Фреш изменять типовую конфигурацию нельзя: обновления ставит провайдер, доработки возможны только расширениями. Если базу арендуют на VDS или в облаке с доступом к Конфигуратору, порядок тот же, что для своего сервера. Уточните у провайдера, кто делает резервную копию и как быстро её восстанавливают.
Автоматизация обновлений: пакетный режим и скрипты
Объединение дважды изменённых объектов скрипт за вас не решит. Зато всё остальное повторяется от релиза к релизу и хорошо автоматизируется.
Конфигуратор запускается в пакетном режиме командой 1cv8 DESIGNER. Пример bat-файла для файловой базы:
set V8="C:\Program Files\1cv8\common\1cestart.exe"
set IB=/F"D:\Bases\Buh_test"
set USR=/N"Администратор" /P"пароль"
set LOG=/Out"D:\Logs\update.log"
rem 1. Резервная копия
%V8% DESIGNER %IB% %USR% /DumpIB "D:\Backup\buh_before.dt" %LOG%
rem 2. Обновление конфигурации по сохраненным настройкам объединения
%V8% DESIGNER %IB% %USR% /UpdateCfg "D:\Upd\1Cv8.cfu" -Settings "D:\Upd\merge.xml" %LOG%
rem 3. Обновление конфигурации базы данных
%V8% DESIGNER %IB% %USR% /UpdateDBCfg %LOG%
Что здесь важно:
- 📌
-Settings— файл настроек объединения, сохранённый из окна сравнения на тестовой базе. Без него пакетный режим не знает, как решать конфликты. - 📌
/Out— лог. Проверяйте его после каждого шага: код возврата не всегда показывает, что объединение прошло без предупреждений. - 📌 Для клиент-серверной базы вместо
/Fукажите/S"сервер\база". - 📌 Пароль в bat-файле храните только на защищённом сервере или передавайте из переменной окружения.
Для регулярных обновлений нескольких баз используют OneScript и инструмент vanessa-runner. Он оборачивает те же команды Конфигуратора, умеет блокировать сеансы и работает в связке с хранилищем или Git. Для разработки «по-взрослому» доработки ведут в EDT и собирают поставку из исходников.
Самая сильная автоматизация — сократить сами конфликты. Новые доработки делайте в расширениях, а старые постепенно переносите туда же. Чем меньше изменённых объектов в основной конфигурации, тем короче окно объединения.
Проверка базы после обновления
Тест проводят на копии до обновления рабочей базы и коротко повторяют на рабочей после.
Начинайте с того, что затронуто доработками: каждый объект из описи. Затем типовые сценарии, которые используют каждый день. Отчёт, который сходился до обновления, должен давать те же суммы после.
Сверку отчётов делайте по одному периоду в копии до и после обновления. Расхождение в закрытом периоде — сигнал, что обработчик обновления или ваша доработка изменили движения.
Откат обновления: когда он нужен и как его сделать
Откатывают, если после обновления база не запускается, обработчики обновления падают с ошибкой или учётные данные расходятся и быстро исправить не получается.
Варианты отката по моменту:
| Ситуация | Что делать |
|---|---|
| Объединение выполнено, но «Обновить конфигурацию базы данных» ещё не нажимали | Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. Основная конфигурация вернётся к той, что записана в базе |
| Структура уже обновлена, пользователи не работали | Загрузить .dt: Администрирование → Загрузить информационную базу |
| Пользователи успели ввести документы | Восстановить копию и повторить ввод за этот период, либо исправлять ошибку на месте |
| Клиент-серверная база | Восстановить бэкап СУБД; это быстрее загрузки .dt |
Загрузка .dt полностью заменяет базу. Всё, что ввели после выгрузки, пропадёт. Перед восстановлением выгрузите и текущее состояние в отдельный файл — для разбора причин.
Откат на старый релиз не исправляет проблему, а откладывает её. Разберите причину на тестовой копии, исправьте объединение и повторите.
Ошибки, из-за которых теряются доработки
- ❌ «Взять из новой конфигурации поставщика» для всего списка. Быстро, но доработки в дважды изменённых объектах удаляются молча. Проверяйте каждый объект.
- ❌ Пропущенный промежуточный релиз. Платформа не даст поставить
.cfu, а попытка обойти его полным.cfбез нужды увеличивает число конфликтов. - ❌ Не та версия платформы. У нового релиза конфигурации есть минимальный номер платформы. Номер вашей платформы должен быть не ниже указанного в описании обновления.
- ❌ Забытые расширения. Расширение, которое перехватывает изменённую поставщиком процедуру, перестаёт подключаться. Проверьте его сразу после обновления.
- ❌ Обновление рабочей базы без теста. Ошибка в объединении обнаруживается, когда пользователи уже провели документы.
Частые вопросы
Сколько времени занимает обновление доработанной базы 1С?
Можно ли обновить доработанную 1С без Конфигуратора?
Обновить сразу на последний релиз или по одному?
.cf можно перепрыгнуть несколько релизов. Но обработчики обновления данных выполняются корректно только в рамках сценариев поставщика, поэтому при большом отставании безопаснее ставить релизы с промежуточными точками из описания обновлений.Как понять, какие объекты в конфигурации изменены?
Конфигурация → Сравнить конфигурации. В дереве поддержки изменённые объекты также отмечены отдельными значками.