ПоляНабораДанныхМакетаКомпоновкиДанных.Индекс

Методы · IndexOf

Получает индекс элемента в коллекции.

Синтаксис

Индекс(<Элемент>)
Полное описание, параметры и ограничения

ПоляНабораДанныхМакетаКомпоновкиДанных.Индекс (DataCompositionTemplateDataSetFields.IndexOf)

ПоляНабораДанныхМакетаКомпоновкиДанных (DataCompositionTemplateDataSetFields)

Индекс (IndexOf)

Доступен, начиная с версии 8.1.

Синтаксис:
Индекс(<Элемент>)
Параметры:

<Элемент> (обязательный)
Тип: ПоляНабораДанныхМакетаКомпоновкиДанных.
Элемент, индекс которого определяется.
Возвращаемое значение:
Тип: Число.

Описание:

Получает индекс элемента в коллекции.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Синтаксис коллекции: индекс и перемещение поля скомпилированного набора

Получаем настоящий макет собственной схемы и перемещаем первое поле в его коллекции на одну позицию.

Где и как запускать

Серверный модуль своего учебного отчета либо толстый клиент; без обращения к рабочим данным.

Подготовка

  1. Создайте в собственном учебном отчете макет УчебнаяСхема типа Схема компоновки данных: источник Локальный, один набор Продажи, запрос ВЫБРАТЬ 300 КАК Цена, 6 КАК Количество ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 250, 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 100, 2. Добавьте поля Цена и Количество, ресурс Сумма с выражением Сумма(Цена * Количество), в настройках — детальные записи и выбранные поля. Имена в коде относятся именно к этому созданному вами макету.

  2. Изменяется только полученный в памяти макет. После опыта для вывода отчета заново скомпилируйте исходную схему.

Схема = ПолучитьМакет("УчебнаяСхема");
Компоновщик = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = Компоновщик.Выполнить(Схема, Схема.НастройкиПоУмолчанию);
Поля = Макет.НаборыДанных[0].Поля;
Если Поля.Количество() < 2 Тогда
    ВызватьИсключение "Нужно минимум два поля скомпилированного набора";
КонецЕсли;
Поле = Поля[0];
До = Поля.Индекс(Поле);
Поля.Сдвинуть(Поле, 1);
После = Поля.Индекс(Поле);
Сообщить(Поле.Имя + ": " + Строка(До) + " → " + Строка(После));

Разбор по шагам

  1. Скомпилируйте свой набор с двумя полями.

  2. Прочитайте индекс первого элемента.

  3. Переместите его на одну позицию и снова прочитайте индекс.

Как проверить результат

  1. В отладчике сравните порядок до и после.

  2. Не выходите за границы коллекции.

Ожидаемый результат

Наблюдаемое изменение порядка в собственной коллекции макета.

На что обратить внимание

  1. В страницах Индекс и Сдвинуть справка называет типом параметра саму коллекцию ПоляНабораДанныхМакетаКомпоновкиДанных. Это неясность документации: фрагмент показывает обычный синтаксис на элементе, реально извлеченном из коллекции; его нужно проверить в целевой платформе, не подменяя чужим объектом.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.