К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Как получить уникальный идентификатор интерфейса

WAR
0 - 03.10.2016 - 05:19
Необходимо получить уникальное представление интерфейса.
В виде ГУИД, или любом другом. Наименование не подходит, т.к. может быть изменено.
ЗначениеВСтрокуВнутр() для любого интерфейса возвращает одинаковое значение.



Гость
1 - 03.10.2016 - 06:50
А зачем менять наименование интерфейса? В чем сакральный смысл ?
WAR
2 - 03.10.2016 - 06:54
Хм. Ну если так думать, то можно додумать до того, что вообще зачем что-то менять?
Ну а вдруг придётся?
И на самом деле меня интересует возможность получения уникального идентификатора объекта метаданных.
Можете что-нибудь подсказать по теме?
3 - 03.10.2016 - 07:31
(0) Уверен, что именно "объекта"?
вообще-то, у всех прикладных объектов есть метод УникальныйИдентификатор(), получаемый через ссылку на объект, а вот у интерфейса, а именно у управляемой формы, есть свойство с тем же именем:
УправляемаяФорма (ManagedForm)
УникальныйИдентификатор (UUID)

Использование:
Только чтение.

Описание:
Тип: УникальныйИдентификатор.
Уникальный идентификатор экземпляра формы.

Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
WAR
4 - 03.10.2016 - 07:40
Определился способ получения внутренних идентификаторов любого объекта конфигурации.
Навела на мысль функция конфигурации "Выгрузить файлы конфигурации...". Вся конфигурация вываливается в XML-файлы.
Проблема в том, что не могу создать нужный тип данных XDTO.

МассивИмен = Новый Массив;
МассивИмен.Добавить("http://v8.1c.ru/8.3/MDClasses");

ПакетыХДТО = ФабрикаXDTO.ЭкспортСхемыXML(МассивИмен);
ФабрикаХДТО = Новый ФабрикаXDTO(ПакетыХДТО);

ЗаписьХМЛ = Новый ЗаписьXML;
ЗаписьХМЛ.ОткрытьФайл("C:\test.xml");

ТипХМЛ = ФабрикаХДТО.Тип("http://v8.1c.ru/8.3/MDClasses","MetaDataObject.Interface");
ТипХДТО = ФабрикаХДТО.Создать(ТипХМЛ);

ТипХМЛ возвращается равным "Неопределено".
При экспорте пакетов XDTO возвращается пустой набор схем.
Есть у кого-нибудь файл с данной схемой?
WAR
5 - 03.10.2016 - 07:43
Цитата:
Сообщение от oops! Посмотреть сообщение
(0) Уверен, что именно "объекта"? вообще-то, у всех прикладных объектов есть метод УникальныйИдентификатор(), получаемый через ссылку на объект, а вот у интерфейса, а именно у управляемой формы, есть свойство с тем же именем: УправляемаяФорма (ManagedForm) УникальныйИдентификатор (UUID) Использование: Только чтение. Описание: Тип: УникальныйИдентификатор. Уникальный идентификатор экземпляра формы. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
То, про что вы пишете - это уникальный идентификатор самой управляемой формы. Когда управляемая форма создается, ей назначается уникальный идентификатор.

А меня интересует уникальный идентификатор объекта конфигурации "Интерфейс". Он находится в ветке конфигурации "Общие" - "Интерфейсы".
Гость
6 - 03.10.2016 - 07:57
По моему имя интерфейса и есть его уникальный идентификатор ) И не надо его менять ) Может конечно и есть внутри конфиги и UID интерфейса, но хоть убей не вижу в нем прикладного значения для программиста. Вам для чего это надо ?) UID других объектов метаданных тоже как то используете ?
WAR
7 - 03.10.2016 - 08:06
На моей практике приличное число раз менял имена объектов метаданных (не интерфейсов, правда), чтобы имена соответствовали пользовательскому представлению.
В основном, конечно, отчеты и обработки, но были и документы, и справочники.
Не дам гарантии, что не будут изменены названию интерфейсов. Поэтому завязываться на имя, ну для меня это крайний вариант, который задействовать не хочу. Тем более, что есть возможность получить все-таки идентификатор.
Гость
8 - 03.10.2016 - 08:21
(7)Понятно, что изменить можно что угодно, но по моему Вы неправы, так как имя документа, справочника, интерфейса - это и есть уникальный идентификатор для прикладного разработчика, это не код элемента справочника, и не номер документа. Вы же пишете запрос и не боитесь написать "РеализацияТоваровУслуг" в страхе, что имя этого документаизменится
Гость
9 - 03.10.2016 - 08:25
Вам также может прийти в голову удалить интерфейс и создать его заново, в этом случае его GUID изменится. На мой взгляд Вы затеяли совершенно пустое дело ) Может я и неправ. Поменяете имя интерфейса, поменяете и модули, где на него ссылки. Не так уж и часто приходится ссылаться на интерфейсы. Но сама 1С не стесняется писать именно их имена )
WAR
10 - 03.10.2016 - 08:33
Цитата:
Сообщение от USSR Посмотреть сообщение
Вам также может прийти в голову удалить интерфейс и создать его заново, в этом случае его GUID изменится. На мой взгляд Вы затеяли совершенно пустое дело ) Может я и неправ. Поменяете имя интерфейса, поменяете и модули, где на него ссылки. Не так уж и часто приходится ссылаться на интерфейсы. Но сама 1С не стесняется писать именно их имена )
Я с вами согласен, если речь про типовой функционал. Тут что-то менять в именах метаданных себе дороже.
И не согласен, когда речь идет про НЕтиповой функционал.
Здесь как захочет заказчик (или архитектор БД в лице меня). Поэтому я считаю целесообразным завязаться именно на уникальный идентификатор.
11 - 04.10.2016 - 07:24
(5) Ты некромант? Завязывай програмить "обычное приложение". В управляемом приложении уже нет общего объекта "Интерфейс".
WAR
12 - 04.10.2016 - 08:44
)))) Не говорите это тем, у кого УПП, знатно переписанная "под себя".
Гость
13 - 04.10.2016 - 11:38
12-WAR > Если "под себя", то откуда пламенная страсть знать ГУИД интерфейса?
WAR
14 - 04.10.2016 - 12:06
Цитата:
Сообщение от VZ Посмотреть сообщение
12-WAR > Если "под себя", то откуда пламенная страсть знать ГУИД интерфейса?
Ну хочется мне решить данную задачу данным способом.
Заодно узнать, как узнать внутренний ИД объекта, простите за тавтологию.
Гость
15 - 04.10.2016 - 13:13
дурь это, а не желание решить задачу. Мы и задачу то не услышали, может и не надо ее решать, особенно таким способом. Упертость далеко не всегда полезна. Представляю тексn модуля :
Если UIDИнтерфейса = "a29ef903-a27a-4d34-ae00-0cd5d219c0e7" Тогда ...
Жесть ))) Так хочет архитектор БД )
16 - 04.10.2016 - 14:50
Цитата:
Сообщение от USSR Посмотреть сообщение
Если UIDИнтерфейса = "a29ef903-a27a-4d34-ae00-0cd5d219c0e7" Тогда ...
И далее перебор всех возможных вариантов? Платят за строки кода?
17 - 04.10.2016 - 20:34
(15)+100500 :)
(0) По поводу GUID уясни для себя одну простую весчь:
1. Метод "УниверсальныйИдентификатор" доступен только у ссылок на прикладные объекты конфигурации (не у всех), т.е. на те объекты, которые могут быть созданы пользователем изнутри самой БД и представляют собой данные, наполняющие эту БД. Объекты самой конфигурации не могут иметь GUID, т.к. это не имеет смысла, доступ к ним осуществляется по уникальным именам, как они заданы в метаданных. Если ты это имя меняешь, то меняй и код программы.
2. Помимо метода "УниверсальныйИдентификатор" есть ещё общий объект с тем же именем, а также есть свойство у управляемой формы.
Вот, собственно, и всё.
WAR
18 - 05.10.2016 - 06:57
Цитата:
Сообщение от USSR Посмотреть сообщение
Мы и задачу то не услышали, может и не надо ее решать, особенно таким способом
А я не хочу озвучивать ВСЮ задачу, я считаю это излишним. Я не хочу обсуждать саму задачу, и почему я выбрал именно такой способ для её реализации. Мне нужно получить конкретный ответ на конкретный вопрос от компетентных людей, а не помощь психоаналитика.
Грубо говоря есть вопрос, на который я пока не знаю ответ, я уверен, что он есть. И я его нашёл.

(17) Я, наверное, открою для Вас Америку, но уникальные индетификаторы имеются не только у объектов ссылочных типов (элементы справочников, документы и т.п.), но и у абсолютно всех объектов метаданных. У некоторых их можно вытащить без проблем; у некоторых с проблемами, но возможно; у некоторых пока не знал как, теперь знаю.
Гость
19 - 05.10.2016 - 09:50
(18)Удачи Вам ) Ищите и обрящете. Вытаскивайте, затаскивайте, утаскивайте. Вы глухой человек. Упертый, не приведщий ни одного аргумента в свою пользу, а потом мне лично неинтересный. Ничего личного. Но все таки совет - займитесь реальными задачами
Гость
20 - 05.10.2016 - 09:51
в том то и дело, что Вам нужна помощь психоаналитика. Вы зациклились))
WAR
21 - 05.10.2016 - 10:35
(19) Как это типично для "специалистов": не понять сути, попытаться перевести разговор в другую плоскость, всё обосрать и сбежать.
Ну и Вам, в таком случае, удачи.
Гость
22 - 05.10.2016 - 11:01
никто ничего не обсирал. Сути проблемы не было, так проблемы ваще не было. Вы же так и не сказали зачем Вам это надо, может можно все иначе разрулить. Ну то что что мы специалисты в кавычках, ну что тут поделать. Главное Вам в кавычки не попасть. Но Вы занимаетесь херней, а не задачи решаете) Не завидую Вашему УПП который весь под себя ) УПП под себя - это уже некоторый диагноз
Гость
23 - 05.10.2016 - 11:04
и еще раз для непонятливых - имя интерфейса - это и есть его уникальный идентификатор. Также как и вида справочника, документа, регистра сведений, накоплений и тд. Продолжайте упираться рогом )
WAR
24 - 05.10.2016 - 11:11
Уважаемый USSR, если для вас суть проблемы "получить внутренний идентификатор объекта метаданных, конкретно: интерфейса" это не суть проблемы, то сочинения писать я не собираюсь. Как и не хочу объяснять зачем мне это надо.
Если бы было не надо, поверьте, я бы не стал дурью маяться, и спрашивать совета просто ради того, чтобы спросить.
Есть конкретный вопрос - нужен конкретный ответ.
Знаете ответ - напишите. Не знаете ответа - не пытайтесь начать срач. Как и не пытайтесь играть в Кашпировского и ставить диагнозы на расстоянии.
WAR
25 - 05.10.2016 - 11:13
Цитата:
Сообщение от USSR Посмотреть сообщение
и еще раз для непонятливых - имя интерфейса - это и есть его уникальный идентификатор
Вы выгрузите конфигурацию в XML. Тогда увидите, что такое уникальный идентификатор.
Гость
26 - 05.10.2016 - 11:16
(25)я ж не говорю что его нет ) Просто он никому даром не нужен с точки зрения его практической пользы. Вы немножко ...встряхнитесь...Может и Вам не нужен ?)
WAR
27 - 05.10.2016 - 11:31
(26) - Видишь суслика?
- Нет.
- А он есть.
Это по поводу практической пользы. Если Вы не видите её, это не значит что она отсутствует.

Мне на практике несколько раз приходилось несколько раз копаться в истории изменения конфигураций с анализом древних cf-шников (опять спросите - зачем?). Опять же сталкивался с изменением названий нетиповых объектов метаданных (документы, справочники и регистры).
Если опираться только на название - как вы узнаете как раньше назывался тот или иной объект?
28 - 05.10.2016 - 11:43
Цитата:
Сообщение от WAR Посмотреть сообщение
как вы узнаете как раньше назывался тот или иной объект?
Действительно, забавная история :)
Забавная, когда надо узнавать как эту нетиповую бобоську называл предыдущий архитектор.

Цитата:
Сообщение от WAR Посмотреть сообщение
У некоторых их можно вытащить без проблем; у некоторых с проблемами, но возможно; у некоторых пока не знал как, теперь знаю.
Вообще раньше считалось хорошим тоном озвучивать найденное решение.
29 - 05.10.2016 - 11:48
Мне кажется автору хочется разбирать конфигурацию 1с как контейнер. Тут нужны внешние инструменты. На инфостарте было несколько штук с описаниями, что откуда выковыривается.
WAR
30 - 05.10.2016 - 11:55
(28) Пока всё на уровне идеи, но практически на 100% уверен, что сработает. Сделать свою XSD схему, по ней выгрузить интересующий объект метаданных. Полученный результат открываем через DOM-модель, получаем некий абстрактный объект с набором свойств. Забираем значений свойства UUID.
Попробовал на основе данных выгрузки конфигурации в файлы создать XSD схему = не взлетело. Ругается на неверное описание схемы. Времени нет сейчас с этим поплотнее повозиться, на выходных думаю заняться.
Решение (если получится) опубликую здесь.

(29) Вы в общем правы. Один внешний инструмент точно есть - выгрузка конфы в файлы. Потом хоть заанализироваться можно. ))) Но гораздо интереснее все получать из кода.
Гость
31 - 05.10.2016 - 12:30
Цитата:
Сообщение от WAR Посмотреть сообщение
А я не хочу озвучивать ВСЮ задачу, я считаю это излишним.
считаю излишним озвучивать ответ на вопрос ТС
WAR
32 - 05.10.2016 - 12:32
Цитата:
Сообщение от Helen1986 Посмотреть сообщение
считаю излишним озвучивать ответ на вопрос ТС
Ну вот и тролли, наконец, подтянулись.
Гость
33 - 05.10.2016 - 12:36
34 - 05.10.2016 - 12:52
Цитата:
Сообщение от Helen1986 Посмотреть сообщение
считаю излишним озвучивать ответ на вопрос ТС
я угадаю этот ответ с 7 букв...
WAR
35 - 05.10.2016 - 12:58
Цитата:
Сообщение от bma1 Посмотреть сообщение
Цитата: Сообщение от Helen1986 считаю излишним озвучивать ответ на вопрос ТС я угадаю этот ответ с 7 букв...
Ответ: "Я не знаю" - 7 букв ))))
Гость
36 - 05.10.2016 - 13:12
(35) ответ неверный - не учтены пробелы. Они тоже знаки
Гость
37 - 05.10.2016 - 14:32
Теперь мне по ночам будет снится огромный суслик с 36 разрядным, уникальным именем его вида ))
38 - 05.10.2016 - 14:55
Цитата:
Сообщение от USSR Посмотреть сообщение
огромный суслик с 36 разрядным, уникальным именем его вида
megalonoctarodentis existencialae U.


К списку вопросов






Copyright ©, Все права защищены