СписокЗначений.Вставить

Методы · Insert

Вставляет новый элемент в список значений на позицию с указанным индексом.

Синтаксис

Вставить(<Индекс>, <Значение>, <Представление>, <Пометка>, <Картинка>)

Примеры платформы

СписокТиповЦен.Добавить("Все наценки",, Истина);
ВыборкаТиповЦен = Справочники.ТипыЦен.Выбрать();
Пока ВыборкаТиповЦен.Следующий() Цикл
    СписокТиповЦен.Вставить(0, ВыборкаТиповЦен.Ссылка,
                            ВыборкаТиповЦен.Наценка, Ложь);
КонецЦикла;
Полное описание, параметры и ограничения

СписокЗначений.Вставить (ValueList.Insert)

СписокЗначений (ValueList)

Вставить (Insert)

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

Синтаксис:
Вставить(<Индекс>, <Значение>, <Представление>, <Пометка>, <Картинка>)
Параметры:

<Индекс> (обязательный)
Тип: Число.
Индекс позиции, на которую надо вставить элемент.

<Значение> (необязательный)
Тип: Произвольный.
Значение, которое необходимо вставить.

<Представление> (необязательный)
Тип: Строка, ФорматированнаяСтрока.
Строковое выражение, содержащее представление добавляемого значения.
Значение по умолчанию: Пустая строка.

<Пометка> (необязательный)
Тип: Булево.
Определяет, создавать новое значение с установленной пометкой или нет.
Значение по умолчанию: Ложь.

<Картинка> (необязательный)
Тип: Картинка.
Визуальное представление значения.
Значение по умолчанию: Пустая картинка.
Возвращаемое значение:
Тип: ЭлементСпискаЗначений.
Новый элемент списка значений.
Описание:

Вставляет новый элемент в список значений на позицию с указанным индексом.

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

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Пример:

СписокТиповЦен.Добавить("Все наценки",, Истина);
ВыборкаТиповЦен = Справочники.ТипыЦен.Выбрать();
Пока ВыборкаТиповЦен.Следующий() Цикл
СписокТиповЦен.Вставить(0, ВыборкаТиповЦен.Ссылка,
ВыборкаТиповЦен.Наценка, Ложь);
КонецЦикла;

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

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

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

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

Сохранить выбранный элемент при сортировке и изменить только копию списка

Идентификатор элемента отличается от его позиции. Временный способ доставки удаляется; исходный список остаётся из трёх способов.

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

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

Подготовка

  1. Тело серверной процедуры учебной обработки. Все три способа создаются самим примером в памяти.

  2. Не подставляйте рабочий СписокЗначений вместо самостоятельно созданного Способы.

Способы = Новый СписокЗначений;
Способы.Добавить("pickup", "Самовывоз");
Способы.Добавить("courier", "Курьер");
Способы.Добавить("post", "Почта");
Самовывоз = Способы.НайтиПоЗначению("pickup");
Идентификатор = Самовывоз.ПолучитьИдентификатор();
Способы.СортироватьПоПредставлению(НаправлениеСортировки.Возр);
Сообщить(Способы.НайтиПоИдентификатору(Идентификатор) = Самовывоз);
Сообщить(Способы.Получить(0).Представление = "Курьер");
Способы.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
Сообщить(Способы.Получить(0).Значение = "post");
Копия = Способы.Скопировать();
Проба = Копия.Вставить(1, "temp", "Пробный способ");
Сообщить(Копия.Индекс(Проба) = 1);
Копия.Сдвинуть(Проба, 1);
Сообщить(Копия.Индекс(Проба) = 2);
Копия.Удалить(Проба);
Копия.ЗаполнитьПометки(Ложь);
Копия.НайтиПоЗначению("pickup").Пометка = Истина;
Сообщить(Не Способы.НайтиПоЗначению("pickup").Пометка);
Сообщить(Копия.НайтиПоЗначению("pickup").Пометка);
Копия.Очистить();
Сообщить(Копия.Количество() = 0);
Сообщить(Способы.Количество() = 3);

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

  1. Находим Самовывоз по устойчивому коду и сохраняем идентификатор самого элемента.

  2. Сортировка по подписи ставит Курьер первым. По коду убыванию — post. Поиск по идентификатору не зависит от этих позиций.

  3. Скопировать создаёт отдельный список. Временный элемент вставляем и переставляем только в копии.

  4. Пометки принадлежат элементам. Изменение пометки копии не должно менять пометку исходного списка.

  5. Очищаем только копию. Исходные три способа остаются доступными.

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

  1. Все девять булевых проверок Истина.

  2. Оригинал содержит три способа без пометки Самовывоза, копия в конце пустая.

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

Показаны сортировка, устойчивый идентификатор, позиции и независимая копия списка.

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

  1. Идентификатор используется в пределах соответствующего списка; это не UUID значения и не переносимый ключ между копиями.

  2. Копирование коллекции не означает глубокое копирование произвольных ссылочных объектов в Значение; в этом уроке значения — строки.

  3. После очистки нельзя обращаться к удалённым элементам копии.

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

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

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

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

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