Установка нового релиза конфигурации 1С без простоя и потерь данных

· 10 мин

Содержание

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

Порядок одинаков для типовых конфигураций на платформе 8.3 — Бухгалтерии 3.0, ЗУП 3.1, УТ 11, ERP. Разница только в длительности: файловая база на 5 ГБ обновляется за 10–20 минут, клиент-серверная ERP на сотни гигабайт — за несколько часов.

1. Подготовка к развертыванию релиза 1С

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

  • 📌 Цепочка релизов. Файл .cfu обновляет только с перечисленных в его описании версий. Если база на 3.0.150, а релиз рассчитан на обновление с 3.0.155 и выше, придётся ставить промежуточные релизы по очереди. Список версий, с которых возможен переход, есть в файле описания обновления в каталоге шаблона.
  • 🖥️ Версия платформы. У каждого релиза есть минимальный номер платформы. Если на сервере платформа с номером ниже требуемого, сначала обновите платформу на сервере и на всех клиентах.
  • 🧩 Доработки. Откройте Конфигурация → Поддержка → Настройка поддержки. Если конфигурация на поддержке без возможности изменения — обновление пройдёт автоматически. Если включена возможность изменения и объекты правили — готовьтесь к сравнению и объединению.
  • 🔌 Расширения и внешние обработки. Перепишите список расширений (Администрирование → Печатные формы, отчеты и обработки → Расширения) и внешних печатных форм. После обновления их придётся проверить.
  • ⏱️ Окно работ. Замерьте время обновления на копии и заложите запас ×1,5. Пользователей предупредите заранее.

Файл обновления берут на портале обновлений по договору ИТС или через встроенную интернет-поддержку. Скачанный дистрибутив запускают через setup.exe — он распаковывает шаблон в каталог шаблонов (по умолчанию %APPDATA%\1C\1cv8\tmplts), откуда Конфигуратор потом берёт 1Cv8.cfu.

Перед окном обновления
Выполнено: 0 / 6

2. Резервные копии перед обновлением: почему одной мало

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

КопияКак сделатьОт чего спасает
Выгрузка .dtАдминистрирование → Выгрузить информационную базу в КонфигуратореПолный откат базы, перенос на другой сервер
Бэкап СУБДПолная резервная копия средствами MS SQL или PostgreSQLБыстрый откат большой клиент-серверной базы
Файл .cfКонфигурация → Сохранить конфигурацию в файлРазбор доработок, повторное сравнение

Для файловой базы вместо бэкапа СУБД достаточно скопировать каталог с файлом 1Cv8.1CD при закрытых сеансах.

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

Храните копию не на том же диске, что и база. Отказ диска во время обновления — редкость, но тогда потеряете и базу, и бэкап.

3. Способы развернуть релиз: какой выбрать

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

СпособКогда подходитРиски
Из режима «1С:Предприятие» (Администрирование → Интернет-поддержка и сервисы → Обновление версии программы)Типовая без доработок, файловая база, небольшая фирмаМало контроля, сложно разобрать сбой
Конфигуратор вручнуюЕсть доработки, нужно сравнение и объединениеЗависит от внимательности администратора
Пакетный запуск Конфигуратора по скриптуМного баз, регулярные обновления, ночное окноНужна проверка лога, иначе ошибка пройдёт незамеченной
Через тестовый контурERP, УТ с обменами, доработанные базыДольше, но ошибки ловятся до рабочей базы

Для доработанной базы рабочая схема одна: обновить тестовую копию, проверить, затем повторить те же действия на рабочей с теми же настройками объединения. Файл настроек объединения можно сохранить и применить повторно.

4. Запуск обновления в Конфигураторе: пошагово

Освобождаем базу

Обновление структуры базы требует монопольного доступа. Варианты:

  1. В программе: Администрирование → Обслуживание → Блокировка работы пользователей. Задайте время начала, сообщение и код разрешения.
  2. В клиент-серверном варианте — через консоль кластера: в свойствах информационной базы включите «Блокировка начала сеансов включена» и «Блокировка регламентных заданий включена», задайте код разрешения.
  3. Завершите оставшиеся сеансы в консоли кластера.

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

Конфигуратор потом запускают с параметром /UC <код разрешения>, чтобы войти при включённой блокировке.

Применяем файл обновления

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

Сравнение и объединение доработок

В окне сравнения смотрите на объекты с изменениями с обеих сторон — в своей конфигурации и в новой поставке. Для них:

  • 🔵 типовой модуль, где ваших правок нет — берите из поставщика;
  • 🟠 модуль с вашими правками — режим «Объединить с приоритетом основной конфигурации» или ручной перенос правок после обновления;
  • 🔴 формы с доработками — после объединения откройте и проверьте вручную, слияние форм даёт самые неожиданные результаты.

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

Обновляем конфигурацию базы данных

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

Затем запустите базу в режиме «1С:Предприятие». Программа сообщит, что версия изменилась, и выполнит обработчики обновления. Часть из них — отложенные: они дорабатывают данные в фоне ещё минуты или часы. Пока они не завершились, некоторые отчёты могут показывать неполные данные.

5. Автоматизация развертывания релиза

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

Скрипт пакетного обновления

Пример .bat для клиент-серверной базы на конфигурации, стоящей на поддержке:

@echo off
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set IB=/S "srv1c\buh"
set USR=/N "Администратор" /P "пароль"
set LOG=C:\upd\logs\buh_%date:~-4%%date:~3,2%%date:~0,2%.log

rem 1. Резервная выгрузка
%V8% DESIGNER %IB% %USR% /UC "upd2026" /DumpIB "C:\upd\backup\buh.dt" /Out %LOG% -NoTruncate /DisableStartupDialogs

rem 2. Применение обновления и реструктуризация
%V8% DESIGNER %IB% %USR% /UC "upd2026" /UpdateCfg "C:\upd\1Cv8.cfu" /UpdateDBCfg /Out %LOG% -NoTruncate /DisableStartupDialogs

rem 3. Обработчики обновления в режиме Предприятия
%V8% ENTERPRISE %IB% %USR% /UC "upd2026" /C "ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы" /DisableStartupDialogs

Для файловой базы вместо /S "srv1c\buh" укажите /F "D:\Bases\Buh". Номер платформы в пути замените на свой. Пароль в открытом виде держите только в файле с правами для администратора, а лучше подставляйте из хранилища секретов.

/UpdateCfg применяет файл поставки к конфигурации на поддержке. Если доработки требуют ручного объединения, пакетный режим не подходит — обновляйте такую базу интерактивно.

Проверка лога на ошибки

Пакетный Конфигуратор не показывает окон, поэтому единственный источник правды — файл из /Out. Ключ -NoTruncate дописывает в файл, а не перезаписывает его.

findstr /I /C:"ошибка" /C:"error" %LOG% >nul
if %errorlevel%==0 (
  echo В логе есть ошибки, обновление остановлено
  exit /b 1
)

Проверяйте лог после каждого шага, а не в конце: если /UpdateCfg не прошёл, запускать обработчики обновления бессмысленно. Дополнительно смотрите журнал регистрации базы за время работ — там видны ошибки обработчиков обновления.

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

Обновление при старте контейнера

Если сервер 1С работает в Docker на Linux, обновление удобно встроить в скрипт запуска контейнера (entrypoint). Логика такая:

  1. Скопировать скрипт обновления и файл конфигурации в образ на этапе сборки (COPY в Dockerfile).
  2. При старте контейнера сравнить версию из файла-метки с версией в образе.
  3. Если версии отличаются — выполнить обновление, записать новую метку, затем запустить сервер .
  4. Если совпадают — сразу стартовать сервер.
#!/bin/bash
set -e
MARK=/var/lib/1c/applied_release
TARGET=$(cat /opt/upd/release.txt)

if [ "$(cat $MARK 2>/dev/null)" != "$TARGET" ]; then
  /opt/upd/update.sh >> /var/log/1c/update.log 2>&1
  echo "$TARGET" > "$MARK"
fi

exec /opt/1cv8/x86_64/current/ragent -port 1540

Внутри update.sh для конфигураций без поддержки удобна утилита ibcmd: она загружает полный .cf и применяет изменения структуры без графического Конфигуратора. Точные параметры для вашей версии платформы смотрите в ibcmd help infobase config. Путь к ragent и порт поправьте под свою сборку.

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

Метку храните на томе, а не внутри контейнера: иначе после пересоздания контейнер решит, что база не обновлялась.

6. Проверка базы после нового релиза

Сразу после обновления пройдите короткий сценарий. Он занимает 15–30 минут и ловит большинство проблем до того, как их найдут пользователи.

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

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

7. Откат релиза: когда возвращаться к старой версии

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

Откатить релиз установкой старого .cfu нельзя: файлы обновления работают только вперёд. Возврат — только через восстановление копии:

  • 💾 Бэкап СУБД — самый быстрый путь для большой базы. Восстанавливается средствами MS SQL или PostgreSQL.
  • 📦 Выгрузка .dt — Администрирование → Загрузить информационную базу в Конфигураторе или /RestoreIB в пакетном режиме.
  • 📁 Копия каталога — для файловой базы.

Не загружайте старый .cf поверх обновлённой базы. Обработчики уже переложили данные под новую структуру. Старая конфигурация на новых данных даст ошибки и потерю реквизитов.

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

8. Ошибки при развертывании релиза и что с ними делать

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

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

Частые вопросы по развертыванию релиза 1С

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