Как обновить конфигурацию 1С из CF-файла и не потерять доработки

· 9 мин

Содержание

Обновить 1С через CF-файл можно в Конфигураторе: меню Конфигурация → Поддержка → Обновить конфигурацию, дальше выбрать файл с расширением .cf и завершить обновление командой обновления конфигурации базы данных. Если сделать это не в том порядке или без копии базы, можно получить рассыпанные доработки и сутки восстановления.

CF-файл — это полная поставка конфигурации определённого релиза. Он нужен, когда обычное обновление из интерфейса не подходит: нет интернета на сервере, база на нестандартной поддержке, нужно перескочить через несколько релизов. Ниже — порядок работы от подготовки до проверки результата.

Что проверить до обновления

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

Пять обязательных проверок

  1. Выгрузите копию базы . Для файловой базы закройте всех пользователей и скопируйте каталог с файлом 1Cv8.1CD. Для клиент-серверной — сделайте полный бэкап средствами SQL-сервера. Выгрузка в .dt из Конфигуратора (Администрирование → Выгрузить информационную базу) — запасной вариант, но на больших базах она медленная.
  2. Сохраните текущую конфигурацию в файл. Меню Конфигурация → Сохранить конфигурацию в файл. Это быстрый откат кода, если новый релиз не устроит.
  3. Проверьте платформу. У каждого релиза конфигурации есть минимальная версия платформы. Если она ниже требуемой, Конфигуратор откажется загружать файл или база не запустится после обновления.
  4. Убедитесь, что вы в монопольном режиме. Все пользователи вышли, сеансы в консоли администрирования закрыты, регламентные задания не запущены.
  5. Проверьте место на диске. На диске с базой и на диске временных файлов нужен запас минимум в два размера базы. Для клиент-серверного варианта смотрите ещё и место под журнал транзакций.

Не обновляйте рабочую базу без копии. Даже если «всегда так делали». Одна оборвавшаяся реструктуризация — и база не открывается.

Откуда брать CF-файл

Полную поставку берут с официального сайта релизов по вашему договору сопровождения или из каталога шаблонов, который создаёт установщик конфигурации. Файлы с обновлениями, а не с полной поставкой, имеют расширение .cfu — они устроены иначе (подробности в таблице ниже).

💡 Сверьте номер релиза в имени файла с номером, который вам нужен. Скачать «почти ту» версию и обнаружить это после обновления — частая история.

Перед запуском обновления
Выполнено: 0 / 5

Какой способ обновления выбрать

Файл .cf можно применить тремя способами, и результат у них разный. Выбор зависит от того, есть ли в конфигурации ваши изменения и стоит ли она на поддержке.

СпособКогда подходитРиск
Обновление через пункт «Обновить конфигурацию» (режим сравнения)Типовая конфигурация на поддержке, в том числе с доработкамиНужно разбирать конфликты объединения
Загрузка конфигурации из файлаНужно заменить конфигурацию целиком, доработки не важныВсе изменения кода заменяются на содержимое файла
Запуск из командной строкиМного баз, обновление по расписаниюОшибки видны только в журнале, интерфейса нет

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

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

CF и CFU: в чём разница

.cf содержит конфигурацию целиком. .cfu — это файл обновления, который переводит конфигурацию с конкретной версии на следующую. CFU можно применить только к базе, где стоит ровно предыдущий релиз. CF годится для любой исходной версии, поэтому им удобно «догонять» базу, отставшую на несколько релизов.

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

Обновление через Конфигуратор по шагам

Работайте под пользователем с полными правами, в монопольном режиме.

Шаг 1. Откройте конфигурацию

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

Шаг 2. Запустите обновление

Конфигурация → Поддержка → Обновить конфигурацию. В окне выбора источника укажите вариант с файлом (пункт про выбор файла обновления) и нажмите кнопку выбора.

Шаг 3. Укажите CF-файл

В диалоге выбора файла смените фильтр на Файлы поставки конфигурации (*.cf) и найдите нужный файл. Нажмите «Открыть», затем «Готово». Конфигуратор прочитает файл и покажет версию текущей конфигурации и версию из файла. Сверьте их ещё раз.

Шаг 4. Разберите дерево сравнения

Откроется окно, где объекты конфигурации помечены по состоянию:

  • ➕ новые объекты поставщика;
  • ✏️ объекты, которые изменил поставщик, а вы не трогали — они обновятся без вопросов;
  • ⚠️ объекты, которые изменили вы и поставщик одновременно — это конфликты, их придётся разбирать;
  • 🔒 объекты, снятые с поддержки, — нужны решения по каждому.

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

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

Шаг 5. Примените изменения

Нажмите «ОК». Конфигуратор объединит конфигурации. На большой конфигурации это 10–40 минут: он перебирает тысячи объектов. Не закрывайте окно и не засыпайте на ноутбуке.

Шаг 6. Обновите конфигурацию базы данных

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

До этого шага база на самом деле продолжает работать со старой структурой. Если пропустить F7, при запуске в режиме пользователя 1С сама предложит обновить, но надёжнее делать это явно из Конфигуратора.

Шаг 7. Запустите в режиме предприятия

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

Проверьте результат: справка «О программе» должна показать новую версию, а закрытые документы должны открываться.

Как сократить время обновления

Если база большая, обновление может занять полдня. Несколько приёмов реально ускоряют процесс.

  1. Обновляйте на сервере, а не по сети. Конфигуратор, запущенный по Wi-Fi через «тонкий» канал, гоняет по нему сотни мегабайт. Запустите его на самом сервере или на машине в той же быстрой сети.
  2. Выведите базу на SSD. Для файловых баз перенос каталога на SSD даёт самый заметный выигрыш.
  3. Отключите антивирус для каталога базы. Сканирование каждого обращения к файлу 1Cv8.1CD растягивает реструктуризацию вдвое. Верните защиту после окончания.
  4. Закройте лишнее. Консоль администрирования, фоновые задания и подключённые обмены не нужны во время реструктуризации.
  5. Сначала уменьшите базу. Если в ней сотни гигабайт старых данных, которые можно архивировать по регламенту, сделайте это до обновления. Меньше данных — меньше таблиц в перестройке.
  6. Не прыгайте через много релизов за раз. Иногда несколько небольших обновлений идут быстрее, чем один огромный скачок, потому что обработчики обновления выполняются сразу по всем промежуточным версиям.
  7. Включите достаточно оперативной памяти для сервера 1С. Если сервер уходит в своп, любая операция превращается в ожидание.

Типичные ошибки и что с ними делать

Чаще всего обновление ломается на одних и тех же местах.

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

Если не помогло

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

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

Обновление базы на SQL-сервере

В клиент-серверном варианте всё то же самое, но к списку проверок добавляется работа с СУБД. Здесь свои подводные камни.

  • 🗄️ Резервная копия — на стороне СУБД. Полный бэкап базы средствами SQL-сервера делает именно администратор СУБД. Копия «каталога сервера 1С» базу не спасёт.
  • 📈 Журнал транзакций. Реструктуризация генерирует очень много записей в журнал. Если модель восстановления полная и журнал не очищается, он забьёт диск. Перед обновлением проверьте свободное место под журнал и договоритесь с администратором, как его контролировать.
  • 🔐 Права пользователя. Учётная запись, от имени которой сервер 1С работает с СУБД, должна иметь право менять структуру таблиц. Если прав нет, ошибка появится на этапе обновления структуры.
  • ⏱️ Блокировки. Пока идёт реструктуризация, нельзя запускать другие тяжёлые операции с этой базой: отчёты, обмены, регламентные задания.
  • 🧹 После обновления. Запустите обслуживание: пересчёт статистики и перестроение индексов по регламенту. Иначе первые дни отчёты могут идти заметно медленнее.

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

Обновление без мыши: командная строка и скрипты

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

Базовая схема запуска для файловой базы:

"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Админ" /P "пароль" /UpdateCfg "D:\Updates\buh.cf" /UpdateDBCfg /DisableStartupDialogs /Out "D:\Updates\log.txt"

Что здесь важно:

  • DESIGNER — запуск Конфигуратора в пакетном режиме: выполняет указанные действия и закрывается;
  • /UpdateCfg — обновление основной конфигурации из указанного файла на поддержке;
  • /UpdateDBCfg — обновление конфигурации базы данных, аналог F7;
  • /Out — запись результата в текстовый файл, чтобы потом проверить, как всё прошло;
  • /DisableStartupDialogs — подавление диалогов, которые иначе остановят скрипт.

Для клиент-серверной базы вместо /F используют /S "сервер\имя_базы".

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

Автоматику не пускайте на рабочую базу без обкатки на тестовой копии. Скрипт не умеет принимать решения по конфликтам объединения, поэтому пакетное обновление подходит для баз без доработок.

Можно ли обновить 1С через CF-файл без интернета?
Да. Файл копируется на сервер или в рабочую машину любым способом, а Конфигуратору интернет не нужен. Скачать поставку нужно один раз на другом компьютере.
Теряются ли данные при обновлении конфигурации из CF?
Данные базы остаются, меняется структура таблиц и код. Потерять данные можно только при сбое реструктуризации, поэтому копия перед началом обязательна.
Чем CF-файл отличается от обновления из интерфейса программы?
Обновление из интерфейса скачивает и применяет подходящие файлы автоматически. CF вы выбираете сами, и он подходит, когда нужен конкретный релиз или нет доступа к серверу обновлений.
Сколько по времени занимает обновление?
Небольшая база обновляется за 10–30 минут. Базы на десятки гигабайт могут идти несколько часов, из них основная часть уходит на обработчики обновления данных при первом запуске.
Нужно ли после загрузки CF что-то делать в режиме предприятия?
Да. Первый запуск запускает обработчики обновления данных. Дождитесь их окончания и проверьте закрытые периоды и основные отчёты.
Можно ли откатить обновление?
Только вернув базу из копии. Конфигурацию можно вернуть из сохранённого .cf, но структура таблиц уже изменилась, поэтому полноценный откат — из резервной копии базы.