Выгрузка в текстовый файл в мобильном приложении

1. KameliyaMK 15.09.20 19:09 Сейчас в теме
Добрый день!
Как в мобильном приложении можно осуществить выгрузку данных из табличной части формы в txt файл?

Код ниже выдает ошибку
Тип не определен (ТекстовыйДокумент)
ТекстовыйФайл = Новый <<?>>ТекстовыйДокумент; (Проверка: Мобильное приложение-клиент)


&НаКлиенте
Процедура ВыгрузитьВtxt(Команда)
	КаталогДляЭкспериментов = КаталогДокументов() + "\testcatalog";
	СоздатьКаталог(КаталогДляЭкспериментов);
	ТзВТекст(Элементы.ТабличнаяЧасть1,";");
	ТекстовыйФайл = Новый ТекстовыйДокумент;
	ТекстовыйФайл.Очистить();
	ТекстовыйФайл.ДобавитьСтроку("СтрокиСимволов|");
	Для каждого Строка Из Элементы.ТабличнаяЧасть1 Цикл
		ТекстовыйФайл.ДобавитьСтроку("Строка.СтрокиСимволов|");	
	КонецЦикла;
	ТекстовыйФайл.Записать(КаталогДляЭкспериментов + "\out.txt",КодировкаТекста.UTF8,Символы.ВК + Символы.ПС);
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. FatPanzer 15.09.20 21:56 Сейчас в теме
(1) Как уже выяснили - ТекстовыйДокумент не поддерживается в мобильном приложении...
А вот ЗаписьТекста - вполне себе!

ЗаписьТекста (TextWriter)
Методы:
Закрыть (Close)
Записать (Write)
ЗаписатьСтроку (WriteLine)
Открыть (Open)
Конструкторы:
На основании потока
По имени файла
Формирование неинициализированного объекта
Описание:
Предназначен для последовательной записи в текстовые файлы.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Показать
RuSeek; maksa2005; sergioevans; +3 Ответить
2. sergioevans 15.09.20 20:39 Сейчас в теме
Попробуйте серверную процедуру сделать.
Там же клиент и сервер - это вроде одна среда (файловая система).
В справке по объекту ТекстовыйДокумент в доступности есть мобильный клиент, но нет мобильного приложения.
3. KameliyaMK 15.09.20 20:42 Сейчас в теме
(2) я вас правильно поняла - изменить директиву?
4. sergioevans 15.09.20 20:48 Сейчас в теме
(3) Ну не так прям жёстко ). Это ж обработка команды.
Часть кода вынести в серверную процедуру. Приблизительно так:
&НаКлиенте
Процедура ВыгрузитьВtxt(Команда)
    КаталогДляЭкспериментов = КаталогДокументов() + "\testcatalog";
    СоздатьКаталог(КаталогДляЭкспериментов);
    ВыгрузитьВtxtНаСервере(КаталогДляЭкспериментов);
КонецПроцедуры

&НаСервере
Процедура ВыгрузитьВtxtНаСервере(ПутьВКаталог)
    ТзВТекст(Элементы.ТабличнаяЧасть1,";");
    ТекстовыйФайл = Новый ТекстовыйДокумент;
    ТекстовыйФайл.Очистить();
    ТекстовыйФайл.ДобавитьСтроку("СтрокиСимволов|");
    Для каждого Строка Из Элементы.ТабличнаяЧасть1 Цикл
        ТекстовыйФайл.ДобавитьСтроку("Строка.СтрокиСимволов|");    
    КонецЦикла;
    ТекстовыйФайл.Записать(ПутьВКаталог + "\out.txt",КодировкаТекста.UTF8,Символы.ВК + Символы.ПС);
КонецПроцедуры
Показать
5. KameliyaMK 15.09.20 21:16 Сейчас в теме
А "ТзВТекст" где описывается? С указанным кодом ошибки
Процедура или функция с указанным именем не определена (ТзВТекст)

и
Тип не определен (ТекстовыйДокумент)
ТекстовыйФайл = Новый <<?>>ТекстовыйДокумент; (Проверка: Мобильное приложение-сервер)
.
6. sergioevans 15.09.20 21:30 Сейчас в теме
(5) Значит нужно что-то другое использовать вместо ТекстовыйДокумент.
У меня такая процедура работала для xml:
Процедура ЗаписатьСообщениеСИзменениями(Каталог) Экспорт

	Сообщение = Новый СообщениеПользователю;
	Сообщение.Текст = "-------- Выгрузка в узел " + Строка(ЭтотОбъект) + " ------------";
		
	// Сформировать имя временного файла.
	ИмяФайла = Каталог + "Message" + СокрЛП(ПланыОбмена.Мобильные.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml";
	// Создать объект записи XML
	// *** ЗаписьXML-документов.
	ЗаписьXML = Новый ЗаписьXML;
	ЗаписьXML.ОткрытьФайл(ИмяФайла);
	ЗаписьXML.ЗаписатьОбъявлениеXML();
	
	// *** Инфраструктура сообщений.
	ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
	ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Ссылка);
	Сообщение.Текст = Сообщение.Текст + Символы.ПС + " Номер сообщения: " + ЗаписьСообщения.НомерСообщения;
	
	// Получить выборку измененных данных
	// *** Механизм регистрации изменений.
	ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель,ЗаписьСообщения.НомерСообщения);
	Пока ВыборкаИзменений.Следующий() Цикл
		Данные = ВыборкаИзменений.Получить();
		
		// Записать данные в сообщение *** XML-сериализация.
		Обмен.ЗаписатьДанные(ЗаписьXML, Данные);
	КонецЦикла;

	ЗаписьСообщения.ЗакончитьЗапись();
	ЗаписьXML.Закрыть();
	
	Сообщение.Текст = Сообщение.Текст + Символы.ПС + "-------- Конец выгрузки ------------";
	Сообщение.Сообщить();

КонецПроцедуры 
Показать


А "ТзВТекст" - у вас, видимо, клиентская. Сейчас вопрос не в этом. Надо альтернативу Текстовому документу найти.
8. пользователь 23.09.20 11:18
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот