| 
    
        
     
     | 
    
    
  | 
Сохранение фотографии контрагента из 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 
 | 
         
        К слову о методах...
 
        http://s020.radikal.ru/i721/1704/4c/cbd16462a405.jpg http://s011.radikal.ru/i318/1704/9d/3db01aa2ce55.jpg http://s019.radikal.ru/i610/1704/2d/5d8e9396a410.jpg http://s019.radikal.ru/i643/1704/34/40d40c6e5200.jpg http://s019.radikal.ru/i612/1704/3b/24141f425f49.jpg http://s12.radikal.ru/i185/1704/8e/0e32f849342e.jpg http://s019.radikal.ru/i640/1704/cc/850be52e2423.jpg http://s016.radikal.ru/i337/1704/cc/888539edb6d0.jpg http://s019.radikal.ru/i621/1704/72/5b2a78c2bfd0.jpg http://s019.radikal.ru/i601/1704/44/c09a4740e5ab.jpg http://s020.radikal.ru/i711/1704/b3/416f4b998ed1.jpg http://s019.radikal.ru/i604/1704/a8/e462e4539fc9.jpg http://s020.radikal.ru/i718/1704/d0/5a9f0a504fa5.jpg http://s019.radikal.ru/i611/1704/8f/8fca940dde33.jpg http://s020.radikal.ru/i720/1704/24/e04f46270d64.jpg  | 
|||
| 
    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) Или вообще напрямую из хранилища дергать?     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |