Как узнать соответствие объектов 1С и таблиц базы данных в MS SQL?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При работе с крупными конфигурациями, такими как БП 3.0, у разработчиков часто возникает потребность понять, в какой именно таблице MS SQL Server хранятся данные конкретного справочника или документа. Платформа 1С:Предприятие скрывает физическую структуру БД, но предоставляет инструменты для получения этой информации. Рассмотрим, как это сделать правильно и безопасно.

Использование встроенной функции ПолучитьСтруктуруХраненияБазыДанных

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

Для начала работы нам необходимо подготовить массив имен метаданных, которые мы хотим проанализировать. Рассмотрим пример кода:


МассивИменМетаданных = Новый Массив;
МассивИменМетаданных.Добавить("Справочник.Номенклатура");
МассивИменМетаданных.Добавить("Документ.РасходнаяНакладная");
СтруктБД = ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных);

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

Особенности работы в управляемом приложении

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

  1. Использование табло в обычном приложении: Если вам нужно быстро получить данные без написания полноценной обработки, можно запустить 1С с ключом запуска /RunModeOrdinaryApplication. В режиме «толстого клиента» можно открыть «Табло», ввести там ПолучитьСтруктуруХраненияБазыДанных.Показать и получить результат в удобном окне.
  2. Создание специализированной обработки: Для автоматизации анализа сложных конфигураций лучше разработать внешнюю обработку, которая будет выводить результат в табличный документ или форму для последующего анализа.

Важные нюансы и риски при работе с SQL

При анализе структуры БД важно помнить об особенностях MS SQL Server и логике работы 1С:

Для безопасного удаления или изменения данных всегда используйте стандартные средства платформы: Пометку на удаление, обработку Групповое изменение реквизитов или программное использование методов Удалить() для объектов 1С. Это гарантирует, что платформа проверит все связанные данные и сохранит целостность системы.

Рекомендации по анализу

Если вы столкнулись с зависанием системы при попытке получения структуры данных, как это случается в конфигурациях с модулем БИТ.Финанс, попробуйте анализировать метаданные небольшими группами. Избегайте передачи всей конфигурации целиком в метод ПолучитьСтруктуруХраненияБазыДанных, так как это требует значительных ресурсов оперативной памяти.

Для более глубокого анализа всегда можно использовать Технологический журнал, который позволяет отследить, какие именно SQL-запросы формирует платформа при выполнении тех или иных операций в интерфейсе пользователя. Это самый надежный способ увидеть связь между действием в 1С и физическим запросом к базе данных.

← На главную