Очистка данных в информационной базе 1С 8.3
Содержание
Бухгалтер жалуется, что база разрослась до десятков гигабайт и открывается всё медленнее, а в справочниках висят сотни ненужных контрагентов и номенклатуры. «Очистить базу 1С» звучит как одна кнопка, но за этим стоят три совершенно разные задачи, и способ очистки данных зависит от того, какая именно у вас.
Если нужно убрать отдельные объекты — пометьте их на удаление и запустите обработку Администрирование → Обслуживание → Удаление помеченных объектов. Если база распухла от старых документов, а остатки нужны — делают свёртку. Если требуется пустая база с той же конфигурацией — выгружают конфигурацию в файл .cf и загружают её в новую, чистую информационную базу. Разберём каждый сценарий по шагам, с путями меню и с тем, что нельзя делать в клиент-серверном варианте.
Какой способ очистки вам подходит
Прежде чем что-то удалять, определите цель. От неё зависит и метод, и степень риска.
.cf и загрузите её в новую информационную базу. Данных там не будет вообще, структура сохранится.Дальше каждый из этих способов разобран отдельно.
Перед очисткой: резервная копия и монопольный доступ
Первым делом сделайте резервную копию. Любая очистка необратима: восстановить удалённые документы можно только из бэкапа.
Для файловой базы бэкап делают в Конфигураторе: Администрирование → Выгрузить информационную базу — получите файл .dt. Можно также просто скопировать файл 1Cv8.1CD при закрытой базе. Для клиент-серверной базы используют выгрузку .dt через Конфигуратор или штатное резервное копирование
SQL-сервера.
Свёртка, загрузка конфигурации с изменением структуры и удаление помеченных объектов требуют, чтобы в базе никто не работал. Операции с монопольным доступом выполняйте, когда пользователи вышли из базы — иначе их сеансы оборвутся или операция не запустится. Удобнее всего делать это вечером или в выходной.
Если база большая, прикиньте время заранее: удаление помеченных объектов на базе с миллионами записей может идти несколько часов. Запускать его в разгар рабочего дня не стоит.
Удаление помеченных объектов — штатный способ
Это основной инструмент, когда нужно убрать из базы конкретные элементы: ошибочные документы, дубли контрагентов, лишнюю номенклатуру.
Удаление идёт в два этапа:
- Пометка на удаление. Выделите объект в списке и нажмите
Delили командуПометить на удалениев контекстном меню. Рядом с элементом появится значок с крестиком. Пометка ничего не удаляет — объект остаётся в базе и продолжает работать в проводках. - Собственно удаление. В режиме 1С:Предприятие откройте обработку. В типовой «Бухгалтерии предприятия 3.0» путь такой:
Администрирование → Обслуживание → Удаление помеченных объектов. Если команды нет в разделе, включите менюВсе функции(через главное меню программы) и там выберитеСтандартные → Удаление помеченных объектов.
Обработка предложит два режима:
- Автоматическое удаление — удаляет все помеченные объекты, по которым нет мешающих ссылок.
- Выборочное удаление — вы отмечаете галочками, что именно удалять. Удобно, когда часть помеченного нужно оставить.
Если на объект ссылаются другие данные (например, на контрагента ссылается проведённый документ), программа не удалит его и покажет список ссылок. Это защита от нарушения целостности. Нужно либо снять пометку, либо сначала разобраться со ссылающимися документами.
Чтобы не разбирать ссылки вручную по одной, в окне с результатом есть переход к каждой мешающей ссылке: открываете документ, меняете или удаляете значение, возвращаетесь и повторяете удаление.
Свёртка базы: убрать старые документы, оставить остатки
Свёртка нужна, когда база разрослась за годы работы, а документы за прошлые периоды уже не нужны — нужны только актуальные остатки.
Суть процедуры: на выбранную дату формируются документы ввода начальных остатков (по счетам, по складам, по взаиморасчётам), а документы и движения до этой даты удаляются. Итоги при этом сохраняются, отчётность за закрытые периоды — нет.
Общий порядок:
- Выбираете дату свёртки — обычно начало года или квартала, период по которому уже сдан и закрыт.
- Запускаете обработку свёртки информационной базы. В разных сборках она входит в состав конфигурации либо подключается как внешняя обработка — ищите её в разделе обслуживания или у обслуживающей организации.
- Обработка формирует документы ввода остатков на дату свёртки.
- Сверяете остатки до и после свёртки по оборотно-сальдовой ведомости — суммы должны совпасть копейка в копейку.
- Только убедившись в совпадении, удаляете старые документы (обработка делает это отдельным шагом).
Свёртка необратима и меняет всю историю базы. Делайте её только на копии сначала — проверьте, что остатки и ключевые отчёты сходятся, и лишь потом повторяйте на рабочей базе. Лучший вариант — поручить свёртку специалисту: ошибка здесь стоит восстановления из бэкапа.
После свёртки документы за прошлые периоды открыть уже нельзя, поэтому архивную копию «как было» храните отдельно и долго.
Полная очистка: пустая база с той же конфигурацией
Когда нужна абсолютно чистая база — без единого документа, но с вашей доработанной конфигурацией, — данные не «очищают», а переносят структуру в новую пустую базу.
Порядок действий:
- В Конфигураторе рабочей базы:
Конфигурация → Сохранить конфигурацию в файл— получите файл.cf. - В окне запуска 1С нажмите
Добавитьи создайте новую информационную базу →Создание новой информационной базы→без конфигурации(пустую). - Откройте новую базу в Конфигураторе и выполните
Конфигурация → Загрузить конфигурацию из файла, укажите ваш.cf. - Согласитесь с обновлением конфигурации базы данных.
На выходе — та же конфигурация и полностью пустые данные: ни документов, ни справочников, ни остатков.
Если часть данных всё-таки нужно перенести (например, справочники контрагентов и номенклатуры, но без документов), вместо загрузки .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, чтобы быстрее?
Как получить полностью пустую базу с моей конфигурацией?
.cf, создайте новую пустую информационную базу и загрузите в неё этот .cf. Данных не будет, структура сохранится.