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

· 10 мин

Содержание

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

Главное правило — сначала прогнать обновление на копии базы. Доработки сохраняются, если каждый конфликт разобран руками, а не «взят из новой конфигурации поставщика» по умолчанию. Всё ниже относится к платформе 8.3 и типовым конфигурациям на БСП: БП 3.0, ЗУП 3.1, УТ 11, КА 2, ERP.

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

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

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

Сделайте две копии, они решают разные задачи:

  • 💾 Выгрузка базы в .dt — Администрирование → Выгрузить информационную базу в Конфигураторе. Нужен монопольный доступ, все пользователи должны выйти. Для SQL-базы дополнительно сделайте полный бэкап средствами СУБД.
  • 📄 Конфигурация в .cf — Конфигурация → Сохранить конфигурацию в файл. Это ваши доработки «в чистом виде». Из этого файла потом удобно сравнивать, что изменилось после объединения.

Без .dt и .cf к обновлению не приступайте. Откатить неудачное объединение без копии нельзя: «Отменить» в Конфигураторе после сохранения не работает.

Опись доработок

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

Дальше выясните три вещи:

  1. 🔍 Режим поддержки. Конфигурация → Поддержка → Настройка поддержки. Если конфигурация снята с поддержки полностью, команды «Обновить конфигурацию » не будет — обновлять придётся через Конфигурация → Сравнить, объединить с конфигурацией из файла.
  2. 🔍 Текущий релиз и путь до целевого. Номер версии видно в Справка → О программе. Файл .cfu обновляет только с определённых релизов, их список указан в описании обновления. Промежуточные релизы пропускать нельзя, если не используете полный .cf.
  3. 🔍 Расширения и внешние обработки. Администрирование → Печатные формы, отчёты и обработки в пользовательском режиме. Их тоже придётся проверить после обновления.

2. Способы обновить конфигурацию с изменениями

Способ зависит от того, в каком состоянии поддержка и сколько релизов вы отстали.

СпособКогда подходитРиски
.cfu через Поддержка → Обновить конфигурациюКонфигурация на поддержке с возможностью изменения, вы отстали на 1–3 релизаНужно пройти все промежуточные релизы по цепочке
Полный дистрибутив .cf через ту же командуОтстали сильно, .cfu с вашего релиза нетОбъединение крупнее, конфликтов больше
Сравнить, объединить с конфигурацией из файлаПоддержка снята полностьюНет «старой конфигурации поставщика» — объединение двухстороннее, всё сравнивается вручную
Вынос доработок в расширения, затем обновление как типовойДоработок немного, логика укладывается в расширениеРазовая трудоёмкая работа, зато дальше обновление почти автоматическое

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

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

3. Пошаговое обновление 1С с сохранением доработок

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

Шаг 1. Запуск обновления

  1. Откройте Конфигуратор и основную конфигурацию (Конфигурация → Открыть конфигурацию).
  2. Выберите Конфигурация → Поддержка → Обновить конфигурацию.
  3. Укажите «Выбор файла обновления» и файл 1cv8.cfu из каталога нужного релиза.
  4. Подтвердите, что новая конфигурация поставщика загружается.

Шаг 2. Трёхстороннее сравнение

Откроется окно сравнения трёх конфигураций:

  • основная — ваша рабочая, с доработками;
  • старая конфигурация поставщика — типовая того релиза, с которого обновляетесь;
  • новая конфигурация поставщика — типовая целевого релиза.

Включите фильтр «Показывать только дважды изменённые свойства». Остальное — то, что меняли только вы или только фирма 1С, — объединяется без конфликта. Дважды изменённые объекты и есть ваша работа.

Шаг 3. Разбор конфликтов

Для каждого дважды изменённого объекта выберите режим объединения:

РежимЧто произойдёт
Взять из новой конфигурации поставщикаВаша доработка в этом объекте пропадёт
Объединить с приоритетом основной конфигурацииИзменения сольются, при конфликте останется ваш вариант
Объединить с приоритетом новой конфигурации поставщикаИзменения сольются, при конфликте победит типовой код
Не объединятьОбъект останется как был у вас, новые типовые изменения не придут

Для модулей откройте объединение по процедурам. Типовая ошибка — выбрать «Не объединять» для общего модуля целиком. Тогда в нём не будет новых процедур, а другие объекты новой версии их вызывают. Итог — ошибки «Процедура или функция с указанным именем не определена» при запуске.

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

Шаг 4. Формы

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

Шаг 5. Применение и запуск

  1. Нажмите «Выполнить» в окне сравнения.
  2. Запустите Конфигурация → Проверка конфигурации и исправьте синтаксические ошибки.
  3. Выполните Конфигурация → Обновить конфигурацию базы данных (F7).
  4. Запустите базу в режиме 1С:Предприятие. Программа покажет диалог подтверждения легальности обновления и выполнит обработчики обновления данных. На больших базах это занимает от минут до часов.

Если обработчики упали с ошибкой, текст будет в журнале регистрации. Часто причина — доработанный объект, который обработчик не ожидал увидеть.

4. Новая платформа под новый релиз: что учесть

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

Особенности при обновлении платформы:

  • 🖥️ Клиент-сервер. Номер версии клиента и сервера 1С должен совпадать полностью. Сначала обновляете сервер, потом клиентов. Пока клиенты на старой версии, они не подключатся.
  • 🖥️ Несколько версий рядом. Платформы 8.3 ставятся параллельно в отдельные каталоги. Старую не удаляйте, пока не проверили новую: можно быстро вернуться.
  • 🖥️ Режим совместимости. Свойство конфигурации «Режим совместимости» в доработанных базах трогать не нужно. Его меняет фирма 1С в новых релизах, при объединении оно придёт из новой конфигурации поставщика.
  • 🖥️ Внешние компоненты. После перехода платформы проверьте торговое оборудование и внешние компоненты, особенно в доработанном коде.

Остановка службы сервера 1С при обновлении платформы обрывает сеансы всех пользователей. Делайте это в нерабочее время и предупредите людей заранее.

5. Распределённые базы и облако: свой порядок

РИБ (распределённая информационная база)

Конфигурацию в РИБ меняют только в главном узле. Подчинённые узлы получают её через обмен.

  1. Обновите конфигурацию главного узла по шагам из раздела 3.
  2. Выполните обмен с подчинёнными узлами. Изменения конфигурации уйдут вместе с данными.
  3. В подчинённом узле после приёма обмена программа предложит обновить конфигурацию базы данных. Если узел работает без пользователя, это делают через Конфигуратор: Конфигурация → Обновить конфигурацию базы данных.

Не меняйте конфигурацию в подчинённом узле напрямую. Главный узел затрёт эти изменения при следующем обмене, а сам обмен может остановиться с ошибкой о несовпадении конфигураций.

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

Облачные базы

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

Если базу арендуют у партнёра с доступом к Конфигуратору, порядок такой же, как для своей базы, но окно обновления согласуют с провайдером.

6. Ошибки при обновлении доработанной 1С

Здесь — проблемы, которые всплывают не на шагах, а после них.

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

7. Автоматизация: пакетный режим и скрипты

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

Схема для нескольких баз с одинаковыми доработками:

  1. Обновляете эталонную копию вручную, разбираете конфликты.
  2. Сохраняете результат в .cf.
  3. На рабочие базы этот .cf загружаете и применяете в пакетном режиме.

Пример bat-файла для файловой базы:

set V8="C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe"
set IB=/F"D:\Bases\Buh"
set USR=/N"Администратор" /P"пароль"

rem 1. Резервная копия в .dt
%V8% DESIGNER %IB% %USR% /DumpIB "D:\Backup\buh_before.dt" /Out "D:\Logs\dump.log"

rem 2. Загрузка проверенной конфигурации и обновление структуры
%V8% DESIGNER %IB% %USR% /LoadCfg "D:\Release\buh_merged.cf" /UpdateDBCfg /Out "D:\Logs\update.log"

Номер версии платформы в пути замените на свой. После скрипта всё равно запустите базу в пользовательском режиме, чтобы отработали обработчики обновления.

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

Для серверных баз путь задают через /S"сервер\база". Перед запуском включите блокировку начала сеансов в Администрирование → Обслуживание или в консоли кластера — иначе пакетный режим не получит монопольный доступ. Блокировка выгонит работающих пользователей, поэтому включайте её после рабочего дня.

Для регулярной работы с десятками баз используют открытые инструменты на OneScript, например vanessa-runner. Они оборачивают те же ключи командной строки и добавляют логирование.

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

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

Проверка после обновления 1С с доработками
Выполнено: 0 / 10

Сверка оборотно-сальдовой ведомости — самый честный тест. Сформируйте ОСВ за закрытый период до обновления и сохраните. После обновления сформируйте её снова с теми же настройками. Расхождение означает, что обработчики или доработки изменили данные.

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

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

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

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