Имя: Пароль:
1C
 
Как создать ТаблицаЗначений с размером nxn?
0 Нач программист
 
06.10.16
14:29
ТЗ = Новый ТаблицаЗначений;
    
    Для Счетчик = 0 По РазмерТЗ - 1 Цикл
        
        ТЗ.Колонки.Добавить("Колонка"+Счетчик,Новый ОписаниеТипов("Строка"));
        
    КонецЦикла;
    
    Для Счетчик = 0 По РазмерТЗ - 1 Цикл
        
        НоваяСтрока = ТЗ.Добавить();
        НоваяСтрока.Счетчик = 0;
        
    КонецЦикла;
1 Numerus Mikhail
 
06.10.16
14:30
Ну примерно так и создать
В каком кейсе нужна такая таблица? Что-то даже на ум не приходит ничего
2 DrShad
 
06.10.16
14:31
а что не получается?
3 Провинциальный 1сник
 
06.10.16
14:32
Не надо так делать! Лучше 2-мерность эмулировать через таблицу с реквизитами-измерениями и значением.
4 Нач программист
 
06.10.16
14:32
{Форма.Форма.Форма(76)}: Поле объекта не обнаружено (Счетчик)
        НоваяСтрока.Счетчик = 0;
5 PR
 
06.10.16
14:35
(4) И что? Все правильно. Какой нахрен счетчик?
6 Нач программист
 
06.10.16
14:35
(3) Извини, не понял?
7 Numerus Mikhail
 
06.10.16
14:35
Удали эту строку, нахрена она тебя
8 PR
 
06.10.16
14:36
(3) Почему?
9 Нач программист
 
06.10.16
14:36
(5) А как обращаться в колонку?
10 DrShad
 
06.10.16
14:36
НоваяСтрока["Колонка"+Счетчик] = 0
11 Jokero
 
06.10.16
14:37
НоваяСтрока["Колонка"+Счетчик] = 0;
12 Нач программист
 
06.10.16
14:37
(8) Подробнее можешь обьеснить
13 megabax
 
06.10.16
14:37
(4) Дык у тебя колонки имеют имена Счетчик0, Счетчик1, Счетчик2, и тд, а ты пишешь НоваяСтрока.Счетчик = 0;
естественно ошибка
14 Провинциальный 1сник
 
06.10.16
14:37
(6) Тебе надо хранить какое-то значение для пары измерений. Так? Скорее всего твоя матрица будет содержать дофига пустых ячеек. Так зачем на них память тратить?
Создаешь таблицу значений с тремя колонками. Две колонки - измерения, третья - значение. При необходимости получить значение по измерениям используешь отбор и получаешь.
15 PR
 
06.10.16
14:38
И вместо счетчик нужно формат счетчика использовать.
Тут-то маловероятно, что колонок будет больше 1000, а в других местах легко.
И будет в итоге не Колонка1000, а Колонка1 000 и синтаксическая ошибка.
16 PR
 
06.10.16
14:39
(12) Это разрешение мне что-то "обьеснить" тебе?
После вопроса тебе, почему ты так считаешь?
Реально народ тупеет, скоро до мышей опустится.
17 DrShad
 
06.10.16
14:41
(16)+1
ну не могу не согласиться
18 lxs
 
06.10.16
14:41
Почему никто еще не задал вопрос "ЗАЧЕМ" автору то, что он пытается сделать?
19 DrShad
 
06.10.16
14:41
(18) всем пофиг
20 Numerus Mikhail
 
06.10.16
14:41
(18) (1) ващет сразу спросил, но в ответ тишина
21 PR
 
06.10.16
14:41
(14) Ну конечно.
У него может пять колонок и 10 строк.
Но благодаря тебе он получил кучу епли с каким-то непонятным алгоритмом поиска значения в ТЗ, вместо простого наглядного обращения ТЗ[Строка][Колонка].
22 lxs
 
06.10.16
14:41
(16) +1
23 PR
 
06.10.16
14:42
(18) Потому что это и так понятно, нормальная часто встречаемая ситуация.
24 lxs
 
06.10.16
14:43
(21) Сдается мне, что автор мыслить примитивными понятиями из курса информатики программы 10ого класса конца 90х гг.
25 Нач программист
 
06.10.16
14:43
Изменил код

Для Счетчик = 0 По РазмерТЗ - 1 Цикл
        
        ТЗ.Колонки.Добавить("Колонка"+Счетчик,Новый ОписаниеТипов("Строка"));
        
    КонецЦикла;
    
    Для Счетчик = 0 По РазмерТЗ  - 1 Цикл
        
        НоваяСтрока = ТЗ.Добавить();
        НоваяСтрока["Колонка"+Счетчик] = 0;
        
    КонецЦикла;

Размер 3х3
Результат такой
0 _ _
_ 0 _
_ _ 0
26 Нач программист
 
06.10.16
14:43
В чем ошибка?
27 lxs
 
06.10.16
14:43
(23) И где ты часто создаешь заранее ТЗ с определенным количеством строк?
28 Нач программист
 
06.10.16
14:44
Мне нужен такой?

0 0 0
0 0 0
0 0 0
29 Это_mike
 
06.10.16
14:44
"пусть на нас летят N самолетов... нет, N мало, давайте M !!!"©
30 lxs
 
06.10.16
14:45
(28) Цикл обхода колонок внутри цикла добавления строк, чувак. Это даже не 10ый класс информатики, ты чо вообще?
31 DrShad
 
06.10.16
14:46
(26) ошибки нет - все согласно кода
32 Нач программист
 
06.10.16
14:47
(16) Задача

Заполнить двумерный массив размером nхn нулями.
33 PR
 
06.10.16
14:51
(32) У вас там каникулы в школе что ли?
34 PR
 
06.10.16
14:53
Для Счетчик = 0 По РазмерТЗ - 1 Цикл
    ТЗ.Колонки.Добавить("Колонка"+Счетчик,Новый ОписаниеТипов("Строка"));
КонецЦикла;

Для Счетчик = 0 По РазмерТЗ  - 1 Цикл
    НоваяСтрока = ТЗ.Добавить();
    НоваяСтрока["Колонка"+Счетчик] = 0;
КонецЦикла;

Для Счетчик1 = 0 По РазмерТЗ - 1 Цикл
    Для Счетчик2 = 0 По РазмерТЗ  - 1 Цикл
        ТЗ[Счетчик1][Счетчик2] = 0;
    КонецЦикла;
КонецЦикла;
35 Mauser
 
06.10.16
14:53
(32) массив от таблицы значений отличаем, не?
36 lxs
 
06.10.16
14:56
(34) ужснах
37 lxs
 
06.10.16
14:57
(36)+ если ты добавишь колонки с описанием типов Число, то последнее извращение в виде вложенных циклов утратит смысл вообще
38 lxs
 
06.10.16
14:57
а (36)++ и станет ненужной строка
оваяСтрока["Колонка"+Счетчик] = 0;
39 Jokero
 
06.10.16
14:58
(26) Заполняй запросом, будь мужиком))
40 lxs
 
06.10.16
15:03
ОписаниеКолонок = "";
Для Счетчик = 0 По РазмерТЗ - 1 Цикл
    ТЗ.Колонки.Добавить("Колонка"+Счетчик);
    ОписаниеКолонок = ОписаниеКолонок + "Колонка"+Счетчик+",";
КонецЦикла;

ТЗ.ЗаполнитьЗначения(0, Лев(ОписаниеКолонок, СтрДлина(ОписаниеКолонок)-1));


Кто следующий?))))
41 f_vadim
 
06.10.16
15:04
(32)
>>Как создать ТаблицаЗначений с размером nxn?
>>Заполнить двумерный массив размером nхn нулями.

бгагага, извините
42 Базис
 
naïve
06.10.16
15:05
Салам, брат.

Секрет успешных казахских предприятий прост - начальником может быть и казах, но вот главным инженером всегда лучше назначить русского.
43 Базис
 
naïve
06.10.16
15:06
Я это к чему пишу - ты же нач программист, обратись к программисту.
44 lxs
 
06.10.16
15:18
(43) смеяться после слова лопата?