| 
    
        
     
     | 
    
  | 
Работа с файлами | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        ammorf    
     10.04.18 
            ✎
    08:44 
 | 
         
        Приветствую! Подскажите как получить/записать файл расположенный на сервере 1С на клиенте? При попытке получить файл клиент использует файловую систему клиенского ПК. Обычное приложение. Платформа последняя. Клиент-сервер.     
         | 
|||
| 
    1
    
        Сияющий в темноте    
     10.04.18 
            ✎
    08:59 
 | 
         
        Написать получение файла в процедуре,выполняющейся на сервере,только имя файла должно быть известно     
         | 
|||
| 
    2
    
        Cool_Profi    
     10.04.18 
            ✎
    08:59 
 | 
         
        На сервере пихнуть в хранилище значений, отдать клиенту, там получить из хранилища, записать     
         | 
|||
| 
    3
    
        ammorf    
     10.04.18 
            ✎
    09:02 
 | 
         
        (1) Обычное приложение. Процедура с директивой &НаСервере не прокатит..     
         | 
|||
| 
    4
    
        shuhard    
     10.04.18 
            ✎
    09:03 
 | 
         
        (3) у общего модуля есть галка где выполняться, она от толщины клиента не зависит     
         | 
|||
| 
    5
    
        Strogg    
     10.04.18 
            ✎
    09:03 
 | 
         
        (3) можешь через сетевую папку. Только доступ с парольной защитой отключить надо     
         | 
|||
| 
    6
    
        ammorf    
     10.04.18 
            ✎
    09:04 
 | 
         
        В общем задача такая. Обработка выполняет выгрузку:
 
        Обработина.РежимОбмена = "Выгрузка"; Обработина.ИмяФайлаОбмена = "D:\1CShare\Upload_inueco.xml"; Обработина.ИмяФайлаПравилОбмена = "D:\1CShare\ExchangeRules.xml"; Обработина.ЗагрузитьПравилаОбмена(); Для Каждого ТПВ Из Обработина.ТаблицаПравилВыгрузки.Строки Цикл Для Каждого ТПВСтрока Из ТПВ.Строки Цикл ТПВСтрока.СсылкаНаУзелОбмена = ПланыОбмена.Полный.НайтиПоКоду("001"); КонецЦикла; КонецЦикла; Обработина.ИспользоватьТранзакцииПриВыгрузкеДляПлановОбмена = Истина; Обработина.ВыполнитьВыгрузку(); Сообщить("Выгрузка завершена!"); На сервер обработка отрабатывает отлично. Но на клиентской машине не работает так как путь не существует.  | 
|||
| 
    7
    
        ammorf    
     10.04.18 
            ✎
    09:04 
 | 
         
        Использует обработку УниверсальныйОбменДаннымиXML     
         | 
|||
| 
    8
    
        shuhard    
     10.04.18 
            ✎
    09:06 
 | 
         
        (6) запускай на сервере
 
        копируй файлы на клиент - внутри 1С , либо вне 1С  | 
|||
| 
    9
    
        ammorf    
     10.04.18 
            ✎
    09:10 
 | 
         
        (8) Клиент на сервере не вариант. Вообще это регламентное задание и оно выполняется по расписанию. Просто бухи хотят сами когда захотят инициализировать обмен. А работают они на клиентах на своих ПК. Я думал запускать рег. задание принудительно, но что то не разобрался как это сделать.     
         | 
|||
| 
    10
    
        ammorf    
     10.04.18 
            ✎
    09:11 
 | 
         
        а предоставлять им работу с консолью заданий я как то побаиваюсь))     
         | 
|||
| 
    11
    
        Alexperumov    
     10.04.18 
            ✎
    09:17 
 | 
         
        6) "Но на клиентской машине не работает так как путь не существует"   Положи в сетевую папку  типа 
 
        \\server\1CShare\Upload_inueco.xml  | 
|||
| 
    12
    
        ammorf    
     10.04.18 
            ✎
    09:18 
 | 
         
        (11) попробую уговорить нашего админа) он очень не любит всякие открытые сетевые папки (помешан на безопасности)))     
         | 
|||
| 
    13
    
        shuhard    
     10.04.18 
            ✎
    09:21 
 | 
         
        (9) т.е. делать ты ни чего не будешь - смысл создания топика ?     
         | 
|||
| 
    14
    
        Сияющий в темноте    
     10.04.18 
            ✎
    09:22 
 | 
         
        В чем проблема написать управлялку конкретным регламентным заданием?     
         | 
|||
| 
    15
    
        ammorf    
     10.04.18 
            ✎
    09:26 
 | 
         
        (14) все таки проще действительно пойти путем принудительного запуска регламентного задания.     
         | 
|||
| 
    16
    
        _Дайвер_    
     10.04.18 
            ✎
    09:40 
 | 
         
        &НаСервере //вызывается с клиента
 
        Путь = ПолучитьИмяВременногоФайла(); ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(Путь); Тут заполняешь файл например, получаешь или что хочешь делаешь // Получаем двоичные данные файла и помещаем их во временное хранилище ДвоичныеДанные = Новый ДвоичныеДанные(Путь); Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанные); Возврат Адрес; &НаКлиенте //После отработки серверной функции пишешь ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоФайла); ДвоичныеДанные.Записать(Объект.КаталогВыгрузки+"\"+ИмяФайлаXML); Сообщить("Файл сохранен в " + Объект.КаталогВыгрузки, СтатусСообщения.Внимание); Примерно так, нюансы сам разберешь  | 
|||
| 
    17
    
        ammorf    
     10.04.18 
            ✎
    09:46 
 | 
         
        (16) конфигурация в режиме совместимости 8.1. Директивы не работают. Процедура помещаемая в эту директиву с клиента становится не видна.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |