КоллекцияВложенийPDF.Удалить

Методы · Delete

Удаляет элемент из коллекции.

Синтаксис

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

КоллекцияВложенийPDF.Удалить (PDFAttachmentCollection.Delete)

КоллекцияВложенийPDF (PDFAttachmentCollection)

Удалить (Delete)

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

Вариант синтаксиса: Удаление по объекту

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

<Элемент> (необязательный)
Тип: ВложениеPDF.
Удаляемый элемент коллекции.
Вариант синтаксиса: Удаление по индексу

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

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

Удаляет элемент из коллекции.

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

Тонкий клиент, веб-клиент, сервер, толстый клиент.

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

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

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

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

Удалить элемент коллекции, не удаляя файл на диске

Добавляем две собственные заметки, удаляем одну по объекту и вторую по индексу. Очистить относится только к нашей коллекции.

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

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

Подготовка

  1. Используйте отдельную учебную базу. Фрагмент без директив вставьте в тело серверной процедуры ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.

  2. Все исходные байты создаются самим примером в памяти. Файлы, сеть, справочники и документы не нужны.

  3. Запускайте задачи отдельно. После закрытия ЧтениеДанных/ЗаписьДанных не используйте этот экземпляр повторно.

Вложения = Новый КоллекцияВложенийPDF;
ТекстJSON = "{""товар"":""Книга"",""количество"":3}";
БайтыJSON = ПолучитьДвоичныеДанныеИзСтроки(ТекстJSON, КодировкаТекста.UTF8, Ложь);
Вложения.Добавить("товар.json", БайтыJSON, "application/json", ТипСвязиВложенияPDF.Данные);
Заметка = Вложения.Добавить("заметка.txt", ПолучитьДвоичныеДанныеИзСтроки("Учебный документ", КодировкаТекста.UTF8, Ложь));
Сообщить(Заметка.ТипСодержимого = "application/octet-stream");
Сообщить(Заметка.ТипСвязи = ТипСвязиВложенияPDF.НеУстановлено);
Сообщить(Вложения.Количество() = 2);
Вложения.Удалить(Заметка);
Сообщить(Вложения.Количество() = 1);
Сообщить(Вложения.Найти("заметка.txt") = Неопределено);
Вложения.Удалить(0);
Сообщить(Вложения.Количество() = 0);
Вложения.Добавить("повтор.json", БайтыJSON, "application/json", ТипСвязиВложенияPDF.Дополнение);
Сообщить(Вложения.Количество() = 1);
Вложения.Очистить();
Сообщить(Вложения.Количество() = 0);

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

  1. У второго вложения не задаём MIME-тип и связь: получаем документированные значения по умолчанию.

  2. Удалить принимает либо объект собственного вложения, либо индекс. После первого удаления известно, что остался ровно один элемент.

  3. Индекс 0 здесь допустим только после проверки собственного количества; в произвольной коллекции так делать нельзя.

  4. Повторное добавление и Очистить показывают отличие удаления одного элемента от очистки всех элементов.

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

  1. Восемь сравнений Истина, конечное количество 0.

  2. Никакой вызов УдалитьФайлы не выполняется; коллекция не является каталогом файлов.

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

Отработаны оба варианта удаления и очистка собственной коллекции вложений.

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

  1. Удаление из этой коллекции не переписывает уже существующий PDF: для этого есть отдельный метод ЗаписьPDF.

  2. После удаления объект Заметка не нужно выдавать за элемент коллекции, даже если переменная ещё содержит его.

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

Подготовить вложение CSV и освоить всю коллекцию

Создаём собственные UTF-8 байты строки книги, добавляем вложение, читаем и меняем его четыре свойства, удаляем только свою коллекцию в памяти.

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

Полный серверный общий модуль УчебныйPDF собственной учебной конфигурации; только собственные PDF-байты в памяти.

Подготовка

  1. Отдельная собственная учебная база 8.5.1.1343: серверный общий модуль УчебныйPDF. Вставьте полный модуль одного урока и вызовите ВыполнитьПример() своей серверной командой.

  2. Имя конфигурации должно быть УчебнаяКонфигурацияСинтаксиса. Все данные создаются кодом: строка Книга / 3 / 250 / 750 и собственные текстовые вложения.

  3. Исходный PDF получается настоящим экспортом собственного ТабличныйДокумент в ПотокВПамяти. Никакого файла с неизвестным происхождением или рабочего печатного макета не требуется.

  4. Чтение и повторная запись выполняются в памяти. Примеры не печатают, не обращаются к интернету и не меняют документы базы.

  5. Проверки размеров, страниц и вложений не доказывают вид штампа или оттенки серого. Для визуального контроля используйте отдельный урок просмотра собственного PDF; этот серверный модуль окна не открывает.

Процедура ВыполнитьПример() Экспорт
    Содержимое = ПолучитьДвоичныеДанныеИзСтроки("Книга;3;250;750", КодировкаТекста.UTF8, Ложь);
    Вложения = Новый КоллекцияВложенийPDF;
    Вложения.Добавить("guide-owned-book.csv", Содержимое, "text/csv", ТипСвязиВложенияPDF.Данные);
    Элемент = Вложения.Найти("guide-owned-book.csv");
    Если Элемент = Неопределено Тогда
        ВызватьИсключение "Собственное вложение не найдено";
    КонецЕсли;
    Сообщить(Вложения.Количество() = 1);
    Сообщить(Вложения.Получить(0) = Элемент);
    Сообщить(Вложения.Индекс(Элемент) = 0);
    Сообщить(Элемент.ИмяФайла = "guide-owned-book.csv");
    Сообщить(Элемент.ТипСодержимого = "text/csv");
    Сообщить(Элемент.ТипСвязи = ТипСвязиВложенияPDF.Данные);
    Сообщить(ПолучитьСтрокуИзДвоичныхДанных(Элемент.Содержимое, КодировкаТекста.UTF8) = "Книга;3;250;750");
    Элемент.ИмяФайла = "guide-owned-book.txt";
    Элемент.ТипСодержимого = "text/plain";
    Элемент.ТипСвязи = ТипСвязиВложенияPDF.Дополнение;
    Элемент.Содержимое = ПолучитьДвоичныеДанныеИзСтроки("Книга: 3 × 250 = 750", КодировкаТекста.UTF8, Ложь);
    Сообщить(Вложения.Найти("guide-owned-book.txt") = Элемент);
    Сообщить(Вложения.Найти("нет-такого.txt") = Неопределено);
    Вложения.Удалить(Элемент);
    Сообщить(Вложения.Количество() = 0);
    Вложения.Добавить("guide-owned-one.txt", Содержимое);
    Вложения.Добавить("guide-owned-two.txt", Содержимое);
    Вложения.Удалить(0);
    Сообщить(Вложения.Получить(0).ИмяФайла = "guide-owned-two.txt");
    Вложения.Очистить();
    Сообщить(Вложения.Количество() = 0);
КонецПроцедуры

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

  1. Получить собственные двоичные данные без временного файла и создать отдельную КоллекцияВложенийPDF.

  2. Вызвать Добавить как процедуру без возвращаемого элемента. Получить настоящий элемент через Найти, индекс и Получить.

  3. Прочитать MIME, тип связи и содержимое. После переименования заменить содержимое, MIME и связь согласованно.

  4. Удалить элемент объектом, затем отдельный элемент индексом. Очистить только созданную коллекцию.

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

  1. Двенадцать булевых проверок должны дать Истина; собственное CSV читается обратно как Книга;3;250;750.

  2. После последней Очистить в коллекции 0 элементов. Ни один файл на диске не создавался и не удалялся.

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

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

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

  1. Добавить не возвращает ВложениеPDF: не пишите Элемент = Вложения.Добавить(...). У ВложениеPDF нет конструктора.

  2. MIME-тип и тип связи описывают вложение, но не проверяют его безопасность. Эти байты созданы собственным кодом.

  3. Изменение отдельной коллекции не записывает PDF автоматически. Для встраивания нужен следующий урок.

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

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

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

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

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