| 
    
        
     
     | 
    
    
  | 
Сохранение xml с сервера на клиент | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Wefast    
     11.08.16 
            ✎
    23:28 
 | 
         
        Обработка формирует файл и записывает по выбранному мной пути.
 
        На локальной базе все работает т.к. серверные методы на этой же машине отрабатывают. Но с серверной базой не пойму как сделать. Я на клиенте выбираю куда сохранить файл(а выбрать я могу только то что доступно пользователю) Потом мне нужно сформировать ТЗ, это делается в серверной процедуре. Из нее вызывается процедура где я тз обрабатываю и записываю в XML А там идет ЗаписьХМL = Новый ЗаписьXML; ЗаписьХМL.ОткрытьФайл(Объект.Путь,"windows-1251"); ЗаписьХМL.ЗаписатьОбъявлениеXML(); Но путь уже мой не прокатит же на сервере. Что делать? Только общий путь до каталога? или можно как то иначе?  | 
|||
| 
    1
    
        Garykom    
     гуру 
    11.08.16 
            ✎
    23:31 
 | 
         
        Начни отсюда http://catalog.mista.ru/public/198766/     
         | 
|||
| 
    2
    
        Garykom    
     гуру 
    11.08.16 
            ✎
    23:33 
 | 
         
        На самом деле, все просто. Фраза «выполнить на сервере», означает, что ваш код будет выполнен на физически другой машине. Совсем на другом компьютере (который может располагаться на другом континенте), со всеми вытекающими эффектами. Там будет другая структура каталогов, другие права доступа и даже другая операционная система.
 
        Однако многие уже опытные разработчики запросто писали такой код: - Выбирается локальный файл - Его путь передается на сервер - Там по этому пути файл пытается открыться и падает с ошибкой «Файл не найден» (еще бы, он же остался на клиенте).  | 
|||
| 
    3
    
        Wefast    
     11.08.16 
            ✎
    23:34 
 | 
         
        Да и эту же ТЗ я пытаюсь вывести на экран
 
        Построитель=Новый ПостроительОтчета(); Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(РезультатЗапроса); Построитель.Вывести(); ну и тоже самое, ничего на моем компе не видно  | 
|||
| 
    4
    
        zladenuw    
     11.08.16 
            ✎
    23:34 
 | 
||||
| 
    5
    
        Wefast    
     11.08.16 
            ✎
    23:35 
 | 
         
        (2) да я понял в чем собственно загвоздка. Я не пойму как все это решить парой строк а не делать из процедур какие нибудь функции     
         | 
|||
| 
    6
    
        Garykom    
     гуру 
    11.08.16 
            ✎
    23:37 
 | 
         
        (5) >решить парой строк
 
        это слегка наивно не зная УФ  | 
|||
| 
    7
    
        Wefast    
     11.08.16 
            ✎
    23:41 
 | 
         
        (6) ну я же не с обычных форм переделываю. Оно и так уже на управляемых формах. 
 
        Но спасибо за ссылки  | 
|||
| 
    8
    
        H A D G E H O G s    
     11.08.16 
            ✎
    23:42 
 | 
         
        ЗаписьХМL = Новый ЗаписьXML;
 
        ЗаписьХМL.УстановитьСтроку("windows-1251"); ЗаписьХМL.ЗаписатьОбъявлениеXML(); ...... ...... ТекстXML=ЗаписьХМL.Закрыть(); Возврат ТекстXML; КонецФункции  | 
|||
| 
    9
    
        H A D G E H O G s    
     11.08.16 
            ✎
    23:43 
 | 
         
        Но это работает для текстов не более 10 Мбайт.     
         | 
|||
| 
    10
    
        zladenuw    
     11.08.16 
            ✎
    23:44 
 | 
         
        надо просто погуглить
 
        http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=583632  | 
|||
| 
    11
    
        zladenuw    
     11.08.16 
            ✎
    23:45 
 | 
||||
| 
    12
    
        Wefast    
     12.08.16 
            ✎
    02:21 
 | 
         
        Понаделал костылей и заработало. А потом оказалось что под тонким клиентом это все опять перестало работать из-за попытке получить на клиенте тз с сервера.
 
        Пойду спать, завтра еще буду пробовать  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |