helpf.pro
Регистрация
 +6 
Распечатать

Как ПолучитьНавигационнуюСсылку() в Управляемом приложении и на Web-клиенте

Вариант 1: ОкноКлиентскогоПриложения (ClientApplicationWindow)
ПолучитьНавигационнуюСсылку (GetURL)
Синтаксис:
Код 1C v 8.х
 ПолучитьНавигационнуюСсылку()   

Возвращаемое значение:
Тип: Строка.
Описание: Получает навигационную ссылку в формате 1С:Предприятия на текущую форму.
Доступность: Тонкий клиент, веб-клиент, толстый клиент, внешнее соединение.

Вариант 2: Глобальный контекст (Global context)
ПолучитьНавигационнуюСсылку (GetURL)
Синтаксис:
Код 1C v 8.х
 ПолучитьНавигационнуюСсылку(<Объект>, <ИмяРеквизита>, <Индекс>)   

Параметры: <Объект> (обязательный)
Тип: Ссылка на объект информационной базы. Ссылка на объект. <ИмяРеквизита> (необязательный)
Тип: Строка. Имя реквизита объекта или ресурса Регистра сведений, для которого нужно выяснить ссылку. Если это реквизит табличной части объекта, то параметр указывается как <имя табличной части>.<имя реквизита>, то есть с разделителем "." (точка).
<Индекс> (необязательный)
Тип: Число. Индекс строки в табличной части, в том случае если объект является реквизитом табличной части. Первая строка имеет индекс равный 0.
Возвращаемое значение: Тип: Строка.
Описание: Получает текст ссылки на объект информационной базы или его реквизит в формате 1С:Предприятия.
В первом случае принимает в качестве параметра ссылку на объект (это может быть как ссылка, так и ключ записи регистра сведений). Объектом могут быть: справочник, документ, ключ записи регистра сведений, бизнес процессы, задачи.
Во втором, в качестве параметров принимает ключ объекта (это может быть как ссылка, так и ключ записи регистра сведений) и имя реквизита (ресурса). Если нужно получить ссылку на реквизит табличной части, перед именем реквизита необходимо добавить имя табличной части и точку ".".
Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание: Выполняет обращение к серверу только при получении ссылки на реквизит. При получении ссылки на объект информационной базы запрос на сервер не выполняется.
Код 1C v 8.2 УП
 // Адрес объекта
Адрес1 = ПолучитьНавигационнуюСсылку(Объект.Ссылка);

// Адрес реквизита объекта
Адрес2 = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "Реквизит1");

// Адрес реквизита табличной части объекта
Адрес3 = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ТабличнаяЧасть1.Реквизит1", 10);

// ПолучитьНавигационнуюСсылку на форму обработки
сс=ПОлучитьНавигационнуюСсылку(Обработки.Обработка1.ПолучитьФорму("Форма1"));
// "e1cib/app/Обработка.Обработка1"


Получить навигационную ссылку для константы?
Вопрос: В конфигурации есть константа с типом ХранилищеЗначения для хранения изображения. Пытаюсь реализовать Загрузку и Выгрузку изображения: СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Константы.Логотип.Получить());
где СсылкаНаКартинку - реквизит формы с типом строка, а на форме есть элемент, у которого путь к данным = СсылкаНаКартинку
Возможно ли реализовать отображение картинки таким образом, или стоит хранить картинку где-либо еще?
Ответ:
Навигационную ссылку на константу получить не получится(
Получится только так:
Код 1C v 8.2 УП
 СсылкаНаКартинку = ПоместитьВоВременноеХранилище(Константы.Логотип.Получить().Получить(),УникальныйИдентификатор);   

т.е. в процедуру ПриСозданииНаСервере поместить картинку во временное хранилище и она там сидит пока закроете форму


Есть форма списка справочника "Сотрудники".
В нем есть реквизит "Фото", который имеет тип "СправочникСсылка.ХранилищеДополнительнойИнформации" (справочник "ХранилищеДополнительнойИнформации" по структуре полностью совпадает анологичным справочником в 1С 8.1).
В реквизиты формы списка добавил "АдресКартинки" тип "строка", в элементы добавил поле "Картинка" (вид - поле картинки) с путем к данным "АдресКартинки". Как вывести Картинку?

Ответ:
Код 1C v 8.2 УП
  &НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
СотрудникСсылка = Элементы.Список.ТекущиеДанные.Ссылка; //в форме списка должен быть такой элемент - Ссылка
Показатькартинку(СотрудникСсылка);
КонецПроцедуры

&НаСервере
Процедура ПоказатьКартинку (СотрудникСсылка)
АдресКартинки = ПолучитьНавигационнуюСсылку(СотрудникСсылка.Фото, "Хранилище");
КонецПроцедуры

"Хранилище" - это "стандартный" реквизит справочника "ХранилищеДополнительнойИнформации".


Имеется регистр сведений с именем "Изображения" следующей структуры:
Измерения:
- ИдИзображения (тип - уникальный идентификатор);
Реквизиты:
- Изображение (тип - ХранилищеЗначений)
Реализовать возможность записи изображений в него, проблемы не составило. А застрял на получении навигационной ссылки на нужную запись регистра?
Ответ - Для регистра сведений первым параметром должен быть ключ записи, а не ссылка на объект.
Т.е. если есть регистр сведений ХранилищеКартинок с изменением Ном (тип справочник Ном) и ресурс Картинка (тип хранилище значений) - код для получения навигационной ссылки должен быть примерно таким:
Код 1C v 8.2 УП
 Процедура ПриЧтенииНаСервере(ТекущийОбъект)
КлючЗаписиРег = РегистрыСведений.ХранилищеКартинок.СоздатьКлючЗаписи(Новый Структура("Ном", ТекущийОбъект.ссылка));
Если Не КлючЗаписиРег.Пустой() Тогда
СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(КлючЗаписиРег, "Картинка");
КонецЕсли;
КонецПроцедуры




При использовании в web-клиенте
Стояла следующая задача: отправлять уведомления о изменениях в документах на почту и вкладывать в письмо гиперссылку на измененный документ. База опубликована на web-севере. Полученная в 1С ссылка методом ПолучитьНавигационнуюСсылку() имела следующий вид
https://localhost/#e1cib/data/Документы.Счет?ref="ab99005056c0000811e00f627bcddd55"

Вложенная в таком виде ссылка не открывала нужный документ, а лишь инициировала переход в базу.
Как оказалось проблема была в следующем, в URL-адресах не должны присутствовать кавычки, их заменяем на %22
https://localhost/#e1cib/data/Документы.Счет?ref=%22ab99005056c0000811e00f627bcddd55%22
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 71204
 +6 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 6
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р, НомСтроки, НомЯче
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.