ЭлементыПакетаОтображаемыхДокументов.Количество

Методы · Count

Получает количество элементов в коллекции.

Синтаксис

Количество()
Полное описание, параметры и ограничения

ЭлементыПакетаОтображаемыхДокументов.Количество (RepresentableDocumentBatchItems.Count)

ЭлементыПакетаОтображаемыхДокументов (RepresentableDocumentBatchItems)

Количество (Count)

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

Синтаксис:
Количество()
Возвращаемое значение:
Тип: Число.

Описание:

Получает количество элементов в коллекции.

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

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

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

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

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

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

Настроить состав пакета и копии отдельного документа

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

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

Полный модуль собственной управляемой формы; толстый клиент Windows. Временные документы принадлежат только этой форме.

Подготовка

  1. Собственная отдельная конфигурация УчебнаяКонфигурацияСинтаксиса, платформа 8.5.1.1343. Создайте внешнюю обработку с пустой управляемой формой, командой Выполнить и её кнопкой.

  2. Откройте обработку в толстом клиенте Windows. Вставьте полный модуль одного урока. При наличии Асинх используйте асинхронную процедуру из примера, не убирайте Ждать.

  3. Серверная функция создаёт только две собственные формы: Книга / 3 и Ручка / 1. Временное хранилище привязано к УникальныйИдентификатор этой формы, адреса сохраняются в собственном массиве.

  4. Пока выполняется запись, форму не закрывайте. После завершения очищаются только адреса, созданные этим модулем. Файл оставляется для ручной проверки и удаления пользователем.

  5. Запись выбирает новое временное имя на машине клиента. Существующий файл не перезаписывается. Для файла печати используется расширение print: это внутренний файл печати, не PDF и не текстовый отчёт.

  6. Урок печати требует строковые реквизиты УчебныйПринтер и Подтверждение. Введите точное имя собственного тестового устройства и фразу ПЕЧАТАЮ ТОЛЬКО УЧЕБНЫЕ ДАННЫЕ.

  7. При создании руководства печать, сохранение и запуск 1С не выполнялись. Для PDF вручную проверьте обе учебные формы; ненулевой размер файла сам по себе не доказывает содержимое.

Перем УчебныйПакет;
Перем УчебныеАдреса;
Перем Занято;

&НаКлиенте
Процедура Выполнить(Команда)
    Если Занято = Истина Тогда
        ВызватьИсключение "Дождитесь завершения собственной предыдущей операции";
    КонецЕсли;
    Если УчебныеАдреса <> Неопределено Тогда
        ВызватьИсключение "Предыдущие учебные данные ещё не освобождены; закройте только учебную форму и откройте заново";
    КонецЕсли;
    Созданные = СоздатьСобственныйПакет();
    УчебныйПакет = Созданные.Пакет;
    УчебныеАдреса = Созданные.Адреса;
    Попытка
        УчебныйПакет.Вывод = ИспользованиеВывода.Запретить;
        УчебныйПакет.ИмяПринтера = Неопределено;
        УчебныйПакет.ДвусторонняяПечать = ТипДвустороннейПечати.Нет;
        УчебныйПакет.РазборПоКопиям = Истина;
        УчебныйПакет.ТочностьПечати = ТочностьПечати.Авто;
        Состав = УчебныйПакет.Состав;
        Сообщить(Состав.Количество() = 2);
        Книга = Состав.Получить(0);
        Сообщить(Книга.Наименование = "Книга");
        Сообщить(Книга.Данные = УчебныеАдреса[0]);
        Проба = Состав.Вставить(1, УчебныеАдреса[0]);
        Проба.Наименование = "Удаляемая собственная копия";
        Сообщить(Состав.Индекс(Проба) = 1);
        Состав.Сдвинуть(Проба, 1);
        Сообщить(Состав.Индекс(Проба) = 2);
        Состав.Удалить(Проба);
        Сообщить(Состав.Количество() = 2);
        Вложенный = Новый ПакетОтображаемыхДокументов;
        Вложенный.КоличествоЭкземпляров = 2;
        Вложенный.ИмяПринтера = Неопределено;
        Вложенный.ДвусторонняяПечать = Неопределено;
        Вложенный.РазборПоКопиям = Неопределено;
        Вложенный.Состав.Добавить(УчебныеАдреса[0]);
        Книга.Данные = Вложенный;
        Сообщить(УчебныйПакет.КоличествоЭкземпляров = 1);
        Сообщить(Вложенный.КоличествоЭкземпляров = 2);
        Сообщить(УчебныйПакет.ДвусторонняяПечать = ТипДвустороннейПечати.Нет);
        Сообщить(УчебныйПакет.РазборПоКопиям);
        Состав.Очистить();
        Сообщить(Состав.Количество() = 0);
    Исключение
        ОшибкаОперации = ОписаниеОшибки();
        ОсвободитьСобственныйПакет();
        ВызватьИсключение ОшибкаОперации;
    КонецПопытки;
    ОсвободитьСобственныйПакет();
КонецПроцедуры

&НаСервере
Функция СоздатьСобственныйПакет()
    Адреса = Новый Массив;
    Пакет = Новый ПакетОтображаемыхДокументов;
    Пакет.Заголовок = "guide-owned: Книга и Ручка";
    Пакет.Вывод = ИспользованиеВывода.Разрешить;
    Пакет.КоличествоЭкземпляров = 1;
    Для Номер = 1 По 2 Цикл
        Документ = Новый ТабличныйДокумент;
        Если Номер = 1 Тогда
            Название = "Книга";
            Количество = "3";
        Иначе
            Название = "Ручка";
            Количество = "1";
        КонецЕсли;
        Документ.Область(1, 1).Текст = "Только собственный учебный товар";
        Документ.Область(2, 1).Текст = Название;
        Документ.Область(2, 2).Текст = Количество;
        Документ.Область(, 1, , 1).ШиринаКолонки = 30;
        Документ.КоличествоЭкземпляров = 7;
        Адрес = ПоместитьВоВременноеХранилище(Документ, ЭтаФорма.УникальныйИдентификатор);
        Адреса.Добавить(Адрес);
        Элемент = Пакет.Состав.Добавить(Адрес);
        Элемент.Наименование = Название;
    КонецЦикла;
    Возврат Новый Структура("Пакет,Адреса", Пакет, Адреса);
КонецФункции

&НаСервере
Процедура УдалитьСобственныеАдреса(Адреса)
    Для Каждого Адрес Из Адреса Цикл
        УдалитьИзВременногоХранилища(Адрес);
    КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура ОсвободитьСобственныйПакет()
    Если УчебныеАдреса <> Неопределено Тогда
        УдалитьСобственныеАдреса(УчебныеАдреса);
        УчебныеАдреса = Неопределено;
    КонецЕсли;
    УчебныйПакет = Неопределено;
КонецПроцедуры

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

  1. Сервер создаёт документы и два собственных адреса, привязанных к форме. Состав содержит элементы, а Данные элемента — адрес или вложенный пакет, не ТабличныйДокумент.

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

  3. Поместить Книгу во вложенный пакет с двумя экземплярами. Неопределено у его принтера/двусторонности/разбора означает наследование от родительского пакета.

  4. Запретить вывод корневого пакета: этот урок ничего не печатает и не сохраняет. Затем очистить собственный состав и удалить только свои два адреса.

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

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

  2. Вложенный пакет имеет 2 экземпляра, корневой 1. Это проверка настроек, не подсчёт реально напечатанной бумаги.

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

Полный образец коллекции пакета и настройки копий без печати.

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

  1. Состав только для чтения, но его коллекцию можно изменять.

  2. В Вывод и ТочностьПечати учитывается корневой пакет, ограничения вложенного пакета не являются самостоятельной защитой.

  3. Не удаляйте чужие адреса временного хранилища: массив этого урока создаётся только вместе с его собственными документами.

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

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

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

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

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