Имя: Пароль:
1C
1С v8
Упр.приложение: открыть ТекстовыйДокумент на экран ???
,
0 dft2014
 
25.07.14
11:44
БП 3.0, упр.приложение.

Записываю лог в текстовый файл. Подскажите, как после записи, открыть текстовый документ на экран пользователю? Команда ТекДокумент.Открыть("\\fs\1C\OBMEN\log.txt") не срабатывает. Вот код:

Для каждого СтрокаДокумента Из ДокументыДляИмпорта Цикл
     Если СтрокаДокумента.ПлательщикСчет = НомерСчета
         НомерСтроки = НомерСтроки + 1;
         СтрокаДокумента.НомерСтроки = НомерСтроки;
     Иначе
        
         ТекДокумент = Новый ТекстовыйДокумент;
         ТекДокумент.ДобавитьСтроку("Не удалось загрузить строки:" + Символы.ПС + СтрокаДокумента.Получатель);
         ТекДокумент.УстановитьТипФайла(КодировкаТекста.UTF8);
         ТекДокумент.Вывод = ИспользованиеВывода.Разрешить;
         ТекДокумент.Записать("\\fs\1C\OBMEN\log.txt");
         ТекДокумент.Открыть("\\fs\1C\OBMEN\log.txt");
        
         СтрокаДокумента.НомерСтроки = 0;
     КонецЕсли;
КонецЦикла;
1 f_vadim
 
25.07.14
11:45
Показать ?
2 ДенисЧ
 
25.07.14
11:45
А .Показать() пробовал?
3 dft2014
 
25.07.14
12:00
(1), (2) Да, пробовала. Не сработало:

ТекДокумент.Показать("ТЕСТ ВЫВОДА","\\fs\1C\OBMEN\log.txt");

Лог создается, записывается, но на экран не выводит (((
4 х86
 
25.07.14
12:03
(3)что не сработало?
ошибка какая?
5 f_vadim
 
25.07.14
12:03
ТекДокумент.Записать("\\fs\1C\OBMEN\log.txt");
         ТекДокумент.Показать("ыыыы");
6 dj_serega
 
25.07.14
12:03
(3) а ЗапуститьПриложение() что дает?
7 f_vadim
 
25.07.14
12:04
и ещё у тебя запись в файл в цикле
8 f_vadim
 
25.07.14
12:07
ааа... оно ж наверняка на сервере выполняется.
передавай текст на клиента.
9 dft2014
 
25.07.14
12:25
Добавила строчку ТекДокумент.Показать("На экран"); стал выдавать ошибку: Метод недоступен на сервере.

Вот код:



ТекДокумент = Новый ТекстовыйДокумент;

Для каждого СтрокаДокумента Из ДокументыДляИмпорта Цикл
     Если СтрокаДокумента.ПлательщикСчет = НомерСчета
         НомерСтроки = НомерСтроки + 1;
         СтрокаДокумента.НомерСтроки = НомерСтроки;
     Иначе
        
         ТекДокумент = Новый ТекстовыйДокумент;
         ТекДокумент.ДобавитьСтроку("Не удалось загрузить строки:" + Символы.ПС + СтрокаДокумента.Получатель);
         ТекДокумент.УстановитьТипФайла(КодировкаТекста.UTF8);
         ТекДокумент.Вывод = ИспользованиеВывода.Разрешить;
         ТекДокумент.Записать("\\fs\1C\OBMEN\log.txt");
        
         СтрокаДокумента.НомерСтроки = 0;
     КонецЕсли;
КонецЦикла;

ТекДокумент.Записать("\\fs\1C\OBMEN\log.txt");
ТекДокумент.Показать("На экран");  // пишет, что метод недоступен на сервере
10 dft2014
 
25.07.14
12:26
(4) Ошибка:
Метод недоступен на сервере.
11 х86
 
25.07.14
12:29
(10)что не понятного в тексте ошибки?
12 jsmith82
 
25.07.14
12:29
ЗапуститьПриложение
13 f_vadim
 
25.07.14
12:29
(10) см (8)
14 dft2014
 
25.07.14
12:30
(13) Как?
15 dj_serega
 
25.07.14
12:32
(14) Через ВременноеХранилище
16 dft2014
 
25.07.14
12:33
(6), (12)
Пишу:  ЗапуститьПриложение("\\fs\1C\OBMEN\log.txt");

Никакой реакции не дает (((
17 dft2014
 
25.07.14
12:34
О господи! А проще можно как-нибудь?

P.S. База клиент-серверная, забыла уточнить.
18 f_vadim
 
25.07.14
12:34
(15) зачем так сложно?

Можно сделать ПолучитьТекст() и вернуть на клиента строкой.
Можно сделать реквизит формы и запихать в него.
19 dft2014
 
25.07.14
12:40
(18) Да-да, мне надо проще!!! Как можно в моем случае, можно использовать ПолучитьТекст() ???
20 f_vadim
 
25.07.14
12:43
(19) разумеется.

Коллеги, не возражаете? :)
21 ДенисЧ
 
25.07.14
12:50
(20) Я против
22 dft2014
 
25.07.14
12:52
(20) Никто не возражает!!! Помогите пож-та!!!
23 dj_serega
 
25.07.14
13:03
(22) Создаешь переменную "МойТекст = """.
Передаешь ее в процедуру НаСервере "ПрочитатьТекст(МойТекст)".
На клиенте создаешь текстовый документ, фигачишь туда текст и вызываешь "Показать()".
24 dft2014
 
25.07.14
13:06
(23) А можно с примером, а то я уже запуталась с этими УФ...
25 alle68
 
25.07.14
13:09
(22) Или на клиенте текстовый документ "Прочитать(<Имя файла>)" и "Показать()".
26 dft2014
 
25.07.14
13:12
(25) На клиенте, я думаю, не получится, т.к. у меня код в (9) для записи в тхт, происходит в процедуре, в цикле, которая выполняется на сервере.
27 alle68
 
25.07.14
13:19
(26) И никогда не возвращается к клиенту? Тогда показывать некому...
28 dj_serega
 
25.07.14
13:20
(27) Как ты вызываешь эту процедуру?
29 f_vadim
 
25.07.14
13:25


&Наклиенте
Процедура КомандаТынц()
    лог = "";
    ТынцНаСервере(лог);
    лог_текст = Новый ТекстовыйДокумент;
    лог_текст.УстановитьТекст(лог);
    лог_текст.Показать("ыыы");
КонецПроцедуры

&Насервере
Процедура ТынцНаСервере(лог)
    лог_текст = Новый ТекстовыйДокумент;
    // цикл
    // ...
    // ...
    лог = лог_текст.ПолучитьТекст();
КонецПроцедуры