powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Получение ссылки из уникального идентификатора
7 сообщений из 7, страница 1 из 1
Получение ссылки из уникального идентификатора
    #36105827
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня всем!
Есть такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Если ВидМенеджера = "Справочники" И V81.Метаданные.Справочники.Найти(ИмяМенеджера) <> Неопределено Тогда
	Ссылка = V81.Справочники[ИмяМенеджера].ПолучитьСсылку(V81.NewObject("УникальныйИдентификатор", СтрокаУникальногоИдентификатора));
	Если СокрЛП(Ссылка.Code) <> "" И Ссылка.Code <>  0  Тогда
		Найдено = Истина;
		СтруктураВозврата.Ссылка = Ссылка;
		СтруктураВозврата.Менеджер = ИмяМенеджера;
		СтруктураВозврата.Менеджер = "Справочники";
	КонецЕсли;
ИначеЕсли ВидМенеджера = "Документы" И V81.Метаданные.Документы.Найти(ИмяМенеджера) <> Неопределено Тогда
	Ссылка = V81.Справочники[ИмяМенеджера].ПолучитьСсылку(V81.NewObject("УникальныйИдентификатор", СтрокаУникальногоИдентификатора));
	Если СокрЛП(Ссылка.Code) <> "" И Ссылка.Code <>  0  Тогда
		Найдено = Истина;
		СтруктураВозврата.Ссылка = Ссылка;
		СтруктураВозврата.Менеджер = ИмяМенеджера;
		СтруктураВозврата.Менеджер = "Документы";
	КонецЕсли;
КонецЕсли;

V81 - это подключенная другая база. Смысл в том, что у меня есть уникальный идентификатор, мне нужно получить ссылку в другой базе. Выполняется медленно именно из-за этих проверок:
Код: plaintext
1.
...Если СокрЛП(Ссылка.Code) <> "" И Ссылка.Code <>  0  Тогда...
...Если СокрЛП(Ссылка.Code) <> "" И Ссылка.Code <>  0  Тогда...
Есть ли какой-нибудь быстрый способ проверить, получена ссылка по уникальному идентификатору или нет?
...
Рейтинг: 0 / 0
Получение ссылки из уникального идентификатора
    #36105848
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код в посте - ерунду написал... Простите
Получаю через Метаданные список всех возможных имен справочников и документов в другой базе V81. Последовательно каждый раз перебираю этот список и пытаюсь получить ссылку с такой проверкой на успешность:
Код: plaintext
...Если СокрЛП(Ссылка.Номер) <> "" И Ссылка.Номер <>  0  Тогда...
...
Рейтинг: 0 / 0
Получение ссылки из уникального идентификатора
    #36105896
Алексей2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2AXAE
вызывать на стороне подключенной базы этот код.

для спящего время бодрствования равносильно сну
...
Рейтинг: 0 / 0
Получение ссылки из уникального идентификатора
    #36106871
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. это правильная проверка на то, действительно ли я получил ссылку на объект?
Не покажете, как вызывать код на стороне подключенной базы?
...
Рейтинг: 0 / 0
Получение ссылки из уникального идентификатора
    #36107302
слоненок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAE, скорее всего вам пытались сказать, что вызывать подобный код эффективней всегда на стороне источника т.к. при этом вы будете избегать прогона большого объема данных между источником и приемником. Вы пожаловались на скорость, и вам выдали простейшее решение вашей проблемы.
...
Рейтинг: 0 / 0
Получение ссылки из уникального идентификатора
    #36107447
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже различные способы не дают эффекта. Скорость практически одинакова, независимо от того, здесь выполняется проверка или на подключенной базе.
Либо я неправильно делаю... Покажете пример, как выполнять проверку на стороне источника?
...
Рейтинг: 0 / 0
Получение ссылки из уникального идентификатора
    #36108774
Алексей2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на стороне источника
V81.
пишите функцию в глобальной модуле
Код: plaintext
1.
2.
Функция ПолучитьЗначениеРеквизита(Объект, ИмяРеквизита) Экспорт
 Возврат Объект[ИмяРеквизита];
КонецФункции

ну а дальше:
Код: plaintext
1.
2.
3.
4.
5.
	Если V81.ПолучитьЗначениеРеквизита(Ссылка, "Code") <> "" И V81.ПолучитьЗначениеРеквизита(Ссылка, "Code") Тогда
		Найдено = Истина;
		СтруктураВозврата.Ссылка = Ссылка;
		СтруктураВозврата.Менеджер = ИмяМенеджера;
		СтруктураВозврата.Менеджер = "Справочники";
	КонецЕсли;


для спящего время бодрствования равносильно сну
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Получение ссылки из уникального идентификатора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]