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 8 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 Сейчас в теме
Понял - в цикле нужно перебирать ТаблицаДействий, а не СтрокаТаблицаДействий.
Спасибо!
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии


Программисты 1С УТ / БУЗ/ЗУП / БИТ ФИНАНС
Москва
зарплата от 100 000 руб. до 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 150 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Владивосток
зарплата от 80 000 руб. до 120 000 руб.
Полный день