Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Получение ссылки из уникального идентификатора / 7 сообщений из 7, страница 1 из 1
23.07.2009, 15:48
    #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
23.07.2009, 15:53
    #36105848
AXAE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение ссылки из уникального идентификатора
Код в посте - ерунду написал... Простите
Получаю через Метаданные список всех возможных имен справочников и документов в другой базе V81. Последовательно каждый раз перебираю этот список и пытаюсь получить ссылку с такой проверкой на успешность:
Код: plaintext
...Если СокрЛП(Ссылка.Номер) <> "" И Ссылка.Номер <>  0  Тогда...
...
Рейтинг: 0 / 0
23.07.2009, 16:08
    #36105896
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение ссылки из уникального идентификатора
2AXAE
вызывать на стороне подключенной базы этот код.

для спящего время бодрствования равносильно сну
...
Рейтинг: 0 / 0
24.07.2009, 07:39
    #36106871
AXAE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение ссылки из уникального идентификатора
Т.е. это правильная проверка на то, действительно ли я получил ссылку на объект?
Не покажете, как вызывать код на стороне подключенной базы?
...
Рейтинг: 0 / 0
24.07.2009, 11:37
    #36107302
слоненок
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение ссылки из уникального идентификатора
AXAE, скорее всего вам пытались сказать, что вызывать подобный код эффективней всегда на стороне источника т.к. при этом вы будете избегать прогона большого объема данных между источником и приемником. Вы пожаловались на скорость, и вам выдали простейшее решение вашей проблемы.
...
Рейтинг: 0 / 0
24.07.2009, 12:26
    #36107447
AXAE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение ссылки из уникального идентификатора
Похоже различные способы не дают эффекта. Скорость практически одинакова, независимо от того, здесь выполняется проверка или на подключенной базе.
Либо я неправильно делаю... Покажете пример, как выполнять проверку на стороне источника?
...
Рейтинг: 0 / 0
24.07.2009, 20:00
    #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]