Имя: Пароль:
1C
1С v8
v8: Как создать файл(*.txt) на клиенте через управляемое приложение(тонкий клиент)
0 Novicadmin
 
27.05.13
10:25
Первый сервер: сервер 1С 8.2 + БД.
Второй севере: терминальный сервер.
Приложение: тонкий клиент запущенный на втором сервере.(управляемое приложение)


Попробывал в модуле формы выполнить процедуру:

&НаСервере
Процедура Выгрузить()
Попытка
   файл = новый ТекстовыйДокумент;
   ФайлКВыгрузке = "c:\goods.csv";
   файл.ВставитьСтроку("привет");
   Файл.Записать(ФайлКВыгрузке, КодировкаТекста.ANSI);
   ПереместитьФайл(ФайлКВыгрузке,СтрЗаменить(ФайлКВыгрузке,"goods.cs_","goods.csv"));    
   
Исключение
   Сообщить(ОписаниеОшибки());
КонецПопытки;    
КонецПроцедуры    

В результате файл создаётся на сервере, а не на клиентском рабочем месте.

Нужен файл на клиентском рабочем месте.

p/s Help! )
1 1Сергей
 
27.05.13
10:26
Правильно говорить не "тинкий", а "тощий"
2 1Сергей
 
27.05.13
10:27
ТекстовыйДокумент (TextDocument)
Записать (Write)
Синтаксис:

Записать(<ИмяФайла>, <ТипФайла>, <РазделительСтрок>)
...
Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
3 Novicadmin
 
27.05.13
10:29
выполняется код нормально, но файл создаётся не там где надо, не на том компе.
4 ptiz
 
27.05.13
10:29
В сетевую шару сохраняй.
5 Мимохожий Однако
 
27.05.13
10:30
Размести процедуру в клиенте и будет на твоём диске С
6 almar
 
27.05.13
10:31
Записывай в процедуре &НаКлиенте
7 Novicadmin
 
27.05.13
10:31
(4) нет, не надо так )
8 Novicadmin
 
27.05.13
10:32
если там же в модуле формы, выполнить вот так
9 Novicadmin
 
27.05.13
10:32
&НаКлиенте
Процедура Выгрузить()
Попытка
   файл = новый ТекстовыйДокумент;
   ФайлКВыгрузке = "c:\goods.csv";
   файл.ВставитьСтроку("привет");
   Файл.Записать(ФайлКВыгрузке, КодировкаТекста.ANSI);
   
Исключение
   Сообщить(ОписаниеОшибки());
КонецПопытки;    
КонецПроцедуры
10 Novicadmin
 
27.05.13
10:33
то ругается на недостаток фактических параметров
11 drcrasher
 
27.05.13
10:33
вот что характерно, в (0) всё работает именно так, как и написанов коде.
тонкий клиент работает в терминале и считает, что это обычное рабочее место обычного юзера.
но если в настройках рдп прописать, что у юзера кроме локально-серверных дисков есть и обычные локальные диски, то вполне можно сохранять не на терминал, а на рабочий комп.
12 1Сергей
 
27.05.13
10:34
(10)

ТекстовыйДокумент (TextDocument)
ВставитьСтроку (InsertLine)
Синтаксис:

ВставитьСтроку(<НомерСтроки>, <Строка>)
Параметры:

<НомерСтроки> (обязательный)

Тип: Число.
Номер вставляемой строки.
<Строка> (обязательный)

Тип: Строка.
Вставляемая строка.
Описание:

Вставляет в текстовый документ строку с указанным номером.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример:

ТекстДок.ВставитьСтроку(23, "Новая строка");
13 Novicadmin
 
27.05.13
10:35
(12) не флуди )
14 Novicadmin
 
27.05.13
10:37
&НаКлиенте
Процедура ТоварНаКассы(Команда)
Режим = РежимДиалогаВопрос.ДаНет;
Текст = "ru = ""Продолжить выгрузку?""";
Ответ = Вопрос(НСтр(Текст), Режим, 0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
   Возврат;
иначе
   Попытка
   файл = новый ТекстовыйДокумент;
   ФайлКВыгрузке = "c:\goods.csv";
   файл.ВставитьСтроку("привет");
   Файл.Записать(ФайлКВыгрузке, КодировкаТекста.ANSI);
   
Исключение
   Сообщить(ОписаниеОшибки());
КонецПопытки;    

КонецЕсли;
   
КонецПроцедуры


Вот так если, то недостаточно фактических параметров (
15 drcrasher
 
27.05.13
10:38
файл.ВставитьСтроку("привет");

а добавитьСтроку оно умеет?
16 Novicadmin
 
27.05.13
10:38
(12) извини, ругался именно тут ))))
17 Novicadmin
 
27.05.13
10:39
(15) да ошибка была в этом месте)
18 Novicadmin
 
27.05.13
10:59
А возможно сделать так?

В мудуле формы:

Процедура Нажатие(Команда)

файл = новый ТекстовыйДокумент()

ДанныеФайла = ПолучитьДанныеДляФайла(файл) //эту функцию размесить в модуле объекта

ИмяФайла= "c:\имяфайла.txt"

ДанныеФайла.Записать(имяФайла, КодировкаТекста.ANSI)


КонецПроцедуры
19 Novicadmin
 
27.05.13
11:16
всё сделал ))))))