Функция обратная "ПолучитьНавигационнуюСсылку"?
☑
0
Fragster
гуру
26.06.15
✎
16:34
Есть встроенная функция? или готовая?
1
ДенисЧ
26.06.15
✎
16:36
УдалитьНавигационнуюСсылку() ?
3
Fragster
гуру
26.06.15
✎
16:46
Вот этот код делает, что нужно. Но мне не нравится :(
&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьСсылкуИзНавигационной(НавигационнаяСсылка)
СигнатураСсылки = "e1cib/data/";
СигнатураИД = "?ref=";
ДлинаСигнатурыСсылки = СтрДлина(СигнатураСсылки);
ДлинаСигнатурыИД = СтрДлина(СигнатураИД);
ДлинаИД = 32;
ПерваяТочка = Найти(НавигационнаяСсылка, СигнатураСсылки);
ВтораяТочка = Найти(НавигационнаяСсылка, СигнатураИД);
Если ПерваяТочка = 0 ИЛИ ВтораяТочка = 0 Тогда
ВызватьИсключение "Неправильная навигационная ссылка " + НавигационнаяСсылка;
КонецЕсли;
ПредставлениеТипа = Сред(НавигационнаяСсылка, ПерваяТочка + ДлинаСигнатурыСсылки, ВтораяТочка - ПерваяТочка - ДлинаСигнатурыСсылки);
ШаблонЗначения = ЗначениеВСтрокуВнутр(ПредопределенноеЗначение(ПредставлениеТипа + ".ПустаяСсылка"));
ЗначениеСсылки = СтрЗаменить(ШаблонЗначения, "00000000000000000000000000000000", Сред(НавигационнаяСсылка, ВтораяТочка + ДлинаСигнатурыИД, ДлинаИД));
Ссылка = ЗначениеИзСтрокиВнутр(ЗначениеСсылки);
Возврат Ссылка;
КонецФункции
4
Лефмихалыч
26.06.15
✎
16:50
нет встроенной. Приходится велосипеды строить
5
Fragster
гуру
26.06.15
✎
16:50
(4) :(
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший