Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 18:29

1С 8.3 : Работа с изображениями (картинками) в интерфейсе Такси

Автор Sheriff, 11 янв 2019, 11:28

0 Пользователей и 1 гость просматривают эту тему.

Sheriff

Всем доброго времени суток!
1С:Предприятие 8.3 (8.3.12.1595)
Бухгалтерия для Казахстана, редакция 3.0, (3.0.24.2)
Необходимо в РегистреСведений, хранить изображение. Сделал как было описано в этой статье https://helpf.pro/faq83/view/1563.html (но, тут используется справочник), ещё один код, взял тут https://курсы-по-1с.рф/articles/статьи-по-платформе-01-файлы-в-такси/ (с комментариев пользователей). В итоге, после того, как нажал кнопку "Записать-Закрыть" и повторно открыл форму, то картинки нет.
Как сделать чтобы она там сохранялась?
Код, который я использовал ниже. Использовал и то, что закомментарил, ничего не помогает.

&НаКлиенте
Процедура ВыбратьФайлКартинки (Команда)
Оповещение  =  Новый ОписаниеОповещения("ОбработатьВыборФайла",   ЭтотОбъект);
//Открываем интерактивно  окно для выбора файла
НачатьПомещениеФайла(Оповещение,   ,   ,   Истина,   УникальныйИдентификатор);
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьВыборФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
Если Не Результат Тогда
Возврат;
КонецЕсли;
Картинка = Адрес;
КонецПроцедуры   

&НаСервере
Процедура Перед3аписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если ЭтоАдресВременногоХранилища(Картинка) Тогда
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Картинка);
ЗаписьРегистра = РегистрыСведений.Изображения.СоздатьМенеджерЗаписи();       
ЗаписьРегистра.Объект = Объект.СправочникСсылка.ФизическиеЛица;         
ЗаписьРегистра.Изображение = Новый ХранилищеЗначения(ДвоичныеДанные);     
ЗаписьРегистра.Записать();         
КонецЕсли;
//Если ЭтоАдресВременногоХранилища(Картинка) Тогда
// ТекущийОбъект.Изображение = Новый ХранилищеЗначения( ПолучитьИзВременногоХранилища(Картинка) );
//КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЗначениеКлюча = Новый Структура;   
ЗначениеКлюча.Вставить("Объект", Объект.СправочникСсылка.ФизическиеЛица);   
КлючЗаписи = РегистрыСведений.Изображения.СоздатьКлючЗаписи(ЗначениеКлюча);       
Картинка = ПолучитьНавигационнуюСсылку(КлючЗаписи, "Изображение");
//ОбновитьИзображение();
//СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ДанныеКартинки");
КонецПроцедуры

//&НаСервере
//Процедура ОбновитьИзображение()
//
// // Конвертируем объект формы в объект справочника, чтобы
// //можно было работать с реквизитом типа "Хранилище значений"
// ОбъектЭлемента = РеквизитФормыВЗначение("Объект");
//
// // Помещаем двоичные данные из реквизита во временное хранилище.
// //Адрес из хранилища помещаем в строковой реквизит
// // формы "Фото сотрудника"
// Картинка = ПоместитьВоВременноеХранилище(Объект.Ссылка.Изображение.Получить(),
//УникальныйИдентификатор);
//
//КонецПроцедуры



wise

(0)
ЗаписьРегистра.Объект = Объект.СправочникСсылка.ФизическиеЛица;//НЕ спозиционирован объект

ТипЗначения ЗаписьРегистра.Объект = СправочникСсылка.ФизическиеЛица
а
ТипЗначения Объект.СправочникСсылка.ФизическиеЛица <> СправочникСсылка.ФизическиеЛица
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Sheriff

Цитата: wise от 11 янв 2019, 18:42
(0)
ЗаписьРегистра.Объект = Объект.СправочникСсылка.ФизическиеЛица;//НЕ спозиционирован объект

ТипЗначения ЗаписьРегистра.Объект = СправочникСсылка.ФизическиеЛица
а
ТипЗначения Объект.СправочникСсылка.ФизическиеЛица <> СправочникСсылка.ФизическиеЛица
Можно вот тут подробнее, т.к не понял, что нужно сделать
Добавлено: 14 янв 2019, 13:15


Кто ещё может помочь в этом вопросе, отзовитесь

Похожие темы (5)

Рейтинг@Mail.ru

Поиск