Прямую ссылку на объект из навигационной ссылки
Разработка - Универсальные функции
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Возникла необходимость найти конкретный отчёт, однако в системе был доступен лишь элемент навигации, ведущий на вариант этого отчёта. Более простого решения для непосредственного получения самого объекта мне обнаружить не удалось, поэтому был выбран следующий метод: конвертация навигационной ссылки в прямую ссылку на объект отчёта.
Как это часто бывает в разработке, не пришлось изобретать велосипед — готовое решение было найдено в интернете и успешно адаптировано.
Стоит отметить, что данный подход универсален. Если требуется найти не отчёт, а любой другой объект метаданных, можно воспользоваться отладчиком, устанавливая точки останова (F9) и анализируя контекст выполнения.
&НаСервере
Процедура Команда1НаСервере()
// Вставить содержимое обработчика.
Об =ПолучитьСсылкуИзНавигационной(НС);
сообщить(Об.Отчет);
КонецПроцедуры
&НаКлиенте
Процедура Команда1(Команда)
Команда1НаСервере();
КонецПроцедуры
&НаСервере
Функция ПолучитьСсылкуИзНавигационной(НС) Экспорт
ПерваяТочка = Найти(НС, "e1cib/data/");
ВтораяТочка = Найти(НС, "?ref=");
ПредставлениеТипа = Сред(НС, ПерваяТочка + 11, ВтораяТочка - ПерваяТочка - 11);
ШаблонЗначения = ЗначениеВСтрокуВнутр(ПредопределенноеЗначение(ПредставлениеТипа + ".ПустаяСсылка"));
ЗначениеСсылки = СтрЗаменить(ШаблонЗначения, "00000000000000000000000000000000", Сред(НС, ВтораяТочка + 5));
Возврат ЗначениеИзСтрокиВнутр(ЗначениеСсылки);
КонецФункции
Примерный алгоритм применения можно увидеть в приведенном коде или приложенной обработке. Вызывается через "Файл" - "Открыть". Пример будет работоспособен на любой конфигурации на управляемых формах.
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.24.62
Вступайте в нашу телеграмм-группу Инфостарт