Узнать уникальный идентификатор GUID элемента справочника, документа 1С на управляемых формах с текстом для конфигуратора

05.01.25

Задачи пользователя - Поиск данных

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Уникальный идентификатор GUID элемента справочника, документа 1С на управляемых формах с текстом для конфигуратора:
.epf 6,79Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.

Когда необходимо в  запросе отобрать  заведомо известный по GUID элемент справочника  в коде конфигуратора.  Данная обработка позволяет узнать этот код  и сформировать код  для конфигуратора в любой базе на платформе 8.3, работающей на управляемых формах.

Открываете нужный справочник, выбираете  необходимый элемент. Получаете ГУИД элемента и строку кода для конфигуратора.

Тестировалась на платформе 1С  8.3.23.1912, базы 1С:ERP Управление предприятием 2 (2.5.8.435), Бухгалтерия предприятия, редакция 3.0 (3.0.167.32).

GUID элемента 1С Код справочника внутренний код справочника 1С

См. также

Поиск данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

10800 руб.

14.05.2012    159478    339    253    

573

Математика и алгоритмы Инструментарий разработчика Универсальные функции Поиск данных Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Абонемент ($m)

Несколько упакованных в один класс интерфейсов для обработки популярных универсальных коллекций. Для тех, кого раздражает отсутствие действительно единого интерфейса для универсальных коллекций.

5 стартмани

25.09.2024    2521    1    Артано    14    

19

Поиск данных Программист Платформа 1С v8.3 Россия Бесплатно (free)

В этой статье я хочу рассмотреть еще один кейс применения Clickhouse в связке с 1С - оптимизацию поиска в справочнике по ключевым словам. Здесь не будет готового решения, но будут описаны важные моменты, которые позволят легко применить данный кейс в реальности.

18.08.2024    2121    1cnik2    23    

14

Поиск данных Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Отображение и просмотр реквизитов справочника или документа - с бесконечным открытием подуровней.

1 стартмани

14.06.2024    3613    8    RustIG    29    

22

Поиск данных Системный администратор Программист Платформа 1С v8.3 Россия Абонемент ($m)

Статья об опыте развертывания и интеграции с базой данных Manticore Search для быстрого полнотекстового поиска.

1 стартмани

30.11.2023    4960    andreysidor4uk    18    

53

Поиск данных Корректировка данных Пользователь Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

PowerOffice - обработка для поиска, просмотра и обработки данных для пользователей. Доступ к объектам на просмотр и редактирование данных определяется правами пользователя.

1 стартмани

05.06.2023    2410    26    PowerBoy    1    

16

Поиск данных Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Получение ссылки в 1С по бинарной строке из PostgreSQL в виде строки формата bytea или из MSSQL в виде шестнадцатиричной строки. Кроме ссылочных объектов ссылки могут быть получены и для перечислений. Это может быть полезно при анализе логов журнала регистрации или СУБД.

1 стартмани

04.04.2023    3294    4    berserg    2    

13
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. markers 278 05.01.25 08:37 Сейчас в теме
Не узнаем теперь GUID элемента в ваше базе, какая трагедь ;)
Всё-же лучше избегать хард-кода и использовать константы и пр.
Но в целом обработка выполняет свою задачу
2. tsatsur 45 05.01.25 09:40 Сейчас в теме
кавычки в переменной? честно? печалька
3. dsdred 3755 05.01.25 10:46 Сейчас в теме
Было миллион раз уже.
Автор прочитайте про навигационные ссылки.
4. SlavaKron 05.01.25 11:45 Сейчас в теме
(3) А как это поможет без дополнительной обработки? В навигационной ссылке части ГУИД идут не в том порядке, который нужен для создания ссылки.
ГУИД объекта можно легко вытащить через консоль запросов. Также, любой более-менее серьезный редактор объектов показывает ГУИД.
5. dsdred 3755 05.01.25 12:21 Сейчас в теме
(4) так не хотел тратить время на ненужные комментарии, так как статья не тянет на статью...

В статье показан дедовский метод. Есть более современные.
Можно почитать например вот эту статью https://infostart.ru/1c/articles/1788844/

В платформе мы можем получать идентификатор:

Ссылка.УникальныйИдентификатор() // ИЛИ Новый УникальныйИдентификатор(XMLСтрока(Ссылка))

И идентификатор строкой:

XMLСтрока(Ссылка) // ИЛИ Строка(Ссылка.УникальныйИдентификатор())

Есть способ запросом, способ навигационной ссылкой и есть ещё способ более древний чем дедовский не рекомендованный 1с.


Теперь, что такое навигационная Ссылка?

Это строка содержащая тип объекта и его идентификатор.
Что можно делать с навигационной ссылкой?
1 Открывать в клиенте объект
2 Можно программно забрать из неё тип и получить guid.

И да, навигационную ссылку можно получить программно и в клиенте не используя редакторов.
6. SlavaKron 05.01.25 12:36 Сейчас в теме
(5) Тут никто не обсуждал программное получение гуид. Задача стоит получить ГУИД в предприятии, чтобы его значение использовать в коде хардкорно. То что навигационную ссылку можно получить без каких-либо инструментов и так понятно. Но вот вручную ковыряться с ее "хвостом", чтобы получить ГУИД - тот еще изврат. А если предлагаете для этого использовать обработку, то навигационная ссылка тут ни к селу ни к городу.
7. dsdred 3755 05.01.25 13:16 Сейчас в теме
(6) вот вам пример с хардкорным использованием https://infostart.ru/1c/articles/2216535/
смотрите после текста
Самый простой способ - получить навигационную ссылку у параметра и код переписать на использование данной ссылки. А сам параметр удалить.


Ссылку с хардкорной записи можно получить например так
// Получить ссылку из навигационной
//
// Параметры:
//  НавигационнаяСсылка	 - Строка - Пример: "e1cib/data/Справочник.Валюты?ref=9e0108002700700111e1cc2f22dd80d2"
// 
// Возвращаемое значение:
//   ЛюбаяСсылка - Найденная ссылка 
//
Функция ПолучитьСсылкуИзНавигационной(Знач НавигационнаяСсылка) Экспорт
		
    ПерваяТочка = Найти(НавигационнаяСсылка, "e1cib/data/");
    ВтораяТочка = Найти(НавигационнаяСсылка, "?ref=");
    
    ПредставлениеТипа   = Сред(НавигационнаяСсылка, ПерваяТочка + 11, ВтораяТочка - ПерваяТочка - 11);
    ШаблонЗначения = ЗначениеВСтрокуВнутр(ПредопределенноеЗначение(ПредставлениеТипа + ".ПустаяСсылка"));
    ЗначениеСсылки = СтрЗаменить(ШаблонЗначения, "00000000000000000000000000000000", Сред(НавигационнаяСсылка, ВтораяТочка + 5));
    Результат = ЗначениеИзСтрокиВнутр(ЗначениеСсылки);
	
	Возврат Результат;
	
КонецФункции
Показать


либо вернуть и тип и ссылку
// Получить структуру из навигационной ссылки
//
// Параметры:
//  НавигационнаяСсылка	 - Строка - Навигационная ссылка
//	ПередТочкой - Строка - Если заполнено тогда в типе перед точкой будет вставлено переданное значение.
//		Пример: "Ссылка" , ТипОбъекта = "ДокументСсылка.ЗаказКлиента"
//
// Возвращаемое значение:
//  Структура - Структура ответа:
//		Отработал - Булево - Признак того, что результат получен или не получен
//		Результат - Структура - Содержит ИдОбъекта и ТипОбъекта
//
Функция СтруктураНавигационнойСсылки(Знач НавигационнаяСсылка, Знач  ПередТочкой = "") Экспорт
	
	Результат = Новый Структура("Отработал", Истина);
	
	Если СтрНайти(НавигационнаяСсылка,"e1cib/data/") = 0
		ИЛИ СтрНайти(НавигационнаяСсылка,"?ref=") = 0 Тогда 
		
		Результат.Отработал = Ложь; 
		Возврат Результат;
		
	КонецЕсли;
    	
	ПодготовленнаяСтрока = СтрЗаменить(НавигационнаяСсылка, "e1cib/data/", ""); 
	ПодготовленнаяСтрока = СтрЗаменить(ПодготовленнаяСтрока, "?ref=", "||");
	
	МассивРазделеннойСсылки = СтрРазделить(ПодготовленнаяСтрока, "||", Ложь);
	
	Если МассивРазделеннойСсылки.Количество() > 1 Тогда 
		ТипОбъекта = МассивРазделеннойСсылки[0];
		
		Если ЗначениеЗаполнено(ПередТочкой) Тогда 
			ТипОбъекта = СтрЗаменить(ТипОбъекта, ".", ПередТочкой + ".");	
		КонецЕсли;	
		
		ГУИДУдОбъектаСтр = Лев(МассивРазделеннойСсылки[1], 32);  
		
		ИдОбъекта = Сред(ГУИДУдОбъектаСтр,25,8) 
					+ "-" 
					+ Сред(ГУИДУдОбъектаСтр,21,4) 
					+ "-" 
					+ Сред(ГУИДУдОбъектаСтр,17,4) 
					+ "-" 
					+ Сред(ГУИДУдОбъектаСтр,1,4) 
					+ "-" 
					+ Сред(ГУИДУдОбъектаСтр,5,12);
		
		Результат.Вставить("Результат", Новый Структура("ИдОбъекта, ТипОбъекта", ИдОбъекта, ТипОбъекта));
		
		Возврат Результат;
		
	Иначе  
		
		Результат.Отработал = Ложь; 
		Возврат Результат;	
		
	КонецЕсли;
		
КонецФункции   
Показать


А еще можно просто скопировать и в клиенте перейти по навигационной ссылке и сразу провалится в объект, что гораздо удобнее нежели сначала использовать какую-то обработку чтобы понять, что это за идентификатор такой...
maksa2005; +1 Ответить
Оставьте свое сообщение