Обновление баз 1С: от копии до проверки результата

· 10 мин

Содержание

Базы 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 — нет.

Подготовка: что сделать до запуска

Без подготовки даже безошибочное обновление может закончиться неделей восстановления. Минимальный набор:

  1. Убедитесь, что конфигурация на поддержке. Откройте Конфигуратор, меню Конфигурация → Поддержка → Настройка поддержки. Если там написано, что конфигурация не на поддержке, автоматическое обновление недоступно.
  2. Посмотрите, менялась ли типовая конфигурация. Доработанные объекты при обновлении придётся объединять вручную.
  3. Проверьте требования релиза к платформе и ваш текущий номер платформы.
  4. Попросите пользователей выйти из базы и заблокируйте новые входы.
  5. Сделайте копию базы — об этом следующий раздел.
  6. Узнайте у разработчика, какие расширения подключены и не сломаются ли они на новом релизе.

⚠️ Обновление без копии — единственное действие, которое нельзя исправить откатом. Если обновление оборвётся на середине, а копии нет, базу придётся собирать из того, что осталось.

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

Выгрузка базы перед обновлением

Копию нужно сделать так, чтобы из неё можно было восстановиться. Способ зависит от типа базы.

Файловая база

Файловая база — это каталог с файлом 1Cv8.1CD. Закройте все сеансы и скопируйте каталог целиком в другое место. Это самый быстрый и надёжный вариант: он сохраняет всё, включая служебные данные.

Либо выгрузите базу в файл: в Конфигураторе Администрирование → Выгрузить информационную базу. Получится файл .dt. Он занимает меньше места, но выгрузка и последующая загрузка идут дольше.

Клиент-серверная база

Здесь копию делает СУБД, а не 1С. Для Microsoft SQL Server это полная резервная копия базы средствами SQL Server. Для PostgreSQL — выгрузка утилитой pg_dump или копия на уровне файловой системы при остановленной службе.

Выгрузка в .dt тоже работает, но для большой базы она слишком медленная. Лучше пользоваться средствами СУБД и дополнительно сделать .dt перед очень рискованными обновлениями.

💡 Проверьте, что копия открывается. Разверните её в тестовой базе и зайдите. Копия, которую ни разу не восстанавливали, — это надежда, а не копия.

Способы обновления: от удобного к ручному

Через интернет из самой программы

Самый простой вариант для базы на поддержке. Нужны подключённая Интернет-поддержка и действующий договор ИТС.

Подключение настраивается в разделе Администрирование → Интернет-поддержка и сервисы. После входа с логином и паролем портала поддержки программа сама ищет новые релизы. Обновление запускается из раздела администрирования; программа скачивает релиз, ставит его и при необходимости предлагает перезапустить сеанс.

Плюс — не нужно искать файлы и разбираться с каталогами. Минус — нужен доступ в интернет с того компьютера, где запущена программа, и версия платформы должна подходить новому релизу.

Из файла обновления в Конфигураторе

Подходит, если интернета на сервере нет или нужно поставить конкретный релиз. Файл берётся с сайта поддержки 1С или из каталога шаблонов, куда его положил установщик.

Порядок действий:

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

Файлы .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С. Это оборвёт сеансы всех пользователей, поэтому делайте это вне рабочего времени и после предупреждения.

Тестирование после обновления

Когда обновление прошло, не торопитесь возвращать пользователей. Проверьте базу сами.

Что проверить сразу:

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

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

Для файловой базы после обновления полезно выполнить в Конфигураторе Администрирование → Тестирование и исправление: так проверится целостность данных. Для клиент-серверной базы эту проверку лучше делать на копии, потому что она монопольная и долгая.

Что проверить после обновления
Выполнено: 0 / 6

Типичные ошибки при обновлении

Главное при ошибке — не повторять попытку вслепую. Прочитайте текст, запишите его и вернитесь к копии, если база повреждена.

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

Автоматизация обновлений

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

  • Скачивание релизов. Каталог шаблонов можно наполнять автоматически — тогда файл обновления всегда лежит в одном месте.
  • Копирование баз. Копию перед обновлением делает отдельный скрипт, и обновление не запускается, пока копия не создана.
  • Запуск обновления по командной строке в нерабочее время через планировщик заданий 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С без интернета?
Да. Скачайте файл обновления на другом компьютере, перенесите его на сервер и загрузите через Конфигуратор: Конфигурация → Поддержка → Обновить конфигурацию.
Нужно ли обновлять платформу вместе с конфигурацией?
Только когда релиз требует более высокого номера платформы. Сначала платформа, потом конфигурация.
Что делать, если после обновления база не открывается?
Не пытайтесь запускать обновление повторно. Запишите текст ошибки и восстановите базу из копии, сделанной перед обновлением.
Можно ли обновлять базу, пока в ней работают пользователи?
Загрузить конфигурацию можно, но перестройка структуры данных требует монопольного доступа. Поэтому пользователей из базы лучше вывести на всё время обновления.