Обновление конфигурации и структуры базы в 1С:Предприятие
Содержание
Под «обновлением метаданных» в 1С обычно понимают два разных действия. Первое — загрузить новую версию конфигурации (из файла обновления или дистрибутива). Второе — применить её к самой базе, то есть выполнить Обновить конфигурацию базы данных. Пока второго шага нет, программа работает на старой структуре таблиц.
Для типовой конфигурации на поддержке самый надёжный путь — обновление из файла .cfu или из дистрибутива через Конфигуратор. Для нетиповой — загрузка .cf и сравнение с объединением. Ниже оба сценария, подготовка, отличия файловой и серверной базы и разбор частых сбоев.
Что нужно сделать до обновления
Обновление меняет структуру таблиц и перестраивает данные. Откат средствами самой 1С возможен только из резервной копии, поэтому порядок такой.
- Узнайте текущую версию конфигурации:
Справка → О программе. Запишите её. - Проверьте, какая платформа нужна новому релизу. Требование к минимальной версии платформы указано в описании релиза. Если платформа ниже, сначала обновляют её.
- Выгрузите копию базы
. В Конфигураторе это
Администрирование → Выгрузить информационную базу(файл.dt). Для серверной базы надёжнее копия средствами СУБД. - Попросите пользователей выйти. Проверить, кто остался, можно в Конфигураторе:
Администрирование → Активные пользователи. - Откройте Конфигуратор под пользователем с правами администратора.
Копию делайте всегда, даже если обновление «мелкое». Без резервной копии неудачное обновление структуры превращается в восстановление из старого бэкапа.
Место на диске
Реструктуризация создаёт временные копии таблиц, поэтому свободного места нужно заметно больше размера самой базы. Как ориентир, держите свободным объём, сравнимый с размером базы, а лучше с запасом. Проверьте это отдельно для диска с базой, диска с журналом транзакций СУБД и временного каталога. Нехватка места посреди процесса — одна из самых неприятных причин сбоя: операция прервётся, а возвращаться придётся к копии.
Заодно проверьте права: у учётной записи, под которой работает сервер 1С, должен быть доступ на запись в каталоги базы и журналов.
Режимы запуска: где что делается
У одной базы есть два основных режима, и обновление живёт в обоих, но по-разному.
| Режим | Что там обновляют | Когда используют |
|---|---|---|
| Конфигуратор | Загрузку новой конфигурации, объединение, обновление конфигурации БД | Основной путь для администратора |
| 1С:Предприятие | Применение уже загруженной конфигурации к базе при запуске, запуск обработчиков обновления | Завершающий шаг после Конфигуратора |
Разработчик сохраняет изменения в конфигурации, а база применяет их отдельной командой. Это и есть два шага из первого абзаца.
Стандартная процедура через Конфигуратор
Здесь описан сценарий для конфигурации на поддержке, которую обновляют из файла или каталога шаблонов.
Шаг 1. Откройте конфигурацию
Запустите базу в режиме Конфигуратора. Откройте конфигурацию: Конфигурация → Открыть конфигурацию. Если пункт «Закрыть конфигурацию» активен, значит, она уже открыта.
Шаг 2. Запустите мастер обновления
Выберите Конфигурация → Поддержка → Обновить конфигурацию. Мастер предложит выбрать источник:
- поиск обновлений в каталоге шаблонов (подходит, если релиз установлен из дистрибутива);
- выбор файла обновления
.cfuили полной поставки.cf; - загрузка через интернет -поддержку, если она настроена.
Для конфигурации, которая ушла далеко от типовой, полезнее обновлять через файл конкретной версии, чтобы контролировать, откуда она взялась.
Шаг 3. Разберите конфликты
Если вы меняли типовые объекты, мастер покажет окно сравнения. Для каждого изменённого объекта выбирают: принять версию поставщика, оставить свою или объединить. Объекты, которые вы не трогали, обновятся без вопросов.
Что делать с доработками:
- свои реквизиты и справочники оставляйте как есть;
- если доработана типовая форма или модуль, смотрите, что именно изменил поставщик. Часто достаточно принять новую версию, а свою правку внести заново;
- не принимайте всё подряд кнопкой «по умолчанию», не посмотрев список отличий.
Шаг 4. Сохраните и обновите базу
Когда конфигурация загружена, нажмите F7 или кнопку Обновить конфигурацию базы данных. Появится окно «Реструктуризация информации» с описанием изменений. Подтвердите. Процесс может занять от нескольких секунд до десятков минут, в зависимости от размера таблиц.
Не закрывайте Конфигуратор, пока идёт реструктуризация.
Пошагово это выглядит так:
- Загрузили конфигурацию.
- Проверили список изменений.
- Нажали
Обновить конфигурацию базы данных. - Дождались закрытия окна без ошибок.
- Закрыли Конфигуратор и открыли базу в 1С:Предприятие.
Если нужно применить только свои правки без новой поставки, шаги 1–3 пропускают. Вы сохранили изменения в конфигурации и сразу жмёте F7.
Файловая и клиент-серверная база
Логика одна, отличается доступ к базе во время обновления.
| Файловая | Клиент-серверная | |
|---|---|---|
| Монопольный доступ | Нужен для обновления структуры | Нужен для обновления структуры, но возможна работа пользователей при фоновом обновлении |
| Откат | Копия каталога с 1Cv8.1CD | Копия средствами СУБД и выгрузка .dt |
| Кто мешает | Любой пользователь за рабочим местом | Пользователи, а также рабочие процессы и фоновые задания |
Файловая база
Остановите все сеансы. Если кто-то забыл закрыть 1С, Конфигуратор при реструктуризации сообщит, что нужен монопольный доступ. Копию файловой базы делайте простым копированием каталога, когда никто не работает : пока база открыта, копия может получиться неконсистентной.
Клиент-серверная база
В серверном варианте можно дождаться ночи и завершить сеансы вручную. Есть и фоновое обновление: структура обновляется, пока пользователи продолжают работу, а потом база переключается. Подробности зависят от версии платформы и характера изменений, поэтому на рабочей базе его сначала проверяют на копии.
Перед завершением сеансов предупредите людей: обрыв сеанса прервёт несохранённые документы. Лучший момент для завершения — вне рабочего времени.
Обновление при запуске 1С:Предприятие
После загрузки новой конфигурации, но без обновления конфигурации БД, при входе пользователя с правами администратора платформа сообщит, что конфигурация базы не соответствует сохранённой. Появится предложение обновить базу . Если согласиться, платформа сама выполнит реструктуризацию.
Это допустимо для небольших изменений. Для больших баз и серьёзных релизов обновляйте через Конфигуратор: там видно ход процесса, а при ошибке остаётся окно с описанием.
После запуска типовые конфигурации выполняют обработчики обновления: заполняют новые реквизиты, переносят данные, перестраивают регистры. Это отдельный этап, и он идёт уже внутри программы.
- Обычные пользователи не смогут войти, пока не закончится основной этап.
- Часть работы выполняется отложенно, уже во время работы пользователей. В больших базах это может идти днями.
- Если начать закрывать окно или перезапускать сервер посреди обработки, получите лишние хлопоты. Дайте процессу завершиться.
Запуск из командной строки
Для регулярных обновлений удобно запускать из командной строки или через планировщик.
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N Администратор /P пароль /UpdateDBCfg /Out "D:\Logs\update.log"
Здесь /F — путь к файловой базе (для серверной вместо него /S сервер\имя_базы), /UpdateDBCfg применяет конфигурацию к базе, /Out пишет результат в журнал. Версию платформы в пути подставьте свою. Пароль в командной строке виден в списке процессов, так что для автоматизации заведите отдельного пользователя с минимальными правами.
Если нужно сначала загрузить файл обновления, используют параметр /UpdateCfg с путём к .cfu, а затем /UpdateDBCfg. Полный список параметров смотрите в справке к платформе по командной строке запуска.
Ошибки при обновлении
Ниже — случаи, которые встречаются чаще всего. Решения идут от безопасного к радикальному.
Нужен монопольный доступ
Симптом: Конфигуратор сообщает, что нельзя выполнить операцию, пока базой пользуются другие. Причина — открытые сеансы, иногда «зависшие» после обрыва связи.
Что делать:
- Откройте
Администрирование → Активные пользователии завершите сеансы. - Для серверной базы проверьте, не держит ли соединение консоль кластера или внешняя обработка.
- Если сеанс не завершается, перезапуск службы сервера оборвёт всех пользователей. Делайте это только вне рабочего времени и предупредив людей.
Файл обновления не подходит
Файл .cfu рассчитан на конкретную исходную версию. Если у вас версия ниже или выше, мастер откажется его применять. Решение: определите свою версию в Справка → О программе, найдите в описании релиза цепочку промежуточных обновлений и применяйте по порядку. Либо возьмите полную поставку .cf, если она есть.
Не принимаются изменения поддержки
Если конфигурация снята с поддержки или стоит запрет изменений, мастер не даст изменить объект. Откройте Конфигурация → Поддержка → Настройка поддержки и проверьте правила для нужных объектов. Снимать поддержку целиком ради одного обновления не стоит: потом типовые обновления придётся вести вручную.
Ошибка во время реструктуризации
Типичные причины: нехватка места на диске или в хранилище СУБД, обрыв соединения, потеря связи по сети. Сначала проверьте место и журнал. Если процесс прервался на середине, не запускайте всё заново наугад. Проверьте состояние базы, а если она не открывается, восстанавливайте её из копии, сделанной перед началом.
Не удаляйте файлы блокировок и служебные таблицы вручную. Это приводит к повреждению данных, которое потом не исправить.
Платформа слишком старая
Новый релиз конфигурации может не запуститься на старой платформе. Номер платформы смотрят в Справка → О программе. Если он ниже минимально допустимого в описании релиза, платформу сначала обновляют на всех компьютерах пользователей и на сервере.
Сначала на копии: как отрепетировать обновление
На рабочую базу релиз накатывают после пробного прогона. Это занимает час-два и снимает большую часть неприятных сюрпризов.
- Разверните копию: загрузите
.dtв новую пустую базу или скопируйте каталог файловой базы. - Отключите в копии обмены, рассылки и регламентные задания, иначе она начнёт отправлять письма и документы наружу.
- Выполните обновление по шагам выше и засеките время реструктуризации. Это ваш ориентир для окна работ на боевой базе.
- Проверьте сценарии, которыми живёт организация: проведение закупок и продаж, закрытие месяца , выгрузку отчётности, печать основных форм.
- Если у вас есть доработки, пройдитесь по ним отдельно. Именно там чаще всего всплывают конфликты.
Время реструктуризации зависит от размера таблиц и диска. База на десятки гигабайт на обычных жёстких дисках может обновляться заметно дольше, чем та же база на SSD.
Расширения конфигурации
Если доработки вынесены в расширения (они появились в 8.3.6), основная конфигурация обновляется без конфликтов с вашим кодом. Но после её обновления расширения нужно проверить: подключённые к изменённым объектам могут перестать работать. Расширение загружается отдельно, затем выполняется Обновить конфигурацию базы данных для всей базы. Проверьте в списке расширений, что они активны и не помечены как неработоспособные.
Несколько связанных баз
Для нескольких одинаковых баз (филиалы, распределённые узлы) порядок важен. Сначала обновляют главный узел, потом периферийные. Версии конфигураций в обменивающихся базах не должны надолго расходиться: обмен может остановиться с ошибкой несовпадения версий. Окно для обновления согласуйте с теми, кто работает в каждой базе.
Что сделать после обновления
Базу открыли, ошибок нет. Это ещё не конец.
- Зайдите под администратором и дождитесь окончания обработчиков обновления. Не торопите пользователей.
- Проверьте ключевое: откройте несколько типовых отчётов, проведите тестовый документ в копии, сверьте остатки с данными до обновления.
- Запустите
Администрирование → Тестирование и исправление информационной базыв Конфигураторе. Для большой базы запускайте вне рабочего времени. - Для серверной базы обновите статистику и выполните обслуживание средствами СУБД по регламенту.
- Проверьте обмены с другими базами и сервисами: часто после обновления меняется формат правил.
- Подготовьте пользователям описание новых функций из релиза.
Копию «до обновления» держите хотя бы пару недель. Если ошибка проявится позже, у вас будет точка сравнения.