Добавление Строки в цикле

1. TABEZI1234 16.01.19 12:02 Сейчас в теме
В файле сохраняется только последняя строка из цикла. Как сделать, чтобы сохранялись все строки?

Функция 1()

ТД = Новый ТекстовыйДокумент;
Данные1=(данные);


Если ЗачислениеЗарплаты.Количество() > 0 Тогда
			// в данные2 возврат данных из цикла ,который работает в Функции2()	
		Данные2=Функция2() 
КонецЕсли;

Строка = (Данные1 +";" +  Данные2);

ТД.ДобавитьСтроку(Строка);
ТекстXML = ТД.ПолучитьТекст();

Возврат ЗаписатьТесктНаДиск(ТекстXML, ИмяФайла);

КонецФункции
Показать



// цикл в функции2
Функция2()


 Запрос...
... как Данные3
...
РезультатЗапроса = Запрос.Выполнить();
Выборка=результат запроса.выбрать()

Пока Выборка Следующий() Цикл
 Данные2 = (выборка.данные3)

КонецЦикла;
Возврат Данные2;
КонецФункции
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. login1020 133 16.01.19 12:07 Сейчас в теме
(1) а данные 1 постоянны?
Данные1=(данные);


Это в цикл
Строка = (Данные1 +";" + Данные2);
ТД.ДобавитьСтроку(Строка);
TABEZI1234; +1 Ответить
2. insurgut 207 16.01.19 12:06 Сейчас в теме
В вашем примере нет цикла.
3. dhurricane 16.01.19 12:06 Сейчас в теме
А где, собственно, цикл? :-)
5. ishelper 16.01.19 12:20 Сейчас в теме
Из обсуждения 6-летней давности:
    Дописывать    = Истина;
    ЗаписьТекста = Новый ЗаписьТекста(ИмяФайлаПротокола, КодировкаТекста.UTF8, , Дописывать); 
    ТекстСообщений     = "Начало проведения:   " + ТекущаяДата();
    ЗаписьТекста.ЗаписатьСтроку(ТекстСообщений);
    ....
    ТекстСообщений     = "Окончание проведения: " + ТекущаяДата();
    ЗаписьТекста.ЗаписатьСтроку(ТекстСообщений);
    ЗаписьТекста.Закрыть();
Показать


Но, глядя на заданный автором вопрос: "Добавление Строки в цикле" при отсутствии цикла я не уверен, что это пойдет ему на пользу.
6. Vovus 3 16.01.19 12:22 Сейчас в теме
ока Выборка Следующий() Цикл
Данные2 = (выборка.данные3)

КонецЦикла;
Здесь и получается что добавляете 1 строку а не весь цикл в данные документа
ЗаписьТекста.ЗаписатьСтроку(ТекстСообщений);
7. SedovSU@mail.ru 297 16.01.19 12:33 Сейчас в теме +0.23 $m
У вас одна только запись добавляется в данные2 (последняя) при таком коде
Пока Выборка Следующий() Цикл
Данные2 = (выборка.данные3)
КонецЦикла;

Нужно написать что то вроде этого

Данные2 = "";
Пока Выборка.Следующий Цикл
Если ЗначениеЗаполнено(Данные2) Тогда
Данные2 = Данные2 + " " + Выборка.данные3
Иначе
Данные2 = Выборка.данные3
Конецесли
Конеццикла
SIrina9; Kovekh; TABEZI1234; +3 Ответить
8. TABEZI1234 16.01.19 12:46 Сейчас в теме
9. TABEZI1234 16.01.19 13:58 Сейчас в теме
(7) извините, при использовании вашего кода строки присоединяются друг к другу в одной строке, как изменить, чтобы записывались новые строки для каждой строки выборки друг под другом?
10. SedovSU@mail.ru 297 16.01.19 14:20 Сейчас в теме
(9) Добавить символ enter - Символы.ПС

Данные2 = ""; 
Пока Выборка.Следующий Цикл 
     Если ЗначениеЗаполнено(Данные2) Тогда 
          Данные2 = Данные2 + Символы.ПС + Выборка.данные3 
      Иначе 
           Данные2 = Выборка.данные3 
     Конецесли 
Конеццикла
TABEZI1234; +1 Ответить
11. TABEZI1234 16.01.19 14:22 Сейчас в теме
12. senshkr 13 18.01.19 13:44 Сейчас в теме
Данные2 = " "; //ДОБАВЛЕНО
Функция2()


Запрос...
... как Данные3
...
РезультатЗапроса = Запрос.Выполнить();
Выборка=результат запроса.выбрать()

Пока Выборка Следующий() Цикл
Данные2 = Данные2 + "; "+(выборка.данные3); // ИЗМЕНЕНО

КонецЦикла;
Оставьте свое сообщение

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