|   |   | 
| 
 | не могу понять цикл типа Для Каждого | ☑ | ||
|---|---|---|---|---|
| 0
    
        Hochkinder 20.04.17✎ 15:37 | 
        Изучаю 1С по Радченко "Первые шаги", образование к сожалению далёкое от программирования, немогу понять цикл типа:
 ДляКаждого ТекСтрокаПереченьНоменклатуры из ПереченьНоменклатуры Цикл и далее условие... Везде объясняют мол в перемененой ТекСтрокаПереченьНоменклатуры содержится текущая строка таблицы ПереченьНоменклатуры,..... а как система это понимает если нигде нет явного присвоения данного значения, а почему например не поле или колонка этой таблицы? Разъясните пожалуйста, поиск не помог... Или где-то в программировании есть базовое правило, что базовым элементом таблицы является строка... и цикл "ДляКаждого Х из У" если Х не объявлен является базовым элементом объекта У? | |||
| 1
    
        Волшебник модератор 20.04.17✎ 15:39 | 
        объект ПереченьНоменклатуры содержит итератор, который возвращает именно строку     | |||
| 2
    
        Я не курил 20.04.17✎ 15:41 | 
        ПереченьНоменклатуры - коллекция значений
 ТекСтрокаПереченьНоменклатуры - конкретное значение Если указать ПереченьНоменклатуры.Колонки, то конкрентным значением при переборе будет уже колонка | |||
| 4
    
        Волшебник модератор 20.04.17✎ 15:41 | 
        а вот тут будут колонки:
 Для Каждого ТекКолонка из ПереченьНоменклатуры.Колонки Цикл | |||
| 5
    
        Господин ПЖ 20.04.17✎ 15:42 | 
        >Или где-то в программировании есть базовое правило, что базовым элементом таблицы является строка... и цикл "ДляКаждого Х из У" если Х не объявлен является базовым элементом объекта У?
 просто ПереченьНоменклатуры как коллекция реализует интерфейс IEnumerable надеюсь помог | |||
| 6
    
        Волшебник модератор 20.04.17✎ 15:43 | 
        (5) Т.е. в 1С есть ООП что ли?     | |||
| 7
    
        Господин ПЖ 20.04.17✎ 15:43 | 
        (6) ты не поверишь...     | |||
| 8
    
        Господин ПЖ 20.04.17✎ 15:44 | 
        да будет ооп-шный святой срач     | |||
| 9
    
        megabax 20.04.17✎ 15:44 | 
        (5) Если ТС прожженный дот нетчик, то да, помог.     | |||
| 10
    
        Naf2017 20.04.17✎ 15:45 | 
        (5)  или Enumeration (зависит от языка)
 (6) тогда бы это была явная реализация, а то вот автор в (0) не смог догадаться, ООП есть, но чуть-чуть | |||
| 11
    
        Naf2017 20.04.17✎ 15:47 | 
        +(10) Iterable больше подходит     | |||
| 12
    
        Локи-13 20.04.17✎ 15:50 | 
        (0) Просто запомни.     | |||
| 13
    
        Naf2017 20.04.17✎ 15:51 | 
        (12) нет, это надо понимать https://ru.wikipedia.org/wiki/Итератор_(шаблон_проектирования)     | |||
| 14
    
        Локи-13 20.04.17✎ 15:56 | 
        (13) Нафига? Это нужно сишникам понимать, а нам то зачем.     | |||
| 15
    
        Naf2017 20.04.17✎ 15:57 | 
        (14) чтобы не отупеть, например     | |||
| 16
    
        ptiz 20.04.17✎ 15:58 | 
        ДляКаждого <ИмяПеременнойВКоторуюБудетПомещенОчереднойЭлементИзСписка> из <СписокЭлементов> Цикл 
 НадеюсьОбъяснил. | |||
| 17
    
        Hochkinder 20.04.17✎ 16:06 | 
        Т.е. я правильно понимаю:
 Или где-то в программировании есть базовое правило, что базовым элементом таблицы является строка... и цикл "ДляКаждого Х из У" если Х не объявлен является базовым элементом объекта У? | |||
| 18
    
        Dzenn гуру 20.04.17✎ 16:06 | 
        (16) только не СписокЭлементов, а КоллекцияЭлементов, а так — да, крутое объяснение :-)     | |||
| 19
    
        dezss 20.04.17✎ 16:07 | 
        (17) ессно...базовый элемент - таблица...у нее есть строки, у строк есть поля...
 Это идет из SQL... | |||
| 20
    
        Fish гуру 20.04.17✎ 16:11 | 
        (17) "если Х не объявлен является базовым элементом объекта У" - Даже если у тебя Х был объявлен ранее, то после начала цикла он станет содержать итератор.     | |||
| 21
    
        Вафель 20.04.17✎ 16:13 | 
        если такое не можешь понять сходу, то лучше в проги не идти     | |||
| 22
    
        Hochkinder 20.04.17✎ 16:15 | 
        Спасибо, итератор - инфо о базовом элементе, блин почему этого нет в книге для новичков... Самому пришлось "через Владивосток Москву познавать" ...     | |||
| 23
    
        Hochkinder 20.04.17✎ 16:15 | 
        Хмм сходу... понять можно, если пояснение есть     | |||
| 24
    
        Волшебник модератор 20.04.17✎ 16:15 | 
        (22) Новичкам про итератор знать не положено.     | |||
| 25
    
        ptiz 20.04.17✎ 16:16 | 
        (17) Какая строка? Причем тут строка?
 У - перечень (коллекция) объектов любого типа. При каждом шаге цикла в перменную Х помещается очередной объект из этого перечня. Разных видов коллекций существует - вагон и тележка. | |||
| 26
    
        Hochkinder 20.04.17✎ 16:16 | 
        Книга содержит очень много "воды" и "сделай как написано неважно почему"     | |||
| 27
    
        Hochkinder 20.04.17✎ 16:18 | 
        Тип объекта коллеции зависит от объекта, если правильно понимаю, таблица содержит коллекцию строк     | |||
| 28
    
        Волшебник модератор 20.04.17✎ 16:20 | 
        (27) Тип может меняться. Например, итератор для массива может вернуть значение любого типа     | |||
| 29
    
        Вафель 20.04.17✎ 16:22 | 
        (26) Мой тебе совет: не пытайся сразу понимать почему. когда будет время все помймешь     | |||
| 30
    
        Вафель 20.04.17✎ 16:22 | 
        ибо ответ на вопрос Почему? требует гораздо более глубоких знаний     | |||
| 31
    
        organizm 20.04.17✎ 16:36 | 
        может лучше начать с основ - язык Си. От туда все ноги растут: от примитивов к массивам, затем векторам и итераторам и погнали...     | |||
| 32
    
        organizm 20.04.17✎ 16:37 | 
        Иначе - "делай как написано, потом поймешь".     | |||
| 33
    
        Fish гуру 20.04.17✎ 16:41 | 
        (26) Читай Митичкина. У него всё понятно.     | |||
| 34
    
        Hochkinder 20.04.17✎ 17:20 | 
        (31) Конечно правильнее начать с "основ", да уж больно много времени уйдёт, а работу менять срочно нужно :-) "Добью" эту книгу, попробую Митичкина. Огромное спасибо всем за живой отклик, не ожидал такой оперативности!     | |||
| 35
    
        Волшебник модератор 20.04.17✎ 17:20 | 
        (34) Митичкин рулит     | |||
| 36
    
        Hochkinder 20.04.17✎ 17:25 | 
        Книг Митичкина под 8.3 нету?     | |||
| 37
    
        Волшебник модератор 20.04.17✎ 17:26 | 
        (36) Нету. Это я тебе как Митичкин говорю.     | |||
| 38
    
        Hochkinder 20.04.17✎ 17:27 | 
        Плохо :(     | |||
| 39
    
        Hochkinder 20.04.17✎ 17:27 | 
        Ремейк пора сверстать     | |||
| 40
    
        dezss 20.04.17✎ 17:27 | 
        (38) попроси его написать.     | |||
| 41
    
        lodger 20.04.17✎ 17:27 | 
        (27) это нигде не пояснено, но смысл в том, что "для каждого Элемент из Коллекция" это порождения мягкой типизации 1ц.
 в одном месте коллекция это массив с рандомными типами элементов, в другом коллекция это типизированная ТЗ(или ТЧ) где лежат строкиТЗ(или строкиТЧ), в третьем месте в НабореЗаписей элементами будут Записи. | |||
| 42
    
        jsmith82 20.04.17✎ 17:28 | 
        Всё просто
 Цикл для каждого используется для коллекций. Коллекция это такой класс, который реализует интерфейс IEnumerable То есть когда пишешь Для Каждого Из Коллекция, компилятор будет обращаться через квадратные скобки Для Итер = 0 По Коллекция.Количество() - 1 Цикл ТекЭлемент = Коллекция[Итер] | |||
| 43
    
        lodger 20.04.17✎ 17:28 | 
        +(41) для Элемента в данном случае эта строчка и будет объявлением, т.к. предыдущее значение и тип здесь будут сброшены.     | |||
| 44
    
        Hochkinder 20.04.17✎ 17:32 | 
        Угу, понял, СПАСИБО ОГРОМНОЕ!     | |||
| 45
    
        Hochkinder 20.04.17✎ 21:41 | 
        Много на форумах хороших отзывов о книге Митичкина, точно стоит под 8.3 переработать, людям счастье - автору гонорар и + к карме!     | |||
| 46
    
        AuneM1 20.04.17✎ 21:52 | 
        (17) Ты путаешь двухмерный массив и одномерный массив записей.
 И то и то таблица. Но первый это матрица, а второе структурированная таблица. Для каждого это перебор значений массива. Но "столбцы" - это не массив, это структура. | |||
| 47
    
        Волшебник модератор 20.04.17✎ 21:54 | 
        (45) Я подумаю     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |