Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Другие решения на платформе "1С:Предприятие 8"]

Запись и получение изображения

_Dmitry_
читатель
офлайн
Дата регистрации: 26.05.2011
Сообщений: 7
Пост №1
 
26.05.2011 15:57

"Добрый день. Есть справочник с Реквизитом Фото (тип Хранилище значения) Нужно записать туда значение. На форме добавлено Поле АдресФото (картинка) тип строка. Подскажите правильно ли я записываю изображение?<br> <br><br><pre>&НаКлиенте<br>Процедура ВыбратьФайл(Команда)<br> Режим = РежимДиалогаВыбораФайла.Открытие;<br> ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);<br> ДиалогОткрытияФайла.ПолноеИмяФайла = """";<br> Текст = "ru = """"Изображение PNG""""; en = """"PNG Image""""";<br> Фильтр = НСтр(Текст)+"(*.png)|*.png";<br> ДиалогОткрытияФайла.ПредварительныйПросмотр = Истина;<br> ДиалогОткрытияФайла.МножественныйВыбор = Ложь;<br> ДиалогОткрытияФайла.Заголовок = "Выберите файл...";<br> Если ДиалогОткрытияФайла.Выбрать() Тогда<br> ИзображениеФото = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла);<br> Если ИзображениеФото <> Неопределено Тогда<br> АдресФото = ПоместитьВоВременноеХранилище(ИзображениеФото);<br> КонецЕсли;<br> КонецЕсли;<br>КонецПроцедуры<br><br>&НаСервере<br>Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)<br> ТекущийОбъект.Фото = ПолучитьИзВременногоХранилища(АдресФото);<br>КонецПроцедуры<br></pre><br><br> <br>Теперь пытаюсь прочитать, но не работает<br> <br><br><pre>&НаСервере<br>Процедура ПриЧтенииНаСервере(ТекущийОбъект)<br> ИзображениеФото = Новый Картинка(ТекущийОбъект.Фото.Получить());<br> АдресФото = ПоместитьВоВременноеХранилище(ИзображениеФото);<br>КонецПроцедуры<br></pre><br><br> <br>Подскажите, пожалуйста, как корректно записать изображение и прочитать его?"

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №2
 
26.05.2011 16:21

"Записывайте в хранилище двоичные данные.<br>Что-то типа этого:<br>ИзображениеФото = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла);<br>Фото = Новый ХранилищеЗначения (ИзображениеФото.ПолучитьДвоичныеДанные());<br> <br>А читаете правильно:<br>ИзображениеФото = Новый Картинка(ТекущийОбъект.Фото.Получить());<br> <br>Вопрос вызывает только строки: АдресФото = ПоместитьВоВременноеХранилище(ИзображениеФото);<br>Я не понял что этим пытаетесь сделать. Обычно на форму помещают поле картинка и в него выводиться картинка."

_Dmitry_
читатель
офлайн
Дата регистрации: 26.05.2011
Сообщений: 7
Пост №3
 
26.05.2011 16:41

"В 8.2 Нет поля типа "Каринка". Используется текстовое поле в котором я храню ссылку, а отображается на форме она как картинка (ВИД:Картинка), так вот АдресФото = ПоместитьВоВременноеХранилище(ИзображениеФото); помещает в АдресФото ссылку по которому отображается изображение после выбора - этот момент работает.<br> <br>Сделал через ПолучитьДвоичныеДанные() но все равно как то не отображается. Как проверить вообще картинка записалась или нет?"

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №4
 
26.05.2011 17:02

Я так понимаю вы под управляемые формы пишите?<br>В таком случае, согласно увиденному в УТ, надо сохранить из Хранилища в файл и подсунуть путь этому полю.<br>Правда вникать во весь алгоритм я не стал - там такое наворочено...

_Dmitry_
читатель
офлайн
Дата регистрации: 26.05.2011
Сообщений: 7
Пост №5
 
26.05.2011 17:39

"Блин не пойму что за тупость... Данные = ПолучитьИзВременногоХранилища(АдресФото); 3-4-5 раз выдает Неопределено, а временами нормально возвращает двоичные данные. при этом в коде ничего не меняется и файл выбирается один и тот же...."

_Dmitry_
читатель
офлайн
Дата регистрации: 26.05.2011
Сообщений: 7
Пост №6
 
26.05.2011 17:44

"В общем такая конструкция работает:<br><br><pre><br>&НаКлиенте<br>Процедура ВыбратьФайл(Команда)<br> Режим = РежимДиалогаВыбораФайла.Открытие;<br> ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);<br> ДиалогОткрытияФайла.ПолноеИмяФайла = """";<br> Текст = "Изображение PNG";<br> Фильтр = НСтр(Текст)+"(*.png)|*.png";<br> ДиалогОткрытияФайла.ПредварительныйПросмотр = Истина;<br> ДиалогОткрытияФайла.МножественныйВыбор = Ложь;<br> ДиалогОткрытияФайла.Заголовок = "Выберите файл...";<br> Если ДиалогОткрытияФайла.Выбрать() Тогда<br> ИзображениеФото = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла);<br> Если ИзображениеФото <> Неопределено Тогда<br> АдресФото = ПоместитьВоВременноеХранилище(ИзображениеФото.ПолучитьДвоичныеДанные());<br> КонецЕсли;<br> КонецЕсли;<br>КонецПроцедуры<br><br>&НаСервере<br>Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)<br> Если АдресФото <> Неопределено Тогда<br> Данные = ПолучитьИзВременногоХранилища(АдресФото);<br> ИзображениеФото = Новый Картинка(Данные);<br> ТекущийОбъект.Фото = Новый ХранилищеЗначения(ИзображениеФото);<br> КонецЕсли;<br>КонецПроцедуры<br><br><br><br>&НаСервере<br>Процедура ПриЧтенииНаСервере(ТекущийОбъект)<br> ИзображениеФото = ТекущийОбъект.Фото.Получить();<br> АдресФото = ПоместитьВоВременноеХранилище(ИзображениеФото.ПолучитьДвоичныеДанные());<br>КонецПроцедуры<br> </pre><br><br> <br>Единственно Данные = ПолучитьИзВременногоХранилища(АдресФото); не всегда выдает данные, не могу понять почему."

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №7
 
26.05.2011 19:04

"Интересно, а так работать будет?<br> <br><pre>&НаКлиенте<br>Процедура ВыбратьФайл(Команда)<br> Режим = РежимДиалогаВыбораФайла.Открытие;<br> ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);<br> ДиалогОткрытияФайла.ПолноеИмяФайла = """";<br> Текст = "Изображение PNG";<br> Фильтр = НСтр(Текст)+"(*.png)|*.png";<br> ДиалогОткрытияФайла.ПредварительныйПросмотр = Истина;<br> ДиалогОткрытияФайла.МножественныйВыбор = Ложь;<br> ДиалогОткрытияФайла.Заголовок = "Выберите файл...";<br> Если ДиалогОткрытияФайла.Выбрать() Тогда<br> ИзображениеФото = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла);<br> Если ИзображениеФото <> Неопределено Тогда<br>ДвДанные = ИзображениеФото.ПолучитьДвоичныеДанные(); //1<br>ТекущийОбъект.Фото = Новый ХранилищеЗначения(ДвДанные); //2<br> АдресФото = ПоместитьВоВременноеХранилище(ДвДанные);<br> КонецЕсли;<br> КонецЕсли;<br>КонецПроцедуры<br><br>//&НаСервере<br>//Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)<br>// Если АдресФото <> Неопределено Тогда<br>// Данные = ПолучитьИзВременногоХранилища(АдресФото);<br>// ИзображениеФото = Новый Картинка(Данные);<br>// ТекущийОбъект.Фото = Новый ХранилищеЗначения(ИзображениеФото);<br>// КонецЕсли;<br>//КонецПроцедуры<br><br><br><br>&НаСервере<br>Процедура ПриЧтенииНаСервере(ТекущийОбъект)<br>// ИзображениеФото = ТекущийОбъект.Фото.Получить();<br> АдресФото = ПоместитьВоВременноеХранилище(ТекущийОбъект.Фото.Получить());<br>КонецПроцедуры<br> </pre><br><br> &"

_Dmitry_
читатель
офлайн
Дата регистрации: 26.05.2011
Сообщений: 7
Пост №8
 
26.05.2011 20:10

"Выдает ошибку: <br><pre>{Справочник.Языки.Форма.ФормаЭлемента.Форма(19,34)}: Тип не определен (ХранилищеЗначения) ТекущийОбъект.Иконка = Новый <</pre><br>>ХранилищеЗначения(ДвДанные); //2 (Проверка: Тонкий клиент)"

_Dmitry_
читатель
офлайн
Дата регистрации: 26.05.2011
Сообщений: 7
Пост №9
 
26.05.2011 20:12

К тому же ТекущийОбъект не определен

_Dmitry_
читатель
офлайн
Дата регистрации: 26.05.2011
Сообщений: 7
Пост №10
 
26.05.2011 20:19

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

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация