Имя: Пароль:
1C
 
Сохранение фотографии контрагента из 1с в заданную папку на диске
0 Adm1nSpb
 
10.04.17
13:27
Добрый день!
Есть конфигурация (Платформа 8.3), и надо сохранить фотографию контрагента, имея ссылку на элемент справочника в котором она находиться.
Прикрепляю скриншоты из конфигуратора

http://s42.radikal.ru/i096/1704/22/c773799a720e.jpg

http://s011.radikal.ru/i316/1704/79/ac43b4208c4f.jpg

http://s019.radikal.ru/i608/1704/97/ebd5ca425fa6.jpg

Подскажите пожалуйста, как сохранить картинку в заданную папку на диск?

Пробую начать так

Если ЗначениеЗаполнено(Контрагент.ФайлКартинки) Тогда

ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаДляСохранения(Контрагент.ФайлКартинки, Неопределено,Неопределено);
...

КонецЕсли;

И вот дальше я в растеренности...
1 vyaz
 
10.04.17
13:54
Прикольно, люди фотки контрагентов хранят)))
2 Злопчинский
 
10.04.17
13:54
На какой диск?
3 Adm1nSpb
 
10.04.17
14:31
На диск с которого запуститься внешняя обработка.
Вообще - путь к каталог задал в переменной ПутьДляКартинок, но это не важно.

Как их сохранить? Точнее там одна фотка у каждого контрагента...
4 h-sp
 
10.04.17
14:57
(1) банк может?
5 Cyberhawk
 
10.04.17
15:01
Сделать как в БСП...
6 Злопчинский
 
10.04.17
15:01
(3) прога работает в режиме вебклиента. на какой диск ты будешь сохранять ?
7 Cyberhawk
 
10.04.17
15:02
(6) На диск хостовой (для браузера) ОС, конечно же...
8 Adm1nSpb
 
10.04.17
16:49
Это разовая необходимость. Обращение происходит через толстый клиент, база файловая, локальная
9 YFedor
 
10.04.17
16:52
(5) + 1
10 Adm1nSpb
 
10.04.17
16:53
Можно попросить показать на примере????
11 YFedor
 
10.04.17
16:54
(10) Для БСП есть толковое описание на ИТС. придется правда посидеть - поразбираться ... Я уже не помню до тонкостей
12 Adm1nSpb
 
10.04.17
17:14
Тут не БСП...((
13 Злопчинский
 
10.04.17
18:07
(7) для бездисковой станции? ;-)
14 Cyberhawk
 
10.04.17
18:14
(13) Ну там пользователь сможет выбрать любую доступную ему шару...
15 Adm1nSpb
 
10.04.17
18:20
Неужели никто не сталкивался? База файловая, лежит на моем пк
16 Cyberhawk
 
10.04.17
18:26
(15) А ты там кем работаешь? Сколько платят за решение вопроса?
17 Lexey_
 
10.04.17
18:36
(15) зачем сталкиваться? Можно посмотреть в СП доступные методы для типа ДанныеФайла
18 Lexey_
 
10.04.17
18:39
(17) для типа, содержащегося в  ДанныеФайла
19 Adm1nSpb
 
11.04.17
14:02
20 Adm1nSpb
 
11.04.17
14:11
Продедуры работы с фото из формы Справочники-контрагенты

&НаСервере
//Процедура, обработчик события "ПослеЗаписиНаСервере"
//
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
    
    НаборЗаписей = РегистрыСведений.СтатусыКонтрагентов.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Контрагент.Установить(Объект.Ссылка);
    НаборЗаписей.Отбор.СтруктурнаяЕдиница.Установить(ПараметрыСеанса.ТекущаяСтруктурнаяЕдиница);
    
    НаборЗаписей.Прочитать();
    
    Если НаборЗаписей.Количество() = 0 Тогда
        
        НоваяСтрока = НаборЗаписей.Добавить();
        НоваяСтрока.Период = ТекущаяДата();
        НоваяСтрока.Контрагент = Объект.Ссылка;
        НоваяСтрока.СтруктурнаяЕдиница = ПараметрыСеанса.ТекущаяСтруктурнаяЕдиница;
        НоваяСтрока.Статус = Перечисления.СтатусыКонтрагентов.Потенциальный;
        НаборЗаписей.Записать(Истина);
        
    КонецЕсли;    
    
КонецПроцедуры

&НаКлиенте
//Процедура, обработчик команды "Сфотографировать"
//
Процедура Сфотографировать(Команда)
    
    # Если НЕ ВебКлиент Тогда
        
        Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
            Ответ = Вопрос("Для продолжения операции необходимо записать элемент, записать?", РежимДиалогаВопрос.ДаНет);
            Если Ответ = КодВозвратаДиалога.Да Тогда
                Результат = ЭтаФорма.Записать();
                Если Не Результат Тогда
                    Возврат;
                КонецЕсли;                
            Иначе
                Возврат;
            КонецЕсли;
        КонецЕсли;
        
        Если ПовторноеОткрытие Тогда                                               
            ПараметрыОткрытия = Новый Структура("ПовторноеОткрытие", Истина);
        Иначе
            ПараметрыОткрытия = Новый Структура("ПовторноеОткрытие", Ложь);        
        КонецЕсли;    
        
        ПараметрыСнимка = ОпределитьРежимИПараметрыПолученияСнимка();
        
        //Режим работы через COM-объект перехвата видио
        Если НЕ ПараметрыСнимка.ВнешнееПриложение Тогда
            
            Путь = КаталогВременныхФайлов();
            
            ПараметрыОткрытия.Вставить("Путь"  , Путь);
            ПараметрыОткрытия.Вставить("Клиент", Объект.Ссылка);
            
            ФормаФото = ПолучитьФорму("Справочник.Контрагенты.Форма.ФормаФото", ПараметрыОткрытия);
            
            Если ФормаФото = Неопределено Тогда
                Предупреждение("Веб-камера не настроена!");
                Возврат;
            КонецЕсли;
            
            Сохранять =  ФормаФото.ОткрытьМодально();
            
            Если Не Сохранять = Неопределено и Сохранять Тогда     
                
                Попытка
                    РаботаСФайламиКлиент.ЗаписатьФотоКлиентаВСправочник(Путь+"Picture.png", Объект);
                Исключение
                КонецПопытки;
                ФайлКартинкиПриИзменении(Неопределено);
                Модифицированность = Истина;
            КонецЕсли;
            
            //ПовторноеОткрытие = Истина;
            
            УправлениеЭлементамиФормы();
            
        Иначе//Режим работы через внешне приложение
            
            ЗапуститьПриложение(СокрЛП(ПараметрыСнимка.ПутьКПрограмме), СокрЛП(ПараметрыСнимка.КаталогФотографий),Истина);
            КаталогФотографий = ПараметрыСнимка.КаталогФотографий;
            ВставитьИзФайла(Неопределено);
            
        КонецЕсли;
    #КонецЕсли
    
КонецПроцедуры

&НаСервере
//Функция определяет режим получения снимка и
//возвращает параметры режима
Функция ОпределитьРежимИПараметрыПолученияСнимка()
    
    СтрокаПараметров = Константы.НастройкиВебКамеры.Получить();
    
    ВозвратПараметров = Новый Структура;
    
    Если  СтрЧислоВхождений(СтрокаПараметров,"<ВНЕШНЕЕ_ПРИЛОЖЕНИЕ>") > 0 Тогда
        
        ВозвратПараметров.Вставить("ВнешнееПриложение",Истина);
        
        СписокПодстрок = ОбщегоНазначения.СтрокаВСписок(СтрокаПараметров,",");
        
        ВозвратПараметров.Вставить("ПутьКПрограмме"   ,СписокПодстрок[1].Значение);
        ВозвратПараметров.Вставить("КаталогФотографий",СписокПодстрок[2].Значение);
        
    Иначе                
        ВозвратПараметров.Вставить("ВнешнееПриложение",ЛОжь);    
    КонецЕсли;
    
    Возврат ВозвратПараметров;
    
КонецФункции

&НаСервереБезКонтекста
//Функция возвращает навигационную ссылку картинки
//
Функция ПолучитьНавигационнуюСсылкуКартинки(ФайлКартинки, ИдентификаторФормы)
    
    УстановитьПривилегированныйРежим(Истина);
    
    Возврат РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаИНавигационнуюСсылкуВерсииВоВременномХранилище(ФайлКартинки,
    Неопределено, ИдентификаторФормы).НавигационнаяСсылкаВерсии;
    
КонецФункции

&НаКлиенте
Процедура ФайлКартинкиПриИзменении(Элемент)
    
    УправлениеЭлементамиФормы();
    
КонецПроцедуры

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

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

&НаКлиенте
//Процедура, обработчик команды "СохранитьКак"
//
Процедура СохранитьКак(Команда)
    
    ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаДляСохранения(Объект.ФайлКартинки, Неопределено, Неопределено);
    КомандыРаботыСФайламиКлиент.СохранитьКак(ДанныеФайла);
    
КонецПроцедуры
21 Adm1nSpb
 
11.04.17
14:12
Уже мозг себе свернул как из внешней обработки имея ссылку на элемент справочника сохранить фотку в папку на диске(((((
Может кто сталкивался?
22 Lexey_
 
11.04.17
14:14
(21) не пойму, зачем сталкиваться?
Что в ДанныеФайла отладчик показывает?
23 Adm1nSpb
 
11.04.17
14:29
Отлатчик показвает это http://s12.radikal.ru/i185/1704/79/8feb1b335cf9.jpg
24 Lexey_
 
11.04.17
14:38
(23) как реализовано сохранение файлов в твоей конфе в других местах уже смотрел?
25 dezss
 
11.04.17
15:12
(23) А не пробовал посмотреть что хранится в "ТекущаяВерсия-ФайлХранилище"?
26 dezss
 
11.04.17
15:15
(23) Или вообще напрямую из хранилища дергать?
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.