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

1С:Предприятие ::

Метки: 

УФ: Как вызвать программно стандартную команду "Просмотреть картинку"

Я
   runoff_runoff
 
14.08.18 - 12:17
Есть управляемая форма.
На форма размещено поле картинки.
Всё хорошо, картинка отображается.
Поле картинки имеет стандартное контекстное меню, в котором есть команда "Просмотреть картинку", по которой платформа открывает окошко просмотра этой самой картинки.
Команда очень хорошая, но она есть только в этом контекстном меню.
В списке стандартных команд (на закладке Команды) её нет, поэтому разместить её непосредственно на других командных панелях не представляется возможным.

Хочется, чтобы при нажатии на картинку открывалось именно это окошко просмотра. Как эту команду вызвать программно, или какими другими путями вызвать это окно?

PS: Если, например, было бы поле табличного документа, то его стандартные команды были бы доступны на закладке стандартных команд, и их можно было бы разместить на форме как захочется.
 
 
   Кац
 
1 - 14.08.18 - 12:19
нет, это платформенная фича
   Tatitutu
 
2 - 14.08.18 - 12:34
(1) и да и нет
вызывает тоже самое действие

Процедура ПросмотрКартинки(Элемент)
   ОткрытьЗначение(ЭлементыФормы.МояКартинка.Картинка) 
КонецПроцедуры
   runoff_runoff
 
3 - 14.08.18 - 12:38
(2) ЭлементыФормы - это из прошлой жизни ;-)
   runoff_runoff
 
4 - 14.08.18 - 12:41
В принципе (2) уже ответил на вопрос. Вопрос закрыт.
   runoff_runoff
 
5 - 14.08.18 - 12:49
Более развернуто.
Пусть есть справочник, в котором есть реквизит ХранилищеЗначения для хранения картинки (ХранилищеКартинки).
В форме объекта добавляем реквизит "АдресКартинки" (Строка,0) и размещаем его как поле картинки.
Далее, полный цикл работы с такой картинкой (загрузка, очистка и просмотр) оказался очень прост.
   runoff_runoff
 
6 - 14.08.18 - 12:49
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

    АдресКартинки = ПоместитьВоВременноеХранилище(ТекущийОбъект.ХранилищеКартинки.Получить(), УникальныйИдентификатор);
    
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура ОчиститьКартинку(Команда)
    
    АдресКартинки = "";
    Модифицированность = Истина;
    
КонецПроцедуры

&НаКлиенте
Процедура АдресКартинкиНажатие(Элемент, СтандартнаяОбработка)// нажатие на поле картинки

    
    СтандартнаяОбработка = Ложь;
    ПоказатьЗначение(, Новый Картинка(ПолучитьИзВременногоХранилища(АдресКартинки)));
    
КонецПроцедуры
   Кац
 
7 - 14.08.18 - 13:10
ПоказатьЗначение отрабатывает так же. Не знал, посыпаю голову пеплом :)


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует