Вход | Регистрация

1С:Предприятие ::

Метки: 

Работа с файлами

Я
   ammorf
 
10.04.18 - 08:44
Приветствую! Подскажите как получить/записать файл расположенный на сервере 1С на клиенте? При попытке получить файл клиент использует файловую систему клиенского ПК. Обычное приложение. Платформа последняя. Клиент-сервер.
 
  Рекламное место пустует
   Сияющий в темноте
 
1 - 10.04.18 - 08:59
Написать получение файла в процедуре,выполняющейся на сервере,только имя файла должно быть известно
   Cool_Profi
 
2 - 10.04.18 - 08:59
На сервере пихнуть в хранилище значений, отдать клиенту, там получить из хранилища, записать
   ammorf
 
3 - 10.04.18 - 09:02
(1) Обычное приложение. Процедура с директивой &НаСервере не прокатит..
   shuhard
 
4 - 10.04.18 - 09:03
(3) у общего модуля есть галка где выполняться, она от толщины клиента не зависит
   Strogg
 
5 - 10.04.18 - 09:03
(3) можешь через сетевую папку. Только доступ с парольной защитой отключить надо
   ammorf
 
6 - 10.04.18 - 09:04
В общем задача такая. Обработка выполняет выгрузку:
    Обработина.РежимОбмена = "Выгрузка";    
    Обработина.ИмяФайлаОбмена  = "D:\1CShare\Upload_inueco.xml";
    Обработина.ИмяФайлаПравилОбмена  = "D:\1CShare\ExchangeRules.xml";
    
    Обработина.ЗагрузитьПравилаОбмена();
    Для Каждого ТПВ Из Обработина.ТаблицаПравилВыгрузки.Строки Цикл 
        Для Каждого ТПВСтрока Из ТПВ.Строки Цикл 
            ТПВСтрока.СсылкаНаУзелОбмена = ПланыОбмена.Полный.НайтиПоКоду("001");
        КонецЦикла;
    КонецЦикла;
    Обработина.ИспользоватьТранзакцииПриВыгрузкеДляПлановОбмена = Истина;
    Обработина.ВыполнитьВыгрузку();    
    Сообщить("Выгрузка завершена!");

На сервер обработка отрабатывает отлично. Но на клиентской машине не работает так как путь не существует.
   ammorf
 
7 - 10.04.18 - 09:04
Использует обработку УниверсальныйОбменДаннымиXML
   shuhard
 
8 - 10.04.18 - 09:06
(6) запускай на сервере
копируй файлы на клиент - внутри 1С , либо вне 1С
   ammorf
 
9 - 10.04.18 - 09:10
(8) Клиент на сервере не вариант. Вообще это регламентное задание и оно выполняется по расписанию. Просто бухи хотят сами когда захотят инициализировать обмен. А работают они на клиентах на своих ПК. Я думал запускать рег. задание принудительно, но что то не разобрался как это сделать.
   ammorf
 
10 - 10.04.18 - 09:11
а предоставлять им работу с консолью заданий я как то побаиваюсь))
 
  Рекламное место пустует
   Alexperumov
 
11 - 10.04.18 - 09:17
6) "Но на клиентской машине не работает так как путь не существует"   Положи в сетевую папку  типа
\\server\1CShare\Upload_inueco.xml
   ammorf
 
12 - 10.04.18 - 09:18
(11) попробую уговорить нашего админа) он очень не любит всякие открытые сетевые папки (помешан на безопасности)))
   shuhard
 
13 - 10.04.18 - 09:21
(9) т.е. делать ты ни чего не будешь - смысл создания топика ?
   Сияющий в темноте
 
14 - 10.04.18 - 09:22
В чем проблема написать управлялку конкретным регламентным заданием?
   ammorf
 
15 - 10.04.18 - 09:26
(14) все таки проще действительно пойти путем принудительного запуска регламентного задания.
   _Дайвер_
 
16 - 10.04.18 - 09:40
&НаСервере//вызывается с клиента

Путь = ПолучитьИмяВременногоФайла();
        ЗаписьXML = Новый ЗаписьXML;
        ЗаписьXML.ОткрытьФайл(Путь);

Тут заполняешь файл например, получаешь или что хочешь делаешь
 
// Получаем двоичные данные файла и помещаем их во временное хранилище

ДвоичныеДанные = Новый ДвоичныеДанные(Путь);
Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанные); 
        Возврат Адрес;

&НаКлиенте//После отработки серверной функции пишешь

ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоФайла);
        ДвоичныеДанные.Записать(Объект.КаталогВыгрузки+"\"+ИмяФайлаXML);
        Сообщить("Файл сохранен в " + Объект.КаталогВыгрузки, СтатусСообщения.Внимание);


Примерно так, нюансы сам разберешь
   ammorf
 
17 - 10.04.18 - 09:46
(16) конфигурация в режиме совместимости 8.1. Директивы не работают. Процедура помещаемая в эту директиву с клиента становится не видна.


Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует