Как свернуть базу УТ 11 так, чтобы не осталось даже следов старых документов?

Программист 1С v8.3 (Управляемые формы) Управленческий учет Торговля и дистрибуция
← На главную

Стандартная процедура свертки информационной базы в 1С:Управление торговлей 11 часто оставляет после себя «хвосты». Даже после выполнения всех регламентных операций в базе могут оставаться помеченные на удаление документы (поступления, реализации, заказы), которые невозможно удалить из-за существующих ссылок в новых документах Ввод остатков. Это создает ситуацию, когда база выглядит неопрятно, а история операций «тянется» за новыми данными. Разберем подробно, как добиться идеальной чистоты базы, чтобы она выглядела так, будто работа в ней началась с чистого листа.

Почему стандартная свертка оставляет старые документы?

Проанализируем основную причину этой проблемы. В конфигурации УТ 11 (и аналогичных на базе ERP) взаиморасчеты и партионный учет тесно завязаны на аналитику. Главным «виновником» того, что старые документы не удаляются, является реквизит Объект расчетов. Когда свертка создает документ Ввод остатков по взаиморасчетам, она записывает в него ссылку на первичный документ (например, на старую «Реализацию товаров и услуг»), чтобы сохранить структуру задолженности. Пока эта ссылка существует, стандартная обработка Удаление помеченных объектов не сможет уничтожить старый документ.

Выясним, какие еще объекты могут удерживать старые данные:

Способ 1: Корректная работа с «Объектами расчетов»

Рассмотрим по шагам наиболее технически правильный способ разорвать связь между вводом остатков и старыми документами без потери самих остатков. Вместо того чтобы просто «грохать» документы программно (что приведет к появлению битых ссылок Объект не найден), нам нужно переписать аналитику в документах ввода остатков.

Проанализируем ситуацию: в документе Ввод остатков в табличной части Расчеты с поставщиками (или покупателями) в поле Объект расчетов указана старая накладная. Чтобы удалить накладную, нам нужно заменить этот объект. В УТ 11 объектом расчетов может выступать сам документ ввода остатков.

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


Для Каждого Строка ИЗ ДокументВводаОстатков.РасчетыСПоставщиками Цикл
    Если ТипЗнч(Строка.ОбъектРасчетов) = Тип("ДокументСсылка.ПриобретениеТоваровУслуг") Тогда
        // Заменяем ссылку на сам документ ввода остатков или создаем новый Объект Расчетов
        Строка.ОбъектРасчетов = ДокументВводаОстатков.Ссылка;
    КонецЕсли;
КонецЦикла;
ДокументВводаОстатков.Записать(РежимЗаписиДокумента.Проведение);

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

Способ 2: Очистка служебной информации и комментариев

Выясним, как избавиться от надписей «Создано обработкой свертки» и других следов вмешательства. Это важно, если стоит задача представить базу как абсолютно новую. Для этого мы воспользуемся стандартной обработкой Групповое изменение реквизитов.

  1. Откроем Групповое изменение реквизитов.
  2. Выберем тип объекта Ввод остатков (необходимо выбрать все используемые виды этого документа).
  3. В списке реквизитов найдем Комментарий. Установим значение в пустую строку.
  4. Найдем реквизит Ответственный. Заменим текущего пользователя на системного администратора или руководителя.
  5. В настройках (кнопка «Дополнительно») установим флаг «Выполнять в режиме загрузки данных». Это позволит избежать лишних проверок и автоматического заполнения полей при записи.

Дополнительно разберем вопрос с датами и номерами. Чтобы скрыть «прошлое», нам нужно убедиться, что нумерация новых документов начнется с единицы. Рассмотрим, как это сделать:

Способ 3: Перенос данных в чистую базу (Метод «Девственной чистоты»)

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

Для этого выполним следующие действия:

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

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

Работа с битыми ссылками (Объект не найден)

Если вы уже совершили ошибку и «жестко» удалили документы программно (используя метод Удалить() вместо УстановитьПометкуУдаления()), в базе появятся записи вида <Объект не найден> (81:b2...). Разберем, как это исправить.

Ситуация критическая, так как битые ссылки в регистрах расчетов приведут к невозможности корректного закрытия месяца и формирования отчетов. Нам поможет обработка Поиск и замена значений. Мы заменим все битые ссылки на пустые значения или на документы ввода остатков. В поле поиска выбираем «битую» ссылку, в поле замены — корректный объект. После замены обязательно выполним Тестирование и исправление базы в конфигураторе с установленными галочками Проверка ссылочной целостности и Очищать объекты.

Очистка логов и истории

Чтобы окончательно «замести следы», проанализируем состояние Журнала регистрации. Даже если в базе нет ни одного документа, журнал регистрации может весить гигабайты и содержать всю историю действий.

Для очистки:

  1. Зайдем в Конфигуратор.
  2. Меню Администрирование — Настройка журнала регистрации.
  3. Нажмем Сократить и выберем дату, до которой все записи будут удалены (текущую дату).

Также не забудем про справочник Присоединенные файлы. Рассмотрим пример того, как очистить файлы, которые больше не связаны ни с одним «живым» документом. Обычно это делается запросом к справочникам *ПрисоединенныеФайлы, где владелец помечен на удаление или отсутствует. Лучше всего использовать специализированные обработки с портала ИТС для очистки ненужных файлов.

Резюмируем: идеальная свертка в УТ 11 — это сочетание штатных механизмов и программной корректировки аналитики расчетов. Только разорвав связь на уровне Объекта расчетов, вы сможете полностью очистить базу от документов прошлого периода.

← На главную