Имя: Пароль:
1C
 
Можно ли пожелать от 1С оператора для получения текущего индекса цикла Для Каждого?
🠗 (Волшебник 31.05.2022 19:02)
0 Гений 1С
 
гуру
30.05.22
18:54
То бишь:
Для каждого Эл из Элементы Цикл
Сообщить(ИндексЦикла);
КонецЦикла
1 Irbis
 
30.05.22
18:56
Нафейхоа козе аккордеон?
2 kittystark
 
30.05.22
18:58
еще лучше
Для каждого Эл из Элементы Цикл
    Для каждого СубЭл из Эл Цикл
        Сообщить(ИндексЦиклаСубЦикла);
    КонецЦикла
КонецЦикла
3 Конструктор1С
 
30.05.22
18:59
Опять нубишь. Читай уже документацию хоть иногда. У большинства коллекций в платформе есть метод .Индекс(<Элемент коллекции>)
4 Irbis
 
30.05.22
19:10
(3) А как же быть с генитальными идеями? От которых пукан разрывает.
5 Кац
 
30.05.22
19:13
Хорошо что Г не в команде разработчиков платформы
6 Ненавижу 1С
 
гуру
30.05.22
19:20
В шарпе:

public static System.Collections.Generic.IEnumerable<TResult> Select<TSource,TResult> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,TResult> selector);

foreach(var it in myArray.Select((x,index)=>new {x, index})
{
  Console.WriteLine(${index} {x});
}
7 Ненавижу 1С
 
гуру
30.05.22
19:37
(2) индекс цикла получается тоже коллекция - с числом элементов вложенности циклов. Гений он такой
8 Гений 1С
 
гуру
30.05.22
19:59
(6) ну свой счетчик я и на 1с могу напейсать.
(7) Смотри как некрасиво:


        Для Каждого ТекОператор ИЗ ТекЗапрос.Операторы Цикл
            
            //Во второй части (про задачи) меняем условия
            Если ТекЗапрос.Операторы.Индекс(ТекОператор) = 1 Тогда
                
                //КУдалению = Новый Массив();
                Для Каждого ТекОтбор ИЗ ТекОператор.Отбор Цикл
                    
                    Если
                        Найти(ТекОтбор, "&ВыбранныеКалендари") <> 0
                        //ИЛИ Найти(ТекОтбор, "&РазрешенныеИсточники") <> 0
                        Тогда
                        //КУдалению.Добавить(ТекОтбор);
                        ТекОператор.Отбор.Установить(ТекОператор.Отбор.Индекс(ТекОтбор), Новый ВыражениеСхемыЗапроса("Истина"))
                    КонецЕсли;
                    
                КонецЦикла;                                    
                //дор_Сервер.УдалитьЭлементыКоллекции(ТекОператор.Отбор, КУдалению);
                
                ТекОператор.Отбор.Добавить(
                "ЗадачаСотрудника.ПометкаУдаления = ЛОЖЬ
                |И ВЫБОР КОГДА &дор_ОтборСвои
                |ТОГДА ЗадачаСотрудника.Автор = &ТекущийПользователь
                |ИНАЧЕ ЗадачаСотрудника.Календарь В(&ВыбранныеКалендари)
                |КОНЕЦ");  
                
            КонецЕсли;
            
        КонецЦикла;
9 Ненавижу 1С
 
гуру
30.05.22
20:31
(8) зачем тут внешний цикл? Можно сразу первый элемент получать, если он есть.
10 Ненавижу 1С
 
гуру
30.05.22
20:34
(8) вообще язык 1с очень многословный
11 Камчадал
 
naïve
30.05.22
21:58
(3) индекс это не счётчик в цикле, автору наверно надо знать сколько раз вызывался цикл. Но тогда надо использовать конструкцию другую,для сч=0 по... Получить [сч]
12 Выпрь
 
30.05.22
22:02
Пожелать можно, но никто делать этого конечно же не будет
13 Камчадал
 
naïve
30.05.22
22:07
Просто если получить индекс на первом этапе перебора колекции элементов как предлагается в (3) он может быть равен не 0 а 10 например
14 novichok79
 
30.05.22
22:10
@platform_suggestions
15 Камчадал
 
naïve
30.05.22
22:10
А вот что за индекс цикла (что то новое) я так и не понял)
16 NorthWind
 
30.05.22
22:51
(0) а с чего ты взял что там вообще есть индекс? Коллекции необязательно индексированные. Например, в соответствии нет индекса. И не гарантируется какой-либо порядок элементов.
17 lodger
 
31.05.22
10:51
чем (0) поможет вылечить генякод из (8)  ?
18 Мимохожий Однако
 
31.05.22
11:35
(15) Счетчик - 1 ))
19 Garykom
 
гуру
31.05.22
11:52
(0)
Для Индекс = 0 По Элементы.ВГраница() Цикл
   Эл = Элементы[Индекс];
   ///...
20 Kassern
 
31.05.22
11:53
(8) какой тип у ТекЗапрос.Операторы и у ТекОператор.Отбор?
21 Ненавижу 1С
 
гуру
31.05.22
12:00
(20) ОператорыСхемыЗапроса и ВыражениеСхемыЗапроса
вообще конечно в 1С поражает количество типов коллекций, вот зачем?
22 Конструктор1С
 
31.05.22
12:00
(8) фу какой кривой код...

(20) это из СхемаЗапроса
23 Конструктор1С
 
31.05.22
12:04
(17) наш гурий с 20-летним опытом только вчера начал открывать для себя СхемаЗапроса, поэтому пытается как-то что-то сделать, но ещё пока не знает, как нужно делать
24 Kassern
 
31.05.22
12:22
(21) Так у этих же коллекций есть индексы. Более того, у последней есть метод Найти. Зачем лепить такой велосипед?
Можно ведь, что-то вроде такого на коленке:
ТекОператор = ТекЗапрос.Операторы.Получить(1);
ТекОтбор = ТекОператор.Отбор.Найти("ПолнооеУсловие с "&ВыбранныеКалендари");
Если ТекОтбор<>Неопределено Тогда
ТекОператор.Отбор.Установить(ТекОператор.Отбор.Индекс(ТекОтбор), Новый ВыражениеСхемыЗапроса("Истина"))
КонецЕсли;
25 Волшебник
 
31.05.22
19:02
(0) А при чём тут миста?