Как полностью удалить справочник «Виды отчетов» в 1С:БГУ 2 и исправить сопутствующие ошибки

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

В процессе работы с конфигурацией «1С:Бухгалтерия государственного учреждения 8» (редакция 2.0) пользователи и технические специалисты нередко сталкиваются с необходимостью полной очистки или переустановки комплектов отчетности. Типичная ситуация: в базу загрузили новый комплект форм, затем старый (устаревший), возникли логические конфликты в структуре метаданных, и теперь базу нужно вернуть в исходное («чистое») состояние.

При попытке стандартного удаления справочника Виды отчетов система выдает огромное количество предупреждений о наличии связей с другими объектами: колонками, строками, правилами проверки и операндами показателей. Рассмотрим подробно, почему возникает эта проблема, как устроена структура метаданных отчетности в БГУ 2 и как правильно выполнить полную очистку базы по шагам.

Почему возникает сложность при удалении отчетности?

Справочник Виды отчетов является вершиной сложной иерархической пирамиды. Каждая отчетная форма (например, форма 0503737 или 0503130) описывается целым каскадом связанных подчиненных и независимых справочников и регистров:

Проанализируем ситуацию: если в процессе загрузки или обновления комплектов (файлов формата .repx) произошел сбой, либо данные переносились некорректно, связи между владельцами и подчиненными элементами могут разрушиться. Возникают так называемые «битые» или «осиротевшие» ссылки. Например, элемент справочника Операнды показателей может потерять ссылку на свой ПоказательОтбор. В этом случае стандартные механизмы контроля целостности СУБД блокируют интерактивное удаление, а стандартная обработка группового изменения реквизитов отказывается обрабатывать поврежденные элементы.

---

Шаг 1. Подготовка базы данных к очистке

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

  1. Удаление документов «Регламентированный отчет». Убедитесь, что в базе полностью отсутствуют документы этого типа за очищаемый период. Обратите внимание: документы должны быть не просто помечены на удаление, а физически стерты из информационной базы с помощью обработки Удаление помеченных объектов. Наличие хотя бы одного проведенного или непроведенного документа заблокирует удаление соответствующего вида отчета.
  2. Очистка записей регистров. Перейдите в функции для технического специалиста и найдите регистр сведений Установленные комплекты отчетности. Записи в этом регистре также удерживают ссылки на отчетные формы и должны быть очищены.

---

Шаг 2. Правильная пометка на удаление в пользовательском интерфейсе

Разберем ключевую ошибку, которую совершают многие администраторы 1С при попытке очистить справочники. Попытка пометить элементы на удаление с помощью обработки Групповое изменение реквизитов напрямую (установив признак ПометкаУдаления = Истина) часто приводит к тупику.

Важное правило платформы 1С:Предприятие: каскадная пометка подчиненных элементов работает только при интерактивном действии пользователя в форме списка или дерева справочника. Когда мы помечаем на удаление родительскую группу или элемент-владелец непосредственно в интерфейсе справочника Виды отчетов, платформа автоматически запускает внутренние обработчики и каскадно помечает на удаление все подчиненные строки, колонки и показатели. Групповое изменение реквизитов обходит эти обработчики, оставляя тысячи подчиненных элементов «активными», что делает последующее удаление невозможным.

Выполним пометку на удаление по шагам:

  1. Откроем справочник Контрольные соотношения через интерфейс или функции для технического специалиста. Выделим корневые группы и пометим их на удаление интерактивно.
  2. Откроем справочник Виды отчетов. Выделим группы отчетов и установим на них пометку удаления. Платформа автоматически пометит всю вложенную структуру.

---

Шаг 3. Решение проблемы «битых» операндов показателей

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

Выясним причину: в поврежденном операнде реквизит ПоказательОтбор не заполнен или содержит битую ссылку. Для исправления этой ситуации применим обработку Групповое изменение реквизитов:

  1. Откроем обработку Групповое изменение реквизитов.
  2. Выберем объект — справочник Операнды показателей.
  3. Добавим критерий отбора (например, отбор по тем элементам, у которых не помечен на удаление родитель, либо обработаем весь справочник, если база подлежит полной очистке).
  4. В списке реквизитов найдем поле ПоказательОтбор и принудительно заполним его ссылкой на любой существующий (или даже пустой предопределенный) элемент справочника Показатели отчетов.
  5. Нажмем кнопку «Изменить реквизиты».

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


Выборка = Справочники.ОперандыПоказателей.Выбрать();
СистематическиеОшибки = 0;
Пока Выборка.Следующий() Цикл
    Если Не ЗначениеЗаполнено(Выборка.ПоказательОтбор) Тогда
        Попытка
            ОбъектОперанда = Выборка.ПолучитьОбъект();
            ОбъектОперанда.ПоказательОтбор = Справочники.ПоказателиОтчетов.ПустаяСсылка();
            ОбъектОперанда.Записать();
        Исключение
            СистематическиеОшибки = СистематическиеОшибки + 1;
        КонецПопытки;
    КонецЕсли;
КонецЦикла;
Сообщить("Успешно исправлено проблемных операндов: " + СистематическиеОшибки);

---

Шаг 4. Использование специализированного штатного инструмента БГУ 2

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

Рассмотрим, как его найти и использовать:

  1. Перейдем в раздел «Учет и отчетность», далее выберем пункт «1С-Отчетность».
  2. Перейдем на вкладку «Настройки».
  3. В группе команд «Бухгалтерская отчетность» выберем обработку «Удаление дублей элементов бух. отчетности».

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

Важное замечание: Сразу после использования данного инструмента и завершения удаления старых элементов необходимо выполнить повторную чистую загрузку актуальных комплектов отчетности (файлов statrep191N.repx, statrep33N.repx и др.), чтобы система корректно инициализировала новые метаданные и восстановила нормальную работу подсистемы отчетности.

---

Шаг 5. Финальное удаление помеченных объектов в монопольном режиме

Поскольку комплекты отчетности содержат десятки тысяч строк, колонок, формул и показателей, процесс их удаления создает колоссальную нагрузку на транзакционную систему СУБД. Попытка запустить обычное удаление в общем режиме работы пользователей может привести к зависанию базы данных или ошибке переполнения лога транзакций SQL.

Для успешного завершения очистки выполним следующие действия:

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

Мы полностью очистили базу данных от проблемных комплектов отчетности. Теперь можно со спокойной душой приступать к последовательной и корректной загрузке актуальных отчетных форм в хронологическом порядке!

← На главную