Обновление конфигурации 1С из файла CF: подготовка, способы, ошибки
Содержание
Обновить CF в 1С можно тремя путями: загрузить файл .cf целиком, применить файл обновления .cfu через режим поддержки или объединить свою конфигурацию с поставкой вендора. Для типовой конфигурации без доработок подходит второй способ. Если в базу вносили изменения, нужен третий: сравнение и объединение.
Главное правило одно: перед любым действием в Конфигураторе сделайте выгрузку информационной базы. Без неё откат превращается в восстановление из чужих архивов. Ниже порядок действий от подготовки до проверки результата.
Что такое CF и чем он отличается от CFU
CF — это файл конфигурации. В нём лежит вся прикладная логика базы: справочники, документы, отчёты, формы, модули. Это полный слепок, поэтому он весит десятки и сотни мегабайт.
CFU — файл обновления. Он содержит только разницу между двумя релизами. Весит меньше, но подходит строго для определённой версии: обновление с 3.0.150 на 3.0.151 не применить к базе версии 3.0.140.
Коротко о том, что где применяется:
| Файл | Что внутри | Когда использовать |
|---|---|---|
.cf | Конфигурация целиком | Перенос между базами, откат, первичная установка, объединение с поставкой |
.cfu | Разница между релизами | Плановое обновление типовой конфигурации на поддержке |
.dt | Выгрузка базы с данными | Резервная копия, перенос базы целиком |
.cfe | Расширение | Доработки без правки типовой конфигурации |
Обновлять нужно по нескольким причинам:
- ⚖️ вышли изменения в законодательстве: новые формы отчётности, ставки, форматы документов;
- 🐞 разработчик исправил ошибки, которые у вас проявляются;
- 🔌 платформа требует свежий релиз конфигурации, иначе не работают сервисы и обмены;
- 🛡️ снимается риск, что поддержка старой версии закончится.
Подготовка: резервная копия и проверка базы перед обновлением
Эти шаги занимают полчаса, а экономят день. Не пропускайте их даже для тестовой базы.
Что сделать до запуска
- Попросите всех выйти из базы. Проверьте список активных пользователей в консоли администрирования серверов или в окне
Администрирование — Активные пользователи. - Включите монопольный режим. Конфигуратор сам попросит его при изменении конфигурации.
- Выгрузите базу: в Конфигураторе пункт
Администрирование — Выгрузить информационную базу. Получится файл.dt. - Для файловой базы дополнительно скопируйте каталог целиком, пока никто не работает . Это самый простой откат.
- Сохраните текущую конфигурацию в
.cf:Конфигурация — Сохранить конфигурацию в файл. Пригодится, если придётся вернуться к прежней версии кода. - Проверьте свободное место на диске. Нужно хотя бы два-три размера базы: на копию, временные файлы и журнал.
Не обновляйте рабочую базу первой. Разверните копию из .dt на тестовой площадке, пройдите обновление там и только потом повторите на боевой.
Если база клиент-серверная, выгрузка .dt на больших объёмах идёт долго. Резервную копию средствами СУБД (бэкап PostgreSQL или SQL Server) делайте в дополнение к ней, а не вместо.
Что проверить в самой конфигурации
- Откройте
Конфигурация — Поддержка — Настройка поддержки. Смотрите, включена ли возможность изменения и какие объекты изменены относительно поставщика. - Запишите текущую версию и релиз. Они видны в
Справка — О программе. - Убедитесь, что версия платформы подходит новому релизу. Минимальная версия указана в описании релиза на сайте поставщика.
- Если есть доработки, выгрузите их список:
Конфигурация — Поддержка — Настройка поддержки, затем отчёт об изменённых объектах. Он покажет, что будет конфликтовать.
Как обновить конфигурацию 1С из файла: основные способы
Выбор зависит от того, что у вас на руках и есть ли доработки.
Способ 1. Обновление через режим поддержки (файл CFU или поставка)
Подходит для типовой конфигурации, которая стоит на поддержке.
- Откройте Конфигуратор в монопольном режиме.
- Выберите
Конфигурация — Поддержка — Обновить конфигурацию. - В окне выбора источника укажите «Поиск доступных обновлений» (если лежит в каталоге шаблонов) или «Выбор файла обновления».
- Укажите файл
.cfuили.cfпоставки. Для CF поставки нужен файл именно поставки, а не сохранённая конфигурация вашей базы. - Программа покажет окно обновления: версии, объекты, режим объединения. Нажмите «Выполнить».
- Если объекты были изменены, откроется окно сравнения. Разбирайте конфликты по одному (см. раздел про доработки).
- По завершении согласитесь на реструктуризацию, либо нажмите
F7илиКонфигурация — Обновить конфигурацию базы данных.
Файлы обновлений удобно хранить в каталоге шаблонов, который 1С находит сама. Тогда на шаге 3 достаточно «Поиск доступных обновлений», а путь вспоминать не надо.
Способ 2. Загрузка конфигурации из CF целиком
Подходит, когда нужно полностью заменить конфигурацию : откатиться к сохранённой копии, развернуть эталон из другой базы, перенести конфигурацию на тестовую.
Конфигурация — Загрузить конфигурацию из файла.- Выберите
.cf. - Подтвердите замену. Текущая конфигурация будет перезаписана целиком.
- Обновите конфигурацию базы данных,
F7.
Этот способ стирает все доработки текущей конфигурации. Данные остаются, но форма, модуль и отчёт, которые вы правили, вернутся к содержимому файла.
После загрузки CF конфигурация может «слететь» с поддержки. Снова поставьте её на поддержку через Конфигурация — Поддержка — Настройка поддержки, если это нужно.
Способ 3. Объединение с конфигурацией из файла
Подходит для доработанной конфигурации. Если у вас в базе правки, а вендор выпустил новый релиз.
Конфигурация — Сравнить, объединить с конфигурацией из файла....- Укажите CF нового релиза.
- Откроется дерево различий. Для каждого объекта выберите, чью версию оставить: свою, поставщика или объединить.
- Нажмите «Выполнить», когда решения приняты.
Какой способ выбрать
| Ситуация | Способ | Риск |
|---|---|---|
| Типовая, без правок, на поддержке | Обновление через поддержку | Минимальный |
| Нужен откат или перенос эталона | Загрузка CF | Потеря доработок |
| Есть доработки, пришёл новый релиз | Объединение | Конфликты и ручной разбор |
| Доработки вынесены в расширения | Поддержка + проверка расширений | Расширение может перестать применяться |
Обновление доработанной конфигурации: объединение и ручная правка
Здесь большинство потерь. Типичный сценарий: интегратор правил отчёт три года назад, а теперь в нём конфликт с новым релизом.
Три состояния объекта
При сравнении 1С показывает три «колонки»: ваша конфигурация, предыдущий релиз поставщика, новый релиз. Из этого следует правило.
- Менялся только вендор: берём новое без вопросов.
- Менялись только вы: оставляем своё.
- Менялись оба: смотрим вручную, строка за строкой.
Как разбирать конфликты
- Начните с модулей. Именно они ломаются чаще, чем формы или макеты.
- Для каждого конфликтного модуля откройте сравнение в режиме «три версии».
- Если ваша правка была заплаткой под старую ошибку, а вендор её уже исправил, откажитесь от вашей правки: это упрощает последующие обновления.
- Если правка нужна, перенесите её в новый код вручную, не копируя модуль целиком из старой версии.
- После каждого десятка объектов сохраняйте конфигурацию, чтобы не потерять работу при сбое.
Не выбирайте «взять всё своё» массово «чтобы не мучиться». Так вы пропустите исправления ошибок и изменения под законодательство.
Как сократить боль на будущее
- Новые доработки делайте расширениями
.cfe, а не правкой типового кода. - Ведите список изменённых объектов с причиной правки. Через два года вы сами не вспомните зачем.
- Для каждого обновления фиксируйте версию, с которой начинали, и версию, на которой закончили.
Скрипты и запуск по расписанию: автоматизация обновления CF
Если баз много, ручной режим перестаёт работать. Платформа умеет делать то же самое из командной строки.
Ключи пакетного режима Конфигуратора
Запуск идёт через исполняемый файл 1cv8.exe в режиме DESIGNER. Основные ключи:
/F "путь"— файловая база; для серверной используют/S "сервер\база";/Nи/P— имя и пароль пользователя с правами администратора;/LoadCfg файл.cf— загрузить конфигурацию из файла ;/UpdateCfg файл.cfu— применить обновление или поставку;/UpdateDBCfg— обновить конфигурацию базы данных (реструктуризация);/DumpIB файл.dt— выгрузить базу ;/Out файл.log— записать результат в журнал;/DisableStartupDialogsи/DisableStartupMessages— отключить окна, чтобы скрипт не зависал.
Пример скрипта
@echo off
set BASE=D:\Bases\Buh
set UPD=D:\Updates\buh_3_0_200.cfu
set LOG=D:\Logs\update.log
"C:\Program Files\1cv8\8.3.24.1667\bin\1cv8.exe" DESIGNER /F "%BASE%" /N Admin /P "" ^
/DumpIB "D:\Backup\before_update.dt" /Out "%LOG%" /DisableStartupDialogs
"C:\Program Files\1cv8\8.3.24.1667\bin\1cv8.exe" DESIGNER /F "%BASE%" /N Admin /P "" ^
/UpdateCfg "%UPD%" /UpdateDBCfg /Out "%LOG%" /DisableStartupDialogs
Номер платформы и пути замените своими. Пароль в скрипте хранить небезопасно: используйте учётную запись с минимальными правами и закрытый каталог для скриптов.
Что учесть при запуске по расписанию
- ⏰ Запускайте ночью, когда никто не работает. Планировщик Windows или cron подходят одинаково.
- 🔒 Перед запуском завершите сеансы, иначе обновление упрётся в блокировку.
- 📝 Проверяйте код возврата и журнал
/Out. Просто «скрипт отработал» ничего не значит. - 💾 Сначала выгрузка, потом обновление, в одном скрипте. Если выгрузка упала, дальше не идём.
Типичные ошибки при обновлении CF и как их исправить
Частые ошибки самих администраторов
- Обновление без выгрузки базы: «ну там же только типовая».
- Выбор «взять всё своё» при объединении: теряются исправления вендора.
- Применение CFU не к той версии: программа предупредит, но предупреждение часто закрывают не читая.
- Запуск обновления в рабочее время при открытых сеансах.
- Отсутствие проверки после обновления: пользователи находят сбои раньше администратора.
Что проверить после обновления CF
После успешной реструктуризации не торопитесь открывать базу для всех.
Быстрая проверка за 15 минут
- Запустите базу в режиме 1С:Предприятие под обычным пользователем и посмотрите версию в «О программе».
- Откройте основной список: контрагенты, номенклатура. Убедитесь, что данные на месте.
- Создайте и проведите тестовый документ основного вида. Затем удалите его.
- Сформируйте один из регулярных отчётов и сравните итоги с прошлыми.
- Проверьте обмены и интеграции: отправьте тестовое сообщение или запустите регламентное задание вручную.
- В Конфигураторе запустите
Конфигурация — Проверка конфигурации. На доработанной базе это покажет битые ссылки и ошибки в модулях.
Оптимизация после обновления
- Выполните тестирование и исправление базы для файлового варианта, если база давно не обслуживалась.
- В клиент-серверной версии обновите статистику СУБД и перестройте индексы по регламенту.
- Очистите кэш клиента: перезапуск
1cv8с ключом/ClearCacheубирает остатки старых форм. - Проверьте регламентные задания: после реструктуризации они иногда остаются отключёнными.
Храните резервную копию, сделанную перед обновлением, минимум неделю. Некоторые ошибки в учётных данных проявляются только при закрытии месяца.
Когда всё проверено, запишите в журнал: дата, версия до, версия после, кто делал, что менялось при объединении. Через год это сэкономит часы.
Частые вопросы
Можно ли обновить CF, не выгружая базу?
Что будет с данными при загрузке CF?
Можно ли перепрыгнуть через несколько релизов?
Чем отличается обновление через поддержку от загрузки CF?
Нужно ли обновлять платформу вместе с конфигурацией?
Как откатиться, если после обновления всё сломалось?
.dt в новую базу или верните каталог файловой базы из копии. Если сохранили старую конфигурацию в .cf, её можно загрузить, но данные в новой структуре могут не подойти.