Автоматический элемент порядка. Перед использованием он будет преобразован в набор элементов порядка. Из глобального упорядочивания, ресурсы будут добавлены безусловно, а из полей-не ресурсов в порядок будут добавлены поля, являющиеся реквизитами поля группировки и само поле группировки (для детальных записей будут занесены все поля). Поля группировки, которые не были указаны в глобальном упорядочивании, попадут в конец порядка. Если поле уже включено в данный порядок, повторно оно не добавляется. В случае, если один элемент структуры настроек содержит АвтоПолеГруппировкиКомпоновкиДанных, АвтоВыбранноеПолеКомпоновкиДанных и АвтоЭлементПорядкаКомпоновкиДанных, они преобразовываются в след. порядке: 1. АвтоПолеГруппировкиКомпоновкиДанных; 2. АвтоВыбранноеПолеКомпоновкиДанных; 3. АвтоЭлементПорядкаКомпоновкиДанных.
Полное описание, параметры и ограничения
АвтоЭлементПорядкаКомпоновкиДанных (DataCompositionAutoOrderItem)
АвтоЭлементПорядкаКомпоновкиДанных (DataCompositionAutoOrderItem)
Доступен, начиная с версии 8.1.
Свойства:
Использование (Use)
Описание:
Автоматический элемент порядка. Перед использованием он будет преобразован в набор элементов порядка.
Из глобального упорядочивания, ресурсы будут добавлены безусловно, а из полей-не ресурсов в порядок будут добавлены поля, являющиеся реквизитами поля группировки и само поле группировки (для детальных записей будут занесены все поля). Поля группировки, которые не были указаны в глобальном упорядочивании, попадут в конец порядка.
Если поле уже включено в данный порядок, повторно оно не добавляется.
В случае, если один элемент структуры настроек содержит АвтоПолеГруппировкиКомпоновкиДанных, АвтоВыбранноеПолеКомпоновкиДанных и АвтоЭлементПорядкаКомпоновкиДанных, они преобразовываются в след. порядке:
1. АвтоПолеГруппировкиКомпоновкиДанных;
2. АвтоВыбранноеПолеКомпоновкиДанных;
3. АвтоЭлементПорядкаКомпоновкиДанных.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Данный объект может быть сериализован в/из XML. Может использоваться в реквизитах управляемой формы. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data-composition-system/settings}. Имя типа XDTO: OrderItemAuto.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Наследовать порядок сортировки в детальных записях
Общий порядок задаём явно, а внутри группировки используем автоматический элемент порядка.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Работайте в учебной базе на платформе 8.5.1.1343.
Фрагмент вставьте внутрь серверной процедуры учебной обработки; объекты конфигурации и внешние файлы не нужны.
Поставьте точку останова после создания настроек и посмотрите их дерево в отладчике.
Настройки = Новый НастройкиКомпоновкиДанных;
ОсновнойПорядок = Настройки.Порядок.Элементы.Добавить(
Тип("ЭлементПорядкаКомпоновкиДанных"));
ОсновнойПорядок.Поле = Новый ПолеКомпоновкиДанных("Количество");
ОсновнойПорядок.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв;
ОсновнойПорядок.Использование = Истина;
ДетальныеЗаписи = Настройки.Структура.Добавить(
Тип("ГруппировкаКомпоновкиДанных"));
ДетальныеЗаписи.Использование = Истина;
АвтоПорядок = ДетальныеЗаписи.Порядок.Элементы.Добавить(
Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
АвтоПорядок.Использование = Истина;
Сообщить(ТипЗнч(АвтоПорядок));
Сообщить(ДетальныеЗаписи.Порядок.ПолучитьКоличествоИспользуемых());Разбор по шагам
В корневом порядке задаём поле Количество по убыванию.
Включаем явный элемент порядка.
Добавляем автоматический порядок в детальные записи, чтобы он учитывал вышестоящие настройки.
ПолучитьКоличествоИспользуемых считает включённые элементы, не число итоговых строк отчёта.
Как проверить результат
Тип АвтоПорядок — АвтоЭлементПорядкаКомпоновкиДанных; число используемых элементов равно 1.
Отключите АвтоПорядок.Использование: число используемых должно стать 0.
Ожидаемый результат
Подготовлены общий порядок и включённое наследование порядка детальными записями.
На что обратить внимание
Метод ПолучитьКоличествоИспользуемых добавлен в 8.5.1; в старых конфигурациях на старой платформе он может отсутствовать.
Состав автоматического порядка зависит от полей и ресурсов элемента структуры.
Чтобы проверить фактическую сортировку строк, сформируйте отчёт; сам этот фрагмент меняет только настройки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Сформировать настоящий отчёт СКД из двух заданных товаров
Создаём схему, запрос, настройки, макет и процессор вывода. Внешних файлов и справочников не требуется; данные прямо в тексте запроса.
Где и как запускать
Модуль управляемой формы внешней обработки; тонкий или толстый клиент с серверными вызовами. Схема формируется программно, изменения конфигурации не нужны.
Подготовка
Создайте внешнюю обработку с управляемой формой в учебной базе.
Добавьте команду СформироватьУчебныйОтчёт и кнопку; назначьте одноимённый клиентский обработчик.
Вставьте клиентскую процедуру и серверную функцию отдельно на уровне модуля формы.
Не создавайте схему вручную в макете: в этом сценарии она полностью создаётся кодом.
&НаКлиенте
Процедура СформироватьУчебныйОтчёт(Команда)
Документ = СоздатьУчебныйОтчётНаСервере();
Документ.Показать();
КонецПроцедуры
&НаСервереБезКонтекста
Функция СоздатьУчебныйОтчётНаСервере()
Схема = Новый СхемаКомпоновкиДанных;
Источник = Схема.ИсточникиДанных.Добавить();
Источник.Имя = "Источник";
Источник.ТипИсточникаДанных = "Local";
Набор = Схема.НаборыДанных.Добавить(
Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
Набор.Имя = "Товары";
Набор.ИсточникДанных = "Источник";
Набор.АвтоЗаполнениеДоступныхПолей = Истина;
Набор.Запрос = "ВЫБРАТЬ
| ""Книга"" КАК Наименование, 3 КАК Количество
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ ""Ручка"", 1";
Настройки = Схема.НастройкиПоУмолчанию;
Для Каждого ИмяПоля Из СтрРазделить("Наименование,Количество", ",") Цикл
ПолеВыбора = Настройки.Выбор.Элементы.Добавить(
Тип("ВыбранноеПолеКомпоновкиДанных"));
ПолеВыбора.Поле = Новый ПолеКомпоновкиДанных(ИмяПоля);
ПолеВыбора.Использование = Истина;
КонецЦикла;
Порядок = Настройки.Порядок.Элементы.Добавить(
Тип("ЭлементПорядкаКомпоновкиДанных"));
Порядок.Поле = Новый ПолеКомпоновкиДанных("Количество");
Порядок.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв;
Порядок.Использование = Истина;
ДетальныеЗаписи = Настройки.Структура.Добавить(
Тип("ГруппировкаКомпоновкиДанных"));
ДетальныеЗаписи.Использование = Истина;
АвтоВыбор = ДетальныеЗаписи.Выбор.Элементы.Добавить(
Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
АвтоВыбор.Использование = Истина;
АвтоПорядок = ДетальныеЗаписи.Порядок.Элементы.Добавить(
Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
АвтоПорядок.Использование = Истина;
Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
Компоновщик = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = Компоновщик.Выполнить(Схема, Настройки, Расшифровка);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(Макет, , Расшифровка);
Документ = Новый ТабличныйДокумент;
Вывод = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
Вывод.УстановитьДокумент(Документ);
Вывод.Вывести(Процессор);
Возврат Документ;
КонецФункцииРазбор по шагам
Источник Local означает текущую информационную базу; запрос использует только константы и ничего не записывает.
Набор запроса задаёт две строки; автозаполнение доступных полей позволяет использовать Наименование и Количество.
В корневом выборе явно задаём две колонки, в порядке — Количество по убыванию.
Детальные записи получают выбор и порядок через соответствующие автоэлементы.
Компоновщик строит макет по схеме и настройкам, процессор исполняет макет, отдельный процессор вывода заполняет табличный документ.
Документ возвращается на клиент и открывается через Показать.
Как проверить результат
В документе должны быть колонки Наименование и Количество и строки Книга — 3, Ручка — 1.
Замените Убыв на Возр: порядок должен измениться на Ручка, затем Книга.
Измените количество книги на 5 в тексте запроса: отчёт должен показать 5 без изменения справочника номенклатуры.
Ожидаемый результат
Открыт табличный документ с двумя товарами, отсортированными по количеству по убыванию.
На что обратить внимание
Это учебный отчёт, не данные продаж и не остатки вашей базы.
ТипИсточникаДанных задаётся строкой Local, не Локальный.
КомпоновщикМакетаКомпоновкиДанных и процессор выполняются на сервере.
Вызов Показать выполняется на клиенте; не вызывайте его внутри серверной функции.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.