Как получить значение имея НавигационнуюСсылку к полю

1. AlexxSys 328 21.02.21 11:43 Сейчас в теме
Коллеги, добрый день.
Что то на простом вопросе застрял, и никак не получается решить.

Есть навигационная ссылка на реквизит с двоичными данными, как получить его значение ?

Т.е.:
НавигационнаяСсылкаХранимыйФайл = ПолучитьНавигационнуюСсылку(
		ПолучитьКлючРегСведений("История", Новый Структура("Период, Контрагент", РезультатЗапроса.Период, Контрагент)), 
		"ФайлДвоичныеДанныые");

.........

ХранимыйФайл = ...... (НавигационнаяСсылкаХранимыйФайл)


Всюду по документации можно открыть его, но для получения ничего не нашел ...
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sergex 58 21.02.21 19:35 Сейчас в теме
А что у вас там в двоичных данных хранится?
Вот на случай если там картинка - мануаль
https://www.vdgb.ru/blog/kak-poluchitnavigacionnuyussylku-v-upravlyaemom-prilozhenii-i-na-web-kliente/

Вот пример, как люди вынимают из двоичных данных ТЗ https://forum.infostart.ru/forum9/topic212565/, думаю, что по аналогии можно подобно вынуть и СЗ или ДЗ.

Вы же как то сериализовали то, что положили в двоичные данные. Или это внешний файл некоего формата? Если это, например, docx или xlsx - посмотрите стандартный код работы с файлами вложений. Ну а в общем виде: сохраняете на диск и открываете подходящим по расширению приложением из 1С.
3. AlexxSys 328 24.02.21 08:45 Сейчас в теме
Добрый день.
В самом регистре хранятся двоичные данные, но в контекст попадает навигационная ссылка, это из за оптимизации работы. К сожалению да, ей на программном уровне никак не воспользоваться, для получения данных используйте такой метод:

ЗаписьИстории = ПолучитьЗаписьИстории("Bots1C_ИсторияСообщений", Новый Структура("Период, ЧатБот, IDЧата", Контекст_Элемент.Период, ЧатБот, IDЧата));
ДвоичнвеДанные = ЗаписьИстории.СообщениеХранимыйФайл.Получить();
ИмяФайла = ЗаписьИстории.СообщениеИмяФайла;


// Функция - Получить запись истории
//
// Параметры:
//  ИмяРегистраСведений	 - 	 - 
//  СтруктураКлючей		 - 	 - 
// 
// Возвращаемое значение:
//   - 
//
Функция ПолучитьЗаписьИстории(ИмяРегистраСведений, СтруктураКлючей)
	
	МенеджерЗаписи = РегистрыСведений[ИмяРегистраСведений].СоздатьМенеджерЗаписи();
	ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураКлючей);
	МенеджерЗаписи.Прочитать();
	
	Возврат ?(МенеджерЗаписи.Выбран(), МенеджерЗаписи, Неопределено);	

КонецФункции
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот