При эксплуатации конфигурации «Бухгалтерия предприятия 3.0» администраторы и программисты часто сталкиваются с ситуацией, когда после очередного обновления или выполнения регламентных операций размер базы данных (как в файловом, так и в клиент-серверном варианте) увеличивается в разы. При анализе через консоль СУБД или средства просмотра файловой таблицы выясняется, что основной объем занимает таблица с техническим именем вида _INFORG16846. Рассмотрим подробно, как идентифицировать эту таблицу и что делать с ростом данных.
В платформе 1С:Предприятие имена таблиц в базе данных не совпадают с именами объектов в конфигураторе. Префикс _INFORG однозначно указывает на то, что перед нами Регистр сведений. Пятизначный цифровой индекс (в нашем примере 16846) генерируется платформой динамически. Это означает, что в одной базе этот номер может соответствовать одному регистру, а в другой — совершенно иному.
Проанализируем ситуацию, описанную в теме. Чаще всего в современных версиях БП 3.0 взрывной рост таблицы _INFORG связан с подсистемой адресного классификатора. Как показывает практика и опыт участников обсуждения, за этим номером обычно скрывается регистр сведений «Дома, здания, сооружения» или «Адресные объекты».
Для того чтобы не гадать, какой именно объект занимает место, воспользуемся встроенными механизмами платформы. Рассмотрим несколько способов идентификации.
Способ 1: Программный метод (универсальный)
Разберем, как с помощью одной строки кода получить расшифровку всех таблиц базы данных. Для этого в любой консоли кода или внешней обработке можно выполнить следующий фрагмент:
СтруктураБД = ПолучитьСтруктуруХраненияБазыДанных(, Истина);
Для Каждого СтрокаТаблицы Из СтруктураБД Цикл
Если СтрокаТаблицы.ИмяТаблицыХранения = "_INFORG16846" Тогда
Сообщить("Таблица соответствует объекту: " + СтрокаТаблицы.ИмяТаблицы);
КонецЕсли;
КонецЦикла;
Метод ПолучитьСтруктуруХраненияБазыДанных() возвращает таблицу значений, в которой сопоставлены имена объектов метаданных и их физические имена в СУБД. Параметр Истина позволяет получить детальную информацию, включая индексы и вспомогательные таблицы.
Способ 2: Использование стандартных обработок
Существуют готовые инструменты, такие как обработка «Просмотр структуры хранения базы данных». Она позволяет в удобном интерфейсе найти нужную таблицу по поиску. Если вы используете современную платформу (например, 8.3.19 и выше) и сталкиваетесь с «непредвиденной ошибкой» при запуске старых обработок, попробуйте запустить конфигурацию в режиме тонкого клиента или воспользуйтесь более свежими версиями инструментов, адаптированными под управляемые формы.
Выясним причину, почему именно адресные сведения стали «тяжелыми». Раньше адресный классификатор ФИАС хранился преимущественно во внешних файлах и подгружался по мере необходимости. В новых версиях БП 3.0 произошел переход на формат ГАР (Государственный адресный реестр).
Проанализируем ключевые отличия, влияющие на объем:
_INFORG занимают 50-60% от общего объема данных самой таблицы.Если мы установили, что таблица _INFORG16846 — это данные ФИАС/ГАР, и база стала слишком тяжелой (что особенно критично для файловых баз с их лимитом в 4 Гб на таблицу), выполним следующие шаги по оптимизации:
Самый эффективный способ — отказаться от хранения адресных сведений внутри вашей базы. Перейдите в раздел Администрирование — Интернет-поддержка и сервисы — Адресный классификатор. Выберите вариант настройки «Использовать веб-сервис 1С для проверки адресов». В этом случае данные будут запрашиваться через интернет в режиме реального времени, а таблицы в вашей базе останутся практически пустыми.
Если использование веб-сервиса невозможно (например, из-за отсутствия стабильного интернета), проанализируем список загруженных регионов. Рассмотрим, как удалить лишнее:
Для пользователей файловых вариантов (.1CD) рост таблицы выше 4 Гб может привести к полной неработоспособности базы. Даже если вы удалите данные из классификатора программно, физический размер файла базы данных не уменьшится автоматически. После очистки данных обязательно выполните процедуру «Сжатие таблиц» в утилите chdbfl.exe или через Тестирование и исправление (пункт «Сжатие базы данных»).
Таким образом, мы разобрали, что за техническими именами таблиц в 1С всегда стоят конкретные объекты метаданных, а их аномальный рост чаще всего является следствием избыточной загрузки справочных данных, таких как адресный классификатор ГАР.