Как обновить доработанную конфигурацию 1С и сохранить свои изменения

· 10 мин

Содержание

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

Это общий порядок для платформы 8.3 и любой типовой конфигурации на поддержке: БП 3.0, ЗУП 3.1, УТ 11, ERP. Автообновление из пользовательского режима для доработанной конфигурации не подходит. Оно либо откажется работать, либо потребует снять доработки.

Подготовка: копия базы и опись доработок

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

Что сделать до первого клика по обновлению:

  1. 💾 Выгрузите базу: Администрирование → Выгрузить информационную базу в Конфигураторе. Файл .dt содержит и данные, и конфигурацию.
  2. 📄 Сохраните конфигурацию отдельно: Конфигурация → Сохранить конфигурацию в файл. Получится .cf с текущими доработками. Он пригодится для сравнения после обновления.
  3. 🔍 Посмотрите текущий режим поддержки: Конфигурация → Поддержка → Настройка поддержки. Если там написано «Конфигурация находится на поддержке» и изменения разрешены, база обновляется штатно.
  4. 📋 Составьте опись доработок. Самый быстрый способ — сравнить основную конфигурацию с конфигурацией поставщика: Конфигурация → Сравнить конфигурации, слева основная, справа поставщика. Отчёт о сравнении сохраните в файл.
  5. 🧩 Отдельно перечислите расширения: Конфигурация → Расширения конфигурации. Расширения обновление основной конфигурации не затрагивает, но после него могут перестать подключаться.

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

Узнайте номер текущего релиза: Справка → О программе. От него зависит, какой файл обновления подойдёт.

Обновляйте сначала копию базы , а не рабочую. Разверните .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. Установите блокировку начала сеансов и блокировку регламентных заданий. Это делается в свойствах информационной базы в консоли администрирования серверов 1С. Задайте код разрешения, чтобы сами могли войти.
  2. Завершите текущие сеансы. Пользователи потеряют несохранённые документы — предупредите их заранее и выбирайте время вне рабочего дня.
  3. Сделайте бэкап СУБД и при желании .dt.
  4. Выполните объединение и обновите конфигурацию базы данных.
  5. Снимите блокировки после первого запуска и окончания обработчиков обновления.

В современных версиях 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 и собирают поставку из исходников.

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

Проверка базы после обновления

Тест проводят на копии до обновления рабочей базы и коротко повторяют на рабочей после.

Начинайте с того, что затронуто доработками: каждый объект из описи. Затем типовые сценарии, которые используют каждый день. Отчёт, который сходился до обновления, должен давать те же суммы после.

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

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

Откат обновления: когда он нужен и как его сделать

Откатывают, если после обновления база не запускается, обработчики обновления падают с ошибкой или учётные данные расходятся и быстро исправить не получается.

Варианты отката по моменту:

СитуацияЧто делать
Объединение выполнено, но «Обновить конфигурацию базы данных» ещё не нажималиКонфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. Основная конфигурация вернётся к той, что записана в базе
Структура уже обновлена, пользователи не работалиЗагрузить .dt: Администрирование → Загрузить информационную базу
Пользователи успели ввести документыВосстановить копию и повторить ввод за этот период, либо исправлять ошибку на месте
Клиент-серверная базаВосстановить бэкап СУБД; это быстрее загрузки .dt

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

Откат на старый релиз не исправляет проблему, а откладывает её. Разберите причину на тестовой копии, исправьте объединение и повторите.

Ошибки, из-за которых теряются доработки

  • ❌ «Взять из новой конфигурации поставщика» для всего списка. Быстро, но доработки в дважды изменённых объектах удаляются молча. Проверяйте каждый объект.
  • ❌ Пропущенный промежуточный релиз. Платформа не даст поставить .cfu, а попытка обойти его полным .cf без нужды увеличивает число конфликтов.
  • ❌ Не та версия платформы. У нового релиза конфигурации есть минимальный номер платформы. Номер вашей платформы должен быть не ниже указанного в описании обновления.
  • ❌ Забытые расширения. Расширение, которое перехватывает изменённую поставщиком процедуру, перестаёт подключаться. Проверьте его сразу после обновления.
  • ❌ Обновление рабочей базы без теста. Ошибка в объединении обнаруживается, когда пользователи уже провели документы.

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

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