|
Список значений в таблице значений | ☑ | ||
---|---|---|---|---|
0
ander139
21.05.04
✎
10:09
|
Есть таблица значений. В каждой строке такой таблицы я делаю одну ячейку, содержащую список значений. Потом считываю эти списки, а они все такие же, как и последний введенный.
Может быть кто-нибудь встречался с похожей ситуёвиной? |
|||
1
Bzzzzz
21.05.04
✎
10:17
|
Код как ты их туда запихиваешь
|
|||
2
ander139
21.05.04
✎
10:20
|
(1) Да написал-бы, если б не стёр :)
|
|||
3
SnarkHunter
21.05.04
✎
10:25
|
Ты их не присваиванием, а через выгрузить()...
|
|||
4
SiMazx
21.05.04
✎
10:27
|
(0)Стопудово накосячил при формировании ТЗ...
|
|||
5
ander139
21.05.04
✎
10:31
|
(3) А почему ж так?
|
|||
6
SnarkHunter
21.05.04
✎
10:36
|
А потому что ссылка...
|
|||
7
Bzzzzz
21.05.04
✎
10:39
|
(5) Смотри ТиС. Работа с ТаблицаМФ.
|
|||
8
mike
21.05.04
✎
13:15
|
правильно работает такой вариант :
ТЗ.НоваяСтрока(); спис = СоздатьОбъект("СписокЗначений"); // заполняем список ..... ТЗ.спис = спис; |
|||
9
SnarkHunter
21.05.04
✎
13:17
|
Сам-то пробовал?
|
|||
10
Bzzzzz
21.05.04
✎
13:24
|
(9) а думаешь так как в (8) не получится?
|
|||
11
mike
21.05.04
✎
13:27
|
пробовал и списки и таблицы значений туда засовывал , все прекрасно работает.
|
|||
12
SnarkHunter
21.05.04
✎
13:30
|
(10)Не думаю - знаю...
|
|||
13
Bzzzzz
21.05.04
✎
13:31
|
(12) Я так же помещал Таблицы.
Причем можно обращаться тз.Табл.ВывестиСекцию(..) |
|||
14
SnarkHunter
21.05.04
✎
13:37
|
(11)Научи...
(13)Таблицы - это несколько другое... |
|||
15
lexa
21.05.04
✎
13:42
|
(13) со списком присваивание точно не пройдет, я так сделал, а потом долго удивлялся, прада я просто переменную использовал. Но SnarkHunter прав - при присваивании создается ссылка на список.
|
|||
16
lexa
21.05.04
✎
13:44
|
ТЗ.НоваяСтрока();
спис = СоздатьОбъект("СписокЗначений"); // заполняем список ..... спис.Выгрузить(ТЗ.спис) ; |
|||
17
Bzzzzz
21.05.04
✎
13:48
|
тз=СоздатьОбъект("ТаблицаЗначений");
тз.НоваяКолонка("сз"); Для Ном=1 По 5 Цикл сз=СоздатьОбъект("СписокЗначений"); сз.ДобавитьЗначение(""+Ном+" = 1"); сз.ДобавитьЗначение(""+Ном+" = 2"); тз.НоваяСтрока(); тз.сз=сз; КонецЦикла; тз.ВыбратьСтроки(); Пока тз.ПолучитьСтроку() = 1 Цикл Для Ном=1 По тз.сз.РазмерСписка() Цикл Сообщить(тз.сз.ПолучитьЗначение(Ном)); КонецЦикла; КонецЦикла; |
|||
18
lexa
21.05.04
✎
13:52
|
ТЗ.НоваяСтрока();
спис = СоздатьОбъект("СписокЗначений"); // заполняем список ..... ТЗ.спис = СоздатьОбъект("СписокЗначений"); спис.Выгрузить(ТЗ.спис) ; |
|||
19
SnarkHunter
21.05.04
✎
13:52
|
И что?
Ты сделай в ТЗ хотя бы 2 строки, в которых разные списки... |
|||
20
SnarkHunter
21.05.04
✎
13:53
|
(19) для (17)
|
|||
21
Bzzzzz
21.05.04
✎
13:57
|
(20) не понял тебя?
в ТЗ 5 строк, в каждой свой СЗ, со своими значениями |
|||
22
Bzzzzz
21.05.04
✎
14:03
|
Результат работы кода (17)
1 = 1 1 = 2 2 = 1 2 = 2 3 = 1 3 = 2 4 = 1 4 = 2 5 = 1 5 = 2 |
|||
23
SnarkHunter
21.05.04
✎
14:04
|
Недоглядел... Строк действительно 5, вот только значения в Сз одинаковые для всех строк... Попробуй сделать разные...
|
|||
24
SnarkHunter
21.05.04
✎
14:06
|
Результат тебя удивит...
|
|||
25
Bzzzzz
21.05.04
✎
14:09
|
(24) Что значит "Попробуй сделать разные... ".
Результат в (22). Разве значения одинаковы ? |
|||
26
SnarkHunter
21.05.04
✎
14:12
|
А разве нет?
|
|||
27
Bzzzzz
21.05.04
✎
14:14
|
(26) кто-то из нас глючит :-)
где в (17) хотя бы 2 одинаковых значения? |
|||
28
lexa
21.05.04
✎
14:26
|
(25) Да все правильно
тз=СоздатьОбъект("ТаблицаЗначений"); тз.НоваяКолонка("сз"); Для Ном=1 По 5 Цикл сз=СоздатьОбъект("СписокЗначений"); сз.ДобавитьЗначение(""+Ном+" = 1"); сз.ДобавитьЗначение(""+Ном+" = 2"); тз.НоваяСтрока(); тз.сз=сз; КонецЦикла; тз.ВыбратьСтроки(); Пока тз.ПолучитьСтроку() = 1 Цикл Для Ном=1 По тз.сз.РазмерСписка() Цикл Сообщ =Строка(тз.НомерСтроки) + " " +Строка(Ном)+ " " + тз.сз.ПолучитьЗначение(Ном); Сообщить(Сообщ); КонецЦикла; КонецЦикла; Получил 1 1 1 = 1 1 2 1 = 2 2 1 2 = 1 2 2 2 = 2 3 1 3 = 1 3 2 3 = 2 4 1 4 = 1 4 2 4 = 2 5 1 5 = 1 5 2 5 = 2 |
|||
29
SnarkHunter
21.05.04
✎
14:27
|
У тебя в КАЖДОЙ строке ТЗ ОДИН И ТОТ ЖЕ список...
|
|||
30
Bzzzzz
21.05.04
✎
14:34
|
(29) Хорошо, Снарк, упокойся :-)
Давай выясним чем определяется "одна и та жесть списка" ;-) |
|||
31
SnarkHunter
21.05.04
✎
14:36
|
Одинаковым размером и одинаковыми размерами, расположенными в одном и том же порядке...
|
|||
32
SnarkHunter
21.05.04
✎
14:36
|
Очепятка :-)
Одинаковым размером и одинаковыми значениями, расположенными в одном и том же порядке... |
|||
33
Bzzzzz
21.05.04
✎
14:38
|
(32) Сделай так и посмотри значения в списках :-))
тз.ВыбратьСтроки(); Пока тз.ПолучитьСтроку() = 1 Цикл Зн=""; тз.сз.ВыбратьЗначение(Зн); //Для Ном=1 По тз.сз.РазмерСписка() Цикл // Сообщить(тз.сз.ПолучитьЗначение(Ном)); //КонецЦикла; КонецЦикла; |
|||
34
Bzzzzz
21.05.04
✎
14:41
|
Для Ном=1 По 5 Цикл
сз=СоздатьОбъект("СписокЗначений"); сз.ДобавитьЗначение(""+Ном+" = 1"); сз.ДобавитьЗначение(""+Ном+" = 2"); Если Ном%2=0 Тогда сз.ДобавитьЗначение(""+Ном+" = 3"); КонецЕсли; тз.НоваяСтрока(); тз.сз=сз; КонецЦикла; вот тебе разный размер списков :-)) |
|||
35
lexa
21.05.04
✎
14:41
|
(29) Для каждой строки ТЗ Bzzzzz создает каждый раз новый список значений.
сз=СоздатьОбъект("СписокЗначений"); - находится внутри цикла заполнения ТЗ. |
|||
36
SnarkHunter
21.05.04
✎
14:45
|
Ну да... Каждый раз новый объект создается - тогда срабатывает...
|
|||
37
SnarkHunter
21.05.04
✎
14:46
|
Эту строчку не заметил, поэтому и начал тупить...
|
|||
38
lexa
21.05.04
✎
14:52
|
(37) мне самому интересно стало, почему список получается короткий, хотя в него вроде бы добавляют 10 значений
|
|||
39
ChAlex
25.05.04
✎
16:56
|
Я делаю так (и ни каких проблем нет)!
Т=СоздатьОбъект("ТаблицаЗначений"); Т.НоваяКолонка("Спис"); Для А=1 По ... Цикл Т.НоваяСтрока(); Т.Спис=СоздатьОбъект("СписокЗначений"); Для К=1 По ... Цикл Т.Спис.Добавить(НекоеЗначение); КонецЦикла; КонецЦикла; |
|||
40
Рупор абсурда
25.05.04
✎
19:47
|
А первых девяти постов в этой ветке действительно нет? Или мне кажется?
|
|||
41
spock
25.05.04
✎
20:37
|
Религиозно неверно делать присваивание СпискаЗначений или ТаблицыЗначений. Правильно делать Выгрузить().
А для прикола сделайте коррективы в примере (34): Для Ном=1 По 5 Цикл сз = СоздатьОбъект("СписокЗначений"); сз.ДобавитьЗначение(""+Ном+" = 1"); сз.ДобавитьЗначение(""+Ном+" = 2"); Если Ном%2=0 Тогда сз.ДобавитьЗначение(""+Ном+" = 3"); КонецЕсли; тз.НоваяСтрока(); тз.сз=сз; сз = ""; << ==== КонецЦикла; |
|||
42
Волшебник
25.05.04
✎
20:39
|
(40) Ты щелкнул пимпочку ">>", а она показывает только последние 30 сообщений.
|
|||
43
spock
25.05.04
✎
20:41
|
А лично я делал так...кстати, работает 100% и без потенциальных ошибок:
ТЗ.УстановитьЗначение(...); |
|||
44
OctoberHammer
25.05.04
✎
20:58
|
42-й я щелкнул имеенно всю ветку, а не вижу 13-ти.. Модераторы смодерировали?
|
|||
45
OctoberHammer
25.05.04
✎
21:04
|
тю... а сейчас все в порядке.
|
|||
46
Рупор абсурда
25.05.04
✎
21:04
|
(42) Ага ... Понял ...
Но работает почему то через раз ... |
|||
47
OctoberHammer
25.05.04
✎
21:11
|
Похоже опять куки. После того, как отправил пост - показались все реплики, поэтому, потом, по щелкании на ссылку тоже видишь все реплики.
Если щелкнуть на ">>", тогда и при щелкании на ссылку тоже показывает последние 30. |
|||
48
Волшебник
25.05.04
✎
21:27
|
Это кеш глючит. Исправляю...
|
|||
52
Волшебник
25.05.04
✎
21:41
|
(51) Кажется, я все исправил. Все тестовые сообщения будут удалены.
|
|||
53
NiGMa
27.05.04
✎
09:42
|
Я такую ситуацию обхожу проще:
тз.Список = ЗначениеВСтрокуВнутр(сз); Ну и соотв. назад: сз = ЗначениеИзСтрокиВнутр(тз.Список); |
|||
54
SnarkHunter
27.05.04
✎
09:43
|
Это вовсе не проще...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |