Имя: Пароль:
1C
1С v8
Не отображается фотография на форме документа
0 DenchikDev
 
21.11.25
08:23
Доброе утро, может, кто-нибудь сталкивался с тем, что не отображается картинка на форме документа после успешного фотографирования. Камера открывается, делаю фото, после этого ничего не происходит и никаких ошибок нет. Фотография - строковый реквизит с видом Поле картинки. ДанныеФотографии - реквизит с типом Хранилище значения. Вот мой код:
&НаКлиенте
Процедура СделатьФотоКлиент()
    АдресФото = СделатьИПоместитьФото();
    
    Если АдресФото = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Объект.Фотография = АдресФото;
    ЭтотОбъект.Модифицированность = Истина;

КонецПроцедуры

&НаКлиенте
Функция МожноСделатьФото()
    #Если МобильныйАвтономныйСервер ИЛИ МобильноеПриложениеКлиент ИЛИ МобильныйКлиент Тогда
        Возврат СредстваМультимедиа.ПоддерживаетсяФотоснимок();
    #Иначе  
        Сообщить(НСтр("ru='Данное устройство не поддерживает возмоность фотографировать'"));
    #КонецЕсли
    Возврат Ложь;
КонецФункции

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

&НаКлиенте
Функция КачествоФотографииПоУмолчанию()
    Возврат 70;
КонецФункции

&НаКлиенте
Функция РазрешениеФотографииПоУмолчанию()
    
    #Если МобильноеПриложениеКлиент Или МобильныйКлиент Тогда
        ПоддерживаемыеРазрешения = СредстваМультимедиа.ПолучитьПоддерживаемыеРазрешенияКамеры();
        
        Если ПоддерживаемыеРазрешения.Количество() > 0 Тогда
            Возврат ПоддерживаемыеРазрешения[0];
        КонецЕсли;
        
        Возврат Новый РазрешениеКамерыУстройства(1024, 768);
    #Иначе
        Возврат Неопределено;
    #КонецЕсли
    
КонецФункции

&НаКлиенте
Функция СделатьИПоместитьФото()
    Если Не МожноСделатьФото() Тогда
        Возврат Неопределено;
    КонецЕсли;
    
    #Если МобильноеПриложениеКлиент Или МобильныйКлиент Тогда
    Попытка
        ДанныеФото = ПолучитьДанныеСнимка();
        
        Если ДанныеФото = Неопределено Тогда
            Возврат Неопределено;
        КонецЕсли;
        
        ТекущееФотоДвоичныеДанные = ДанныеФото.ПолучитьДвоичныеДанные();
        
        Адрес = ПоместитьВоВременноеХранилище(ТекущееФотоДвоичныеДанные, Новый УникальныйИдентификатор);
        
        Возврат Адрес;
        
    Исключение
        ТекстОшибки = НСтр("ru='Ошибка создания фотографии: '") + ОписаниеОшибки();
        ВызватьИсключение ТекстОшибки;
    КонецПопытки;
    #КонецЕсли
    
    Возврат Неопределено;
КонецФункции

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

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

&НаКлиенте
Процедура СделатьФото(Команда)
    СделатьФотоКлиент();
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ЗаписатьФотографиюСервер(ТекущийОбъект);
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ЗагрузитьФотоСервер();
КонецПроцедуры

Заранее спасибо, буду очень благодарен.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.