Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как "Справочник" преобразовать в Справочники, "Документ" в Документы и т. д.?

Как "Справочник" преобразовать в Справочники, "Документ" в Документы и т. д.?
Я
   PR
 
07.11.20 - 20:55
1. Можно вот так...0% (0)
2. Нельзя0% (0)
3. Ничего не понял0% (0)
4. Перфекционизм — зло, говнокодерство наше все0% (0)
Всего мнений: 0

Скучно что-то, давайте хоть поперфекционируем :))

Нужно из навигационной ссылки типа e1cib/data/Справочник.Валюты?ref=b7995cd501544c7a46e1894c3860a219 получить ссылку на объект
Вместо справочника Валюты там может быть любая ссылка

В принципе-то говновариант понятен
Пусть ТипМетаданных — это вычисленный из навигационной ссылки текст "Справочник", "Документ" или пр.
Ну или "Catalog", "Document" и пр., если уж обрабатывать все варианты
Тогда менеджер получается так
Если ТипМетаданных = "Справочник"
    Или ТипМетаданных = "Catalog" Тогда
    Менеджер = Справочники;
ИначеЕсли ТипМетаданных = "Документ"
    Или ТипМетаданных = "Document" Тогда
    Менеджер = Документы;
...
КонецЕсли;


А вот можно ли (и если да, то как) сделать все это преобразование без такого сравнения с текстовыми константами?
   Aleksey
 
1 - 07.11.20 - 21:00
Процедура ПолучитьСсылкуИзНавигационной(НС)
    
    ПерваяТочка = Найти(НС, "e1cib/data/");
    ВтораяТочка = Найти(НС, "?ref=");
    
    ПредставлениеТипа   = Сред(НС, ПерваяТочка + 11, ВтораяТочка - ПерваяТочка - 11);
    ШаблонЗначения = ЗначениеВСтрокуВнутр(ПредопределенноеЗначение(ПредставлениеТипа + ".ПустаяСсылка"));
    ЗначениеСсылки = СтрЗаменить(ШаблонЗначения, "00000000000000000000000000000000", Сред(НС, ВтораяТочка + 5));
    Ссылка = ЗначениеИзСтрокиВнутр(ЗначениеСсылки);
    
КонецПроцедуры
   PR
 
2 - 07.11.20 - 21:03
(1) О как! Точно, про ЗначениеВСтрокуВнутр и ЗначениеИзСтрокиВнутр я как раз и забыл :))
   Сергиус
 
3 - 07.11.20 - 23:13
(0)Для чего это нужно все?
   PR
 
4 - 09.11.20 - 12:28
(3) Я же вроде в (0) написал

Список тем форума
Рекламное место пустует  Рекламное место пустует
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.