Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:33

присоединенные файлы

Автор loiterer, 31 окт 2016, 09:35

0 Пользователей и 1 гость просматривают эту тему.

loiterer

Здравствуйте. 1с 8.3 УФ. Есть счет на оплату поставщика. У него есть присоединенные файлы. Не могу сообразить как их можно получить и сохранить на жестком диске. Через регистр сведений не получается. Там всего одно измерение. Как сделать отбор по документы(владельцу) не соображу. Пробовал через общую форму "присоединенные файлы" из динамического списка, посредством
&НаСервере
Функция СписокВТЗнаСервере()

    Схема = Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
    Настройки = Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, , ,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
   
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
   
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Возврат Результат;
КонецФункции

На ПроцессорВывода.Вывести(ПроцессорКомпоновки) выдает ошибку, что-то про даты.

Помогите!!!

alex0402

Цитата: loiterer от 31 окт 2016, 09:35Есть счет на оплату поставщика. У него есть присоединенные файлы. Не могу сообразить как их можно получить и сохранить на жестком диске.

Нужно просто посмотреть как "видит" эти файлы сам документ.
При чем здесь целый СКД? Если файлы, или картинки из файлов видны в отчете, то можно изучить запросы СКД, что бы понять, где хранятся файлы и как их вытащить.
Спасибо за Сказать спасибо

loiterer

Победил.
Вот решение:

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

Конфигурация у меня Бухгалтерия КОРП

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск