Обновление баз 1С: от копии до проверки результата
Содержание
Базы 1С обновляют тремя способами: через интернет из самой программы, из файла обновления (.cf или .cfu) в Конфигураторе и скриптом по командной строке. Какой выбрать, зависит от того, стоит ли конфигурация на поддержке, есть ли доступ в интернет и сколько баз нужно обновить. Перед любым из способов снимите копию базы
и проверьте, что в ней никто не работает
.
Ниже — порядок действий от выбора типа обновления до проверки результата. Инструкция для 1С:Предприятия 8.3 с интерфейсом «Такси». Версии 7.7 и 8.2 здесь не разбираются.
Что именно обновляете: тип обновления
Слово «обновление» в 1С означает три разные вещи. Путают их часто, а действия у них разные.
| Что обновляется | Что меняется | Где ставится |
|---|---|---|
| Релиз конфигурации | Программный код, формы, отчёты, правила законодательства | В информационной базе |
| Платформа 1С:Предприятие | Ядро, клиенты, сервер | На компьютере или сервере |
| Исправление (патч) | Точечная правка ошибки | В информационной базе, как расширение |
Релиз конфигурации обновляют чаще всего: после изменений в законодательстве, при выходе новых форм отчётности. Платформу обновляют реже и обычно тогда, когда новый релиз конфигурации требует более свежую платформу. Поэтому порядок такой: сначала смотрите требования релиза к платформе, потом ставите платформу, потом обновляете конфигурацию.
Отдельный случай — переход на новую редакцию, например с БП 2.0 на БП 3.0. Это не обновление, а миграция данных: структура базы другая, и обычной загрузкой файла обновления она не переносится.
💡 Версии платформы сравнивайте по номеру. Если релизу нужна платформа «не ниже 8.3.22», то 8.3.22 и все более поздние номера подходят, а 8.3.21 — нет.
Подготовка: что сделать до запуска
Без подготовки даже безошибочное обновление может закончиться неделей восстановления. Минимальный набор:
- Убедитесь, что конфигурация на поддержке. Откройте Конфигуратор, меню
Конфигурация → Поддержка → Настройка поддержки. Если там написано, что конфигурация не на поддержке, автоматическое обновление недоступно. - Посмотрите, менялась ли типовая конфигурация. Доработанные объекты при обновлении придётся объединять вручную.
- Проверьте требования релиза к платформе и ваш текущий номер платформы.
- Попросите пользователей выйти из базы и заблокируйте новые входы.
- Сделайте копию базы — об этом следующий раздел.
- Узнайте у разработчика, какие расширения подключены и не сломаются ли они на новом релизе.
⚠️ Обновление без копии — единственное действие, которое нельзя исправить откатом. Если обновление оборвётся на середине, а копии нет, базу придётся собирать из того, что осталось.
Сколько времени закладывать, зависит от размера базы. Для небольшой базы в пару гигабайт обновление занимает от нескольких минут до получаса. Для крупной, в сотни гигабайт, с большим числом обработчиков обновления это может быть несколько часов, и делать это лучше вечером или в выходной.
Выгрузка базы перед обновлением
Копию нужно сделать так, чтобы из неё можно было восстановиться. Способ зависит от типа базы.
Файловая база
Файловая база — это каталог с файлом 1Cv8.1CD. Закройте все сеансы и скопируйте каталог целиком в другое место. Это самый быстрый и надёжный вариант: он сохраняет всё, включая служебные данные.
Либо выгрузите базу в файл: в Конфигураторе Администрирование → Выгрузить информационную базу. Получится файл .dt. Он занимает меньше места, но выгрузка и последующая загрузка идут дольше.
Клиент-серверная база
Здесь копию делает СУБД, а не 1С. Для Microsoft SQL Server это полная резервная копия базы средствами SQL Server. Для PostgreSQL — выгрузка утилитой pg_dump или копия на уровне файловой системы при остановленной службе.
Выгрузка в .dt тоже работает, но для большой базы она слишком медленная. Лучше пользоваться средствами СУБД и дополнительно сделать .dt перед очень рискованными обновлениями.
💡 Проверьте, что копия открывается. Разверните её в тестовой базе и зайдите. Копия, которую ни разу не восстанавливали, — это надежда, а не копия.
Способы обновления: от удобного к ручному
Через интернет из самой программы
Самый простой вариант для базы на поддержке. Нужны подключённая Интернет-поддержка и действующий договор ИТС.
Подключение настраивается в разделе Администрирование → Интернет-поддержка и сервисы. После входа с логином и паролем портала поддержки программа сама ищет новые релизы. Обновление запускается из раздела администрирования; программа скачивает релиз, ставит его и при необходимости предлагает перезапустить сеанс.
Плюс — не нужно искать файлы и разбираться с каталогами. Минус — нужен доступ в интернет с того компьютера, где запущена программа, и версия платформы должна подходить новому релизу.
Из файла обновления в Конфигураторе
Подходит, если интернета на сервере нет или нужно поставить конкретный релиз. Файл берётся с сайта поддержки 1С или из каталога шаблонов, куда его положил установщик.
Порядок действий:
- Откройте базу в режиме Конфигуратора.
- Выберите
Конфигурация → Поддержка → Обновить конфигурацию. - Укажите вариант «Выбор файла обновления» и найдите файл
.cfили.cfu. - Программа покажет, какие объекты изменятся, и спросит про объединение с вашей конфигурацией.
- Подтвердите. Дождитесь, пока Конфигуратор закончит загрузку.
Файлы .cf содержат конфигурацию целиком, .cfu — обновление, которое применяется поверх определённой предыдущей версии. Если файл .cfu не подходит к вашему релизу, Конфигуратор об этом скажет: тогда нужно ставить промежуточные релизы по цепочке.
По командной строке
Нужен, когда баз много и вручную их обновлять долго. Конфигуратор запускается без окна в пакетном режиме. Основные параметры:
DESIGNER— запуск Конфигуратора;/Fили/S— путь к файловой базе или адрес сервера и имя базы;/UpdateCfg— загрузить файл обновления;/UpdateDBCfg— обновить конфигурацию базы данных;/Out— файл журнала.
Пример для файловой базы:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Админ" /P "пароль" /UpdateCfg "D:\Updates\1cv8.cfu" /UpdateDBCfg /Out "D:\Updates\log.txt"
Номер платформы в пути подставьте свой. Пароль в тексте скрипта — риск; для пакетных обновлений заведите отдельного пользователя с минимальными правами и храните файл скрипта с ограниченным доступом.
Сравнение способов
| Способ | Когда подходит | Риски |
|---|---|---|
| Через интернет | Одна-две базы на поддержке | Нужен доступ к порталу, зависит от платформы |
| Из файла в Конфигураторе | Нет интернета, нужен конкретный релиз | Ошибка в выборе файла .cfu |
| Командная строка | Много баз, обновление по расписанию | Пароли в скрипте, сложнее заметить сбой |
Обновление, при котором меняется структура данных
Большинство релизов добавляет реквизиты, таблицы или меняет типы данных. Тогда Конфигуратору нужно ещё и перестроить структуру базы. Это отдельный шаг после загрузки конфигурации.
Что происходит:
- Конфигурация загружается в хранилище конфигурации базы.
- Затем Конфигуратор предлагает обновить конфигурацию базы данных. Подтвердите. Если нажали «Нет», выполните
Конфигурация → Обновить конфигурацию базы данныхпозже (клавишаF7). - При первом входе в режиме 1С:Предприятие запускаются обработчики обновления: они переносят старые данные в новую структуру.
Для перестройки структуры нужен монопольный доступ к базе. Если в базе кто-то работает, Конфигуратор откажет и предложит повторить попытку. Часто такой пользователь — это зависший сеанс, а не живой человек. Завершить его можно в консоли администрирования серверов 1С или в Конфигураторе через Администрирование → Активные пользователи.
Первый запуск после обновления структуры может идти долго. Обработчики обновления переносят данные, и прерывать их нельзя: оборванный процесс чаще всего приводит к восстановлению из копии.
Обновление на SQL Server и PostgreSQL
В клиент-серверном варианте добавляются требования к СУБД. Новые релизы платформы иногда повышают минимальную версию PostgreSQL или SQL Server. Проверьте совместимость до обновления платформы: если СУБД не поддерживается, платформа предупредит или откажется работать с базой.
На что смотреть:
- Свободное место. Перестройка структуры создаёт временные таблицы, и журнал транзакций на SQL Server растёт. Для большой базы свободного места нужно не меньше размера самой базы.
- Режим восстановления на SQL Server. Если журнал не обслуживается, он может занять весь диск. Перед тяжёлым обновлением настройте его копирование.
- На PostgreSQL после крупного обновления выполните обслуживание: сбор статистики (
ANALYZE) и при необходимости перестроение индексов. Без этого запросы могут идти медленнее обычного. - Кластер серверов 1С: платформу нужно обновить и на сервере, и на клиентах. Версии клиента и сервера должны совпадать по номеру до третьей группы цифр.
⚠️ Обновление платформы на сервере требует остановить службу сервера 1С. Это оборвёт сеансы всех пользователей, поэтому делайте это вне рабочего времени и после предупреждения.
Тестирование после обновления
Когда обновление прошло, не торопитесь возвращать пользователей. Проверьте базу сами.
Что проверить сразу:
- База открывается, на экране нет сообщений об ошибках запуска.
- В окне «О программе» стоит ожидаемый номер релиза.
- Проводятся несколько типовых документов: поступление, реализация, платёжка.
- Открываются основные отчёты и формируются без ошибок.
- Обмены с банком и ЭДО отвечают.
Если вы дорабатывали конфигурацию, проверьте именно доработки: формы, отчёты, обработки. Они ломаются чаще всего.
Для файловой базы после обновления полезно выполнить в Конфигураторе Администрирование → Тестирование и исправление: так проверится целостность данных. Для клиент-серверной базы эту проверку лучше делать на копии, потому что она монопольная и долгая.
Типичные ошибки при обновлении
Главное при ошибке — не повторять попытку вслепую. Прочитайте текст, запишите его и вернитесь к копии, если база повреждена.
.cfu рассчитан на другой предыдущий релиз. Посмотрите номер текущего релиза и поставьте недостающие релизы по порядку либо возьмите полный .cf.Автоматизация обновлений
Когда баз больше пяти, ручное обновление становится источником ошибок. Что можно автоматизировать:
- Скачивание релизов. Каталог шаблонов можно наполнять автоматически — тогда файл обновления всегда лежит в одном месте.
- Копирование баз. Копию перед обновлением делает отдельный скрипт, и обновление не запускается, пока копия не создана.
- Запуск обновления по командной строке в нерабочее время через планировщик заданий Windows.
- Проверка журнала. Файл, который пишет параметр
/Out, скрипт просматривает на наличие слов об ошибках и отправляет уведомление.
Пример логики скрипта на bat:
@echo off
set BASE=D:\Bases\Buh
set BACKUP=D:\Backup\Buh_%date%
xcopy "%BASE%" "%BACKUP%" /E /I /Y
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "%BASE%" /N "Обновлятор" /UpdateCfg "D:\Updates\1cv8.cfu" /UpdateDBCfg /Out "D:\Updates\log.txt"
Скрипт — только каркас. В рабочем виде нужно проверять код возврата, число свободного места и время работы. Начните с одной тестовой базы и только потом переносите схему на рабочие.
Облачные базы: 1С:Фреш и аренда
Если база работает в сервисе 1С:Фреш, обновлять её самостоятельно не нужно. Обновление выполняет оператор сервиса на своей стороне. Вам остаётся следить за уведомлениями и проверять после обновления свои сценарии.
С арендой 1С на сервере провайдера иначе: многое зависит от договора. Одни провайдеры обновляют конфигурации сами по заявке, другие дают доступ к базе, и тогда обновляете вы. Уточните у поддержки провайдера:
- кто отвечает за обновление платформы и конфигурации;
- как часто делаются копии и сколько они хранятся;
- можно ли получить копию базы по запросу перед обновлением.
Частые вопросы
Как часто нужно обновлять конфигурацию?
Можно ли обновить 1С без интернета?
Конфигурация → Поддержка → Обновить конфигурацию.