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

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

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

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Evg-Lylyk 2884 24.01.20 12:57 Сейчас в теме
Хорошо
Еще можно добавить дату создания (определяемую) по UID
A_Max; BigB; SirAlexIT; Fox-trot; YPermitin; +5 Ответить
2. YPermitin 8265 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 8265 24.01.20 18:35 Сейчас в теме
(6) содержательно.

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

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

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

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

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

Ну то есть задача у того инструмента другая вроде как.
21. kuzyara 1000 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 8265 31.01.20 11:43 Сейчас в теме
(21) это отличный комментарий!

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

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

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

Вакансии

Программист 1С (Оперативный учет)
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист по 1С:ЗУП
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:Бухгалтерии
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Ведущий программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день

Специалист 1 категории (Программист 1С ФЗД)
Фрязино
зарплата от 110 000 руб.
Полный день