Имя: Пароль:
1C
1С v8
Куда сохраняется файл на тонком клиенте если путь не указан? 8.3
, ,
0 Matrix1C
 
08.09.14
17:22
В процедуре обработки &НаСервере внешней обработки

    ЗаписьXML=Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ИмяФайла);
....

Где он оказывается по какому пути? НЕ МОГУ НАЙТИ, хотя по всем сообщениям он сформирован. Как его оттуда забрать?
1 Wobland
 
08.09.14
17:27
откладчик, я так понимаю, не предлагать.. что же делать?
2 ptiz
 
08.09.14
17:35
(1) Я так понял, что в отладчике у него ИмяФайла = "МойФайл.txt", без пути. Вот и ищет.
3 _fvadim
 
08.09.14
17:38
на сервере искать.

указать путь в корень диска цэ нельзя? он должен быть и на сервере и на клиенте.
4 Matrix1C
 
08.09.14
17:42
Спасибо. За советы. Ищу давно.

Чем поможет отладчик? Имя файла я и так знаю например asn.xml

но с любым путем пишет путь не существует.
на с именно в корень не пробовал, но там по моему сама винде семерка не даст.

На сервере уточните где? я же вижу сеть и там папок нет благо по моему база не файловая.
5 Wobland
 
08.09.14
17:49
(4) примени микроскоп, ты видишь серверный путь в переменной
6 Matrix1C
 
08.09.14
17:50
попробовал C:\asn.xml Об ошибках не сообщает. Но файла там не оказывается. Создаю папку 1С и беру имя C:\1C\asn.xml
сразу пишет Каталог не обнаружен. ХОТЯ я его указывал через диалог выбора и она точно есть?
Что с клиентом почему же из функции с объявлением &НаСервере не получается записать файл?
7 Matrix1C
 
08.09.14
17:51
(5) в какой переменной?
8 Wobland
 
08.09.14
17:51
(7) ну уж не ЗаписьXML
9 Matrix1C
 
08.09.14
17:51
в функции с модификатором НаКлиенте всё работает, но надо на сервере я же там документы перебираю
10 Wobland
 
08.09.14
17:53
(9) ПолучитьФайл или как его там тебе поможет
11 Dmitriy_76
 
08.09.14
17:56
(6) каталог где создавал ? не на клиетской машине (рдп сессии) случаем  ?
12 BuHu
 
08.09.14
17:57
Ты хочешь что бы код выполняющийся на сервере записывав файл на твой локальный комп?
13 _fvadim
 
08.09.14
17:58
(6) не тормози. файл записывается НаСервере.

а вот каталога C:\1C\ на сервере нет, потому и ошибка.
14 _fvadim
 
08.09.14
18:02
"благо по моему база не файловая"
этот пункт подтолкнёт тебя к пониманию, что &насервере и &наклиенте придумали не для красоты.
15 Matrix1C
 
08.09.14
18:13
Слушайте!
Мне надо файл сделать на этом ПК где я запустил клиент и в него записать выгрузку
Но получается что &НаСервере это НЕЛЬЗЯ?
а на клиенте нельзя перебирать документы?

мне не понятно я не так делаю или нет такой возможности?


(13)На серевере я вообще каталогов не вижу, и не знаю как их посмотреть и есть ли они там. Получается я кудато пишу но оттуда взять обратно на клиент не могу? ИЛИ НЕ ЗНАЮ.
16 Wobland
 
08.09.14
18:23
(15) ты не так делаешь, такой возможности есть
17 Matrix1C
 
08.09.14
18:37
Похоже действительно это можно сделать с сетевым путем на сервер. Нашел там папочку с доступом для народа указал к ней сетевой путь. И файл создался.

По ходу действия вписал в обработку табличную часть, и тоже не смог к ней обратится из &НаСервере, а так старался....

В общем пока чуждое мне разделение клиент-сервер.
Всем спасибо за участие.
18 Fedor-1971
 
08.09.14
18:38
(17) Можно с локальным каталогом. Идея примерно следующая создаём НаКлиенте, например, ТабличныйДокумент. НаСервере заполняем оный. По возвращении НаКлиент записываем куда тебе нужно.
19 FN
 
08.09.14
19:20
На сервере сохраняй во временное хранилище в нужном формате, на клиенте получай.

Типа так:

&НаКлиенте
Процедура ПолучитьШаблон(Команда)
        ДиалогВыбораФайла=новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    ДиалогВыбораФайла.Фильтр="Файлы xlsx|*.xlsx";
    ДиалогВыбораФайла.МножественныйВыбор=Ложь;
    ДиалогВыбораФайла.Заголовок="Укажите файл для сохранения шаблона";
    Если ДиалогВыбораФайла.Выбрать() тогда
        ИмяФайла=ДиалогВыбораФайла.ПолноеИмяФайла;
    Иначе
        Возврат;
    КОнецЕсли;
    Адрес="";
    ПолучитьШаблонНаСервере(Адрес,СсылкаНаЭлемент);
    Данные=ПолучитьИзВременногоХранилища(Адрес);
    Данные.Записать(ИмяФайла);
    Если Вопрос("Отркыть файл для редактирования?",РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да тогда
        ЗапуститьПриложение(ИмяФайла,,Ложь);
    КонецЕсли;
    
КонецПроцедуры

&НаСервере
Процедура ПолучитьШаблонНаСервере(Адрес,Ссылка)
    Об=Ссылка.ПолучитьОбъект();
    Адрес = ПоместитьВоВременноеХранилище(Об.Макет.Получить());
КонецПроцедуры
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший