Получает элемент коллекции по индексу. Работает аналогично оператору [].
Синтаксис
Получить(<Индекс>)Полное описание, параметры и ограничения
ОписанияМакетовОбластейМакетаКомпоновкиДанных.Получить (DataCompositionTemplateAreaTemplateDefinitions.Get)
ОписанияМакетовОбластейМакетаКомпоновкиДанных (DataCompositionTemplateAreaTemplateDefinitions)
Получить (Get)
Доступен, начиная с версии 8.1.
Синтаксис:
Получить(<Индекс>)
Параметры:
<Индекс> (обязательный)
Тип: Число.
Расположение элемента в коллекции.
Возвращаемое значение:
Тип: ОписаниеМакетаОбластиМакетаКомпоновкиДанных.
Описание:
Получает элемент коллекции по индексу. Работает аналогично оператору [].
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Организовать собственные области: заголовок, товары и подвал
Создаём три настоящие области с текстовыми полями, ищем описание по имени, перемещаем подвал, удаляем описание товаров и очищаем только свой каталог.
Где и как запускать
Серверный общий модуль УчебныеОбластиСКД85. Собственный черновик областей или параметров без запуска процессора вывода.
Подготовка
В отдельной собственной учебной базе 8.5.1.1343 создайте общий модуль УчебныеОбластиСКД85: Сервер — Да, Клиент — Нет, Глобальный — Нет, Вызов сервера — Нет, Привилегированный — Нет.
Вставьте весь приведённый модуль одного урока: экспортную процедуру и функцию СоздатьУчебнуюОбласть. Из серверного обработчика команды своей учебной обработки вызовите УчебныеОбластиСКД85.ВыполнитьПример();.
Задача — подготовить и проверить собственный каталог описаний областей или параметров. Это редактирование служебных объектов в памяти, не запуск готового отчёта и не изменение рабочего макета.
Объект ЭлементРезультатаКомпоновкиДанных здесь создаётся конструктором специально для владения собственной коллекцией Макеты. Этот элемент не передаётся процессору вывода.
У собственной области есть настоящая строка, ячейка и поле с текстовым значением. Это МакетОбластиКомпоновкиДанных, не ТабличныйДокумент и не строковое имя области.
Смотрите сообщения и значения в отладчике. Индексы начинаются с нуля; Сдвинуть принимает объект и относительное смещение, Удалить — объект, Получить — индекс.
Очистить и Удалить действуют только на заново созданные коллекции этого модуля. После удаления элементы больше не используются. Записи базы, чужие отчёты, файлы и сеть не затрагиваются.
В 1С код не запускался. Сигнатуры и readonly сверены статически с установленной справкой; ожидаемые проверки подтвердите в собственной учебной базе.
Процедура ВыполнитьПример() Экспорт
Контейнер = Новый ЭлементРезультатаКомпоновкиДанных;
Описания = Контейнер.Макеты;
Заголовок = Описания.Добавить();
Заголовок.Имя = "УчебныйЗаголовок";
Заголовок.Макет = СоздатьУчебнуюОбласть("Учебный заказ");
СтрокиТоваров = Описания.Добавить();
СтрокиТоваров.Имя = "УчебныеТовары";
СтрокиТоваров.Макет = СоздатьУчебнуюОбласть("Книга: 750; Ручка: 50");
Подвал = Описания.Вставить(1);
Подвал.Имя = "УчебныйПодвал";
Подвал.Макет = СоздатьУчебнуюОбласть("Итого: 800");
Сообщить(Описания.Количество() = 3);
Сообщить(Описания.Индекс(Подвал) = 1);
Сообщить(Описания.Получить(0) = Заголовок);
НайденныеТовары = Описания.Найти("УчебныеТовары");
Если НайденныеТовары = Неопределено Тогда
ВызватьИсключение "Не найдено собственное описание области товаров";
КонецЕсли;
Сообщить(НайденныеТовары = СтрокиТоваров);
Сообщить(ТипЗнч(НайденныеТовары.Макет) = Тип("МакетОбластиКомпоновкиДанных"));
Сообщить(НайденныеТовары.Макет.Получить(0).Ячейки.Получить(0).Элементы.Получить(0).Значение = "Книга: 750; Ручка: 50");
Сообщить(Описания.Найти("НесуществующаяУчебнаяОбласть") = Неопределено);
Описания.Сдвинуть(Подвал, 1);
Сообщить(Описания.Индекс(Подвал) = 2);
Сообщить(Описания.Получить(1) = СтрокиТоваров);
Описания.Удалить(СтрокиТоваров);
Сообщить(Описания.Количество() = 2);
Сообщить(Описания.Найти("УчебныеТовары") = Неопределено);
Сообщить(Описания.Получить(1) = Подвал);
Описания.Очистить();
Сообщить(Описания.Количество() = 0);
Сообщить(Контейнер.Макеты.Количество() = 0);
КонецПроцедуры
Функция СоздатьУчебнуюОбласть(ТекстОбласти)
Область = Новый МакетОбластиКомпоновкиДанных;
СтрокаОбласти = Область.Добавить(Тип("СтрокаТаблицыОбластиКомпоновкиДанных"));
Ячейка = СтрокаОбласти.Ячейки.Добавить();
Поле = Ячейка.Элементы.Добавить(Тип("ПолеОбластиКомпоновкиДанных"));
Поле.Значение = ТекстОбласти;
Возврат Область;
КонецФункцииРазбор по шагам
Конструктор создаёт свой контейнер. Макеты возвращает связанную коллекцию описаний без отдельного конструктора коллекции.
Добавить создаёт описание заголовка и описание товаров. Имя — ключ собственного каталога; Макет — новый объект области, возвращённый полной функцией из этого же модуля.
Функция создаёт строку нужного типа, ячейку и текстовое поле. Поэтому в Макет хранится не название и не неизвестный объект, а построенная область.
Вставить(1) помещает подвал между заголовком и товарами. Получается порядок 0: заголовок, 1: подвал, 2: товары.
Найти возвращает описание. После защиты от Неопределено проверяем его тип макета и текст первого поля, созданного функцией.
Сдвинуть(Подвал, 1) переносит существующий объект на одну позицию вправо: заголовок, товары, подвал. Это не создание ещё одного подвала.
Удалить получает объект СтрокиТоваров. Остаются заголовок и подвал, поиск прежнего имени товаров возвращает Неопределено.
Очистить освобождает содержимое своего каталога. Обе проверки числа элементов подтверждают, что переменная Описания и Контейнер.Макеты указывают на одну коллекцию.
Как проверить результат
Все четырнадцать сравнений должны дать Истина. Три области сначала существуют; после удаления остаются две, после Очистить — ноль.
До удаления найдите описание УчебныеТовары: его Макет — МакетОбластиКомпоновкиДанных, текст поля — Книга: 750; Ручка: 50.
После сдвига подвал имеет индекс 2, а товары — 1. После удаления товаров подвал имеет индекс 1.
После Очистить коллекция пустая, но объект-контейнер не подменялся. Удаление записи базы или рабочего отчёта не происходило.
Ожидаемый результат
Освоены все девять операций собственной коллекции описаний областей на связанной учебной задаче.
На что обратить внимание
Readonly относится к ссылке: нельзя присвоить новый объект свойству Макеты или Параметры. Добавить и Очистить меняют содержимое полученной собственной коллекции.
Индекс и объект — разные аргументы. Удалить не принимает здесь число вместо описания, а Сдвинуть — не абсолютную будущую позицию.
Найти может вернуть Неопределено; перед чтением его результата стоит явная проверка. Имена в собственном каталоге заданы уникальными.
Это законченная задача редактирования собственного черновика. Наличие описаний не доказывает, что собран согласованный элемент для ВывестиЭлемент.
Код не выводит отчёт, не обращается к рабочей конфигурации и не запускался в 1С. Проверки описывают ожидаемое поведение учебного стенда.
Учебный итог 800 записан как текст 750 + 50, не вычислен процессором. Эти именованные области не привязываются к реальному скомпилированному отчёту.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.