ЯчейкиТаблицыОбластиКомпоновкиДанных.Индекс

Методы · IndexOf

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

Синтаксис

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

ЯчейкиТаблицыОбластиКомпоновкиДанных.Индекс (DataCompositionAreaTemplateTableCells.IndexOf)

ЯчейкиТаблицыОбластиКомпоновкиДанных (DataCompositionAreaTemplateTableCells)

Индекс (IndexOf)

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

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

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

Описание:

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

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

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

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

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

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

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

Подготовить собственную область с товарными ячейками и оформлением

МакетОбласти содержит строки, строка — ячейки, ячейка — поля. Эти коллекции нельзя заменять присваиванием.

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

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

Подготовка

  1. Собственная учебная база 8.5.1.1343. Создайте общий модуль УчебныеКоллекцииСКД с флагом Сервер. Вставьте полный текст одного урока с процедурой ВыполнитьПример() Экспорт.

  2. Из серверной команды своей обработки вызовите УчебныеКоллекцииСКД.ВыполнитьПример(). Таблицы значений и служебные объекты макета остаются на сервере.

  3. Книга / 3 / 750 и Ручка / 1 / 50 — вымышленные собственные данные. Ни справочники, ни документы, ни регистры базы, ни внешние сервисы не читаются.

  4. Различайте схему, настройки, скомпилированный макет и результат. Урок составления отдельной коллекции не называется готовым рабочим отчётом.

  5. В уроке описания расшифровки временное хранилище заполняется только новым собственным объектом, в одном вызове. В конце удаляется ровно этот созданный адрес, включая обработку ошибки.

  6. Не заменяйте собственный новый макет текущим рабочим отчётом: Очистить, Удалить и Сдвинуть в этих уроках относятся к собственной памяти.

Процедура ВыполнитьПример() Экспорт
    Область = Новый МакетОбластиКомпоновкиДанных;
    СтрокаКниги = Область.Добавить(Тип("СтрокаТаблицыОбластиКомпоновкиДанных"));
    СтрокаКниги.ИдентификаторТаблицы = "guide-owned-goods-table";
    Ячейки = СтрокаКниги.Ячейки;
    ЯчейкаТовара = Ячейки.Добавить();
    ПолеТовара = ЯчейкаТовара.Элементы.Добавить(Тип("ПолеОбластиКомпоновкиДанных"));
    ПолеТовара.Значение = "Книга";
    ЯчейкаСуммы = Ячейки.Вставить(0);
    ПолеСуммы = ЯчейкаСуммы.Элементы.Добавить(Тип("ПолеОбластиКомпоновкиДанных"));
    ПолеСуммы.Значение = 750;
    ЯчейкаТовара.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(225, 245, 220));
    ПараметрФона = ЯчейкаТовара.Оформление.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ЦветФона"));
    Если ПараметрФона = Неопределено Тогда
        ВызватьИсключение "Оформление собственной ячейки не содержит установленный ЦветФона";
    КонецЕсли;
    Сообщить(СтрокаКниги.ИдентификаторТаблицы = "guide-owned-goods-table");
    Сообщить(Ячейки.Количество() = 2);
    Сообщить(Ячейки.Индекс(ЯчейкаСуммы) = 0);
    Сообщить(Ячейки.Получить(0) = ЯчейкаСуммы);
    Сообщить(ПолеСуммы.Значение = 750);
    Сообщить(ПолеТовара.Значение = "Книга");
    Сообщить(ТипЗнч(ПараметрФона.Значение) = Тип("Цвет"));
    Ячейки.Сдвинуть(ЯчейкаСуммы, 1);
    Сообщить(Ячейки.Получить(0) = ЯчейкаТовара);
    СтрокаРучки = Область.Вставить(0, Тип("СтрокаТаблицыОбластиКомпоновкиДанных"));
    СтрокаРучки.ИдентификаторТаблицы = "guide-owned-goods-table";
    ПолеРучки = СтрокаРучки.Ячейки.Добавить().Элементы.Добавить(Тип("ПолеОбластиКомпоновкиДанных"));
    ПолеРучки.Значение = "Ручка";
    Сообщить(Область.Количество() = 2);
    Сообщить(Область.Индекс(СтрокаРучки) = 0);
    Сообщить(Область.Получить(0) = СтрокаРучки);
    Область.Сдвинуть(СтрокаРучки, 1);
    Сообщить(Область.Получить(0) = СтрокаКниги);
    Область.Удалить(СтрокаРучки);
    Сообщить(Область.Количество() = 1);
    Ячейки.Удалить(ЯчейкаСуммы);
    Сообщить(Ячейки.Количество() = 1);
    Ячейки.Очистить();
    Сообщить(Ячейки.Количество() = 0);
    Область.Очистить();
    Сообщить(Область.Количество() = 0);
КонецПроцедуры

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

  1. Добавляем СтрокаТаблицыОбластиКомпоновкиДанных через документированную фабрику с аргументом Тип.

  2. В двух ячейках создаём поля Книга и 750. ИдентификаторТаблицы — собственная служебная строка, не UUID документа.

  3. УстановитьЗначениеПараметра принимает имя-строку, а НайтиЗначениеПараметра — объект ПараметрКомпоновкиДанных. Не переносим тип аргумента между этими двумя методами.

  4. Переставляем ячейку суммы; затем вставляем строку Ручки и отдельно переставляем строки.

  5. Удаление строки, ячейки и очистка области — разные уровни иерархии; показываем их последовательно.

  6. Это подготовленная область для включения в согласованный макет, не уже показанный ТабличныйДокумент.

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

  1. Шестнадцать булевых проверок Истина; подготовлены собственные поля Книга/750 и Ручка.

  2. После удаления/очистки число собственных ячеек и строк становится 0; рабочие данные не участвуют.

  3. Цвет ячейки — настройка макета; её вид в готовом отчёте этот отдельный урок не выдаёт за проверенный.

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

Разобрана реальная вложенная структура области и отдельное оформление собственной ячейки.

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

  1. Ячейки, Элементы и Оформление только для чтения как свойства; изменяют их содержимое через методы.

  2. МакетОбласти не имеет Показывать/Вывести как ТабличныйДокумент.

  3. Не добавляйте поле непосредственно в область: область содержит строки, поле находится внутри ячейки.

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

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

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

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

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