ConfigSave в 1С: как сбросить сохранённую конфигурацию и не потерять доработки

· 9 мин

Содержание

Очистить ConfigSave в 1С 8.3 проще всего штатно: в Конфигураторе выберите Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. Платформа перезапишет сохранённую (основную) конфигурацию конфигурацией базы данных, и таблица ConfigSave станет пустой. Без интерфейса то же делает пакетная команда /RollbackCfg, а прямой SQL к таблице нужен только для серверной базы, где Конфигуратор не открывается.

Какой способ выбрать: Конфигуратор открывается — меню. Нужно сделать на десятке баз или по расписанию — /RollbackCfg. Конфигуратор падает при открытии конфигурации — СУБД. Если же под «кэшем ConfigSave» вы имели в виду тормоза и глюки интерфейса у пользователя, вам нужна очистка локального кэша в профиле Windows. Она описана отдельным разделом.

Что лежит в ConfigSave и когда его стоит очищать

В каждой информационной базе 1С 8.3 есть две копии конфигурации:

  • 🗄️ Config — конфигурация базы данных. С ней работают пользователи в режиме 1С:Предприятие.
  • ✏️ ConfigSave — основная конфигурация, которую правят в Конфигураторе. Сюда попадает всё, что сохранили кнопкой «Сохранить», но ещё не применили командой «Обновить конфигурацию базы данных» (F7).

В файловой базе обе таблицы лежат внутри файла 1Cv8.1CD. В клиент-серверной это обычные таблицы в СУБД: ConfigSave в MS SQL, configsave в PostgreSQL.

Пока изменений нет, ConfigSave пуста. Как только применили изменения к базе данных, платформа переносит их в Config и очищает ConfigSave.

Когда очистка действительно нужна

  • 🔁 Обновление конфигурации прервалось, в основной конфигурации осталась полуприменённая каша, а начать нужно с чистого листа.
  • ⚠️ При входе пользователи видят окно Конфигурация базы данных не соответствует сохраненной конфигурации. Продолжить?, а применять чужие сохранённые изменения никто не собирается.
  • 💥 Конфигуратор зависает или падает при открытии дерева конфигурации, хотя пользователи работают нормально. Повреждена именно сохранённая копия.
  • 📦 Файл базы распух после неудачного обновления: в ConfigSave осталась полная копия конфигурации на сотни мегабайт.

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

Способ 1. Сбросить сохранённую конфигурацию через меню Конфигуратора

Это основной способ. Он работает и для файловой, и для серверной базы, и платформа сама следит за целостностью.

Сначала сохраните то, что может пригодиться

Возврат к конфигурации БД необратим: всё, что было в ConfigSave, исчезнет. Если там лежат чьи-то доработки, сначала выгрузите их:

  1. Откройте базу в Конфигураторе под пользователем с правами администратора.
  2. Выберите Конфигурация → Сохранить конфигурацию в файл.
  3. Укажите имя, например before_rollback_07-10.cf, и дождитесь окончания выгрузки.

Этот .cf потом можно сравнить с конфигурацией БД и перенести нужные объекты через «Сравнить, объединить».

Сам сброс

  1. Закройте все остальные Конфигураторы этой базы, в том числе у коллег.
  2. Выберите Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД.
  3. Подтвердите вопрос платформы.
  4. Дождитесь, пока дерево конфигурации перечитается.

После этого основная конфигурация совпадает с конфигурацией базы данных, а ConfigSave пуста. Сеансы пользователей при этом не обрываются: конфигурация БД не меняется.

Вернуть место на диске в файловой базе

Сброс не уменьшает файл 1Cv8.1CD. Освободившиеся страницы остаются внутри файла. Чтобы вернуть место:

  1. Выгоните пользователей: тестированию нужен монопольный доступ.
  2. В Конфигураторе выберите Администрирование → Тестирование и исправление.
  3. Отметьте «Сжатие таблиц информационной базы», остальные флажки можно снять.
  4. Нажмите «Выполнить».

Сжатие на базе в несколько гигабайт занимает от минут до часа. Запускайте его вне рабочего времени и после свежей резервной копии.

Способ 2. Очистка ConfigSave командой /RollbackCfg

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

Сначала выгрузка основной конфигурации в файл (/DumpCfg), затем возврат к конфигурации БД (/RollbackCfg). Делайте это двумя отдельными запусками: так проще разобраться по логу, на каком шаге возникла ошибка.

@echo off
set V8="C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe"
set BASE=/F"D:\Bases\Buh"
rem для серверной базы: set BASE=/S"srv1c\buh"

%V8% DESIGNER %BASE% /N"Администратор" /P"пароль" /DisableStartupDialogs /DumpCfg "D:\Backup\buh_before_rollback.cf" /Out "D:\Backup\dump.log"
if errorlevel 1 goto err

%V8% DESIGNER %BASE% /N"Администратор" /P"пароль" /DisableStartupDialogs /RollbackCfg /Out "D:\Backup\rollback.log"
if errorlevel 1 goto err

echo Готово
goto end
:err
echo Ошибка, смотрите логи в D:\Backup
:end

Что подставить:

  • 8.3.xx.xxxx — каталог вашей версии платформы. Посмотрите его в C:\Program Files\1cv8\.
  • /F — путь к каталогу файловой базы, /S — сервер\имя_базы для клиент-серверной.
  • /N и /P — пользователь с правом «Администрирование». Если в базе нет пользователей, ключи можно убрать.

Пароль в открытом виде в .bat — плохая идея для постоянного скрипта. Для разовой операции запустите файл и сразу удалите его.

Если Конфигуратор в пакетном режиме молча завершился, а лог пуст, проверьте путь к 1cv8.exe и кавычки вокруг путей с пробелами. Это самая частая причина.

Способ 3. Очистить таблицу ConfigSave в СУБД

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

Перед любой правкой таблиц сделайте полную резервную копию базы средствами СУБД и проверьте, что она восстанавливается.

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

  1. Закройте все Конфигураторы этой базы. Пользователей в режиме 1С:Предприятие выгонять не обязательно: таблицу Config мы не трогаем.
  2. Сделайте полную резервную копию базы средствами СУБД.
  3. Посмотрите, сколько записей в таблице.
  4. Удалите записи.
  5. Откройте Конфигуратор и убедитесь, что дерево конфигурации совпадает с конфигурацией БД.

MS SQL Server:

USE [buh];
BACKUP DATABASE [buh] TO DISK = N'D:\Backup\buh_before_configsave.bak' WITH INIT, COMPRESSION;

SELECT COUNT(*) AS rows_in_configsave FROM dbo.ConfigSave;

DELETE FROM dbo.ConfigSave;

PostgreSQL (имена таблиц 1С здесь в нижнем регистре):

-- резервная копия заранее: pg_dump -Fc -f buh_before_configsave.dump buh
SELECT COUNT(*) FROM configsave;

DELETE FROM configsave;

В новых версиях платформы рядом с ConfigSave могут быть таблицы ConfigCAS и ConfigCASSave. Если ConfigCASSave есть и в ней есть записи, часть сохранённой конфигурации может лежать там. Ручная очистка одной ConfigSave тогда рискованна: лучше добиться работы /RollbackCfg, например на свежей версии платформы.

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

Если под ConfigSave имели в виду кэш: очистка папок в профиле Windows

Часто «очистить кэш ConfigSave» просят, когда у пользователя после обновления криво отображаются формы, не появляются новые команды или программа запускается долго. ConfigSave тут ни при чём. Виноват локальный кэш клиента, который лежит в профиле Windows.

Ключ /ClearCache: без Проводника

  1. В окне запуска 1С выделите базу и нажмите «Изменить».
  2. Пройдите до последней страницы мастера.
  3. В поле «Дополнительные параметры запуска» впишите /ClearCache.
  4. Запустите базу один раз, затем уберите ключ, иначе кэш будет сбрасываться при каждом входе и запуск станет медленнее.

Ручное удаление через Проводник

  1. Закройте 1С полностью. В диспетчере задач не должно остаться процессов 1cv8.exe, 1cv8c.exe, 1cv8s.exe.
  2. Нажмите Win + R, введите %APPDATA%\1C\1cv8 и нажмите Enter.
  3. Удалите папки с именами-идентификаторами вида 3f2a9c1e-…. Каждая соответствует одной базе.
  4. Повторите то же для %LOCALAPPDATA%\1C\1cv8.
  5. Запустите 1С. Первый вход будет дольше обычного: кэш собирается заново.

Что не удалять:

ЧтоГдеПочему не трогать
ibases.v8i%APPDATA%\1C\1CEStartЭто список баз в окне запуска. Удалите — список опустеет
Каталог файловой базы с 1Cv8.1CDТам, где лежит базаЭто сами данные, а не кэш
Каталог 1cv8 целиком%APPDATA%\1CПропадут и кэши, и локальные настройки всех баз сразу

Чтобы понять, какая папка-идентификатор относится к нужной базе, откройте ibases.v8i Блокнотом. У каждой базы там есть строка ID=…, она совпадает с именем папки кэша.

На терминальном сервере кэш свой у каждого пользователя: C:\Users\<логин>\AppData\…. Удалять папки чужих профилей можно только под администратором и только когда этот пользователь вышел из сеанса.

Права и блокировки: почему очистка не проходит

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

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

Как не копить мусор в сохранённой конфигурации

  • 📝 Правили — применяйте или откатывайте сразу. Сохранённые, но не применённые изменения через месяц уже никто не вспомнит.
  • 🧪 Доработки делайте в копии. Разработку ведите в отдельной базе, а в рабочую переносите готовый .cf или расширение.
  • 💾 Перед обновлением — резервная копия базы. Если обновление сорвётся, проще восстановить базу, чем разбираться с половинчатой ConfigSave.
  • 🖥️ Обновление — на стабильной связи. Обновление серверной базы по VPN с ноутбука рвётся чаще, чем запуск прямо на сервере.
  • 🧹 Кэш клиента — по симптомам. Регулярно чистить кэш у всех пользователей не нужно. /ClearCache используйте, когда после обновления у конкретного человека что-то отображается не так.

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

Пропадут ли данные пользователей после очистки ConfigSave?
Нет. В ConfigSave хранится только описание конфигурации, документы и справочники лежат в других таблицах. Теряются лишь неприменённые правки в Конфигураторе.
Можно ли очистить ConfigSave, пока пользователи работают в базе?
Да, для возврата к конфигурации БД монопольный режим не нужен. Нужно только, чтобы в базе не было другого открытого Конфигуратора.
Как вернуть удалённые правки, если сбросил ConfigSave по ошибке?
Только из сохранённого заранее .cf или из резервной копии базы. Через «Сравнить, объединить» перенесите из файла нужные объекты в основную конфигурацию.
Почему файл 1Cv8.1CD не уменьшился после очистки?
Файловая база не отдаёт освободившиеся страницы сама. Место возвращает тестирование и исправление с флажком «Сжатие таблиц информационной базы».
Нужно ли чистить ConfigSave после каждого обновления?
Нет. После успешного применения изменений к базе данных платформа очищает таблицу сама. Ручная очистка нужна только после сбоев.