Удаляет элемент данных из указанной позиции.
Синтаксис
Удалить(<Индекс>)Полное описание, параметры и ограничения
СписокXDTO.Удалить (XDTOList.Delete)
СписокXDTO (XDTOList)
Удалить (Delete)
Доступен, начиная с версии 8.1.
Синтаксис:
Удалить(<Индекс>)
Параметры:
<Индекс> (необязательный)
Тип: Число.
Позиция удаляемого элемента данных.
Возвращаемое значение:
Тип: ЗначениеXDTO, ОбъектXDTO.
Элемент данных, удаленный из списка.
Описание:
Удаляет элемент данных из указанной позиции.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Заменить товар, получить удалённый элемент и очистить собственный список
Установить заменяет выбранную позицию, Удалить возвращает удалённый элемент. Очистить не уничтожает схему или родительский объект.
Где и как запускать
Полный серверный общий модуль собственной учебной конфигурации.
Подготовка
В собственной отдельной конфигурации УчебнаяКонфигурацияСинтаксиса создайте серверный общий модуль УчебныеКоллекцииXDTO с флагом Сервер. Вставьте полный код выбранного урока.
Из серверной команды собственной учебной обработки вызовите УчебныеКоллекцииXDTO.ВыполнитьПример(). Метаданные справочников и документы не нужны.
В код встроена маленькая собственная XSD: Order содержит повторяющиеся строки item, Note — смешанный текст с числовыми элементами amount. Не подменяйте схему или XML данными неизвестного сервиса.
URI urn:guide:collections — идентификатор пространства имён, не адрес сервера. Схема не содержит import/include, DTD или внешних ссылок.
Все объекты и XML создаются в памяти. Нет файлов, сети, выполнения внешнего кода, записи базы или изменений пакетов XDTO конфигурации.
Процедура ВыполнитьПример() Экспорт
XSD = "<xs:schema xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:g=""urn:guide:collections"" targetNamespace=""urn:guide:collections"" elementFormDefault=""qualified"">
|<xs:complexType name=""Order""><xs:sequence><xs:element name=""item"" type=""xs:string"" minOccurs=""0"" maxOccurs=""unbounded""/></xs:sequence></xs:complexType>
|<xs:complexType name=""Note"" mixed=""true""><xs:sequence><xs:element name=""amount"" type=""xs:decimal"" minOccurs=""0"" maxOccurs=""unbounded""/></xs:sequence></xs:complexType>
|<xs:element name=""order"" type=""g:Order""/><xs:element name=""note"" type=""g:Note""/>
|</xs:schema>";
ЧтениеСхемы = Новый ЧтениеXML;
ЧтениеСхемы.УстановитьСтроку(XSD);
Попытка
Дерево = Новый ПостроительDOM;
ДокументСхемы = Дерево.Прочитать(ЧтениеСхемы);
Исключение
ОшибкаСхемы = ОписаниеОшибки();
Попытка
ЧтениеСхемы.Закрыть();
Исключение
ВызватьИсключение ОшибкаСхемы + Символы.ПС + "Закрытие: " + ОписаниеОшибки();
КонецПопытки;
ВызватьИсключение ОшибкаСхемы;
КонецПопытки;
ЧтениеСхемы.Закрыть();
ПостроительСхем = Новый ПостроительСхемXML;
Схема = ПостроительСхем.СоздатьСхемуXML(ДокументСхемы.ЭлементДокумента);
Если Схема = Неопределено Тогда
ВызватьИсключение "Не построена собственная схема коллекций";
КонецЕсли;
НаборСхем = Новый НаборСхемXML;
НаборСхем.Добавить(Схема);
Если НЕ НаборСхем.Проверить() Тогда
ВызватьИсключение "Собственная схема не прошла проверку";
КонецЕсли;
Фабрика = Новый ФабрикаXDTO(НаборСхем);
ТипЗаказа = Фабрика.Тип("urn:guide:collections", "Order");
Если ТипЗаказа = Неопределено Тогда
ВызватьИсключение "В собственной фабрике не найден Order";
КонецЕсли;
Заказ = Фабрика.Создать(ТипЗаказа);
СвойствоТоваров = Заказ.Свойства().Получить("item");
Если СвойствоТоваров = Неопределено Тогда
ВызватьИсключение "Не найдено собственное повторяющееся свойство item";
КонецЕсли;
Товары = Заказ.ПолучитьСписок(СвойствоТоваров);
Если Товары = Неопределено Тогда
ВызватьИсключение "Не получен список собственного заказа";
КонецЕсли;
Товары.Добавить(Фабрика.Создать(СвойствоТоваров.Тип, "Книга"));
Товары.Добавить(Фабрика.Создать(СвойствоТоваров.Тип, "Ручка"));
Установленный = Товары.Установить(0, Фабрика.Создать(СвойствоТоваров.Тип, "Книга — образец"));
Сообщить(Установленный.Значение = "Книга — образец");
Сообщить(Товары.Количество() = 2);
Сообщить(Товары.Получить(0) = "Книга — образец");
Удалённый = Товары.Удалить(1);
Сообщить(Удалённый.Значение = "Ручка");
Сообщить(Товары.Количество() = 1);
Товары.Очистить();
Сообщить(Товары.Количество() = 0);
Сообщить(Товары.Владелец = Заказ);
Заказ.Проверить();
Сообщить("Пустой заказ допустим, потому что minOccurs у item равен 0");
КонецПроцедурыРазбор по шагам
Создать два типизированных значения собственного списка: Книга и Ручка.
Заменить позицию 0 новым значением. Метод Установить возвращает установленный элемент, не прежнюю Книгу.
Удалить по индексу 1 и прочитать реально возвращённую Ручку. Удалить принимает индекс, а не произвольную объектную ссылку.
Очистить только собственный список. Владельческий объект остаётся, проверка модели разрешает пустоту благодаря minOccurs=0.
Как проверить результат
Семь булевых сообщений Истина. После очистки список пуст, владелец по-прежнему Заказ.
Изменение minOccurs на 1 означает другую схему: пустой объект уже нельзя считать допустимым.
Ожидаемый результат
На конкретных товарах разобраны три разные операции и их возвращаемые значения.
На что обратить внимание
Установить не вставляет новую строку и не увеличивает количество.
Удалённый элемент больше не принадлежит текущему списку; не используйте его индекс как актуальную позицию.
Очистка этой модели не очищает информационную базу или пакеты XDTO конфигурации.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.