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

Как ПолучитьНавигационнуюСсылку() в Управляемом приложении и на 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 УП |  Дата:   Прочитано: 18235
 0 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 2
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код...
1C и Google Maps 12
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во...
1C: Enterprise Development Tools 35
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 2
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р,...
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.