Как безопасно удалить историю прошлых лет в 1С:УТ 10.3 и чем грозит прямое удаление документов со ссылками в регистрах

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

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

Чем опасно прямое удаление документов без проверки ссылок

Если выполнить непосредственное удаление документов за прошлые годы в обход проверки ссылочной целостности (платформенным методом Удалить()), в системе остаются битые ссылки вид <Объект не найден>. Проанализируем, к какому функциональному сбою это приведет:

  1. Зависание партий при учете по FIFO: В 1С:УТ 10.3 при использовании метода списания FIFO алгоритм проведения торговых документов текущего периода пытается подобрать и списать самые старые партии. Если регистратором партий выступал удаленный документ, проведение документов текущего года приведет к критической ошибке при обращении к свойствам несуществующего объекта.
  2. Проблемы со служебными последовательностями: Документы движения товаров входят в Последовательность.ПартионныйУчет. Наличие битых ссылок в границах последовательности делает невозможным штатное восстановление последовательности партионного учета.
  3. Итоги процедуры «Тестирование и исправление»: При запуске механизма ТиИ в режиме «Создавать объекты» платформа создаст пустые фантомные документы. В режиме «Очищать ссылки» измерения и реквизиты регистров заменятся на Неопределено или пустые ссылки, из-за чего в регистрах накопления навсегда зависнут неуправляемые остатки.
  4. Сбои в обменах данными: Если удаленные документы были зарегистрированы на узлах планов обмена (например, с «1С:Бухгалтерией»), синхронизация заблокируется из-за неспособности выгрузить удаленный объект.

Вариант 1. Очистка реквизитов и табличных частей с сохранением ссылок

Рассмотрим безопасный метод очистки истории без физического удаления самих документов. Суть подхода заключается в том, что сами документы-регистраторы сохраняются в базе, но их табличные части очищаются, а реквизиты заполняются значениями по умолчанию. В результате ссылочная целостность регистра ПартииТоваровНаСкладах не нарушается, но коммерческие данные (номенклатура, цены, контрагенты прошлых лет) полностью удаляются.

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


// Создаем экземпляр нового документа для получения значений по умолчанию
ПустойДок = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент(); 

// ТекОбъект — полученный для редактирования документ прошлого периода
ЗаполнитьЗначенияСвойств(ТекОбъект, ПустойДок, "Номер, Дата");

// Очищаем табличные части документа
ТекОбъект.Товары.Очистить();
ТекОбъект.Услуги.Очистить();
ТекОбъект.ВозвратнаяТара.Очистить();

// Записываем объект без проведения
ТекОбъект.Записать(РежимЗаписиДокумента.Запись);

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

Вариант 2. Перенос остатков и рабочей истории в чистую информационную базу

Если требуется сохранить текущий рабочий год (например, 2017 год) и полностью избавиться от «мусора» прошлых лет (2016 год и ранее), наиболее правильным техническим решением будет создание чистой базы.

Разберем по шагам алгоритм создания свертанной базы:

  1. В исходной рабочей базе формируется документ ввода начальных остатков на дату отсечения (например, на 01.01.2017).
  2. Создается пустая информационная база с аналогичной конфигурацией (УТ 10.3). В ней отключаются обработчики первоначального заполнения данных, чтобы избежать дублирования служебных справочников.
  3. С помощью обработки ВыгрузкаЗагрузкаДанныхXML82.epf из исходной базы выгружаются:
    • Начальные остатки на 01.01.2017;
    • Все документы и справочники за весь 2017 год;
    • НСИ (справочники) выгружаются только по ссылке.
  4. В новой базе выполняется перепроведение документов за 2017 год и перерасчет итогов.Старая информационная база сохраняется в качестве архива для просмотра истории.

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

← На главную