Очистка данных в информационной базе 1С 8.3

· 9 мин

Содержание

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

Если нужно убрать отдельные объекты — пометьте их на удаление и запустите обработку Администрирование → Обслуживание → Удаление помеченных объектов. Если база распухла от старых документов, а остатки нужны — делают свёртку. Если требуется пустая база с той же конфигурацией — выгружают конфигурацию в файл .cf и загружают её в новую, чистую информационную базу. Разберём каждый сценарий по шагам, с путями меню и с тем, что нельзя делать в клиент-серверном варианте.

Какой способ очистки вам подходит

Прежде чем что-то удалять, определите цель. От неё зависит и метод, и степень риска.

Что именно нужно очистить в базе 1С?

Дальше каждый из этих способов разобран отдельно.

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

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

Для файловой базы бэкап делают в Конфигураторе: Администрирование → Выгрузить информационную базу — получите файл .dt. Можно также просто скопировать файл 1Cv8.1CD при закрытой базе. Для клиент-серверной базы используют выгрузку .dt через Конфигуратор или штатное резервное копирование SQL-сервера.

Подготовка к очистке базы
Выполнено: 0 / 5

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

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

Удаление помеченных объектов — штатный способ

Это основной инструмент, когда нужно убрать из базы конкретные элементы: ошибочные документы, дубли контрагентов, лишнюю номенклатуру.

Удаление идёт в два этапа:

  1. Пометка на удаление. Выделите объект в списке и нажмите Del или команду Пометить на удаление в контекстном меню. Рядом с элементом появится значок с крестиком. Пометка ничего не удаляет — объект остаётся в базе и продолжает работать в проводках.
  2. Собственно удаление. В режиме 1С:Предприятие откройте обработку. В типовой «Бухгалтерии предприятия 3.0» путь такой: Администрирование → Обслуживание → Удаление помеченных объектов. Если команды нет в разделе, включите меню Все функции (через главное меню программы) и там выберите Стандартные → Удаление помеченных объектов.

Обработка предложит два режима:

  • Автоматическое удаление — удаляет все помеченные объекты, по которым нет мешающих ссылок.
  • Выборочное удаление — вы отмечаете галочками, что именно удалять. Удобно, когда часть помеченного нужно оставить.

Если на объект ссылаются другие данные (например, на контрагента ссылается проведённый документ), программа не удалит его и покажет список ссылок. Это защита от нарушения целостности. Нужно либо снять пометку, либо сначала разобраться со ссылающимися документами.

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

Свёртка базы: убрать старые документы, оставить остатки

Свёртка нужна, когда база разрослась за годы работы, а документы за прошлые периоды уже не нужны — нужны только актуальные остатки.

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

Общий порядок:

  1. Выбираете дату свёртки — обычно начало года или квартала, период по которому уже сдан и закрыт.
  2. Запускаете обработку свёртки информационной базы. В разных сборках она входит в состав конфигурации либо подключается как внешняя обработка — ищите её в разделе обслуживания или у обслуживающей организации.
  3. Обработка формирует документы ввода остатков на дату свёртки.
  4. Сверяете остатки до и после свёртки по оборотно-сальдовой ведомости — суммы должны совпасть копейка в копейку.
  5. Только убедившись в совпадении, удаляете старые документы (обработка делает это отдельным шагом).

Свёртка необратима и меняет всю историю базы. Делайте её только на копии сначала — проверьте, что остатки и ключевые отчёты сходятся, и лишь потом повторяйте на рабочей базе. Лучший вариант — поручить свёртку специалисту: ошибка здесь стоит восстановления из бэкапа.

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

Полная очистка: пустая база с той же конфигурацией

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

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

  1. В Конфигураторе рабочей базы: Конфигурация → Сохранить конфигурацию в файл — получите файл .cf.
  2. В окне запуска 1С нажмите Добавить и создайте новую информационную базу → Создание новой информационной базы → без конфигурации (пустую).
  3. Откройте новую базу в Конфигураторе и выполните Конфигурация → Загрузить конфигурацию из файла, укажите ваш .cf.
  4. Согласитесь с обновлением конфигурации базы данных.

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

Если часть данных всё-таки нужно перенести (например, справочники контрагентов и номенклатуры, но без документов), вместо загрузки .cf используйте обмен через планы обмена или выгрузку-загрузку данных XML типовой обработкой. Так вы перенесёте выборочно нужное, а историю документов оставите.

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

Пакетный режим в файловой базе

Когда очистку нужно автоматизировать (например, регулярно готовить пустую базу для тестов), помогает запуск платформы в пакетном режиме из командной строки. Исполняемый файл — 1cv8 (в каталоге bin платформы).

Выгрузка файловой базы в .dt без открытия Конфигуратора вручную:

"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /F"C:\Bases\Buh" /DumpIB "C:\Backup\buh.dt"

Загрузка .dt обратно (перезапишет данные):

"...\1cv8.exe" DESIGNER /F"C:\Bases\Buh" /RestoreIB "C:\Backup\buh.dt"

Запуск внешней обработки очистки в режиме предприятия:

"...\1cv8.exe" ENTERPRISE /F"C:\Bases\Buh" /N"Администратор" /P"пароль" /Execute "C:\Обработки\Очистка.epf" /DisableStartupMessages

Здесь /F — путь к файловой базе, /N и /P — пользователь и пароль, /Execute — обработка, которую нужно выполнить при старте.

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

Для создания и выгрузки баз есть и отдельная утилита ibcmd (работает и с файловыми, и с серверными базами) — её подкоманды тоже смотрите в справке самой утилиты, а не по памяти.

Клиент-серверная база: почему нельзя чистить напрямую в SQL

Частый соблазн администратора: база на SQL Server или PostgreSQL огромная — не удалить ли лишнее прямо запросом DELETE в таблицах СУБД?

Не делайте этого ни при каких условиях. 1С хранит данные в собственной схеме таблиц с нечитаемыми именами, с внутренними ссылками, итогами регистров и служебными полями. Прямое удаление строк в SQL:

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

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

Чтобы получить пустую серверную базу , в консоли администрирования кластера создают новую информационную базу на сервере, затем через Конфигуратор загружают в неё .cf. Выгрузку и загрузку .dt для серверной базы тоже делают через Конфигуратор (/S"сервер\база" в пакетном режиме) — результат корректен, в отличие от ручных операций в СУБД.

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

Чистка журнала регистрации и кэша

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

Журнал регистрации. В платформе 8.3 он хранится в файле формата SQLite (1Cv8.lgd) в каталоге базы. Сократить его можно в Конфигураторе: Администрирование → Настройка журнала регистрации. Там задают срок хранения записей и кнопкой сокращения удаляют события старше указанной даты. Можно настроить, какие события вообще записывать — чтобы журнал не рос так быстро.

Технологический журнал. Это отдельный механизм диагностики, он включается файлом logcfg.xml в каталоге conf платформы и пишет логи в указанный в нём каталог. Если техжурнал когда-то включали для разбора проблемы и забыли выключить, он мог занять много места. Чистят его удалением файлов из каталога логов; чтобы он не писался дальше — правят или убирают logcfg.xml.

Кэш клиента. При сбоях и «подвисаниях» помогает чистка каталога кэша в профиле пользователя (подкаталоги в %LOCALAPPDATA%\1C\1cv8\). Это не данные базы — кэш пересоздаётся при следующем запуске.

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

Частые ошибки при очистке базы

  • ❌ Удалили без бэкапа. Самая дорогая ошибка. Пометка на удаление обратима, а вот запуск обработки удаления и свёртка — уже нет. Копия должна быть всегда.
  • ❌ Путают пометку и удаление. Объект с крестиком не удалён — он лежит в базе, пока не запущена обработка удаления помеченных. Если ждёте уменьшения размера базы сразу после пометки — его не будет.
  • ❌ Не проверили остатки после свёртки. Сверяйте оборотно-сальдовую ведомость до и после: расхождение означает, что документы ввода остатков сформировались неверно, и работать с такой базой нельзя.
  • ❌ Чистят таблицы прямо в SQL. Разовая «экономия времени» превращается в нерабочую базу и восстановление из бэкапа.
  • ❌ Запустили очистку при работающих пользователях. Операции с монопольным доступом прервут чужие сеансы или не стартуют вовсе. Выбирайте время, когда в базе никого нет.

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

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