К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как сохранить изменения в конфигураторе 1С

Как сохранить изменения в конфигураторе 1С: обновление конфигурации базы данных, динамическое обновление, работа с расширениями, типичные ошибки и их решение.

Работа в конфигураторе 1С почти всегда завершается одним и тем же действием — сохранением внесённых изменений. Однако у этого действия есть два разных уровня: сохранение самой конфигурации (в памяти конфигуратора) и обновление конфигурации базы данных, после которого изменения становятся доступны пользователям. Путаница между этими уровнями — самая частая причина ситуации, когда разработчик «всё сделал», а в режиме Предприятия ничего не поменялось.

Материал подходит для типовых и самописных конфигураций на платформе 8.3: «Управление торговлей», «Бухгалтерия предприятия», «Зарплата и управление персоналом» и других. Принципы одинаковы для файловых и клиент-серверных баз, отличаются только требования к монопольному доступу и поведение динамического обновления.

Что именно сохраняется: конфигурация и конфигурация базы данных

В 1С существует несколько слоёв конфигурации. Конфигурация, которую вы редактируете в конфигураторе, — это рабочая версия разработчика. Конфигурация базы данных — та версия, с которой реально работают пользователи в режиме Предприятия. Пока вы не выполнили обновление, эти две версии могут отличаться, и это нормальное состояние в процессе разработки.

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

Как сохранить изменения: пошаговый порядок действий

Базовый сценарий выглядит одинаково независимо от того, добавляли вы реквизит в справочник, меняли модуль или создавали новый отчёт. Сначала сохраняется рабочая конфигурация, затем выполняется обновление конфигурации базы данных.

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

Если конфигурация находится на поддержке с запретом изменений, при попытке редактирования объект будет заблокирован. В этом случае сначала включите возможность изменения: «Конфигурация → Поддержка → Настройка поддержки → Включить возможность изменения». Учитывайте, что изменённые типовые объекты усложнят последующие обновления релизов.

При обновлении платформа может показать окно реструктуризации — список таблиц, которые будут изменены (например, при добавлении реквизита или изменении типа поля). Внимательно просмотрите этот список: реструктуризация больших таблиц на рабочей базе может занять продолжительное время.

Динамическое обновление: когда пользователи работают в базе

В файловом режиме обновление конфигурации базы данных требует монопольного доступа — все пользователи должны выйти. В клиент-серверном варианте платформа предложит динамическое обновление, если изменения не затрагивают структуру данных критичным образом: например, изменён только программный код модулей или макеты.

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

Маршрут решения

Как выбрать способ обновления

Изменились только модули, код, макеты — и база клиент-сервернаяИспользуйте динамическое обновление, пользователи перезайдут сами
Добавлены реквизиты, изменены типы, структура регистровЗавершите все сеансы и выполните обычное обновление с реструктуризацией
База файловая и в ней работают пользователиПопросите всех выйти или завершите сеансы, монопольный доступ обязателен
Изменения небольшие и не критичныеРассмотрите оформление их расширением конфигурации вместо правки основной

Обновление через расширение конфигурации

Если доработка небольшая — дополнительная печатная форма, обработчик, пара реквизитов, — часто безопаснее использовать расширение вместо изменения основной конфигурации. Расширения создаются через меню «Конфигурация → Расширения конфигурации» и сохраняются отдельно.

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

Резервная копия перед обновлением

Обновление конфигурации базы данных — обратимая операция только при наличии копии. Если реструктуризация прервётся на середине (отключение электричества, разрыв соединения с сервером), база может остаться в повреждённом состоянии, и восстановить её без копии будет крайне сложно.

Для файловой базы достаточно выгрузки через «Администрирование → Выгрузить информационную базу» в файл с расширением dt. Для клиент-серверной базы правильнее делать копию средствами СУБД (MS SQL, PostgreSQL), потому что выгрузка dt большой базы занимает много времени и не всегда применима на ходу.

Типичные ошибки и проблемы при сохранении

Чаще всего проблемы возникают не в момент нажатия F7, а из-за состояния базы или конфигурации. Разобраться в причине помогает текст сообщения платформы — он почти всегда указывает на конкретное препятствие.

Типичные ошибки
01
Сохранили конфигурацию (Ctrl+S), но забыли F7 — в режиме Предприятия изменений не видно
02
Попытка обновить базу при активных сеансах в файловом режиме — ошибка монопольного доступа
03
Редактирование типовых объектов без необходимости — сложности при обновлении релизов
04
Динамическое обновление при изменении структуры данных — ошибки у пользователей до перезахода
05
Прерывание реструктуризации кнопкой закрытия — риск повреждения базы

Если обновление завершилось, но в режиме Предприятия видна старая версия, проверьте три вещи: тот ли это информационный базовый узел (нет ли второй копии базы), перезапущен ли сеанс после динамического обновления, не применяется ли расширение, которое перекрывает ваши изменения.

Отдельная ситуация — ошибка «Конфигурация базы данных не соответствует сохранённой конфигурации» при запуске Предприятия. Она означает, что обновление не было завершено. Решение — снова зайти в конфигуратор и выполнить обновление конфигурации базы данных до конца.

Возьмите за правило: любая правка конфигурации завершается связкой Ctrl+S → F7 → проверка в режиме Предприятия. Если проверку пропустить, ошибки в коде обнаружат пользователи раньше вас.
ПЗ
Практическое замечание

Как проверить, что изменения применились

После обновления убедитесь, что результат соответствует ожиданиям. Минимальная проверка — открыть изменённый объект в режиме Предприятия и выполнить типовое действие: провести документ, сформировать отчёт, заполнить новый реквизит.

Контрольные точки

Как проверить результат

Пункт «Обновить конфигурацию базы данных»
Норма

Платформа сообщает, что обновление не требуется

Тревожный признак

Пункт активен и предлагает обновить — изменения не применены

Работа пользователей после обновления
Норма

Новые поля и формы видны, документы проводятся без ошибок

Тревожный признак

Ошибки при открытии форм, отсутствуют новые реквизиты

Список расширений конфигурации
Норма

Все нужные расширения активны

Тревожный признак

Расширение отключено из-за несовместимости

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

Частые вопросы

Чем отличается «Сохранить конфигурацию» от «Обновить конфигурацию базы данных»?

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

Почему платформа требует монопольный доступ при обновлении?

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

Можно ли отменить обновление конфигурации базы данных?

Штатной кнопки «отменить» нет. Откат возможен двумя способами: восстановить базу из резервной копии (dt или копия СУБД) либо загрузить ранее сохранённый файл конфигурации cf и обновить базу из него. Поэтому копия перед обновлением обязательна.

Что делать, если обновление зависло на реструктуризации?

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

Почему после динамического обновления пользователи видят старый код?

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

Итог

Что важно запомнить

Изменения в конфигураторе становятся доступны пользователям только после обновления конфигурации базы данных (F7). Перед обновлением делайте резервную копию, при работающих пользователях выбирайте динамическое обновление или завершайте сеансы, а небольшие доработки по возможности выносите в расширения.