![]() |
|
Аналог метода ПолучитьФайлы() на сервере | ☑ | ||
---|---|---|---|---|
0
s-n-a-y
17.03.16
✎
11:02
|
Есть код, которые выгружает файлы из БД в указанный каталог. Я хочу оформить его в виде фонового задания. Выгружать можно хоть в директорию сервера 1с. Чем мне заменить метод ПолучитьФайлы()?
Код: &НаКлиенте Процедура Сохранить() РезМас = ПолучитьФайлыЗапросом(); Если РезМас = 0 Тогда //Сообщение = Новый СообщениеПользователю; //Сообщение.Текст = "Ошибка!"; //Сообщение.Сообщить(); Возврат; КонецЕсли; РезультатСсылка = РезМас[0]; РезультатКод = РезМас[1]; Путь = "D:\_pdf документооборот до\"; сч = 0; ПередаваемыеФайлы = Новый Массив; Для каждого Файл Из РезультатСсылка Цикл ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаДляСохранения(Файл, Неопределено, УникальныйИдентификатор); ИмяФайла = ДанныеФайла.ПолноеНаименованиеВерсии; ПолноеИмяФайла = Путь + РезультатКод[сч] + "_" + ИмяФайла + "." + ДанныеФайла.Расширение; АдресФайла = ДанныеФайла.НавигационнаяСсылкаТекущейВерсии; Описание = Новый ОписаниеПередаваемогоФайла(ПолноеИмяФайла, АдресФайла); ПередаваемыеФайлы.Добавить(Описание); сч = сч + 1; КонецЦикла; ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ПутьКФайлу); Если ПолучитьФайлы(ПередаваемыеФайлы,, Путь, Ложь) Тогда //Сообщение = Новый СообщениеПользователю; //Сообщение.Текст = "Сохранено!"; //Сообщение.Сообщить(); КонецЕсли; КонецПроцедуры &НаСервере Функция ПолучитьФайлыЗапросом() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ первые 10 | Файлы.Код, | Файлы.Ссылка |ИЗ | Справочник.Файлы КАК Файлы |ГДЕ | (Файлы.ТекущаяВерсияРасширение = ""pdf"" | ИЛИ Файлы.ТекущаяВерсияРасширение = ""Pdf"" | ИЛИ Файлы.ТекущаяВерсияРасширение = ""PDF"" | ИЛИ Файлы.ТекущаяВерсияРасширение = ""pDf"" | ИЛИ Файлы.ТекущаяВерсияРасширение = ""pdF"" | ИЛИ Файлы.ТекущаяВерсияРасширение = ""PDf"" | ИЛИ Файлы.ТекущаяВерсияРасширение = ""pDF"" | ИЛИ Файлы.ТекущаяВерсияРасширение = ""PdF"") //| И Файлы.Редактирует = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) |"; РезультатЗапроса = Запрос.Выполнить(); тз = РезультатЗапроса.Выгрузить(); РезМас = новый Массив; Если тз.Количество() > 0 Тогда РезультатСсылка = тз.ВыгрузитьКолонку("Ссылка"); РезультатКод = тз.ВыгрузитьКолонку("Код"); РезМас.Добавить(РезультатСсылка); РезМас.Добавить(РезультатКод); Иначе РезМас = новый Массив; КонецЕсли; Возврат РезМас; КонецФункции // ПолучитьФайлы() |
|||
1
ДенисЧ
17.03.16
✎
11:04
|
В чём проблема-то?
|
|||
2
s-n-a-y
17.03.16
✎
11:05
|
(1) СП говорит, что ПолучитьФайлы() недоступен на сервере
|
|||
3
s-n-a-y
17.03.16
✎
11:07
|
(1) или регламентные задания могут выполняться на клиенте тоже?
|
|||
4
Одинесю
17.03.16
✎
11:09
|
(3) ОбъектМетаданныхКонфигурация (ConfigurationMetadataObject)
РегламентныеЗадания (ScheduledJobs) Использование: Только чтение. Описание: Тип: КоллекцияОбъектовМетаданных. Коллекция объектов метаданных, которые описывают все регламентные задания, определенные в конфигурации. Элементами коллекции являются объекты типа ОбъектМетаданных: РегламентноеЗадание. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
5
Mort
17.03.16
✎
11:10
|
ДвоичныеДанные.Записать()
|
|||
6
s-n-a-y
17.03.16
✎
11:11
|
(3) сорри, я имел в виду тонкий клиент
|
|||
7
s-n-a-y
17.03.16
✎
11:18
|
(5) если я в серверной процедуре напишу
ДвоичныеДанные = Новый ДвоичныеДанные("D:\_pdf документооборот до\МойФайл.pdf"); ДвоичныеДанные.Записать(); файл запишется в указанную директорию на сервере? |
|||
8
s-n-a-y
17.03.16
✎
11:25
|
Я получаю адрес файла из хранилища. Как мне по нему сохранить файл в локальную директорию сервера 1с?
ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаДляСохранения(Файл, Неопределено, УникальныйИдентификатор); ИмяФайла = ДанныеФайла.ПолноеНаименованиеВерсии; ПолноеИмяФайла = Путь + РезультатКод[сч] + "_" + ИмяФайла + "." + ДанныеФайла.Расширение; АдресФайла = ДанныеФайла.НавигационнаяСсылкаТекущейВерсии; файл - это СправочникСсылка.Файлы |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |