0. YPermitin 7880 22.01.20 23:49 Сейчас в теме

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

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

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Evg-Lylyk 2847 24.01.20 12:57 Сейчас в теме
Хорошо
Еще можно добавить дату создания (определяемую) по UID
A_Max; BigB; SirAlexIT; Fox-trot; YPermitin; +5 Ответить
2. YPermitin 7880 24.01.20 12:58 Сейчас в теме
(1) крутое предложение!

Записал.
6. PerlAmutor 56 24.01.20 18:01 Сейчас в теме
(2) Помимо даты там можно вытащить еще MAC адрес машины на которой была сгенерирована ссылка. Из пожеланий - открытие произвольной формы динамического списка объекта определенного типа, где одной из колонок была бы дата полученная из ссылки. Плюс к этому возможность автоматического открытия формы Журнала Регистрации с переданным отбором по этой дате и ссылке.
Такой инструмент здорово облегчит проведение расследований, чтобы установить автора/создателя объекта в базе.

Версионирование дело хорошее, но оно не всегда включено или настроено. И не всегда оправдано с точки зрения производительности.

В качестве еще одного вариант добавления фишки - добавить на форму обработки события и переменные для работы с подключаемым оборудованием (БСП), чтобы отлаживать работу печатных форм на которых выводятся штрих-коды. У нас бывают ситуации, когда распечатанный документ есть, а в базе документа уже нет (помечают на удаление после распечатывания и подписи у руководителя). В таком случае как раз и приходится лезть в журнал регистрации для поиска того кто пометил документ на удаление. Если добавить функцию, которая будет получать штрих-код со сканера, определять дату по ссылке и делать снова отбор по ЖР, то это бы также облегчило проведение расследований.
A_Max; lunjio; BigB; acanta; -vito-; YPermitin; +6 Ответить
8. YPermitin 7880 24.01.20 18:35 Сейчас в теме
(6) содержательно.

Записал себе. Добавил issues, так сказать :)
3. acanta 73 24.01.20 14:50 Сейчас в теме
Фантастика. Спасибо огромное!
Правильно ли я понимаю, что идентификатор одного и того же объекта в sql и postgres разные и сконвертировать базу sql в postgres или наоборот не получится средствами СУБД, даже если они существуют, и поможет только выгрузка в dt, с соответствующим ограничением файловой системы на размер файла?
YPermitin; +1 Ответить
4. YPermitin 7880 24.01.20 15:32 Сейчас в теме
(3) идентификаторы в SQL Server и PostgreSQL одинаковые фактически, просто хранятся немного по разному.
Сконвертировать базу можно. Так даже делают, когда выгрузка / загрузка через DT не помогает. Но такая конвертация это совсем другая история.
5. Rustig 1373 24.01.20 16:07 Сейчас в теме
а где может пригодиться? так-то интересный инструмент...
YPermitin; +1 Ответить
7. YPermitin 7880 24.01.20 18:28 Сейчас в теме
(5) я описал где использую в публикации. Если кратко, то:
1. Поиск ссылок в базе по GUID (это либо идентификатор как в 1С, обычно такое при диагностике обменов пригождается. Либо это поиск ссылок по идентификатору SQL Server. Последнее пригождается, когда есть запрос и значение его параметров, но не понятно что это за значения).
2. Когда нужен GUID во время разработки.
3. Сложные случаи диагностики работы. С тем же типом данных как в статье.

В статье еще добавил ссылки на другие публикации получения GUID'ов. То есть 1 пункт чаще всего у разработчиков возникает.
10. Rustig 1373 24.01.20 19:10 Сейчас в теме
(7)
Поиск ссылок в базе по GUID

я извиняюсь, но я не вижу сам поиск.
поиск по данным /метаданным? по всей базе, по документам, по справочникам? по регистрам?
те же самые вопросы отнесу к запросам - есть значение, а где поиск происходит?
не вижу кнопки "Поиск" .... :)
11. YPermitin 7880 24.01.20 19:22 Сейчас в теме
(10) вводите GUID и он находит ссылочное значение. Ссылочное значение можно найти только в ссылочных объектах, так что регистры отпадают :)

Кнопки поиск не надо, ввели и обработка все показала. Смотрите анимацию в публикации :)
13. Rustig 1373 24.01.20 19:35 Сейчас в теме
(11) :) ясно, поиска не происходит... смутило слово "поиск"....
просто показывает соответствие конкретной ссылке - свой уид.
ок, спасибо, понятно, красиво сделано.
9. -vito- 436 24.01.20 19:04 Сейчас в теме
Юрий, и снова радуете отличным инструментом!
Особенно меня порадовал (и как же я сам не догадался так сделать-то...) поиск ссылочных значений имея только уникальный идентификатор или значение из СУБД, без обозначения типа объекта. В похожей обработке мне приходилось тип объекта определять по его номеру. Ваш вариант с перебором менеджеров гораздо удобнее!
12. YPermitin 7880 24.01.20 19:23 Сейчас в теме
(9) спасибо!

Рад, что принес пользу :)
14. triviumfan 14 24.01.20 21:07 Сейчас в теме
Вроде ничего нового, но все в одной обработке. Наверное удобно.
Как уид перечисления ищется? ЗначениеВСтрокуВнутр()?
ЗЫ: дороговато для такой простенькой обработки
BigB; YPermitin; +2 Ответить
15. YPermitin 7880 24.01.20 21:09 Сейчас в теме
(14) никто не заставляет вас скачивать :)
16. triviumfan 14 24.01.20 22:23 Сейчас в теме
(15)
Как уид перечисления ищется? ЗначениеВСтрокуВнутр()?
17. Xershi 927 25.01.20 10:08 Сейчас в теме
Уже давно есть инструмент как для поиска, так и для восстановления Поиск и восстановление битых ссылок (обычная и управляемая форма) 8.2-8.3.
Ну и как вы поняли нет ограничений на платформу и режим запуска.
YPermitin; +1 Ответить
18. YPermitin 7880 25.01.20 10:23 Сейчас в теме
(17) ох уж эта реклама в комментариях. Давно есть, а функционал то другой.
19. PLAstic 249 27.01.20 09:23 Сейчас в теме
(18) Я, может, тоже не туда посмотрел, но почему "другой"? Всё то же есть вроде бы.
YPermitin; +1 Ответить
20. YPermitin 7880 27.01.20 10:23 Сейчас в теме
(19) поиск по идентификаторам СУБД SQL Server и PostgreSQL, инфо о навигационной ссылке, идентификаторы перечислений, идентификаторы типов.

Ну то есть задача у того инструмента другая вроде как.
21. kuzyara 983 31.01.20 11:32 Сейчас в теме
У вас в обработке выводится "Идентификатор типа".
Хотя на самом деле это идентификатор типа ссылки.
Например, после создания нового справочника Номенклатура, становятся доступны следующие типы данных:
СправочникМенеджер.Номенклатура;
СправочникСсылка.Номенклатура;
СправочникОбъект.Номенклатура;
СправочникВыборка.Номенклатура;
СправочникСписок.Номенклатура.
(с) https://v8.1c.ru/platforma/sistema-tipov/

Таким образом для одного объекта метаданных вида справочник определяется 5 типов.

Для константы 2 типа:
КонстантаМенеджер.<Имя константы>
КонстантаМенеджерЗначения.<Имя константы>


Для регистра расчёта 6 типов:
РегистрРасчетаМенеджер.<Имя регистра расчета>
РегистрРасчетаНаборЗаписей.<Имя регистра расчета>
РегистрРасчетаВыборка.<Имя регистра расчета>
РегистрРасчетаЗапись.<Имя регистра расчета>
РегистрРасчетаКлючЗаписи.<Имя регистра расчета>
РегистрРасчетаСписок.<Имя регистра расчета>


В данной обработке "идентификтор типа" определяется через ЗначениеВСтрокуВнутр(СсылкаНаОбъект) что является эквивалентом ЗначениеВСтрокуВнутр(ТипЗнч(СсылкаНаОбъект)) или ЗначениеВСтрокуВнутр(Тип("СправочникСсылка.Организации"))(судя по первому скрину), то есть и там и там и там первым будет идти идентификатор типа ссылки.
Пример:
СсылкаНаОбъект = Справочники.Организации.НайтиПоНаименованию("");
// для ссылки
Строка1 = ЗначениеВСтрокуВнутр(Тип("СправочникСсылка.Организации"));// {"T",0e283f00-16f5-4700-b0f6-5206e4fefcf3}
Строка2 = ЗначениеВСтрокуВнутр(ТипЗнч(СсылкаНаОбъект));             // {"T",0e283f00-16f5-4700-b0f6-5206e4fefcf3}
Строка3 = ЗначениеВСтрокуВнутр(СсылкаНаОбъект);                     // {"#",0e283f00-16f5-4700-b0f6-5206e4fefcf3,65:a19abcaec539291a11ea44007b879c3d}
// для объекта
Строка4 = ЗначениеВСтрокуВнутр(Тип("СправочникОбъект.Организации"));     // {"T",0de1dfa4-0add-4e01-8f3c-aad080c6b1f3}
Строка5 = ЗначениеВСтрокуВнутр(ТипЗнч(СсылкаНаОбъект.ПолучитьОбъект())); // {"T",0de1dfa4-0add-4e01-8f3c-aad080c6b1f3}
// для выборки
Строка6 = ЗначениеВСтрокуВнутр(Тип("СправочникВыборка.Организации"));     // {"T",6f64dca0-a3c7-48ff-ac3e-b470c7ec9c71}
Строка7 = ЗначениеВСтрокуВнутр(ТипЗнч(Справочники.Организации.Выбрать()));// {"T",6f64dca0-a3c7-48ff-ac3e-b470c7ec9c71}
// и т.д.
Показать

Идентификатор же объекта метаданных программно получить нельзя, только выгрузкой конфигурации в файлы (поле uuid), например вот файл Организации.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Met aDataObject xmlns="http://v8.1c.ru/8.3/MDClasses">
	<Catalog uuid="b3f7df39-dc92-457a-8604-eb57b6a7a403">
		<InternalInfo>
			<xr:GeneratedType name="CatalogObject.Организации" category="Object">
				<xr:TypeId>0de1dfa4-0add-4e01-8f3c-aad080c6b1f3</xr:TypeId>
				<xr:ValueId>6e7e462d-c48f-479c-bd15-38f2df11a8d3</xr:ValueId>
			</xr:GeneratedType>
			<xr:GeneratedType name="CatalogRef.Организации" category="Ref">
				<xr:TypeId>0e283f00-16f5-4700-b0f6-5206e4fefcf3</xr:TypeId>
				<xr:ValueId>ec7587ff-5deb-40d5-8155-f73f1623f9b6</xr:ValueId>
			</xr:GeneratedType>
			<xr:GeneratedType name="CatalogSelection.Организации" category="Selection">
				<xr:TypeId>6f64dca0-a3c7-48ff-ac3e-b470c7ec9c71</xr:TypeId>
				<xr:ValueId>89e18e38-ccfb-483a-b74d-efe11d5a34fb</xr:ValueId>
			</xr:GeneratedType>
			<xr:GeneratedType name="CatalogList.Организации" category="List">
				<xr:TypeId>1e0465a8-a6c3-42ad-809d-5d4cf7e4e9a4</xr:TypeId>
				<xr:ValueId>468436d7-7488-453d-ba93-d8f64f6557b1</xr:ValueId>
			</xr:GeneratedType>
			<xr:GeneratedType name="CatalogManager.Организации" category="Manager">
				<xr:TypeId>3911ed42-c1e2-45cf-908e-9ca0cbc280a4</xr:TypeId>
				<xr:ValueId>c170b256-4b17-461c-ac53-15ba90593580</xr:ValueId>
			</xr:GeneratedType>
		</InternalInfo>
Показать

Или из буфера обмена (см. скриншот)

Таким образом, надпись "Идентификатор типа" считаю не совсем корректной и: либо добавить в обработку выбор из полного списка прикладных типов объекта; либо всё же указать что это идентификатор типа ссылки

ps: я знаю что вы уже всё это знаете, просто хочу поделиться информацией. Извините за многословность ;)
Прикрепленные файлы:
YPermitin; +1 Ответить
22. YPermitin 7880 31.01.20 11:43 Сейчас в теме
(21) это отличный комментарий!

Да, все так, это идентификатор типа ссылки :)

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

+ Вам, добрый человек! :)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Специалист внедрения и сопровождения 1С
Москва
зарплата от 80 000 руб.
Полный день

Product Owner (Менеджер по продукту 1С)
Москва
зарплата от 100 000 руб. до 170 000 руб.
Полный день

Тим лид по разработке 1С (Team Lead 1С)
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день