|
Загрузка картинки в справочник | ☑ | ||
---|---|---|---|---|
0
tomayal
18.09.24
✎
09:12
|
В справочнике имеются реквизиты: Код, Наименование, Путь, ДатаСоздания, Изображение(тип: ХранилищеЗначения). В форму элемента справочника добавлен реквизит АдресКартинки(тип: строка, вид: поле картинки).
Необходимо сделать так, чтобы путь к файлу(картинке) считывался из реквизита Путь, после чего находилась картинка на компьютере(пример пути: C:\картинка.jpg) и загружалась в поле картинки формы элемента справочника Фото. Синтаксических ошибок нет, файл находит, в форме элемента ошибок не выдает. При нажатии на поле картинки выдает сообщение "ХранилищеЗначения". Что я делаю не так??? дурной код&НаКлиенте Процедура ПутьПриИзменении(Элемент) // Если путь пустой Если НЕ ЗначениеЗаполнено(Объект.Путь) Тогда Возврат; КонецЕсли; // Создаем новый объект Файл по указанному пути ВременныйФайл = Новый Файл(Объект.Путь); Если НЕ ВременныйФайл.Существует() Тогда Сообщить("Файл не найден: " + ВременныйФайл.ПолноеИмя + ОписаниеОшибки()); Возврат; КонецЕсли; Попытка // Создание объекта картинки из файла Картинка = Новый Картинка(ВременныйФайл.ПолноеИмя); // Присваиваем картинку объекту на клиенте ЭтотОбъект.АдресКартинки = Картинка; // Вызываем процедуру для сохранения изображения на сервере СохранитьИзображениеНаСервере(Картинка); Исключение Сообщить("Не удалось загрузить изображение: " + ОписаниеОшибки()); Возврат; КонецПопытки; КонецПроцедуры &НаСервере Процедура СохранитьИзображениеНаСервере(Картинка) Попытка // Проверка перед сохранением (является ли файл изображением) Если ЭтоИзображение(Картинка) Тогда // Создание объекта для хранения данных картинки ДанныеКартинки = Новый ХранилищеЗначения(Картинка); // Присваиваем хранилище картинке ЭтотОбъект.АдресКартинки = ДанныеКартинки; Иначе Сообщить("Не удалось сохранить изображение: файл не является изображением." + ОписаниеОшибки()); КонецЕсли; Исключение Сообщить("Не удалось сохранить изображение в хранилище: " + ОписаниеОшибки()); КонецПопытки; КонецПроцедуры // Вспомогательная функция для проверки формата изображения Функция ЭтоИзображение(Картинка) Экспорт // Допустимые расширения изображений ДопустимыеРасширения = "jpg, jpeg, png, bmp, gif"; // Создание объекта Файл для обработки пути Файл = Новый Файл(Объект.Путь); Если НЕ Файл.Существует() Тогда Сообщить("Файл не существует: " + Объект.Путь); // Отладочное сообщение Возврат Ложь; КонецЕсли; // Получение расширения файла РасширениеФайла = Файл.Расширение; // Удаление точки из расширения Если Лев(РасширениеФайла, 1) = "." Тогда РасширениеФайла = Сред(РасширениеФайла, 2, СтрДлина(РасширениеФайла) - 1); КонецЕсли; // Приведение расширения к нижнему регистру и удаление пробелов РасширениеФайла = НРег(РасширениеФайла); // Проверка, является ли расширение допустимым Если Найти(ДопустимыеРасширения, РасширениеФайла) > 0 Тогда Возврат Истина; Иначе Сообщить("Расширение файла не является изображением: " + РасширениеФайла); // Отладочное сообщение Возврат Ложь; КонецЕсли; КонецФункции |
|||
1
Волшебник
18.09.24
✎
09:12
|
С утра ботяры попёрли
|
|||
2
banco
18.09.24
✎
09:12
|
АдресКартинки = ПолучитьНавигационнуюСсылку(ДанныеКартинки)
|
|||
3
tomayal
18.09.24
✎
09:16
|
(2) Выдает сообщение: Не удалось сохранить изображение в хранилище: {Справочник.Фото.Форма.ФормаЭлемента.Форма(40)}: Ошибка при вызове метода контекста (ПолучитьНавигационнуюСсылку): Недопустимое значение параметра (параметр номер '1') (Нельзя получить навигационную ссылку от значения типа Хранилище значения)
&НаСервере Процедура СохранитьИзображениеНаСервере(Картинка) Попытка // Проверка перед сохранением (является ли файл изображением) Если ЭтоИзображение(Картинка) Тогда // Создание объекта для хранения данных картинки ДанныеКартинки = Новый ХранилищеЗначения(Картинка); // Присваиваем хранилище картинке АдресКартинки = ПолучитьНавигационнуюСсылку(ДанныеКартинки); Иначе Сообщить("Не удалось сохранить изображение: файл не является изображением." + ОписаниеОшибки()); КонецЕсли; Исключение Сообщить("Не удалось сохранить изображение в хранилище: " + ОписаниеОшибки()); КонецПопытки; КонецПроцедуры |
|||
4
Stepashkin
18.09.24
✎
09:18
|
(0) >> Что я делаю не так???
Занимаетесь не своим делом. |
|||
5
Мультук
гуру
18.09.24
✎
09:42
|
||||
6
tomayal
18.09.24
✎
09:47
|
(5) в статье, что вы прислали, загрузка картинки делается через кнопку, а надо без кнопки и без нажатия на поле картинки..((
|
|||
7
Stepashkin
18.09.24
✎
09:47
|
(5) Оказывается нужно просто научиться пользоваться поиском, но это очень трудно).
|
|||
8
Волшебник
18.09.24
✎
09:48
|
(6) Вы издеваетесь что ли? Ну если надо без кнопки, так идите и делайте нейроинтерфейс!
|
|||
9
Stepashkin
18.09.24
✎
09:51
|
(6) Мысленно, что ли?
|
|||
10
maxab72
18.09.24
✎
11:07
|
(6) сделайте через командную строку. Как в добрые ламповые времена до появления Виндузов...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |