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

Разница в получении файла ЗУП 2.5 и ЗУП 3.1

Автор skillful, 15 мая 2019, 22:45

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

skillful

В ЗУП 2.5 есть код который копирует вордовский файл из Справочник.ХранилищеДополнительнойИнформации во временнй каталог с именем 1.doc

Функция МакетПолучить(Отказ = Ложь)

ПутьВремКат = "";

ЗапросФайл = Новый Запрос;
ЗапросФайл.Текст = "ВЫБРАТЬ
| ХранилищеДополнительнойИнформации.Ссылка,
| ХранилищеДополнительнойИнформации.Хранилище
|ИЗ
| Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
|ГДЕ
| ХранилищеДополнительнойИнформации.Наименование = &Наименование";



ЗапросФайл.УстановитьПараметр("Наименование", "СпрСотрудникиТрудДоговор");



Выборка = ЗапросФайл.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
Файл = Выборка.Хранилище.Получить();
КонецЕсли;

Попытка
Если ЗначениеЗаполнено(Файл) Тогда
ПутьВремКат = ПолучитьИмяВременногоФайла("1.doc");
КонецЕсли;
Файл.Записать(ПутьВремКат);
Исключение
Сообщить("Макет не найден. Проверьте имеется ли в справочнике ""Дополнительная информация"" файл с наименованием ""СпрСотрудникиТрудДоговор.doc"" и описанием ""СпрСотрудникиТрудДоговор""");
КонецПопытки;

Возврат ПутьВремКат;

КонецФункции


Сейчас переходим на ЗУП 3.1. В ней вообще нет справочника "ХранилищеДополнительнойИнформации", но есть справочник "Файлы". Если загрузить файл в этот справочник, то видимо запрос будет таким

ЗапросФайл.Текст = "ВЫБРАТЬ
| Файлы.Ссылка,
| Файлы.ФайлХранилище
| ИЗ
| Справочник.Файлы КАК Файлы
|ГДЕ
| Файлы.Наименование = &Наименование";


ЗапросФайл.УстановитьПараметр("Наименование", Строка("СпрСотрудникиТрудДоговор"));

Выборка = ЗапросФайл.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
Файл = Выборка.ФайлХранилище.Получить();
КонецЕсли;


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


skillful

Или напишу проще. Как из справочника Файлы скопировать файл в компьютер.

ЗапросФайл.Текст = "ВЫБРАТЬ
    |    Файлы.Ссылка,
    |    Файлы.ФайлХранилище
    |        ИЗ
    |    Справочник.Файлы КАК Файлы
    |ГДЕ
    |    Файлы.Наименование = &Наименование";
   
   
    ЗапросФайл.УстановитьПараметр("Наименование", Строка("СпрСотрудникиТрудДоговор"));
   
    Выборка = ЗапросФайл.Выполнить().Выбрать();
   
    Если Выборка.Следующий() Тогда
        //Файл = Выборка.ФайлХранилище.Получить();   
    КонецЕсли;





Добавлено: 17 мая 2019, 18:45


Если Выборка.Следующий() Тогда
        ДанныеФайлаИДвоичныеДанные = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаИДвоичныеДанные(Выборка.Ссылка);   
КонецЕсли;


Так сделал

Теги:

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

Рейтинг@Mail.ru

Поиск