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

Но очистка конфигурации — это не просто удаление ненужных файлов. Здесь важно понимать разницу между физическим удалением объектов (что может сломать ссылки) и логической чисткой с сохранением целостности данных. Например, удаление неиспользуемого реквизита из справочника требует проверки всех форм, отчетов и обработок, где он мог упоминаться. В этой статье мы разберёмся, как провести очистку грамотно: от ручных методов до автоматизированных скриптов, с учётом особенностей разных версий платформы (8.3.20+).

1. Подготовка к очистке: резервное копирование и анализ

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

  • 📁 Файловый бэкап — копия каталога базы (для файлового варианта работы). Важно: остановите все сеансы пользователей!
  • 🔄 Выгрузка/загрузка через Конфигуратор → Администрирование → Выгрузить информационную базу (с флагом "Выгружать данные").
  • 🛡️ Снимок конфигурации — сохранение текущей версии в .cf-файл (для отката изменений).

После бэкапа проведите аудит конфигурации. Встроенные инструменты помогут выявить проблемные зоны:

  • 🔍 Проверка целостности (Конфигуратор → Администрирование → Тестирование и исправление). Ищите ошибки типа "Не найден объект метаданных".
  • 📊 Анализ использования объектов — скрипт на встроенном языке для поиска неиспользуемых справочников, документов или реквизитов.
📊 Как часто вы чистите конфигурацию 1С?
Раз в год
Перед major-обновлением
Только при критических ошибках
Никогда не чистил
⚠️ Внимание: Если база работает в клиент-серверном варианте, бэкап должен включать и серверные настройки (например, список пользователей и ролей в SQL Server или PostgreSQL). Без этого восстановление может привести к проблемам с доступом.

2. Ручное удаление мусора: что можно трогать, а что — нет

Не все объекты в конфигурации одинаково безопасно удалять. Например, устаревшие обработки в каталоге ExtForms можно смело чистить, а вот удаление реквизита из справочника "Номенклатура" может сломать печатные формы документов. Вот что обычно подлежит очистке:

Тип объектаМожно удалять?РискиКак проверить
Закомментированный код в модуляхДаПотеря "исторических" комментариевПоиск по // или / / в Конфигураторе
Неиспользуемые справочникиУсловноСсылки в отчётах или внешних обработкахЗапрос к Метаданные.Справочники с проверкой ссылок
Дубликаты ролейДаПотеря прав доступаСравнение прав в Конфигуратор → Администрирование → Пользователи
Временные таблицы в модуляхДаОшибки в отчётахПоиск по ВременныеТаблицы. в коде

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

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Метаданные.Справочники.Имя КАК Имя,

| КОЛИЧЕСТВО(*) КАК Количество

|ИЗ

| Метаданные.Справочники КАК Метаданные

|ГДЕ

| НЕ Метаданные.ПометкаУдаления

|

|СГРУППИРОВАТЬ ПО

| Метаданные.Справочники.Имя

|

|ИМЕЮЩИЕ

| КОЛИЧЕСТВО(*) > 1";

Результат = Запрос.Выполнить();

Проверить ссылки на объект в отчётах и обработках|

Создать тестовую копию базы для проверки|

Удалить объект в режиме "Пометка на удаление" (не физически!)|

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

⚠️ Внимание: Если в базе используются расширения конфигурации (например, для 1С:Бухгалтерии 3.0), удаление объектов из основной конфигурации может привести к конфликтам при обновлении. Проверьте зависимость через Конфигуратор → Открыть расширение.

3. Автоматизированные инструменты для чистки

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

  • 🛠️ 1С:Анализ кода — встроенный инструмент в Конфигураторе (меню Сервис → Анализ кода). Ищет неиспользуемые переменные, дублирующийся код и потенциальные ошибки.
  • 🧹 Vanessa Automation — фреймворк для тестирования и очистки конфигураций. Поддерживает скрипты на JavaScript для массового удаления мусора.
  • 🔄 Скрипты на встроенном языке — например, для поиска и удаления пустых справочников:
    Процедура УдалитьПустыеСправочники()
    

    Для Каждого Спр Из Метаданные.Справочники Цикл

    Если НЕ Спр.ПометкаУдаления И Спр.Пустой() Тогда

    Спр.УстановитьПометкуУдаления(Истина);

    КонецЕсли;

    КонецЦикла;

    КонецПроцедуры

Для управляемых форм полезен инструмент "Поиск и замена в файлах" (Конфигуратор → Файл → Поиск в файлах). Он помогает найти все упоминания удаляемого объекта, включая:

  • 📄 Шаблоны печатных форм (файлы .mxl или .xlsx)
  • 🖼️ Картинки и ресурсы в формах
  • 🔗 Внешние ссылки в HTTPСервисы или WSСсылки
💡

Перед массовым удалением объектов экспортируйте их список в .txt-файл через запрос к метаданным. Это поможет отменить изменения, если что-то пойдёт не так.

4. Очистка данных: удаление устаревших записей

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

  • 🗑️ Пометка на удаление — самый безопасный способ. Записи остаются в базе, но не участвуют в расчётах. Удалить физически их можно позже через Администрирование → Удаление помеченных объектов.
  • 📅 Архивация старых данных — перенос документов старше 3–5 лет в отдельную базу. Для этого подойдёт обработка "Выгрузка данных в XML".
  • 🔍 Поиск дублей — например, по ИНН в справочнике "Контрагенты":
    ВЫБРАТЬ
    

    Контрагенты.Ссылка КАК Ссылка,

    КОЛИЧЕСТВО(*) КАК Количество

    ИЗ

    Справочник.Контрагенты КАК Контрагенты

    ГДЕ

    НЕ Контрагенты.ПометкаУдаления

    СГРУППИРОВАТЬ ПО

    Контрагенты.ИНН

    ИМЕЮЩИЕ

    КОЛИЧЕСТВО(*) > 1

Для регламентированных отчётов (например, бухгалтерских) очистка данных имеет нюансы:

  • 📋 Налоговые периоды — удалять документы закрытых периодов нельзя (риск проблем с ФНС).
  • 💰 Взаиморасчёты — даже устаревшие счета нужно архивировать, а не удалять.
Что будет если физически удалить документ с проводками?

При физическом удалении документа (например, "Поступление товаров") не пересчитывает остатки автоматически. Это приведёт к расхождению данных в отчётах типа "Оборотно-сальдовая ведомость". Чтобы избежать ошибок, используйте пометку на удаление или специальные обработки для корректировки остатков, например, "Перенос остатков в новую базу".

5. Оптимизация после очистки: сжатие и переиндексация

После удаления мусора база требует оптимизации. В 1С:Предприятие 8.3 для этого есть встроенные инструменты:

  1. Тестирование и исправление (Конфигуратор → Администрирование → Тестирование и исправление). Выберите флаги:
    • 🔧 Реиндексация таблиц — ускоряет поиск по справочникам.
    • 🗜️ Сжатие таблиц — уменьшает размер файла базы.
    • 🔄 Проверка логической целостности — ищет "битые" ссылки.
  • Обновление конфигурации базы данных — если вы удаляли объекты метаданных, запустите Конфигуратор → Конфигурация → Обновить конфигурацию базы данных.
  • Для SQL-варианта работы дополнительно выполните:

    -- Переиндексация таблиц (пример для MS SQL)
    

    DBCC DBREINDEX ('Your1CDatabase', '', 80);

    DBCC SHRINKDATABASE ('Your1CDatabase', 10); -- Сжатие до 10% свободного места

    Если база работает на PostgreSQL, используйте:

    VACUUM FULL ANALYZE;
    💡

    После оптимизации обязательно перезапустите сервер 1С:Предприятия и клиентские сеансы. Некоторые изменения (например, переиндексация) применяются только после рестарта.

    6. Типичные ошибки и как их избежать

    Очистка конфигурации чревата ошибками, которые могут парализовать работу. Вот самые распространённые:

    • 🔗 Разорванные ссылки — если удалить справочник, на который ссылается документ. Решение: перед удалением проверяйте ссылки через запрос:
      ВЫБРАТЬ РАЗРЕШЕННЫЕ
      

      Документы.Ссылка КАК Документ,

      Документы.Дата

      ИЗ

      Документ.<ИмяДокумента> КАК Документы

      ГДЕ

      Документы.СправочникСсылка.Ссылка = <УдаляемыйОбъект>

    • 📉 Потеря истории изменений — при физическом удалении документов теряются данные для отчётов типа "История изменений цен". Решение: используйте пометку на удаление или архивацию.
    • 🔒 Блокировка обновлений — если удалить объекты, которые используются в типовой конфигурации (например, в 1С:ERP). Решение: сравните свою конфигурацию с типовой через Конфигуратор → Сравнить конфигурации.

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

    • 📂 Не совпадают версии платформы (например, выгрузили в 8.3.20, а загружаете в 8.3.18).
    • 🔑 Отсутствуют права на объекты метаданных (проверьте роли в Конфигуратор → Администрирование → Пользователи).
    ⚠️ Внимание: Если после очистки база перестала открываться с ошибкой "Не найден объект метаданных", восстановите её из бэкапа и повторите процедуру, исключив проблемные объекты. Чаще всего это происходит при удалении подсистем или планов обмена.

    7. Особенности очистки для разных конфигураций

    Каждая типовая конфигурация имеет свои "болезненные точки", которые требуют особого внимания при очистке:

    КонфигурацияЧто можно чиститьЧто чистить опасноИнструменты
    1С:Бухгалтерия 3.0Устаревшие отчёты (например, для ФСС 2020 года), неиспользуемые счетаПланы счетов, регистры бухгалтерииОбработка "Помощник закрытия периода"
    1С:УТ 11Дубликаты номенклатуры, устаревшие ценыРегистры накопления (остатки товаров)Обработка "Анализ продаж"
    1С:ЗУП 3.1Уволенных сотрудников (старше 3 лет), устаревшие кадровые приказыРегистры расчёта (начисляемые виды расчёта)Обработка "Перенос данных в ЗУП 3.1"
    1С:ERP 2.5Неиспользуемые бизнес-процессы, тестовые задачиПланы обмена, регистры сведений для интеграцийVanessa Automation

    Для 1С:Бухгалтерии особенно важно не трогать:

    • 📌 Планы счетов — даже если счёт не используется, его удаление может сломать типовые отчёты.
    • 📅 Периодические реквизиты (например, курсы валют) — их отсутствие приведёт к ошибкам в регламентных операциях.

    В 1С:Управление торговлей часто накапливаются дубли в:

    • 🏷️ Справочнике "Номенклатура" — из-за импорта из Excel или CommerceML.
    • 💰 Видах цен — устаревшие скидки или надбавки.
    💡

    Для 1С:ЗУП перед очисткой проверьте настройки хранения истории в разделе Настройки → Кадровый учёт. Если история хранится 5 лет, не удаляйте документы моложе этого срока.

    FAQ: Ответы на частые вопросы

    ❓ Можно ли очистить конфигурацию без Конфигуратора?

    Да, но с ограничениями. В режиме "1С:Предприятие" вы можете:

    • Удалять помеченные объекты через Администрирование → Удаление помеченных объектов.
    • Архивировать данные с помощью обработок (например, "Выгрузка данных в XML").

    Однако для удаления объектов метаданных (справочников, документов) обязательно нужен Конфигуратор.

    ❓ Как очистить конфигурацию от вирусов или вредоносного кода?

    Если подозреваете заражение (например, после использования пиратских обработок), выполните:

    1. Полную выгрузку базы в .dt-файл.
    2. Проверку файлов антивирусом (например, Kaspersky или Dr.Web).
    3. Сравнение конфигурации с эталонной через Конфигуратор → Сравнить конфигурации.
    4. Удаление подозрительных модулей (особенно в ОбщийМакрос или ОбщийМодуль).

    Для сложных случаев используйте утилиту "1С:Чистильщик" (разработана партнёрами для удаления вредоносных вставок).

    ❓ Сколько времени занимает очистка большой базы (100+ ГБ)?

    Время зависит от метода:

    • Ручная чистка — от нескольких часов до дней (зависит от количества объектов).
    • Автоматизированные скрипты — 1–4 часа (например, Vanessa Automation обрабатывает ~10 ГБ/час).
    • Тестирование и исправление — 30–120 минут для базы 100 ГБ (на SQL Server быстрее, чем на файловом варианте).

    Для ускорения процесса:

    • Разбейте очистку на этапы (например, сначала справочники, потом документы).
    • Выполняйте работы в нерабочее время (ночью или в выходные).
    ❓ Можно ли отменить очистку, если что-то пошло не так?

    Да, если:

    • Вы использовали пометку на удаление — объекты можно восстановить через Администрирование → Восстановление помеченных объектов.
    • У вас есть бэкап — восстановите базу из резервной копии.
    • Вы работаете с версионированием (например, через Git для конфигурации) — откатитесь к предыдущему коммиту.

    Если физически удалили критические объекты (например, планы счетов), восстановление возможно только из бэкапа.

    ❓ Нужно ли чистить конфигурацию перед обновлением 1С?

    Да, это обязательный этап перед major-обновлениями (например, с 8.3.19 на 8.3.22). Причины:

    • 🔄 Конфликты объектов — устаревшие обработки или справочники могут мешать обновлению.
    • 📦 Уменьшение размера базы — упрощает выгрузку/загрузку при обновлении.
    • Ускорение процесса — чистая база обновляется быстрее (особенно важно для 1С:ERP или 1С:КА 2.4).

    Исключение: если обновление minor (например, 8.3.20.1234 → 8.3.20.1567), чистка не обязательна.