Типы данных в ТаблицеЗначений

1. Vladiimir 10.09.19 19:11 Сейчас в теме
Доброго времени суток!

Подскажите пожалуйста новичку. Почему когда записываю данные в структуру данных типа ТаблицаЗначений, то при записи все данные записываются так как нужно (Строки строками, объекты типом Объект), но когда начинаю перебирать строки с помощью цикла "Для каждого" объекты превращаются в строки?

ТаблицаДействий = Новый ТаблицаЗначений;
    ТаблицаДействий.Колонки.Добавить("Наименование");
    ТаблицаДействий.Колонки.Добавить("ИсточникДляЗаполнения");

Пока Выборка.Следующий() Цикл		
		СтрокаТаблицаДействий = ТаблицаДействий.Добавить();
		СтрокаТаблицаДействий.Наименование      = Выборка.Ссылка;
		СтрокаТаблицаДействий.ИсточникДляЗаполнения = Выборка.ИсточникДляЗаполнения;		
	КонецЦикла;


	Для каждого  ТекущаяСтрока из СтрокаТаблицаДействий Цикл   //Здесь в  СтрокаТаблицаДействий поле Наименование - Объект
		СтрТЧ=Объект.ЗаполнениеРеквизитовДоговора.Добавить();
		СтрТЧ.РеквизитДоговора=ТекущаяСтрока.Наименование;    //Здесь в  ТекущаяСтрока поле Наименование - Строка
		СтрТЧ.Комментарий=ТекущаяСтрока.ИсточникДляЗаполнения;
	КонецЦикла;
Показать


Как сделать, чтобы оставалась ссылка?
По теме из базы знаний
Найденные решения
6. LifeRock 10.09.19 20:06 Сейчас в теме
Для каждого ТекущаяСтрока из СтрокаТаблицаДействий Цикл //Здесь в СтрокаТаблицаДействий поле Наименование - Объект
СтрТЧ=Объект.ЗаполнениеРеквизитовДоговора.Добавить();
СтрТЧ.РеквизитДоговора=ТекущаяСтрока.Наименование;

Потому что вот здесь ТекущаяСтрока это ссылка уже.
А ТекущаяСтрока.Наименование это наименование договора.

В отладке посмотрите
Vladiimir; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. spacecraft 10.09.19 21:01 Сейчас в теме
(1) начнем с того, что : "Для каждого ТекущаяСтрока из СтрокаТаблицаДействий Цикл" вообще не к месту. Это обход последней строки ТЗ, а не самой ТЗ.
Соответственно Текущая Строка.Наименование это Наименование значения первой ячейки последней строки. Другими словами: Ссылка.Наименование.
Vladiimir; +1 Ответить
2. nomad_irk 76 10.09.19 19:14 Сейчас в теме
Эээ...у вас не ТаблицаЗначений, а табличная часть объекта - это разные вещи. Для ТЧ объекта тип значения указывается в свойствах реквизита. По умолчанию - строка.
3. Vladiimir 10.09.19 19:40 Сейчас в теме
(2) Нет, я не весь код привел, вот

ТаблицаДействий = Новый ТаблицаЗначений;
	ТаблицаДействий.Колонки.Добавить("Наименование");
	ТаблицаДействий.Колонки.Добавить("ИсточникДляЗаполнения");


Таблица значений, а записываю в табличную часть, у которой тип объект, мне и нужно записать объект, но в таблицеЗначений в цикле он превращается в строку и программа ругается, что "Наименование" не является объектом
4. LifeRock 10.09.19 19:52 Сейчас в теме
Для каждого ТекущаяСтрока из СтрокаТаблицаДействий Цикл
Вот это зачем вообще?

Почему сразу не заполнять все что надо в Пока Выборка.Следующий() Цикл
Зачем еще таблица значений ТаблицаДействий
Vladiimir; +1 Ответить
5. Vladiimir 10.09.19 19:56 Сейчас в теме
(4) ну сперва думал передать на клиент эту таблицу и заполнить там

Попробую заполнить на прямую, но всё равно остается вопрос почему так происходит и как с этим бороться?
6. LifeRock 10.09.19 20:06 Сейчас в теме
Для каждого ТекущаяСтрока из СтрокаТаблицаДействий Цикл //Здесь в СтрокаТаблицаДействий поле Наименование - Объект
СтрТЧ=Объект.ЗаполнениеРеквизитовДоговора.Добавить();
СтрТЧ.РеквизитДоговора=ТекущаяСтрока.Наименование;

Потому что вот здесь ТекущаяСтрока это ссылка уже.
А ТекущаяСтрока.Наименование это наименование договора.

В отладке посмотрите
Vladiimir; +1 Ответить
8. Vladiimir 11.09.19 07:04 Сейчас в теме
(6) Но это ведь должна быть колонка с названием "Наименование"?

ТаблицаДействий.Колонки.Добавить("Наименование");


Как тогда обращаться к конкретной колонке?
9. Vladiimir 11.09.19 07:12 Сейчас в теме
(6)Понял - в цикле нужно перебирать ТаблицаДействий, а не СтрокаТаблицаДействий.
Спасибо!
10. Vladiimir 11.09.19 07:15 Сейчас в теме
Понял - в цикле нужно перебирать ТаблицаДействий, а не СтрокаТаблицаДействий.
Спасибо!
Оставьте свое сообщение

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