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