Переход с конфигурации 1С:Управление торговлей 11.2 на актуальную версию 11.5 — это сложный технический процесс, сопоставимый с внедрением новой системы. Одной из главных проблем на этом пути становится избыточный объем данных: старые документы, неактуальные контрагенты и справочники, накопленные за годы работы. Попытка очистить такую базу вручную часто превращается в бесконечный процесс из-за контроля ссылочной целостности. Рассмотрим подробно, как правильно подойти к решению этой задачи, используя штатные и дополнительные инструменты 1С.
Прежде чем прибегать к сторонним обработкам, разберем штатные возможности платформы 1С:Предприятие 8.3. В управляемых формах УТ 11.2 доступ к этой функции может быть скрыт, поэтому воспользуемся наиболее полным интерфейсом.
Проанализируем шаги для запуска процедуры:
Настройки — Параметры — Режим отладки или Отображать команду "Функции для технического специалиста").Рассмотрим два режима работы этого инструмента:
Выясним причину, по которой документы не удаляются. В 1С действует принцип ссылочной целостности: нельзя удалить контрагента, если на него ссылается хотя бы одна накладная, даже если эта накладная была создана десять лет назад. Чтобы разорвать эти связи, можно использовать специализированные инструменты.
Одним из эффективных способов является использование обработки "Поиск и замена дублей" (в УТ 11.2 она встроена в раздел Администрирование — Обслуживание). Проанализируем ситуацию: у вас есть два контрагента или один «мусорный» контрагент, на которого завязаны документы. С помощью этой обработки можно перебросить все ссылки с ненужного объекта на «правильный» или на специально созданную «заглушку», после чего старый объект будет удален без ошибок.
Для массовой пометки на удаление документов по определенным критериям (например, за определенный год) рекомендуется использовать инструмент "Универсальный подбор и обработка объектов". Рассмотрим пример логики, которую реализует подобная обработка:
// Пример алгоритма для программной пометки старых документов
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Дата < &ДатаОграничения";
Запрос.УстановитьПараметр("ДатаОграничения", '20180101000000');
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектДок = Выборка.Ссылка.ПолучитьОбъект();
ОбъектДок.УстановитьПометкуУдаления(Истина);
КонецЦикла;
Если документов слишком много, ручное удаление неэффективно. Разберем механизм Свертки базы. Это стандартная процедура, которая:
Ввод остатков на выбранную дату (например, 31 декабря прошлого года).Это позволяет сохранить актуальное состояние взаиморасчетов и остатков товаров, при этом избавившись от «тяжелой» истории, которая только тормозит процесс перехода на УТ 11.5.
Посмотрим на ситуацию критически: переход с 11.2 на 11.5 через последовательное обновление всех релизов (11.3, 11.4) крайне трудозатратен и чреват накоплением программных ошибок. Профессионалы рекомендуют альтернативный подход — перенос данных в чистую базу.
Разберем этот алгоритм по шагам:
XML.Номенклатура, Контрагенты, Склады) и остатки по счетам/регистрам.11.5.Важное преимущество: при таком подходе «мусор» и битые ссылки из 11.2 физически не попадут в новую систему. Вы начнете работу в чистой базе, сохранив только то, что действительно нужно для бизнеса.
Если вы всё же решили проводить глобальное удаление объектов в текущей базе, проанализируем, как ускорить этот процесс и избежать зависаний системы:
Администрирование — Поддержка и обслуживание и отключить полнотекстовый поиск. Это существенно снизит нагрузку на дисковую подсистему, так как системе не придется перестраивать индексы поиска для каждого удаленного объекта.Simple recovery model на время проведения работ.Рассмотрим ситуацию, когда объект «намертво» заблокирован ссылками из регистров сведений. В таких случаях программисты используют удаление без контроля ссылочной целостности через метод Объект.Удалить(). Внимание: это крайне опасная операция, которую нельзя выполнять в рабочей базе без полного понимания последствий, так как она создает «битые ссылки» (объекты с текстом <Объект не найден>).
Подводя итог, отметим, что для подготовки к переходу на 11.5 наиболее рациональным является путь свертки или переноса остатков. Попытки просто «почистить» базу 11.2 штатными методами удаления при большом объеме данных часто приводят к тому, что ссылки в старых регистрах не позволяют удалить и 10% намеченного объема. Выясним, какой инструмент лучше выбрать в вашем случае: если база небольшая (до 10-20 Гб) — подойдет свертка; если база огромная и работает со сбоями — только перенос данных в новую версию.