| 
    
            
         
         | 
    
  | 
Аналог метода ПолучитьФайлы() на сервере | ☑ | ||
|---|---|---|---|---|
| 
    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с? 
 
        ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаДляСохранения(Файл, Неопределено, УникальныйИдентификатор); ИмяФайла = ДанныеФайла.ПолноеНаименованиеВерсии; ПолноеИмяФайла = Путь + РезультатКод[сч] + "_" + ИмяФайла + "." + ДанныеФайла.Расширение; АдресФайла = ДанныеФайла.НавигационнаяСсылкаТекущейВерсии; файл - это СправочникСсылка.Файлы  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |