Имя: Пароль:
1C
1С v8
Как найти?
🠗 (Rie 08.07.2012 18:15)
, ,
0 hello19
 
05.07.12
18:55
Мне надо в таблице значений коэффициенты
Индекс    Значение элемента    Тип элемента    х    у    Коэффициент
0    СтрокаТаблицыЗначений    СтрокаТаблицыЗначений    1    1    10
1    СтрокаТаблицыЗначений    СтрокаТаблицыЗначений    1    2    1
2    СтрокаТаблицыЗначений    СтрокаТаблицыЗначений    1    3    1
3    СтрокаТаблицыЗначений    СтрокаТаблицыЗначений    2    1    2
4    СтрокаТаблицыЗначений    СтрокаТаблицыЗначений    2    2    10
5    СтрокаТаблицыЗначений    СтрокаТаблицыЗначений    2    3    1
6    СтрокаТаблицыЗначений    СтрокаТаблицыЗначений    3    1    2
7    СтрокаТаблицыЗначений    СтрокаТаблицыЗначений    3    2    2
8    СтрокаТаблицыЗначений    СтрокаТаблицыЗначений    3    3    10

найти диагональные элементы, т.е. те, у которых х=у и взять соответствующий коэффициент.
Вот как я это делаю:


Для а = 1 По СвободныеЧлены.Количество() Цикл

       ДиагональныйЭлемент = Коэффициенты.Найти(а, "х, у").Коэффициент;
               // код
               // код  
               // код
КонецЦикла;
Остальной код в цикле изменяет коэффициенты, соответствующие одному значению х (т.е. при х=1 3 значения коэффициента, при х=2 3 значения и т.д.)

Выдает неправильные значения диагональных элементов.
По идее они должны быть одни и те же - 10, но выдает разные
66 Любопытная
 
08.07.12
17:26
(64) не глядя я. У меня мозги в своих запросах сейчас)
67 hello19
 
08.07.12
17:26
да, пожалуй лучше сначала получить все строки в которых x=y и потом перебирать их в цикле делая преобразования со своим коэффциентом...
осталось привести в порядок этот запрос, а то неопределенность выдает(
68 prosto-nik
 
08.07.12
17:26
(65) - (63) вообще то было для (61) а не для вас( я не хотел простите))
69 prosto-nik
 
08.07.12
17:28
(67) >да, пожалуй лучше
да, пожалуй без вариантов
70 hello19
 
08.07.12
17:28
странно, но почему то в выборке всего 2 элемента и они оба не определены(
71 Любопытная
 
08.07.12
17:28
(68) Да я поняла, что это не ко мне)
72 hello19
 
08.07.12
17:28
а должно быть 3 и вполне определенные..
73 Любопытная
 
08.07.12
17:28
(70) так не бывает
74 hello19
 
08.07.12
17:29
вот и мне интересно почему так
75 prosto-nik
 
08.07.12
17:29
Запрос = Новый Запрос(
   "ВЫБРАТЬ Коэффициенты.x, Коэффициенты.Коэффициент
   |ИЗ РегистрСведений.Коэффициенты КАК Коэффициенты
   |ГДЕ Коэффициенты.x=Коэффициенты.y
   |УПОРЯДОЧИТЬ ПО Коэффициенты.x";
   Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
бла бла бла
КонецЦикла;

и получается 2 неопределено?
76 Любопытная
 
08.07.12
17:29
(70) убери нафиг цикл. Сделай просто запрос. После запроса обработай выборку
77 Любопытная
 
08.07.12
17:30
(75) у него в цикле два раза обрабатывается запрос и оба раза получается неопределено, я полагаю
78 prosto-nik
 
08.07.12
17:30
вот я и говорю - (63)
79 hello19
 
08.07.12
17:31
нет, запрос вне цикла... вообщем сейчас код как в (75)
80 prosto-nik
 
08.07.12
17:31
и получается 2 неопределено?
81 hello19
 
08.07.12
17:32
да, вот что получается:

Индекс    Значение элемента    Тип элемента
0        Неопределено
1        Неопределено
82 hello19
 
08.07.12
17:33
неопределенно - в типе элемента стоит
83 Любопытная
 
08.07.12
17:33
не может такого быть
84 Любопытная
 
08.07.12
17:33
если выборка = неопределено, то в цикл не пойдет. Хрень какая-то
85 prosto-nik
 
08.07.12
17:34
тим вьюер есть
86 hello19
 
08.07.12
17:35
нету
87 rphosts
 
08.07.12
17:36
(86) полный код чего ты там за запрос написал и чего с ним делаешь дай!
88 prosto-nik
 
08.07.12
17:36
а как ты кстати (81) табличку получил???
89 rphosts
 
08.07.12
17:37
(88) нужен его код - на пальцах не взлетает...
90 Любопытная
 
08.07.12
17:37
(88) вот меня это тоже интересует.
91 hello19
 
08.07.12
17:37
(88) shift+f9, потом f2
92 prosto-nik
 
08.07.12
17:37
на Выборка?
93 hello19
 
08.07.12
17:38
да
94 prosto-nik
 
08.07.12
17:39
врешь... откуда там две строки?
95 rphosts
 
08.07.12
17:39
(91) ну я так понял кода не будет? а вот эта ветка каким местом возникла на форуме: v8: Как написать запрос? ? Вы не клон?
96 hello19
 
08.07.12
17:39
не знаю
97 prosto-nik
 
08.07.12
17:40
(95) - (42) опоздали)))
98 Любопытная
 
08.07.12
17:41
Либо они параллельно решают одну и ту же задачу, либо это тупой развод
99 rphosts
 
08.07.12
17:41
(97) угу.
(96) это не форум телепатов, дай код свой и укажи куда воткнул точку остановки. Иначе тебе и Нуралиев не поможет
100 Любопытная
 
08.07.12
17:41
Кода нет, в (91) вранье, тим вьювера тоже нет. Дальше разговаривать бесполезно
101 hello19
 
08.07.12
17:42
Запрос = Новый Запрос("Выбрать СЛУ.х, СЛУ.Коэффициент ИЗ РегистрСведений.СЛУ КАК СЛУ ГДЕ СЛУ.х = СЛУ.у УПОРЯДОЧИТЬ ПО СЛУ.х");
   ДиагональныйЭлемент = Запрос.Выполнить().Выбрать();
102 hello19
 
08.07.12
17:42
это весь код, останов после ДиагональныйЭлемент
103 prosto-nik
 
08.07.12
17:42
а что после ???
104 hello19
 
08.07.12
17:42
ничего
105 hello19
 
08.07.12
17:43
чтобы дальше с этим работать надо же иметь выборку, а она неопределенная получается
106 prosto-nik
 
08.07.12
17:43
так у тебя не останавливается?
107 rphosts
 
08.07.12
17:43
было-б не выбрать а выгрузить - тогда было-б чё смотреть а так херня какая-то... кста, 1С - тоже не телепат
108 hello19
 
08.07.12
17:43
останавливается конечно
109 prosto-nik
 
08.07.12
17:43
а ДиагональныйЭлемент <> Выборка?
110 hello19
 
08.07.12
17:43
это одно и тоже
111 hello19
 
08.07.12
17:44
просто по разному назвал
112 Любопытная
 
08.07.12
17:44
Если это весь код, то как же тогда получилось, что Выборка неопределено? На какой строке ты shift+f9 делал?
113 hello19
 
08.07.12
17:44
Вот пока весь код:

Функция МетодЗейделя(Коэффициенты, СвободныеЧлены) Экспорт
   
   Запрос = Новый Запрос("Выбрать СЛУ.х, СЛУ.Коэффициент ИЗ РегистрСведений.СЛУ КАК СЛУ ГДЕ СЛУ.х = СЛУ.у УПОРЯДОЧИТЬ ПО СЛУ.х");
   ДиагональныйЭлемент = Запрос.Выполнить().Выбрать();

КонецФункции
114 rphosts
 
08.07.12
17:44
и ты в этот диагональный смотришь по брэкпоинту?
115 Любопытная
 
08.07.12
17:44
Где ДиагональныйЭлемент .следующий()
116 hello19
 
08.07.12
17:45
останов стоит на КонецФункции
117 hello19
 
08.07.12
17:45
(115) его не делал, так как нет смысла - ведь ДиагональныйЭлемиент не определен
118 Любопытная
 
08.07.12
17:45
Rie, Ну здесь-то я имею право фотку потребовать? :)
119 prosto-nik
 
08.07.12
17:46
функция без Возврат - ИМХО изврат)
120 Любопытная
 
08.07.12
17:46
(117) Потому что ты на него смотришь, когда строка еще не отработана
121 prosto-nik
 
08.07.12
17:46
(118) полностью без одежды!
122 Любопытная
 
08.07.12
17:47
Поставь дальше Выборка.Следующий() и посмотри, что будет
123 prosto-nik
 
08.07.12
17:47
пусть стыдно хоть за фотку будет если за код не стыдно)
124 rphosts
 
08.07.12
17:47
(118),(121) }|{жоте!!!!
125 prosto-nik
 
08.07.12
17:48
не ну написал гда Выборка.Следующий() - реакции 0...
126 prosto-nik
 
08.07.12
17:48
*гда = где
127 rphosts
 
08.07.12
17:49
>ункция МетодЗейделя(Коэффициенты, СвободныеЧлены) Экспорт

мил человек а сколько тебе лет?
128 prosto-nik
 
08.07.12
17:49
hello19 вероятно 19
129 hello19
 
08.07.12
17:50
Выборка.Следующий() - ошибка в выражении
по нику возраст не определишь
130 Rie
 
08.07.12
17:50
(118) Насчёт порнофильмов ужасов и тому подобных фотографий - в раздел "Культура" :-)
131 Rie
 
08.07.12
17:51
"возраст не определишь"... А IQ?
132 prosto-nik
 
08.07.12
17:51
(129) и вы его не назовете)
пля у тебя ДиагональныйЭлемент = Выборка, поэтому ДиагональныйЭлемент.Следующий()
133 Любопытная
 
08.07.12
17:51
(130) Я всего лишь соблюдаю традиции форума. От блондинок здесь всегда требуют фотку, ТС - блондинка стопроцентная.
134 prosto-nik
 
08.07.12
17:51
IQ  без ника просто по сообщениям
135 rphosts
 
08.07.12
17:51
(130)дайте мен на ретушь - фото будет соответствовать всем канонам приличия древних греко-римлян
138 rphosts
 
08.07.12
17:53
(131) да не в том дело! На втором курсе на сишняке по хоздоговорам делал обучающие проги разным итерационным методам в т.ч. и меьтод Зейделя... просто настальжи одолело!
139 prosto-nik
 
08.07.12
17:53
(136)
чтоб понять что
если ДиагональныйЭлемент = Выборка, то ДиагональныйЭлемент.Следующий() не нужен опыт программирования
140 hello19
 
08.07.12
17:54
(138) я еще даже не на 2-м курсе
141 rphosts
 
08.07.12
17:55
(136) харэ гнать-то! Сейчас школьники программируют не знаю с какого класса,но информатика вовтором уже есть
142 Любопытная
 
08.07.12
17:55
(136) Тебе уже достаточно помогли, а ты понимать не хочешь. Лично я устала объяснять простейшие вещи.
Сначала строишь из себя мега-умного, а потом простейших вещей не понимаете.
143 hello19
 
08.07.12
17:55
вот что вылазит после твоего ДиагональныйЭлемент.Следующий()

Свойство    Значение    Тип
ДиагональныйЭлемент.Следующий();    {(1,32)}: Ошибка в выражении
144 Rie
 
08.07.12
17:56
(133) Тут не цвет волос, тут IQ...
145 rphosts
 
08.07.12
17:56
(140) с вашим подходом вам не грозит самому графическую библиотеку самостоятельно на сишняке к исходу второго курса отрисовать
146 Живой Ископаемый
 
08.07.12
17:56
2(136) в таком случае сразу нужно публиковать свой киви-кошелек, и требовани: Пришлите срочно денег, а то изведу вопросами и фрагментами копрокода
148 prosto-nik
 
08.07.12
17:57
(146) + 100500
149 Любопытная
 
08.07.12
17:57
Можно скрин для начала
150 rphosts
 
08.07.12
17:58
(144) тут не IQ тут упорство в игнорировании почитать СП!!!
152 prosto-nik
 
08.07.12
17:58
(146) желательно сразу несколько тем - многозадачность, или многопоточность)
153 Живой Ископаемый
 
08.07.12
17:59
2(151) ты ведь никого не избавляешь от своей тупости? почему кто-то должен?
Терпи хотя бы это
155 Rie
 
08.07.12
18:00
hello19 - предупреждение. Вам стараются помочь. Тупите тут именно Вы. Не умеете спросить, не знаете, что спросить - это Ваши проблемы. Прочитайте "Рекомендации" в Правилах форума и задавайте вопросы корректно.
156 Rie
 
08.07.12
18:00
(151) Лады. На 15 минут избавляю.
163 prosto-nik
 
08.07.12
18:07
тема наверное более не актуальна не вижу смысла помогать таким экземплярам, толку все равно 0
164 Rie
 
08.07.12
18:09
(106) Не факт. На некий сомнительных курсах одну и ту же задачу могли дать целой группе.
2 + 2 = 3.9999999999999999999999999999999...