Навигатор по базе 1С 8.5: таблицы СУБД и поля, поиск по GUID, размеры, «где используется»
База данных - Инструменты администратора БД
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Строка плана запроса говорит _Reference408, а в конфигураторе такой таблицы нет. В условии стоит _Fld10334RRef, в параметре — 0x97C68C688B409701…. «Навигатор по базе» — одно окно, в которое эти строки просто вставляются: по каждой он находит объект, реквизит, индекс или конкретный элемент справочника и показывает, где на него ссылаются. Только чтение: ничего не записывает и не удаляет.
Что вставили — что получили
| Вставили | Увидели | Когда нужно |
| _Reference408, dbo._Document45_VT678 | Справочник.Номенклатура; табличная часть документа; назначение таблицы, число полей; ниже — все поля и индексы с составом | План запроса, ожидания на блокировках в техжурнале |
| _Fld10334RRef, T1._Fld54272_RTRef, _Reference408_5 | Реквизит и таблицы, где это поле есть; для индекса — таблица и состав. Общие поля (_IDRRef, _Marked) не перечисляются: пишется, в скольких таблицах они встречаются | Разбор условий и соединений |
| Запрос SQL или строка техжурнала целиком | Тот же текст, где после каждого имени стоит комментарий: FROM _Reference408 /* Справочник.Номенклатура */ | Заявка разработчику, обсуждение «тяжёлого» запроса |
| GUID, 0x… из профайлера, e1cib/data/…?ref=…, внутренняя строка {"#",…,408:…} | Объект: тип, представление, все формы записи его ссылки (GUID, 0x…, навигационная ссылка); кнопка «Открыть объект» | Значение из профайлера, журнала обмена, письма пользователя |
| Справочник.Номенклатура или часть имени; Справочник.Номенклатура.Реквизит.Артикул | Все таблицы объекта: основная, табличные части, регистрация изменений; для реквизита — имя поля в СУБД | Прямой запрос к СУБД, выгрузка во внешнюю систему |
Порядок байт, который не надо считать вручную
GUID 97e1450c-cad7-11f1-97c6-8c688b409701 в СУБД и в ссылке e1cib выглядит как 97c68c688b40970111f1cad797e1450c. Обработка переводит в обе стороны и для найденного объекта выводит сразу все формы. Соответствие проверено автотестом на трёх базах по внутреннему представлению самой платформы (номер типа и 32 символа ссылки), а не по догадке.
Размеры: порциями и с выгрузкой
Вкладка «Размеры» считает по каждому объекту размер (платформенный метод ПолучитьРазмерДанныхБазыДанных, вместе с табличными частями, индексами и регистрацией изменений) и число записей основной таблицы. Расчёт идёт порциями в секунду-две, таблица заполняется по ходу, есть «Остановить»; сортировка — размер, записи, имя; доли от суммы; выгрузка в табличный документ, числа остаются числами. На УНФ 3.0.14 около 2,4 тысячи объектов — порядка минуты.
Где используется
Для найденного объекта вызывается поиск по ссылкам платформы. Сверху сводка: сколько ссылок в каком объекте метаданных; выбрали строку — в списке остался только он. Записи регистров сведений показаны не «РегистрСведенийКлючЗаписи», а ключом: период и измерения. Двойной щелчок открывает ссылающийся объект.
Вопросы до покупки
| Нужен ли доступ к SQL Server или PostgreSQL? | Нет. Всё берётся у самой платформы: структура хранения, размеры, поиск по ссылкам. Прямых обращений к СУБД и в сеть в обработке нет. |
| Меняет ли она данные? | Нет. В коде нет записи, удаления и выполнения произвольного кода; это проверяется отдельным скриптом при каждой сборке. |
| Сколько читается структура? | В УНФ 3.0.14 (11 251 таблица, около 104 тысяч полей, 25 тысяч индексов) — 7–12 секунд в файловой базе, один раз за открытие формы. |
| Почему размер не по табличной части? | Встроенный метод платформы считает размер объекта метаданных целиком; размера отдельной таблицы СУБД он не даёт. Число записей табличной части можно получить запросом, в списке размеров считается основная таблица. |
| Что с клиент-серверной базой? | Не проверялось: тестовые базы файловые. Нужен пользователь с правом администрирования, потому что структуру хранения платформа отдаёт только ему. |
Что именно проверялось
- Автотест на трёх копиях баз (УНФ 3.0.14.140 с данными, пустая УНФ, БП 3.0.205.22): от 60 (пустая УНФ) до 85 проверок на базу, включая отрицательные (несуществующая таблица, несуществующий GUID, пустой справочник).
- Поиск ссылки по пяти формам записи для справочников и документов; сверка числа записей с независимым запросом, размера — с прямым вызовом метода платформы; «где используется» — с НайтиПоСсылкам.
- Форма прокликана в тонком клиенте 8.5 на УНФ: поиск по SQL, карточка объекта, открытие объекта, карта хранения, размеры, выгрузка, «где используется». В БП форма открывается в клиенте; поиск, размеры и «где используется» на БП проверены программным автотестом, но не кликами.
- Не проверялось: веб-клиент, платформа 8.3, клиент-серверные базы на PostgreSQL и MS SQL Server, пользователи без права администрирования, конфигурации кроме УНФ 3.0 и БП 3.0.
Версия 1.0.0.1. Файл — внешняя обработка (.epf), код открыт; можно запускать из файла или подключить как дополнительную обработку БСП (безопасный режим при подключении отключается: методы платформы в нём недоступны).
Проверено на следующих конфигурациях и релизах:
- Управление нашей фирмой, редакция 3.0, релизы 3.0.14.140
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.205.22
Вступайте в нашу телеграмм-группу Инфостарт