Как получить уникальный идентификатор интерфейса Необходимо получить уникальное представление интерфейса. В виде ГУИД, или любом другом. Наименование не подходит, т.к. может быть изменено. ЗначениеВСтрокуВнутр() для любого интерфейса возвращает одинаковое значение. |
А зачем менять наименование интерфейса? В чем сакральный смысл ? |
Хм. Ну если так думать, то можно додумать до того, что вообще зачем что-то менять? Ну а вдруг придётся? И на самом деле меня интересует возможность получения уникального идентификатора объекта метаданных. Можете что-нибудь подсказать по теме? |
(0) Уверен, что именно "объекта"? вообще-то, у всех прикладных объектов есть метод УникальныйИдентификатор(), получаемый через ссылку на объект, а вот у интерфейса, а именно у управляемой формы, есть свойство с тем же именем: [b]УправляемаяФорма (ManagedForm)[/b] [b]УникальныйИдентификатор (UUID)[/b] [b]Использование:[/b] Только чтение. [b]Описание:[/b] Тип: УникальныйИдентификатор. Уникальный идентификатор экземпляра формы. [b]Доступность:[/b] Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер). |
Определился способ получения внутренних идентификаторов любого объекта конфигурации. Навела на мысль функция конфигурации "Выгрузить файлы конфигурации...". Вся конфигурация вываливается в 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 возвращается пустой набор схем. Есть у кого-нибудь файл с данной схемой? |
[quote=oops!;43000287] (0) Уверен, что именно "объекта"? вообще-то, у всех прикладных объектов есть метод УникальныйИдентификатор(), получаемый через ссылку на объект, а вот у интерфейса, а именно у управляемой формы, есть свойство с тем же именем: УправляемаяФорма (ManagedForm) УникальныйИдентификатор (UUID) Использование: Только чтение. Описание: Тип: УникальныйИдентификатор. Уникальный идентификатор экземпляра формы. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер). [/quote] То, про что вы пишете - это уникальный идентификатор самой управляемой формы. Когда управляемая форма создается, ей назначается уникальный идентификатор. А меня интересует уникальный идентификатор объекта конфигурации "Интерфейс". Он находится в ветке конфигурации "Общие" - "Интерфейсы". |
По моему имя интерфейса и есть его уникальный идентификатор ) И не надо его менять ) Может конечно и есть внутри конфиги и UID интерфейса, но хоть убей не вижу в нем прикладного значения для программиста. Вам для чего это надо ?) UID других объектов метаданных тоже как то используете ? |
На моей практике приличное число раз менял имена объектов метаданных (не интерфейсов, правда), чтобы имена соответствовали пользовательскому представлению. В основном, конечно, отчеты и обработки, но были и документы, и справочники. Не дам гарантии, что не будут изменены названию интерфейсов. Поэтому завязываться на имя, ну для меня это крайний вариант, который задействовать не хочу. Тем более, что есть возможность получить все-таки идентификатор. |
(7)Понятно, что изменить можно что угодно, но по моему Вы неправы, так как имя документа, справочника, интерфейса - это и есть уникальный идентификатор для прикладного разработчика, это не код элемента справочника, и не номер документа. Вы же пишете запрос и не боитесь написать "РеализацияТоваровУслуг" в страхе, что имя этого документаизменится |
Вам также может прийти в голову удалить интерфейс и создать его заново, в этом случае его GUID изменится. На мой взгляд Вы затеяли совершенно пустое дело ) Может я и неправ. Поменяете имя интерфейса, поменяете и модули, где на него ссылки. Не так уж и часто приходится ссылаться на интерфейсы. Но сама 1С не стесняется писать именно их имена ) |
[quote=USSR;43000451] Вам также может прийти в голову удалить интерфейс и создать его заново, в этом случае его GUID изменится. На мой взгляд Вы затеяли совершенно пустое дело ) Может я и неправ. Поменяете имя интерфейса, поменяете и модули, где на него ссылки. Не так уж и часто приходится ссылаться на интерфейсы. Но сама 1С не стесняется писать именно их имена ) [/quote] Я с вами согласен, если речь про типовой функционал. Тут что-то менять в именах метаданных себе дороже. И не согласен, когда речь идет про НЕтиповой функционал. Здесь как захочет заказчик (или архитектор БД в лице меня). Поэтому я считаю целесообразным завязаться именно на уникальный идентификатор. |
(5) Ты некромант? Завязывай програмить "обычное приложение". В управляемом приложении уже нет общего объекта "Интерфейс". |
)))) Не говорите это тем, у кого УПП, знатно переписанная "под себя". |
12-WAR > Если "под себя", то откуда пламенная страсть знать ГУИД интерфейса? |
[quote=VZ;43006988] 12-WAR > Если "под себя", то откуда пламенная страсть знать ГУИД интерфейса? [/quote] Ну хочется мне решить данную задачу данным способом. Заодно узнать, как узнать внутренний ИД объекта, простите за тавтологию. |
дурь это, а не желание решить задачу. Мы и задачу то не услышали, может и не надо ее решать, особенно таким способом. Упертость далеко не всегда полезна. Представляю тексn модуля : Если UIDИнтерфейса = "a29ef903-a27a-4d34-ae00-0cd5d219c0e7" Тогда ... Жесть ))) Так хочет архитектор БД ) |
[quote=USSR;43007719]Если UIDИнтерфейса = "a29ef903-a27a-4d34-ae00-0cd5d219c0e7" Тогда ...[/quote] И далее перебор всех возможных вариантов? Платят за строки кода? |
(15)+100500 :) (0) По поводу GUID уясни для себя одну простую весчь: 1. Метод "УниверсальныйИдентификатор" доступен только у ссылок на прикладные объекты конфигурации (не у всех), т.е. на те объекты, которые могут быть созданы пользователем изнутри самой БД и представляют собой данные, наполняющие эту БД. Объекты самой конфигурации не могут иметь GUID, т.к. это не имеет смысла, доступ к ним осуществляется по уникальным именам, как они заданы в метаданных. Если ты это имя меняешь, то меняй и код программы. 2. Помимо метода "УниверсальныйИдентификатор" есть ещё общий объект с тем же именем, а также есть свойство у управляемой формы. Вот, собственно, и всё. |
[quote=USSR;43007719]Мы и задачу то не услышали, может и не надо ее решать, особенно таким способом[/quote] А я не хочу озвучивать ВСЮ задачу, я считаю это излишним. Я не хочу обсуждать саму задачу, и почему я выбрал именно такой способ для её реализации. Мне нужно получить конкретный ответ на конкретный вопрос от компетентных людей, а не помощь психоаналитика. Грубо говоря есть вопрос, на который я пока не знаю ответ, я уверен, что он есть. И я его нашёл. (17) Я, наверное, открою для Вас Америку, но уникальные индетификаторы имеются не только у объектов ссылочных типов (элементы справочников, документы и т.п.), но и у абсолютно всех объектов метаданных. У некоторых их можно вытащить без проблем; у некоторых с проблемами, но возможно; у некоторых пока не знал как, теперь знаю. |
(18)Удачи Вам ) Ищите и обрящете. Вытаскивайте, затаскивайте, утаскивайте. Вы глухой человек. Упертый, не приведщий ни одного аргумента в свою пользу, а потом мне лично неинтересный. Ничего личного. Но все таки совет - займитесь реальными задачами |
в том то и дело, что Вам нужна помощь психоаналитика. Вы зациклились)) |
(19) Как это типично для "специалистов": не понять сути, попытаться перевести разговор в другую плоскость, всё обосрать и сбежать. Ну и Вам, в таком случае, удачи. |
никто ничего не обсирал. Сути проблемы не было, так проблемы ваще не было. Вы же так и не сказали зачем Вам это надо, может можно все иначе разрулить. Ну то что что мы специалисты в кавычках, ну что тут поделать. Главное Вам в кавычки не попасть. Но Вы занимаетесь херней, а не задачи решаете) Не завидую Вашему УПП который весь под себя ) УПП под себя - это уже некоторый диагноз |
и еще раз для непонятливых - имя интерфейса - это и есть его уникальный идентификатор. Также как и вида справочника, документа, регистра сведений, накоплений и тд. Продолжайте упираться рогом ) |
Уважаемый USSR, если для вас суть проблемы "получить внутренний идентификатор объекта метаданных, конкретно: интерфейса" это не суть проблемы, то сочинения писать я не собираюсь. Как и не хочу объяснять зачем мне это надо. Если бы было не надо, поверьте, я бы не стал дурью маяться, и спрашивать совета просто ради того, чтобы спросить. Есть конкретный вопрос - нужен конкретный ответ. Знаете ответ - напишите. Не знаете ответа - не пытайтесь начать срач. Как и не пытайтесь играть в Кашпировского и ставить диагнозы на расстоянии. |
[quote=USSR;43013141]и еще раз для непонятливых - имя интерфейса - это и есть его уникальный идентификатор[/quote] Вы выгрузите конфигурацию в XML. Тогда увидите, что такое уникальный идентификатор. |
(25)я ж не говорю что его нет ) Просто он никому даром не нужен с точки зрения его практической пользы. Вы немножко ...встряхнитесь...Может и Вам не нужен ?) |
(26) - Видишь суслика? - Нет. - А он есть. Это по поводу практической пользы. Если Вы не видите её, это не значит что она отсутствует. Мне на практике несколько раз приходилось несколько раз копаться в истории изменения конфигураций с анализом древних cf-шников (опять спросите - зачем?). Опять же сталкивался с изменением названий нетиповых объектов метаданных (документы, справочники и регистры). Если опираться только на название - как вы узнаете как раньше назывался тот или иной объект? |
[quote=WAR;43013344]как вы узнаете как раньше назывался тот или иной объект? [/quote] Действительно, забавная история :) Забавная, когда надо узнавать как эту нетиповую бобоську называл предыдущий архитектор. [quote=WAR;43011919]У некоторых их можно вытащить без проблем; у некоторых с проблемами, но возможно; у некоторых пока не знал как, теперь знаю. [/quote] Вообще раньше считалось хорошим тоном озвучивать найденное решение. |
Мне кажется автору хочется разбирать конфигурацию 1с как контейнер. Тут нужны внешние инструменты. На инфостарте было несколько штук с описаниями, что откуда выковыривается. |
(28) Пока всё на уровне идеи, но практически на 100% уверен, что сработает. Сделать свою XSD схему, по ней выгрузить интересующий объект метаданных. Полученный результат открываем через DOM-модель, получаем некий абстрактный объект с набором свойств. Забираем значений свойства UUID. Попробовал на основе данных выгрузки конфигурации в файлы создать XSD схему = не взлетело. Ругается на неверное описание схемы. Времени нет сейчас с этим поплотнее повозиться, на выходных думаю заняться. Решение (если получится) опубликую здесь. (29) Вы в общем правы. Один внешний инструмент точно есть - выгрузка конфы в файлы. Потом хоть заанализироваться можно. ))) Но гораздо интереснее все получать из кода. |
[quote=WAR;43011919]А я не хочу озвучивать ВСЮ задачу, я считаю это излишним.[/quote] считаю излишним озвучивать ответ на вопрос ТС |
[quote=Helen1986;43013668]считаю излишним озвучивать ответ на вопрос ТС [/quote] Ну вот и тролли, наконец, подтянулись. |
[img]http://mafii.net/uploads/avatars/full/10May2015_09-59-43warinsoul.jpg[/img] |
[quote=Helen1986;43013668]считаю излишним озвучивать ответ на вопрос ТС [/quote] я угадаю этот ответ с 7 букв... |
[quote=bma1;43013854] Цитата: Сообщение от Helen1986 считаю излишним озвучивать ответ на вопрос ТС я угадаю этот ответ с 7 букв... [/quote] Ответ: "Я не знаю" - 7 букв )))) |
(35) ответ неверный - не учтены пробелы. Они тоже знаки |
Теперь мне по ночам будет снится огромный суслик с 36 разрядным, уникальным именем его вида )) |
[quote=USSR;43014539]огромный суслик с 36 разрядным, уникальным именем его вида [/quote] megalonoctarodentis existencialae U. |
Текущее время: 02:53. Часовой пояс GMT +3. |