МакетЗаголовкаКоллекцииЗначенийОбластиКомпоновкиДанных.Ячейки

Свойства · Cells

Тип: ЯчейкиМакетаЗаголовкаКоллекцииЗначенийОбластиКомпоновкиДанных. Содержит ячейки заголовка.

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

МакетЗаголовкаКоллекцииЗначенийОбластиКомпоновкиДанных.Ячейки (DataCompositionAreaTemplateValueCollectionHeader.Cells)

МакетЗаголовкаКоллекцииЗначенийОбластиКомпоновкиДанных (DataCompositionAreaTemplateValueCollectionHeader)

Ячейки (Cells)

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

Использование:
Только чтение.
Описание:
Тип: ЯчейкиМакетаЗаголовкаКоллекцииЗначенийОбластиКомпоновкиДанных.
Содержит ячейки заголовка.
Доступность:

Сервер, толстый клиент, внешнее соединение.

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

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

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

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

Согласовать заголовки и значения колонок вывода в коллекцию

Заголовок задаёт имя/подпись/тип колонки, ячейка данных задаёт Колонка/Значение. Одинаковые позиции не заменяют совпадение имён.

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

Полный серверный общий модуль собственной учебной базы; не клиентский модуль формы.

Подготовка

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

  2. Из серверной команды своей обработки вызовите УчебныеКоллекцииСКД.ВыполнитьПример(). Таблицы значений и служебные объекты макета остаются на сервере.

  3. Книга / 3 / 750 и Ручка / 1 / 50 — вымышленные собственные данные. Ни справочники, ни документы, ни регистры базы, ни внешние сервисы не читаются.

  4. Различайте схему, настройки, скомпилированный макет и результат. Урок составления отдельной коллекции не называется готовым рабочим отчётом.

  5. В уроке описания расшифровки временное хранилище заполняется только новым собственным объектом, в одном вызове. В конце удаляется ровно этот созданный адрес, включая обработку ошибки.

  6. Не заменяйте собственный новый макет текущим рабочим отчётом: Очистить, Удалить и Сдвинуть в этих уроках относятся к собственной памяти.

Процедура ВыполнитьПример() Экспорт
    Заголовок = Новый МакетЗаголовкаКоллекцииЗначенийОбластиКомпоновкиДанных;
    Колонки = Заголовок.Ячейки;
    Товар = Колонки.Добавить();
    Товар.Имя = "Наименование";
    Товар.Заголовок = "Учебный товар";
    Товар.ТипЗначения = Новый ОписаниеТипов("Строка");
    Сумма = Колонки.Вставить(0);
    Сумма.Имя = "Сумма";
    Сумма.Заголовок = "Учебная сумма";
    Сумма.ТипЗначения = Новый ОписаниеТипов("Число");
    Сообщить(Колонки.Количество() = 2);
    Сообщить(Колонки.Индекс(Сумма) = 0);
    Сообщить(Колонки.Получить(0).Имя = "Сумма");
    Сообщить(Товар.Заголовок = "Учебный товар");
    Сообщить(Товар.ТипЗначения.СодержитТип(Тип("Строка")));
    Сообщить(Сумма.ТипЗначения.СодержитТип(Тип("Число")));
    Колонки.Сдвинуть(Сумма, 1);
    Сообщить(Колонки.Получить(0) = Товар);
    Колонки.Удалить(Сумма);
    Сообщить(Колонки.Количество() = 1);
    Сумма = Колонки.Добавить();
    Сумма.Имя = "Сумма";
    Сумма.Заголовок = "Учебная сумма";
    Сумма.ТипЗначения = Новый ОписаниеТипов("Число");
    СтрокаМакета = Новый МакетКоллекцииЗначенийОбластиКомпоновкиДанных;
    Значения = СтрокаМакета.Ячейки;
    ЗначениеТовара = Значения.Добавить();
    ЗначениеТовара.Колонка = "Наименование";
    ЗначениеТовара.Значение = "Книга";
    ЗначениеСуммы = Значения.Вставить(0);
    ЗначениеСуммы.Колонка = "Сумма";
    ЗначениеСуммы.Значение = 750;
    Сообщить(Значения.Количество() = 2);
    Сообщить(Значения.Индекс(ЗначениеСуммы) = 0);
    Сообщить(Значения.Получить(0).Колонка = "Сумма");
    Сообщить(Значения.Получить(0).Значение = 750);
    Сообщить(ЗначениеТовара.Значение = "Книга");
    Для Каждого Ячейка Из Значения Цикл
        НайденаКолонка = Ложь;
        Для Каждого Колонка Из Колонки Цикл
            Если Колонка.Имя = Ячейка.Колонка Тогда
                НайденаКолонка = Истина;
            КонецЕсли;
        КонецЦикла;
        Если НЕ НайденаКолонка Тогда
            ВызватьИсключение "Нет колонки заголовка для собственной ячейки: " + Ячейка.Колонка;
        КонецЕсли;
    КонецЦикла;
    Значения.Удалить(ЗначениеСуммы);
    Сообщить(Значения.Количество() = 1);
    Значения.Очистить();
    Колонки.Очистить();
    Сообщить(Значения.Количество() = 0);
    Сообщить(Колонки.Количество() = 0);
КонецПроцедуры

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

  1. Создаём отдельные макеты заголовка и строки коллекции значений, затем две типизированные колонки.

  2. У заголовка Имя Наименование отличается от подписи Учебный товар. ТипЗначения содержит строку.

  3. Переставляем заголовки методами их собственной коллекции, затем восстанавливаем числовую колонку Сумма.

  4. Ячейки данных создаются в ином порядке, но у каждой явно задано Колонка: Наименование или Сумма.

  5. Проверяем, что имя каждой ячейки присутствует в заголовке. Несуществующая колонка вызвала бы ошибку процессора вывода.

  6. После проверки удаляем/очищаем только свои коллекции; полноценный составной макет и процессор этот урок не формирует.

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

  1. Шестнадцать булевых проверок Истина, проверка соответствия двух имён колонок не выбрасывает исключения.

  2. Значения Книга и 750 относятся к именам колонок, а не к первоначальному индексу.

  3. После Очистить обе коллекции пусты; исходные параметры и база не затронуты.

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

Разобраны два разных вида ячеек макета коллекции и согласование их схемы.

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

  1. ЯчейкаЗаголовка.Заголовок — подпись, ЯчейкаДанных.Колонка — техническое имя.

  2. Не вызывайте Сдвинуть у коллекции ячеек значений: такой метод у неё не документирован.

  3. При пустой Колонка процессор выбирает следующую по порядку; здесь используем явные имена для понятной привязки.

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

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

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

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

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