Имя: Пароль:
1C
1С v8
Список Значений в Таблице Значений
0 W1ster
 
26.07.13
00:58
Для А=1 по 100 Цикл
СписокЗначений.Добавить(А);
Стр = ТаблицаЗначений.Добавить();
Стр.Колонка1 = СписокЗначений;
СписокЗначений.Очистить();
КонецЦикла

В ТЗ все 100 значений пустые. Метод СЗ.Очистить() чистит в результате ранее присвоенные. Где ошибка?
1 Живой Ископаемый
 
26.07.13
01:02
Во всех строках ссылаются на гдин список, который ты и очишаещь. Копируй
2 Chai Nic
 
26.07.13
01:03
Ты присваиваешь ссылку, а не объект. Вообще, это типичная ошибка начинающих, вызванная нечеткими формулировками в документации. Переменная, содержащая агрегатный объект - на самом деле является ссылкой на него.
3 W1ster
 
26.07.13
01:06
(2) А как копировать , а не ссылаться в случае с коллекциями?
4 Chai Nic
 
26.07.13
01:08
(3) Универсальный метод - ЗначениеВСтрокуВнутр/ЗначениеИзСтрокиВнутр, но лучше пользоваться методами объекта, если они есть. Ну или тупо создавать новый и перебором заполнять копию поэлементно.
5 Живой Ископаемый
 
26.07.13
01:12
(3) гы, юморист.
(2) как написано в букваре или сп
6 W1ster
 
26.07.13
01:15
(4) СписокЗначений = Новый СписокЗначений  вместо Очистить() решает.
Благодарю за помощь.
7 Живой Ископаемый
 
26.07.13
02:13
Для А=1 по 100 Цикл
СписокЗначений.Добавить(А);
Стр = ТаблицаЗначений.Добавить();
Стр.Колонка1 = СписокЗначений.Скопировать();// <<= сюда смотреть
СписокЗначений.Очистить();
КонецЦикла


============


СписокЗначений.Скопировать (ValueList.Copy)
СписокЗначений (ValueList)
Скопировать (Copy)
Синтаксис:

Скопировать()
Возвращаемое значение:

Тип: СписокЗначений.

Описание:

Создает копию списка значений.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример:

КопияСписка = СписокТиповЦен.Скопировать();
8 Alexander_1c
 
26.07.13
08:40
Код выполняется на клиенте
9 cw014
 
26.07.13
08:53
10 Живой Ископаемый
 
26.07.13
08:57
(8) и что?
11 kortun
 
26.07.13
09:07
Для А=1 по 100 Цикл
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(А);
Стр = ТаблицаЗначений.Добавить();
Стр.Колонка1 = СписокЗначений;
СписокЗначений.Очистить();
КонецЦикла

Добавь в цикл СписокЗначений = Новый СписокЗначений;