Не работает отбор динамического списка

Содержание
  1. Не работает отбор на форме
  2. Динамический спискок: Программный отбор не доступен в режиме предприятия
  3. Отборы в 1С 8.3 (Управляемые формы)
  4. Отборы в динамическом списке 1С 8.3
  5. Отбор в настройка формы
  6. Установка отбора в динамическом списке 1С программно
  7. Отборы в таблице значений 1С
  8. 1С 8.3 : Динамический список
  9. Похожие FAQ
  10. Еще в этой же категории
  11. Особенности поведения списков динамического просмотра
  12. Просмотр списков в системе 1С:Предприятие
  13. Механизм динамического просмотра данных
  14. Дополнительное упорядочивание
  15. Справочники, Документы, Планы видов характеристик, Планы счетов, Планы видов расчета, Планы обмена, Бизнес-процессы, Задачи
  16. Регистр сведений (периодический)
  17. Регистр сведений (непериодический)
  18. Регистр накопления, Регистр бухгалтерии, Регистр расчета
  19. Ограничения упорядочивания
  20. Оптимальные настройки упорядочивания
  21. Справочник без иерархии, План видов характеристик без иерархии, План счетов, План видов расчета, План обмена
  22. Справочник с иерархией групп и элементов (признак «Группы сверху» установлен), План видов характеристик с иерархией.
  23. Документ
  24. Журнал документов
  25. Регистр сведений
  26. Регистр накопления, Регистр бухгалтерии
  27. Регистр расчета
  28. Бизнес-процесс
  29. Задача
  30. Влияние условий отбора на эффективность работы списков

Не работает отбор на форме

Доброго времени. Конфигурация самописная. При выборе на форме организации, хочется видеть подразделения этой организации, но выходит просто пустой список. Что делаю не так?

ВЫБРАТЬ
СправочникПодразделенияОрганизаций.Ссылка,
СправочникПодразделенияОрганизаций.Владелец,
СправочникПодразделенияОрганизаций.Родитель,
СправочникПодразделенияОрганизаций.Код,
СправочникПодразделенияОрганизаций.Наименование
ИЗ
Справочник.ПодразделенияОрганизаций КАК СправочникПодразделенияОрганизаций
ГДЕ
СправочникПодразделенияОрганизаций.Владелец = &Владелец

Через консоль запросов видно то, что нужно?

(9) Давайте экспериментировать.
Уточню дальше.
1) Форма открылась. Реквизит Организация пустая, значит ДС показывает все подразделения. Если не пустая, то по всей видимости это обрабатывается при создании формы. Т.е. если организация не пустая, то установить отбор. (коллекция отборов содержит 1 элемент или 0) Все работает корректно
2) Далее меняется реквизит — Если до этого коллекция отборов была пустая, то добавляется 1 элемент отборов и все работает хорошо. Если коллекция уже была заполнена, то отборов становится 2 и уже не работает (взаимоисключают)

Можете пройти отладкой с момента создания формы до первого изменения реквизита Организация.
Нужно узнать количество отборов в коллекциях Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных().Отбор.Элементы.Количество()
Список.Отбор.Элементы.Количество()

У меня предположение, что добавляется много отборов, которые накладываются друг на друга.

Если не хотите расследовать, то измените ДС на произвольный запрос, выберете нужные поля и поставьте условие

«ВЫБРАТЬ
| Все нужные поля
|ИЗ
| Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
|ГДЕ
| ПодразделенияОрганизаций.Владелец = &Владелец»;

Источник

Динамический спискок: Программный отбор не доступен в режиме предприятия

На форме документа «Счет» создал Динамический Список который должен отображать все документы типа «Расход» созданные на основании данного «Счета». В документе «Расход» есть реквизит типа ДокументСсылка.Счет, в который записывается «Счет» — основание. В модуле формы добавил:

Отбор работает, все ок. Но, если в режиме предприятия открыть настройки этого списка (Все действия — Настроить список) то там не установлен никакой отбор, хотя отбор существует и работает. Почему так?

тоже не дает никакого результата.

(2) bmk74, Сделал как вы посоветовали. Результат тот же, т.е. пользователи не видят отбор

Или может я не смотрю туда где надо?? (Все действия — Настроить список. )

иесли у вас конфигурация УТ то проще сделать через

(4) klinval, (5) bmk74, Не получается.

Пробовал вот так:

Результат тот же что и в (3)

там в зависимости от режима совместимости используется либо компановщик либо отбор

Есть один нюанс . Когда создаю документ «Расход» в новом «Счете», после записи, проведения и закрытия «Расхода» его не видно в списке, пока не закрою и не открою «Счет» еще раз. В модуле формы «Счета» есть процедура:

Т.е. я записываю сначала «Счет», а потом создаю на его основании «Расход», записываю и закрываю «Расход», но он не появляется в динамическом списке в открытом документе «Счет». Если закрыть «Счет» и открыть его заново — «Расход» уже появляется. Обновление динамического списка также ничего не дает. Подскажите, как исправить это?

Глобальный контекст (Global context)
ОповеститьОбИзменении (NotifyChanged)
Вариант синтаксиса: Изменен один объект

Тип: СправочникСсылка. ; ДокументСсылка. ; ПеречислениеСсылка. ; ПланСчетовСсылка. ; ПланВидовРасчетаСсылка. ; ПланВидовРасчетаСсылка. ; БизнесПроцессСсылка. ; ЗадачаСсылка. ; РегистрСведенийКлючЗаписи. ; РегистрНакопленияКлючЗаписи. ; РегистрБухгалтерииКлючЗаписи. ; РегистрРасчетаКлючЗаписи. ; ПланОбменаСсылка. .
Ссылка измененного объекта или ключ измененной записи регистра, об изменении которой(го) необходимо уведомить динамические списки, чтобы они обновились.
Поведение при очистке кэша (такое же, как при интерактивном изменении):
кэш представлений ссылок — очищаются записи, соответствующие измененной ссылке;
кэш данных через точку — удаляются те записи, которые имеют в пути ссылки того же типа, что и измененная;
кэш данных быстрого выбора — данные хранятся по типам, очищаются данные, которые относятся к типу измененной ссылки;
кэш ограничений по типу — данные хранятся по типам, очищаются данные, которые относятся к типу измененной ссылки.
Описание варианта метода:

Уведомляет динамические списки на клиенте об изменении одного объекта базы данных или одной записи регистра.
Вариант синтаксиса: Изменено много объектов

Тип: Тип.
Тип изменившихся объектов, например «ДокументСсылка.РасходнаяНакладная».
Поведение при очистке кэша — очищается вся информация, которая связана с измененным типом.
Описание варианта метода:

Уведомляет динамические списки на клиенте об изменении множества объектов или множества записей регистра.

Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
Примечание:

Источник

Отборы в 1С 8.3 (Управляемые формы)

Часто возникают ситуации, когда в 1С 8.3 нужно произвести отбор в таблице определенных строк по определенным критериям. Рассмотрим, как это сделать в динамическом списке и в таблице значений.

Отборы в динамическом списке 1С 8.3

Тут мы имеем два пути: создать отбор на форме списка и установить отбор программно.

Отбор в настройка формы

В конфигураторе добавим динамический список на форму, назначим ему основную таблицу и зайдем в свойства списка. В свойствах есть раздел «Настройка списка», нажмем ссылку «Открыть». Появится такое вот окно:

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

Установка отбора в динамическом списке 1С программно

Дело в том, что Отбор является свойством динамического списка. Этим мы и воспользуемся. Сначала добавим в свойство отбора новый элемент:

Чтобы отбор заработал, нужно прописать параметры «ЛевоеЗначение», «ВидСравнения» и «ПравоеЗначение». Кроме того необходимо свойство «Использование» установить в «Истина».

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Таким образом, мы создаем простой отбор. Кроме простого, можно задать условия по нескольким полям. Для этого используем тип данных «ГруппаЭлементовОтбораКомпоновкиДанных»:

Отборы в таблице значений 1С

Тут у нас также имеется несколько вариантов.

  • Можно просто перебрать таблицу в цикле и выбрать нужные строки либо скрыть ненужные. Считаю этот способ самым неоптимальным, но для новичков пойдет.
  • Второй способ – использовать метод таблицы «НайтиСтроки». Иногда очень хороший способ, но есть серьезный недостаток. Это единственный тип для сравнения – «Равно».
  • Третий вариант отбора – мой любимый, так как лишен в итоге всех недостатков. В этом варианте я использую «ПостроительЗапроса». Вот пример:
Читайте также:  1с внешний отчет настроить

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

1С 8.3 : Динамический список

отбор в динамическом списке программно

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

Добавление нового элемента отбора осуществляется следующим образом:

Для того чтобы новый отбор начал работать необходимо установить у элемента отбора свойства ЛевоеЗначение, ВидСравнения и ПравоеЗначение, а также установить свойство Использование в Истина.

Кроме простых условий в отборе возможно создание условий по нескольким полям. При чём как по условию «И», так и по условиям «Или» и «Не». Для данной операции используется специальный тип данных ГруппаЭлементовОтбораКомпоновкиДанных.

Похожие FAQ

Еще в этой же категории

Как настроить отбор строк? 3
Часто возникает задача показать только нужные строки в табличной части документа или справочника (или другого объекта). Для этого можно использовать замечательное свойство: в обычном приложении параметр для ОтборСтрок — Отбор. в управляемом Как показать сообщение пользователю? методы: СообщениеПользователю и ПоказатьОповещениеПользователя 3
В 1С предполагается, что СообщениеПользователю выводятся для того, чтобы сообщить пользователю об ошибках. А для информирования о выполняемом действии рекомендуется использовать метод встроенного языка ПоказатьОповещениеПользователя() . Сооб Посмотреть все в категории Работа с Формой (Диалог) и её элементами

Источник

Особенности поведения списков динамического просмотра


Просмотр списков в системе 1С:Предприятие

Для просмотра списков объектов информационной базы, таких как элементы справочника, элементы планов видов характеристик, видов расчета, планов обмена, а также для просмотра списков записей регистров предназначены специальные объекты системы 1С:Предприятие. Это объекты с названиями вида СправочникСписок. , РегистрСведенийСписок. ИмяРегистраСведений > и т.д. Такие объекты могут выступать источниками данных для для табличных полей в формах (свойство «Данные» объекта ТабличноеПоле). Важной особенностью таких объектов является то, что они имеют возможность при просмотре информационной базы считывать данные «порциями», достаточными для отображения данных в табличном поле. Поэтому такие списки можно назвать списками динамического просмотра данных — каждая очередная порция данных отображает актуальное состояние списка объектов (записей регистра). Эта особенность дает возможность пользователю даже в случае больших списков данных работать относительно комфортно. При открытии формы со списком не возникает задержки, при переходе в конец списка нет необходимости считывания всех отображаемых в нем данных и т.д.

Механизм динамического просмотра данных

Описанное выше поведение (считывание данных порциями для отображения в табличном поле) неявно зависит от конечного пользователя. Дело в том, что для эффективной работы механизма динамического просмотра данных система использует индексы тех таблиц, содержимое которых отображается. В том случае, если ни один из индексов таблицы не соответствует заданному пользователем упорядочиванию, механизм динамического просмотра не будет задействован, и из информационной базы будут считываться сразу все данные, которые потенциально могут быть отображены в списке (разумеется, с учетом установленных пользователем условий отбора). Следовательно, в том случае, если при работе с большим списком пользователь установил неоптимальные настройки упорядочивания и не ограничил условия отбора в списке или установил «мягкие» условия отбора (под которые подпадает большое число записей таблицы), будут возникать «задержки» при работе пользователя:

  • при открытии списка;
  • при каждом редактировании состава отображаемых в списке объектов (записей регистра);
  • при выполнении команды «Обновить текущий список».

Следует заметить, что условия отбора (объект Отбор) также могут отрабатываться системой относительно быстро или медленно в зависимости от того, какие условия и на какие поля заданы. Неоптимальная установка условий отбора может привести к тому, что даже при использовании механизма динамического просмотра данных (т.е. при считывании данных из информационной базы относительно небольшими «порциями») будут возникать задержки при просмотре такого списка, связанные с выполнением условий отбора.

По умолчанию система использует такое упорядочивание, которое позволяет использовать механизм динамического просмотра данных. Упорядочивание по умолчанию для разных прикладных объектов системы приведено в таблице.

Прикладной объект Упорядочивание
Справочник с иерархией, свойство «группы сверху» установлено ЭтоГруппа + Код или ЭтоГруппа + Наименование в зависимости от основного представления объекта и наличия свойств Код и Наименование
Справочник без иерархии или свойство «группы сверху» не установлено Код или Наименование в зависимости от основного представления объекта и наличия свойств Код и Наименование
Документ (журнал документов) Дата
План видов характеристик Код или наименование в зависимости от основного представления объекта
План счетов Код или наименование в зависимости от основного представления объекта
План видов расчета Код или Наименование в зависимости от основного представления объекта и наличия свойств Код и Наименование
План обмена Код или наименование в зависимости от основного представления объекта
Регистр сведений периодический Период
Регистр сведений непериодический Список всех измерений, в той последовательности, в которой они сконфигурированы
Регистр накопления Период
Регистр бухгалтерии Период
Регистр расчета ПериодРегистрации
Бизнес-процесс Дата
Задача Дата

В приведенной таблице — видимое пользователю упорядочивание, которое можно увидеть, например, в диалоге «Отбор и сортировка». Это упорядочивание дополняется системой по правилам изложенным в следующем разделе.

При работе с упорядочиванием списков следует помнить, что важным является не только выбор тех или иных полей упорядочивания, но и их комбинация и последовательность. Например, для справочников оптимальным является как упорядочивание по коду, так и упорядочивание по наименованию, но упорядочивание и по коду и по наименованию одновременно не может быть эффективным и приведет к «отключению» механизма динамического просмотра данных.

Дополнительное упорядочивание

При работе со списками динамического просмотра следует учитывать то, что система неявным образом дополняет упорядочивание, установленное разработчиком прикладных решений или пользователем. Это делается для того, что бы избежать неоднозначности в упорядочивании объектов. Это касается также и упорядочивания по умолчанию, приведенного в таблице. Например, при упорядочивании справочника по полю Наименование система дополнит упорядочивание полем Ссылка, что позволит избежать неоднозначности при упорядочивании элементов справочника с одинаковыми наименованиями.

Ниже приведены правила по которым система дополняет упорядочивание, установленное пользователем или разработчиком прикладного решения.

Справочники, Документы, Планы видов характеристик, Планы счетов, Планы видов расчета, Планы обмена, Бизнес-процессы, Задачи

К списку упорядочивания, если это необходимо, прибавляется упорядочивание по полю Ссылка.

Регистр сведений (периодический)

К списку упорядочивания, независимо от того, является ли регистр подчиненным регистратору или нет, прибавляется упорядочивание по полю Период и всем измерениям в той последовательности, в которой они сконфигурированы, если эти поля не заданы в списке упорядочивания.

Регистр сведений (непериодический)

К списку упорядочивания, независимо от того, является ли регистр подчиненным регистратору или нет, прибавляется упорядочивание по всем измерениям в той последовательности, в которой они сконфигурированы, если эти поля не заданы в списке упорядочивания.

Регистр накопления, Регистр бухгалтерии, Регистр расчета

К списку упорядочивания прибавляется упорядочивание по ссылке на регистратор и номеру строки. Следует отметить, что система дополняет список упорядочивания именно упорядочиванием по ссылке на регистратор. Это не то же самое, что упорядочивание по полю Регистратор, которое может быть выбрано пользователем в окне «Отбор и сортировка». При выборе поля Регистратор пользователем (или при установке такого порядка разработчиком прикладного решения) результат будет совсем другой — будет выполнено упорядочивание по регистраторам в порядке их даты и, кроме того, такое упорядочивание не может быть эффективным (механизм динамического просмотра списков не будет задействован). Любое упорядочивание по полям не базовых типов приводит к неэффективности упорядочивания, что описано ниже.

Ограничения упорядочивания

Для любых прикладных объектов невозможно упорядочивание по следующим полям:

  • полям типа «Стока неограниченной дины»;
  • полям типа «Хранилище значения»;
  • полям составного типа (для которых задано более одного типа);
  • полям, для которых задан «набор типов».

«Набор типов» в приведенном выше списке — это:

  • типы, задающие ссылку на любой справочник, любой документ и т.д.;
  • тип ЛюбаяСсылка;
  • типы Характеристика. Имя плана видов характеристик > .

При этом можно наблюдать следующее поведение. Если при конфигурировании в таблице задано поле с типом ПеречислениеСсылка (т.е. ссылка на любое перечисление), то упорядочивание по такому полю невозможно, пока в конфигурации нет ни одного перечисления. Если в конфигурации создать одно перечисление, то упорядочивание по такому полю будет доступно, так как, не смотря на то, что для поля задан «набор типов», он в текущем состоянии конфигурации представляет собой ссылку на конкретное (единственное) перечисление. Если в конфигурации создать еще одно перечисление, то упорядочивание по такому полю будет недоступно, так как «набор типов» в таком состоянии конфигурации представляет собой составной тип данных.

Если в качестве типа задан Характеристика. Имя плана видов характеристик > , то упорядочивание по такому полю невозможно в не зависимости от состава типов, назначенного соответствующему плану видов характеристик.

Для ограничения интерактивного управления упорядочиванием, которое может выполнять конечный пользователь в диалоге «Отбор и сортировка», служит объект НастройкаПорядка (см. свойство НастройкаПорядка объекта ТабличноеПоле).

Оптимальные настройки упорядочивания

Общим положением для всех списков является то, что если в списке полей упорядочивания присутствует поле, которое не является полем базового типа, то применение механизма динамического просмотра данных невозможно. Это связано с тем, что при упорядочивании, например, регистра сведений по полю типа СправочникСсылка.Склады, упорядочивание будет выполнятся по полю Наименование или Код (т.е. полю основного представления), которое находится в таблице справочника складов, а не в таблице регистра сведений.

Еще одной общей для всех прикладных объектов особенностью является то, что для всех полей упорядочивания должно быть задано одинаковое направление сортировки — возрастание или убывание. Если хоть для одного из полей упорядочивания это значение не совпадает с остальными, применение механизма динамического просмотра данных невозможно.

Ниже для всех прикладных объектов описаны оптимальные настройки упорядочивания.

Справочник без иерархии, План видов характеристик без иерархии, План счетов, План видов расчета, План обмена

  • упорядочивание по полю Код;
  • упорядочивание по полю Наименование.

Если у объекта есть реквизит «Реквизит1» для которого свойство Индексирование установлено в значение «Индексировать», то оптимальными также являются:

  • упорядочивание по полю Реквизит1.

Важно, что в данном случае упорядочивание по полям Реквизит1 + Код или Реквизит1 + Наименование не является эффективным.

Если у объекта есть реквизит «Реквизит1» для которого свойство Индексирование установлено в значение «Индексировать с доп. упорядочиванием», то оптимальными также являются:

  • упорядочивание по полям Реквизит1 + Код или Реквизит1 + Наименование
    в зависимости от основного представления объекта

Важно, что в данном случае упорядочивание только по полю Реквизит1 не является эффективным.

Справочник с иерархией групп и элементов (признак «Группы сверху» установлен), План видов характеристик с иерархией.

При отображении справочников и планов видов характеристик в режиме «Иерархический просмотр» оптимальными являются:

  • упорядочивание по полям ЭтоГруппа + Код;
  • упорядочивание по полям ЭтоГруппа + Наименование.

Если у объекта есть реквизит «Реквизит1» базового типа для которого свойство Индексирование установлено в значение «Индексировать», то оптимальными также являются:

  • упорядочивание по полям ЭтоГруппа + Реквизит1.

Если у объекта есть реквизит «Реквизит1» для которого свойство Индексирование установлено в значение «Индексировать с доп. упорядочиванием», то оптимальными также являются:

  • упорядочивание по полям ЭтоГруппа + Реквизит1 + Код или ЭтоГруппа + Реквизит1 + Наименование
    в зависимости от основного представления объекта

При неиерархическом отображении справочников и планов видов характеристик список оптимальными являются случаи описанные для неиерархических прикладных объектов.

Важно, что для объектов с иерархией групп и элементов упорядочивание только по полю ЭтоГруппа в любом случае не является эффективным.

Документ

  • упорядочивание по полю Дата;
  • упорядочивание по полю Номер.

Если у документа есть реквизит «Реквизит1» для которого свойство Индексирование установлено в значение «Индексировать», то оптимальными также являются:

  • упорядочивание по полю Реквизит1.

Если у документа есть реквизит «Реквизит1» для которого свойство Индексирование установлено в значение «Индексировать с доп. упорядочиванием», то оптимальными также являются:

  • упорядочивание по полям Реквизит1 + Дата

Важно, что в этом случае упорядочивание только по полю Реквизит1 не является эффективным.

Журнал документов

  • упорядочивание по полю Дата.

Если у журнала документов есть графа «Графа1» для которой свойство Индексирование установлено в значение «Индексировать», то оптимальными также является упорядочивание по графе Графа1.

Если у журнала документов есть графа «Графа1» для которой свойство Индексирование установлено в значение «Индексировать с доп. упорядочиванием», то оптимальными также является упорядочивание по полям Графа1 + Дата. Важно, что в этом случае упорядочивание только по полю Графа1 не является эффективным.

Регистр сведений

Для периодического регистра сведений, в независимости от того, подчинен он регистратору или нет, оптимальными являются следующие комбинации полей упорядочивания:

  • упорядочивание по полю Период;
  • упорядочивание по полям Период + Список измерений > ,
    где Список измерений > — это список нескольких первых или всех измерений регистра в том порядке, в котором они сконфигурированы;
  • упорядочивание по полям Список всех измерений > + Период.

Необходимо отметить, что в первых двух случаях из вышеперечисленных будет получено одно и то же упорядочивание Период + Список всех измерений > . Это произойдет потому, что система дополнит упорядочивание, установленное пользователем или разработчиком прикладного решения, по описанным выше правилам.

Пусть есть регистр сведений с 2-мя измерениями базового типа Измерение1 и Измерение2. Тогда оптимальными будут следующие комбинации полей упорядочивания:

  • Период;
  • Период + Измерение1;
  • Период + Измерение1 + Измерение2;
  • Измерение1 + Измерение2 + Период;
  • Измерение1 + Измерение2.

Неоптимальными будут, например:

  • Период + Измерение2;
  • Измерение2;
  • Период + Измерение2 + Измерение1.

Если у регистра есть измерение, ресурс или реквизит для которого задано индексирование, то для такого поля (допустим с именем «Поле1») оптимальными также являются:

  • упорядочивание по полям Поле1 + Период;
  • упорядочивание по полям Поле1 + Период + Список измерений > ,
    где Список измерений > — это список нескольких первых или всех измерений регистра в том порядке, в котором они сконфигурированы .

В обоих описанных случаях упорядочивание даст одинаковый результат, а упорядочивание по полям Поле1 + Список измерений > не будет эффективным.

Для непериодического регистра сведений все приведенные соображения также имеют место с той лишь поправкой, что у него нет поля Период и таким образом список оптимальных способов упорядочивания сводится к следующему:

  • упорядочивание по полям Список измерений > ,
    где Список измерений > — это список нескольких первых или всех измерений регистра в том порядке, в котором они сконфигурированы;
  • упорядочивание по полям Поле1 + Список измерений > ,
    где Список измерений > — это список нескольких первых или всех измерений регистра в том порядке, в котором они сконфигурированы .

Регистр накопления, Регистр бухгалтерии

Оптимальным являются только:

  • упорядочивание по полю Период

Если у регистра есть измерение или реквизит для которого задано индексирование, то для такого поля (допустим с именем «Поле1») оптимальными также является:

  • упорядочивание по полям Поле1 + Период.

Регистр расчета

Оптимальными для регистра расчета будут следующие комбинации:

  • упорядочивание по полю ПериодРегистрации;
  • упорядочивание по полю ПериодДействия;
  • упорядочивание по полям ПериодРегистрации + Список всех базовых измерений > ,
    где Список всех базовых измерений > — это список всех измерений, для которых выставлен признак «Базовое»;
  • упорядочивание по полям ПериодДействия + Список всех базовых измерений > ;
  • упорядочивание по полям Список всех базовых измерений > + ПериодДействия;
  • упорядочивание по полям Список всех базовых измерений > + ПериодРегистрации.

Рассмотрим на примере.

Пусть имеется регистра расчета с измерениями Измерение1, Измерение2 и Измерение3 и при этом Измерение1 и Измерение3 являются «базовыми». Тогда оптимальными будут, например, следующие комбинации полей упорядочивания:

  • ПериодРегистрации + Измерение1 +Измерение3;
  • Измерение1 +Измерение3 + ПериодДействия.

А приведенные ниже комбинации оптимальными не будут:

  • ПериодДействия + Измерение3
  • ПериодДействия + Измерение1
  • ПериодДействия + Измерение 1 + Измерение2
  • ПериодДействия + Измерение 1 + Измерение2 + Измерение3

Для регистра расчета также могут индексироваться измерения и реквизиты и для таких полей также появляются дополнительные оптимальные комбинации полей упорядочивания:

  • упорядочивание по полям ПериодРегистрации + Поле1;
  • упорядочивание по полям Поле1 + ПериодРегистрации.

Важно то, что для всех регистров упорядочивание по полю Регистратор не может быть оптимальным на том общем основании, которое приведено выше. Более того, зачастую поле Регистратор для регистров имеет составной тип, который неявно задается при настройке движений документов (см. свойство «Движения»), что исключает любое упорядочивание по полю Регистратор.

Бизнес-процесс

  • упорядочивание по полю Дата;
  • упорядочивание по полю Номер;
  • упорядочивание по полю Завершен.

Если у бизнес-процесса есть реквизит «Реквизит1» для которого свойство Индексирование установлено в значение «Индексировать», то оптимальными также являются:

  • упорядочивание по полю Реквизит1.

Если у бизнес-процесса есть реквизит «Реквизит1» для которого свойство Индексирование установлено в значение «Индексировать с доп. упорядочиванием», то оптимальными также являются:

  • упорядочивание по полям Реквизит1 + Дата

Важно, что в этом случае упорядочивание только по полю Реквизит1 не является эффективным.

Задача

  • упорядочивание по полю Дата;
  • упорядочивание по полю Номер;
  • упорядочивание по полю Наименование;
  • упорядочивание по полю Выполнена.

Если у задачи есть реквизит «Реквизит1» для которого свойство Индексирование установлено в значение «Индексировать», то оптимальными также являются:

  • упорядочивание по полю Реквизит1.

Если у задачи есть реквизит «Реквизит1» для которого свойство Индексирование установлено в значение «Индексировать с доп. упорядочиванием», то оптимальными также являются:

  • упорядочивание по полям Реквизит1 + Дата

Важно, что в этом случае упорядочивание только по полю Реквизит1 не является эффективным.

Влияние условий отбора на эффективность работы списков

В общем случае на эффективность работы списка влияет не только настройка упорядочивания (свойство «Порядок»), но и настройка условий отбора (свойство «Отбор»). В общем случае правильно сформировать список оптимальных условий упорядочивания можно на основании комбинации настроек Отбора и Порядка. Те условия которые устанавливают отбор на «равно», т.е. с использованием варианта сравнения Равно, должны учитываться при анализе оптимальности упорядочивания. Если на поле таблицы «Поле1» (это касается всех рассмотренных нами случаев) установлено условие отбора на «равно», то присутствие этого поля в списке упорядочивания можно игнорировать. Разумеется, что это касается только случая, когда для Поле1 установлено упорядочивание в том же направлении, что и для остальных полей.

Пусть у справочника есть Реквизит1 и Реквизит2, при этом Реквизит1 «индексирован с доп. упорядочиванием». Тогда упорядочивание по полям Реквизит1 + Реквизит2 + Наименование в общем случае не будет эффективным. Но если в отборе будет установлено условие на «равно» для Реквизит2, то такое упорядочивание будет эффективным.

Материал данного раздела позволяет сделать вывод, что широкие возможности по настройке упорядочивания списков и условий отбора данных налагают на конечного пользователя ответственность за получение конечного результата. Причем, неэффективное управление списками динамического просмотра может привести не только к снижению эффективности работы самого пользователя, но и к снижению эффективности работы системы в целом. Правильная настройка списков становится особенно важной в сочетании с возможностью их автоматического обновления. Если пользователь установит необходимость автоматического обновления списка для которого выбраны неоптимальные настройки порядка и/или отбора, это потребует значительных ресурсов системы и, как следствие, приведет к неэффективности ее работы в целом.

Источник

Оцените статью