Skip to content

Latest commit

 

History

History

ПомощникРаботыСИдентификаторамиОбъектов

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Помощник работы с идентификаторами объектов

Инструмент для расширенного анализа идентификаторов объектов.

Материалы по другим темам Вы можете найти на сайте ypermitin.github.io, а новости по проектам или новым материалам в Telegram-канале.

Состав

  • media - медиафайлы для документации данной разработки.
  • src - файлы исходного кода.

Назначение и возможности

Инструмент предназначен для получения расширенной информации о ссылочных значениях объектов информационной базы. Говоря простым языком - обработка позволяет получить уникальный идентификатор ссылки и еще расширенный набор информации.

Главное окно обработки

Основными возможностями инструмента являются:

  • Получение информации о ссылке на объект информационной базы:
    • Уникальный идентификатор
    • Навигационную ссылку
    • Уникальный идентификатор в терминах SQL Server
    • Уникальный идентификатор в терминах PostgreSQL
    • Представление "битой" ссылки
  • Дополнительная информация о типе ссылки:
    • Уникальный идентификатор типа
    • Числовой идентификатор типа ссылки
    • Полное имя объекта метаданных
    • Идентификатор типа ссылки в терминах SQL Server и PostgreSQL
    • Дата создания ссылки из уникального идентификатора Расширенная информация о ссылке и типе данных
  • Поиск ссылки и уникальному идентификатору (в т.ч. в терминах SQL Server и PostgreSQL, навигационной ссылке и представлению "битой" ссылки.
  • Поиск имя метаданных и числового идентификатора типа по уникальному идентификатору типа.

Требования

Основные требования к работе:

  • Платформа 1С версии 8.3.5 и выше.
  • Режим работы не имеет значения (клиент-серверный или файловая база. СУБД не имеет значения).
  • Только управляемые формы. Для использования в обычном приложении используйте известные обходные пути.

Принцип работы

Все реализовано штатными возможностями платформы 1С без каких-либо подключений к базе данных напрямую или внешних компонент.

Примеры использования

Рассмотрим несколько случаев применения обработки.

Получение уникального идентификатора

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

Поиск униального идентификатора

GUID у Вас в кармане! причем есть также идентификаторы в терминах СУБД, которые можно использовать в прямых SQL-запросах к базе. В нашем примере запросы выглядели бы так.

Вот так можно использовать фильтр по ссылке для прямого запроса к базе SQL Server:

SELECT
	*
FROM [_REFERENCE230] AS T
WHERE [_IDRRef] = 0xB3360011955CBA6B11DF722051ED67A3

И практически также для PostgreSQL:

SELECT
    *
FROM _REFERENCE230 AS T
WHERE _IDRRef = '\xB3360011955CBA6B11DF722051ED67A3'

Все просто, не так ли?

Еще одной вишенкой на торт будет возможность получения уникального идентификатора для значений перечисления. Да, эти значения не имеют метод "УникальныйИдентификатор()", но есть другие пути его получения. А после можно его хоть в прямых SQL-запросах к базе начать использовать. Вот так выглядит получение GUID'а для значений перечисления.

Получение GUID для перечислений

Все это мне ни раз пригождалось, когда нужно было:

  • Из ошибок от SQL Server найти значения из запроса по GUID'ам
  • Поиск существующих элементов в базе для идентификатора. Например, для поиска причин ошибок с дублирующейся ссылкой.
  • Изучение работы платформы 1С в некоторых ситуациях.

Изначально именно для этой функции эта обработка создавалась.

Поиск ссылок по GUID

Обратная ситуация - у Вас есть уникальный идентификатор, но при этом неизвестно какая ссылка за ним скрывается. С помощью обработки Вы можете найти все ссылки, которые имеют искомый GUID. Причем поиск можно выполнять как по стандартному GUID'у платформы 1С, так и по значениям идентификатора на стороне СУБД.

Пару кликов и все готово! Если будет найдено несколько ссылок, то просмотр переключится в режим списка.

5. Режим списка

Здесь Вы можете работать с полями также, как и в предыдущем случае.

Зачем идентификаторы типа

Инструмент содержит дополнительную информацию о типе ссылки: уникальный идентификатор типа, числовой идентификатор и имя метаданных. С именем метаданных все ясно, а по поводу остального нужно пояснить.

Числовой идентификатор - Вы могли его видеть в представлении бито ссылки. Например, вот здесь:

<Объект не найден> (230:51ed67a3-7220-11df-b336-0011955cba6b)

число 230 - это как-раз и есть числовой идентификатор типа. Но что это и зачем он нужен? Если мы посмотрим на структуру хранения в базе данных, то увидим, что справочник "Организации" имеет имя таблицы "_REFERENCE230".

Вот как-раз число в имени таблицы и является числовым идентификатором типа. Он может пригодиться в разборе нестандартных ошибок платформы или для анализа структуры базы.

Что касается уникального идентификатора типа, то он также может пригодиться для диагностики сложных ситуация и ошибок. Например, ошибок вида "Неизвестный идентификатор типа <ЗначениеИдентфикатора> и другое. Это уже совсем другая история.

В общем, информация дополнительная и может быть полезна в особых случаях.