Работа с базой данных в 1С:Предприятие часто требует понимания структуры хранения информации — какие таблицы существуют, как они связаны между собой, какие поля содержат. Без визуальной схемы данных разобраться в сложных конфигурациях бывает крайне сложно, особенно если вы наследуете проект от другого разработчика или анализируете типовой продукт вроде 1С:ERP или 1С:УТ. К счастью, платформа предоставляет несколько инструментов для просмотра схемы — как встроенных, так и через внешние обработки.
В этой статье мы разберём все актуальные способы — от стандартного Конфигуратора до специализированных отчётов, которые визуализируют связи между объектами метаданных. Вы узнаете, как быстро найти нужную таблицу, проанализировать её структуру, а также какие скрытые возможности есть в последних версиях платформы 8.3.20+ для работы со схемой данных. Материал будет полезен как начинающим программистам 1С, так и опытным специалистам, которые хотят оптимизировать свои запросы или документировать базу.
1. Стандартный просмотр схемы данных через Конфигуратор
Самый очевидный и доступный способ — использовать встроенные инструменты Конфигуратора 1С. Этот метод не требует установки дополнительных обработок и работает во всех версиях платформы, начиная с 8.2. Для просмотра схемы:
- Откройте конфигуратор в режиме
1С:Предприятие(с правами администратора). - Перейдите в меню
Администрирование → Поддержка и обслуживание → Схема данных(в старых версиях путь может отличаться:Сервис → Схема данных). - В открывшемся окне выберите нужные объекты метаданных (справочники, документы, регистры) и нажмите
Построить схему.
В результате вы получите интерактивную схему, где:
- 📊 Прямоугольники — это объекты метаданных (например, справочник
Номенклатура). - 🔗 Линии со стрелками — связи между объектами (ссылочные поля, подчинённость).
- 🔍 Контекстное меню (правый клик по объекту) позволяет перейти к его свойствам или открыть в отдельном окне.
Преимущество этого метода — скорость и отсутствие дополнительных настроек. Однако у него есть ограничения:
- ❌ Не отображаются виртуальные таблицы (например, остатки регистров накопления).
- ❌ Нет возможности сохранить схему в графический файл (только печать через
Ctrl+P). - ❌ В больших конфигурациях (например, 1С:ERP) схема становится слишком перегруженной.
Если схема не строится или выдаёт ошибку, проверьте права пользователя в конфигураторе. Для просмотра схемы данных требуется роль с правом"Администрирование" или"Конфигурирование".
2. Использование отчёта «Структура хранения данных»
Для более детального анализа физической структуры базы (таблиц СУБД) в 1С предусмотрен отчёт Структура хранения данных. Он показывает, как объекты метаданных преобразуются в таблицы базы данных (например, PostgreSQL или MS SQL), включая:
- 🗃️ Имена реальных таблиц в СУБД (например,
_Document123для документаПоступлениеТоваров). - 🔑 Первичные и внешние ключи.
- 📏 Размеры полей и их типы (число, строка, дата).
Как открыть отчёт:
1. В конфигураторе перейдите в меню:
"Администрирование" →"Поддержка и обслуживание" →"Структура хранения данных".
2. Выберите нужные объекты (или оставьте все галочки для полного анализа).
3. Нажмите"Сформировать".
Этот отчёт незаменим, если вам нужно:
- 🛠️ Оптимизировать SQL-запросы к базе.
- 🔧 Разобраться, почему медленно работает отчёт (например, из-за отсутствия индексов).
- 📊 Подготовить документацию для администратора СУБД.
Что делать, если отчёт не показывает все таблицы?
Если в отчёте отсутствуют некоторые таблицы, проверьте:
1. Права пользователя на чтение системных таблиц СУБД.
2. Настройки фильтра в отчёте (возможно, исключены служебные объекты).
3. Версию платформы — в 8.3.18+ добавлена поддержка новых типов данных (например, ХранилищеЗначения), которые могут не отображаться в старых версиях.
3. Внешние обработки для визуализации схемы данных
Стандартные инструменты 1С не всегда удобны для работы с крупными конфигурациями. В таких случаях на помощь приходят внешние обработки, которые предлагают расширенные возможности:
| Обработка | Возможности | Ссылка (поиск) |
|---|---|---|
| ERD для 1С | Построение ER-диаграмм, экспорт в .png/.pdf, анализ связей между объектами. |
Инфостарт, GitHub |
| СхемаДанныхПро | Интерактивная схема с фильтрацией по типам объектов, поиск по именам полей. | 1С-Софт |
| DataStructure | Анализ физической структуры БД, сравнение версий конфигураций. | Каталог 1С |
Пример работы с обработкой ERD для 1С:
- Скачайте и установите обработку (например, с Инфостарта).
- Откройте её в режиме
1С:ПредприятиечерезФайл → Открыть. - Выберите объекты для анализа (можно использовать фильтр по именам).
- Нажмите
Построить схемуи дождитесь формирования диаграммы.
Преимущества внешних обработок:
- 🎨 Более наглядное отображение связей (цветовые схемы, группировка по модулям).
- 📤 Возможность экспорта схемы в графические форматы для документации.
- 🔍 Расширенный поиск (например,"найти все справочники, ссылающиеся на
Контрагентов").
4. Анализ схемы через запросы к метаданным
Если вам нужно программно получить информацию о структуре данных (например, для автоматической генерации документации), можно использовать запросы к метаданным. Это актуально для разработчиков, которые пишут расширения или внешние утилиты.
Пример запроса для получения списка таблиц справочника Номенклатура:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Метаданные.Справочники.Имя КАК Имя,
| Метаданные.Справочники.Синоним КАК Синоним,
| Метаданные.Справочники.Таблицы.Имя КАК ТаблицаБД
|ИЗ
| Метаданные.Справочники КАК Метаданные
|ГДЕ
| Метаданные.Справочники.Имя =""Номенклатура""";
Результат = Запрос.Выполнить;
Что можно анализировать таким способом:
- 📋 Список всех таблиц объекта (включая виртуальные).
- 🔗 Связи между объектами (через
Метаданные.Связи). - 📏 Структуру полей (типы, длины, обязательность заполнения).
Этот метод требует знания встроенного языка 1С и СКД (система компоновки данных), но даёт максимальную гибкость. Например, вы можете:
- 🤖 Автоматизировать проверку конфигурации на соответствие стандартам.
- 📊 Строить отчёты по использованию типов данных (например,"где используются поля типа
ХранилищеЗначения").
Запросы к метаданным работают только в режиме 1С:Предприятие с правами"Администрирование". В обычном пользовательском режиме они вернут ошибку доступа.
5. Просмотр схемы данных в режиме отладки
Малоизвестный, но полезный приём — использование отладчика 1С для анализа структуры данных. Этот метод подходит, если вам нужно быстро посмотреть, какие таблицы задействованы в конкретном запросе или отчёте.
Как это работает:
- Поставьте точку останова (
F9) на строке с запросом или отчётом. - Запустите отладку (
F5). - В момент выполнения запроса откройте окно
Выражения(Ctrl+Alt+W). - Добавьте выражение
Метаданные.Таблицыи разверните его в дереве.
В окне отладчика вы увидите:
- 📄 Полный список таблиц базы данных.
- 🔍 Их свойства (включая системные таблицы вроде
_1SJOURNдля журналов регистрации). - 🔗 Связи между таблицами (через поля
Ссылка).
Этот способ особенно полезен для:
- 🐞 Диагностики ошибок в запросах (например,"таблица не найдена").
- 🔧 Оптимизации сложных отчётов (понимание, какие таблицы joins используются).
Поставить точку останова на проблемном участке кода
Запустить 1С в режиме отладки (с правами администратора)
Открыть окно"Выражения" (Ctrl+Alt+W)
Добавить выражение Метаданные.Таблицы или Метаданные.Справочники
Развернуть нужные ветки в дереве объектов-->
6. Сравнение схем данных в разных версиях конфигурации
Если вы работаете с обновляемыми конфигурациями (например, типовой 1С:Бухгалтерия), полезно сравнивать схемы данных между версиями. Это помогает:
- 🔄 Отследить, какие таблицы появились/исчезли после обновления.
- 🛠️ Найти причины ошибок (например, если запрос перестал работать из-за изменения структуры).
- 📊 Подготовить миграционные скрипты для пользовательских доработок.
Как сравнить схемы:
- Сохраните схему текущей версии (через
Конфигуратор → Схема данных → Сохранить как...). - Обновите конфигурацию и повторите шаг 1 для новой версии.
- Используйте внешние утилиты (например, Beyond Compare или WinMerge) для сравнения сохранённых файлов.
Для автоматизации этого процесса можно использовать скрипты на PowerShell или Python, которые:
- 🤖 Экспортируют схему в
XML/JSON. - 📊 Строят отчёты по различиям (например, с помощью
pandasв Python).
Пример скрипта для экспорта схемы в JSON
```python
import json
import subprocess
Запускаем 1С с параметром выгрузки схемы
result = subprocess.run(
['1cv8','/IBName:"C:\Bases\Demo"','/Execute','/C"ВыгрузитьСхемуДанных("C:\temp\schema.json")"'],
capture_output=True, text=True
)
Сохраняем результат в файл
with open('schema_comparison.json','w', encoding='utf-8') as f:
json.dump(json.loads(result.stdout), f, ensure_ascii=False, indent=4)
```
Примечание: Требует предварительной настройки обработкиВыгрузитьСхемуДанных в 1С.7. Практические советы по работе со схемой данных
Работа со схемой данных в 1С может быть сложной, особенно в крупных конфигурациях. Вот несколько советов, которые помогут сэкономить время:
- 🔍 Используйте фильтры: В стандартной схеме данных можно отфильтровать объекты по типу (например, показать только документы или регистры).
- 📌 Сохраняйте часто используемые схемы: Если вы регулярно работаете с одними и теми же объектами, сохраняйте схему в
.pngили.pdfдля быстрого доступа. - 🤝 Сотрудничайте с администратором СУБД: Для анализа производительности запросов может потребоваться доступ к SQL Profiler или pgAdmin.
- 📚 Документируйте изменения: Ведите журнал схемы данных (например, в Confluence или Notion), особенно если работаете в команде.
Типичные ошибки при работе со схемой:
- ❌ Игнорирование виртуальных таблиц (например,
РегистрНакопления.Остатки). Они не отображаются в стандартной схеме, но критичны для запросов. - ❌ ПAttempts to analyze the schema in
1С:Предприятиеmode without administrator rights (will result in access errors). - ❌ Forgetting to update the schema after configuration changes (the old schema may mislead).
Если схема данных не строится в типовой конфигурации (например, 1С:ЗУП), проверьте наличие обновлений платформы. В версиях ниже 8.3.16 были баги с отображением сложных связей.
FAQ: Частые вопросы о схеме данных в 1С
Можно ли посмотреть схему данных без прав администратора?
Нет, для просмотра схемы данных в Конфигураторе или через отчёт Структура хранения данных требуются права"Администрирование" или"Конфигурирование". Однако вы можете:
- Попросить администратора выгрузить схему в
PDF. - Использовать внешние обработки (если они установлены и настроены для вашей роли).
Как экспортировать схему данных в Visio или Draw.io?
Прямого экспорта из 1С в эти форматы нет, но можно:
- Сохранить схему как изображение (
.png) черезКонфигуратор. - Импортировать это изображение в Visio/Draw.io и доработать вручную.
- Использовать обработки вроде ERD для 1С, которые поддерживают экспорт в
.vsdx(формат Visio).
Почему в схеме данных не отображаются виртуальные таблицы регистров?
Стандартная схема данных в Конфигураторе показывает только физические объекты метаданных (справочники, документы). Виртуальные таблицы (например, РегистрНакопления.Обороты) не являются отдельными объектами конфигурации, поэтому:
- Их структуру можно посмотреть в отчёте
Структура хранения данных(раздел"Виртуальные таблицы"). - Или через запрос к метаданным:
ВЫБРАТЬ Метаданные.РегистрыНакопления.ВиртуальныеТаблицы.
Как найти, какие объекты ссылаются на конкретный справочник?
Есть несколько способов:
- В стандартной схеме данных: выделите справочник, правой кнопкой выберите"Найти ссылки".
- Через запрос:
ВЫБРАТЬМетаданные.Ссылки.Источник.Имя КАК Объект,
Метаданные.Ссылки.ТипСсылки.Имя КАК ТипСсылки
ИЗ
Метаданные.Ссылки КАК Метаданные
ГДЕ
Метаданные.Ссылки.Цель.Имя ="Справочник.Контрагенты"
- В обработках вроде ERD для 1С есть специальный фильтр"Показать ссылки на...".
Можно ли автоматизировать построение схемы данных для документации?
Да, для этого можно:
- 🤖 Написать обработку на встроенном языке, которая выгружает схему в
HTML/Markdown. - 📊 Использовать внешние инструменты (например, Sphinx + PlantUML) для генерации диаграмм по данным из 1С.
- 🔧 Интегрировать 1С с системами документации (например, Confluence) через REST API.
Пример кода для выгрузки в Markdown:
Процедура ВыгрузитьСхемуВMarkdown(КаталогВыгрузки)
ТекстMarkdown ="";
Для Каждого Объект Из Метаданные.Объекты Цикл
ТекстMarkdown = ТекстMarkdown + Строка(Объект.Имя) +" (" + Объект.Тип.Имя +")" + Символы.ПС;
КонецЦикла;
ЗаписатьТекст(КаталогВыгрузки +"schema.md", ТекстMarkdown);
КонецПроцедуры