Вход | Регистрация

  1  2
1С:Предприятие :: 1С:Предприятие 8 общая

Как сделать красивый цикл?

Как сделать красивый цикл?
Я
   wowik
 
04.06.18 - 10:54
Есть массив с n элементами. Каждый элемент массива таблица значений.
Необходимо сложить первую строку таблицы значений первого элемента с первой строкой второго второго, с первой строкой третьего и т.д.    
Для массива с 3-мя элементами цикл выглядит так:              
    Для Каждого СтрокаТаблицы из МассивТЗ[0] Цикл
        Для Каждого СтрокаТаблицы1 из МассивТЗ[1] Цикл
            Для Каждого СтрокаТаблицы2 из МассивТЗ[2] Цикл                
                ВВ = СтрокаТаблицы.Сумма+ СтрокаТаблицы1.Сумма + СтрокаТаблицы2.Сумма;                
                Если ВВ = 5 Тогда
                                  Сообщить("123");    
                 КонецЕсли;
            КонецЦикла;         
        КонецЦикла;           
    КонецЦикла;       

Как сделать цикл для обхода массива с n элементами?
 
 
   wowik
 
101 - 05.06.18 - 09:47
Элемент 1:
Строка 1: 1
Строка 2: 2

Элемент 2:
Строка 1: 2
Строка 2: 4

получается в моиСуммы :
3
6

Перебирает не все.

Или я не то смотрю?
   МихаилМ
 
102 - 05.06.18 - 09:49
если задание в (0)

я бы так сделал 
1) пронумеровал строки вложенных тз.
2) обединил тз
3) свернул по номеру строки.

далее искать требуемые суммы.
   wowik
 
103 - 05.06.18 - 09:52
(102) здесь получится, я так понял, суммы первых элементов, суммы вторых элементов и т.д. А где сумма первого и второго, второго и первого?
   Optan
 
104 - 05.06.18 - 10:11
(103) В подробном! описании задания, которые ты от нас тщательно скрываешь
   wowik
 
105 - 05.06.18 - 10:15
(104) задание в описании. надо перебрать все строки всех таблиц.
   arsik
 
106 - 05.06.18 - 10:25
(105) Для...?
   wowik
 
107 - 05.06.18 - 10:28
(106) как по мне, так описание в (0) исчерпывающее. Сделать также, но красиво. Зачем придумывать "для чего" , "и такие просят 150", "что-то скрываешь",... .  Если кто знает, напишите.
   arsik
 
108 - 05.06.18 - 10:31
(107) Ну на основании (0) (93) - это то что надо.
   wowik
 
109 - 05.06.18 - 10:31
(108) см (101)
   arsik
 
110 - 05.06.18 - 10:35
(109) Да все правильно. (93) это твой вариант.
 
 Рекламное место пустует
   wowik
 
111 - 05.06.18 - 10:40
(110) см (107)
   МимохожийОднако
 
112 - 05.06.18 - 10:55
(107) Не увиливай. Ответь на вопрос.
   wowik
 
113 - 06.06.18 - 09:23
Ну давайте, кто сделает! Повышаю ставку. Пусть будет 20 баксов ифностарта за правильное и красивое решение. Использование оператора "Выполнить" запрещается, использование запросов тоже запрещается.
   DrShad
 
114 - 06.06.18 - 09:25
(113) да никому не нужны твои копейки
   PR
 
115 - 06.06.18 - 09:26
Позовите, когда дойдет хотя бы до 50 :))
   wowik
 
116 - 06.06.18 - 09:28
(114) (115) а как же показать что вы реальные специалисты, просящие от 150??))
   wowik
 
117 - 06.06.18 - 09:28
показали бы свою квалификацию)
   PR
 
118 - 06.06.18 - 09:29
(116) Я ее каждый день показываю клиентам по 3500 в час
   wowik
 
119 - 06.06.18 - 09:29
(118) ну вот за сколько примерно времени смогли бы сделать эту задачу?
   DrShad
 
120 - 06.06.18 - 09:29
(117) ну для чего мне ее тебе показывать? у меня есть клиенты, которые видели квалификацию и которые довольны
   hhhh
 
121 - 06.06.18 - 09:29
(117) ну есть же 1с-лансер туда и обращайся. Там за тысячу рублей 5 таких циклов тебе зафигачат. Чего ты чудишь?
   DrShad
 
122 - 06.06.18 - 09:30
(119) пол часа с кофе, печеньками и перекуром
   wowik
 
123 - 06.06.18 - 09:31
(122) хорошо. 3500/2 = 1750 - это сколько баксов инфостарта?
   catena
 
124 - 06.06.18 - 09:33
Боже, шел третий день...
   wowik
 
125 - 06.06.18 - 09:33
(124) тут третий. так задача уже недели 3 висит))
   wowik
 
126 - 06.06.18 - 09:35
(121) придется туда пойти по ходу.
   hhhh
 
127 - 06.06.18 - 09:36
(125) ну просто ты должен еще форуму за размещение вакансии. Это Волшебник чего-то отвлекся. Здесь вакансии и проекты платные. тут 1750 не обойдешься. Готов тысяч 30.
   Сти
 
128 - 06.06.18 - 09:39
(107) Исчерпывающее? Да ну? )))

1) Как можно сложить строки таблиц значений? В стопку? В папку? В поленницу? Может быть значения каких-то колонок можно сложить, но никак не строки, в которых непонятно что.

2) "сложить первую строку таблицы значений первого элемента с первой строкой второго второго, с первой строкой третьего и т.д." То есть из описания: Первую строку первого с первой строкой второго. Первую строку второго с первой строкой третьего. Первую строку третьего с первой строкой четвертого". И нигде не говорится о переборе всех строк всех таблиц.

3) Куда помещать полученные суммы? Или просто сложить и забыть?

Исчерпывающее, ага.
   wowik
 
129 - 06.06.18 - 09:41
(127) да тут не одна вакансия, а много)) бОльшую часть пишущих  надо на замену.
   wowik
 
130 - 06.06.18 - 09:43
(128) коллега ну из цикла же видно что перебираются все строки. Задача не для вас)
   Бертыш
 
131 - 06.06.18 - 09:44
Господи, какое шоу оказывается прошло мимо меня
   wowik
 
132 - 06.06.18 - 09:44
(131) шоу в разгаре)
   Сти
 
133 - 06.06.18 - 09:45
(130) Из цикла видно, из описания нет. Создавать ТЗ и описания - задача не для вас )
 
 
   ERWINS
 
134 - 06.06.18 - 09:46
(4)
Чтобы понять рекурсию нужно понять рекурсию =>
Давайте останемся конструктивными.
   hhhh
 
135 - 06.06.18 - 09:51
идем за попкорном тогда.

Обнаружено расхождение текстового описания и кода программы.
   zak555
 
136 - 06.06.18 - 09:53
(113) почему запрос запрещается?
   zak555
 
137 - 06.06.18 - 09:58
или тут можно двумя циклами сделать
   catena
 
138 - 06.06.18 - 09:59
(137)Почему именно двумя?
   zak555
 
139 - 06.06.18 - 10:02
(138) чем меньше циклов, тем быстрее ? )
решение в 94
   catena
 
140 - 06.06.18 - 10:06
(139)Я так поняла, ему нужен полный перебор всех строк
   hhhh
 
141 - 06.06.18 - 10:06
(139) да он темнит, тут не поймешь. То говорит, что нужно сложить первую строку с первой, а вторую со второй, то говорит, что все строки. И уже 3 дня темнит на всех форумах.
   zak555
 
142 - 06.06.18 - 10:08
(141) как я понял задачу --- нужно сложить все первые строки, все вторые, все третьи и т.д.
   wowik
 
143 - 06.06.18 - 10:09
(136) запросом уже сделано давно, все работает, все ок.
   wowik
 
144 - 06.06.18 - 10:09
(140) да!
   wowik
 
145 - 06.06.18 - 10:10
(141) каких всех? я только на мисте спросил.
   catena
 
146 - 06.06.18 - 10:10
(142)Ну, такая задача даже без рекурсии решается
   catena
 
147 - 06.06.18 - 10:10
(144)А такая процедурой в 10 строк
   wowik
 
148 - 06.06.18 - 10:12
(147) и? поделитесь решением?
   zak555
 
149 - 06.06.18 - 10:12
(147) 7 должно быть
 
 Рекламное место пустует
   catena
 
150 - 06.06.18 - 10:13
(149)Значит моя дороже :)
   DrShad
 
151 - 06.06.18 - 10:13
(144) ты уверен что понимаешь что такое полный перебор? )))
   zak555
 
152 - 06.06.18 - 10:20
РезультирующаяТЗ = МассивТЗ[0].СкопироватьКолонки();
РезультирующаяТЗ.Колонки.Добавить("НумерСтроки");

Для Каждого ТекЭлемент Из МассивТЗ Цикл Для каждого ТекСтрока Из ТекЭлемент Цикл
        ЗаполнитьЗначенияСвойств(РезультирующаяТЗ.НоваяСтрока(), ТекСтрока);
        РезультирующаяТЗ.НумерСтроки = ТекСтрока.НомерСтроки;
КонецЦикла; КонецЦикла;
//Сворачиваем по колонке НумерСтроки
   catena
 
153 - 06.06.18 - 10:22
(152)Это номер с номером
   dezss
 
154 - 06.06.18 - 10:23
(152) разные номер тоже надо складывать
   catena
 
155 - 06.06.18 - 10:23
а ему надо
111111
111112
...
nnnnnn
   catena
 
156 - 06.06.18 - 10:24
При чем, неизвестно еще, одинаковое ли количество строк в этих ТЗ
   zak555
 
157 - 06.06.18 - 10:24
(153) ?
   PR
 
158 - 06.06.18 - 10:26
Он уже давно сказал, что хочет (27), что вы тут перетираете, пустоплеты? :))
   zak555
 
159 - 06.06.18 - 10:29
(158) это уже другая задача ))
   wowik
 
160 - 06.06.18 - 11:41
(151) еще как. а ты?
   wowik
 
161 - 06.06.18 - 11:42
(158) +100
   Сти
 
162 - 06.06.18 - 12:04
(147) Действительно 10. Вместе с вызовом процедуры.
   МихаилМ
 
163 - 06.06.18 - 12:37
допустим будет 20 таблиц по 20 строк.

тупое полное перемножение даст 20 в 20-й степени комбинаций.
поэтому участвовать в реализации подобной глупости нет смысла.

нужно уточнение задачи.
   wowik
 
164 - 06.06.18 - 13:29
(163) да, правильно.
Повторю условие: задача изложена в (0), количество строк в ТЗ разное. Нужно перебрать все возможные варианты.
   catena
 
165 - 06.06.18 - 13:35
(164)Тебе зачем? Запрос работающий у тебя есть. Из спортивного интереса - так самостоятельно надо писать.
   Сти
 
166 - 06.06.18 - 13:36
(164) за три дня не решил пятиминутную задачу? Стаж 8 лет... Или это тестирование форумчан? )
   PR
 
167 - 06.06.18 - 14:17
(163) Допустим программист 1С во время поездки на работу сунул голову в открытый люк, а снизу ему прилетело ломом в жбан и программист выключился из участия в происходящем вокруг на месяц

Тупой прикид подсказывает, что фирма не может ждать его месяц, пока он выздоровеет и реализует поставленную перед ним задачу
Поэтому участвовать в реализации подобной глупости нет смысла

Нужно уточнение задачи
   PR
 
168 - 06.06.18 - 14:18
И эти люди автоматизируют страну
Мне тупо не по себе как-то
   wowik
 
169 - 06.06.18 - 14:59
(166) стаж более 20, коллега) на форуме просто 8).
   wowik
 
170 - 06.06.18 - 15:00
(168) согласен. столько постов, а у многих нет даже понимания что нужно сделать.
   Сти
 
171 - 06.06.18 - 15:13
(169) ну так тогда что, это тестирование форумчан? )
Ведь на самом деле задача (с уточнением, что нужно перебрать все возможные комбинации) решается рекурсивной процедурой в несколько строчек. И почти ничем не отличается от обычного обхода ДЗ, за исключением того, что нужно контролировать, где пора остановиться.
  1  2

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует