Имя: Пароль:
1C
 
Выгрузка картинок
0 Tata12345
 
05.02.08
12:06
Можно ли выгрузить картинки из 1с обратно в файл и  как это сделать?
1 IronDemon
 
05.02.08
12:15
Поищи в конфиге СохранитьФайлНаДиске
2 Tata12345
 
05.02.08
12:29
Немного не то. в справочник Номенклатуры есть возможность загрузить картинки, а мне надо наоборот их выгрузить
3 IronDemon
 
05.02.08
12:47
Функция ПолучитьИмяФайла(ИмяКаталога, ИмяФайла) Экспорт

   Возврат ИмяКаталога + ?(ПустаяСтрока(ИмяФайла), "", "\" + ИмяФайла);

КонецФункции // ПолучитьИмяФайла()

Функция СохранитьФайлНаДиске(Хранилище, ИмяФайла, ТолькоЧтение, СпособПерезаписи, ВопросОПерезаписи = Истина, ИмяСправочника = "ХранилищеДополнительнойИнформации") Экспорт

   Попытка

       ФайлНаДиске = Новый Файл(ИмяФайла);
       КаталогНаДиске = Новый Файл(ФайлНаДиске.Путь);

       Если Не КаталогНаДиске.Существует() Тогда
           СоздатьКаталог(ФайлНаДиске.Путь);
       КонецЕсли;

       Если ТипЗнч(Хранилище) <> Тип("ДвоичныеДанные") Тогда
           ДвоичныеДанные = Хранилище.Получить();
       Иначе
           ДвоичныеДанные = Хранилище;
       КонецЕсли;
       ДвоичныеДанные.Записать(ИмяФайла);
       ФайлНаДиске.УстановитьТолькоЧтение(ТолькоЧтение);

   Исключение

       Предупреждение(ОписаниеОшибки());
       Возврат Ложь;

   КонецПопытки;

   Возврат Истина;

КонецФункции // СохранитьФайлНаДиске()

Процедура КнопкаВыполнитьНажатие(Кнопка)
   Если Объект = Неопределено Тогда
       Возврат;
   КонецЕсли;
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ХранилищеДополнительнойИнформации.Ссылка
                  |ИЗ
                  |    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
                  |ГДЕ
                  |    ХранилищеДополнительнойИнформации.Объект В ИЕРАРХИИ(&Объект)";
   Запрос.УстановитьПараметр("Объект", Объект);
   РезультатЗапроса = Запрос.Выполнить();
   
   СоединениеВнешнегоХранилища = ВыполнитьFTPПодключениеКСерверуВнешнегоХранилища();
   КаталогХранения = ПолучитьКаталогХранения(Объект);
   мПутьВнешнегоХранилища = КаталогХранения;
   ИмяКаталога = ПолучитьИмяКаталога(глТекущийПользователь);
   мСписокОткрытыхФайлов = Новый СписокЗначений;
   
   ТолькоЧтение = Ложь;
   СпособПерезаписи = "";
   
   Сч=1;
   Выборка = РезультатЗапроса.Выбрать();
   Пока Выборка.Следующий() Цикл
       Ссылка=Выборка.Ссылка;
       Если ПустаяСтрока(Ссылка.ИмяФайла) Тогда
           Продолжить;
       КонецЕсли;
       СпрОбъект = Ссылка.ПолучитьОбъект();
       Если СпрОбъект.Хранилище.Получить() = Неопределено Тогда
           Сообщить("Пропускаем "+Ссылка);
           Продолжить;
       КонецЕсли;
       Сообщить("Сохраняем "+Ссылка);
       
       ИмяФайла = ПолучитьИмяФайла(ИмяКаталога, Ссылка.ИмяФайла);
       
       СохранитьФайлНаДиске(СпрОбъект.Хранилище, ИмяФайла, Ложь, СпособПерезаписи, Ложь);
       мСписокОткрытыхФайлов.Добавить(ИмяФайла);
       
       ВнешнееИмяФайла = ПолучитьВнешнееИмяФайла(СпрОбъект.Объект, ИмяФайла);
       
   КонецЦикла;
   
   Сообщить("Закончил");
КонецПроцедуры
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший