Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 💫 💫 читайте на сайте

1C Добавить Флажок в Динамический Список • Отбор и сортировка

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

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Это значит, что в некоторых сценариях получение связанных данных в обработчике можно выполнять в привилегированном режиме, без проверки прав. Devel Platform: Динамический список. Как это работает? Обращайтесь в форму связи

Динамический список — это объект построения интерфейса, который предназначен для создания списка объектов или записей. Работа динамического списка основана на системе компоновке данных. Подробнее о нем вы можете прочитать здесь, мы же сегодня в статье разберем особенности его работы с базой данных.

В статье мы рассмотрим запросы к базе данных, которые формирует платформа при работе с динамическим списком. Определим, каким-образом его настройки влияют на работу платформы с SQL-базой.

Все примеры в статье сделаны на демонстрационной конфигурации, которую Вы можете скачать по ссылке в конце страницы.

Примечание: объект формы «Динамический список» появился в платформе 8.2. Его использование возможно только для управляемых форм.

1с 8.3 удалить отбор в динамическом списке. Настройки динамического списка
Тот факт, что в обработчике вы можете изменить значения полей списка, несет в себе особенность, которую нужно всегда учитывать.

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

Работа с базой данных

При открытии списка

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

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

В результате выполнения запроса мы увидим следующие данные в динамическом списке:

При раскрытии группы с элементами

Раскрывая группу элементов в динамическом списке, платформа 1С:Предприятие формирует следующий запрос:

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

Условие осталось прежним — выбираются записи только определенного родительского элемента, только в этом случае в параметр уже передается ссылка на открываемую группу элементов. На скриншоте вы видите ссылку на группу «Группа 1 — 1».

Промокоды на Займер на скидки

Займы для физических лиц под низкий процент

  • 💲Сумма: от 2 000 до 30 000 рублей
  • 🕑Срок: от 7 до 30 дней
  • 👍Первый заём для новых клиентов — 0%, повторный — скидка 500 руб

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

Пролистываем список элементов

Ранее уже было сказано, что при раскрытии группы справочника платформа формирует запрос на выборку первых 22-х элементов. Но что происходит, когда пользователь листает динамический список и выбранные элементы заканчиваются? В таком случае платформа формирует новый запрос и выбирает последующую порцию данных для просмотра:

Важным моментом в формировании данного запроса является условие выборки. В нем для тех полей, которые участвуют в сортировке результата запроса, накладываются дополнительные условия для получения последующих 22-х записей. В нашем случае это поля «_Foder», «_Description» и «_IDRRef».

Прежде чем формировать выборку последующих 22-х элементов, платформа получает данные для последнего выбранного элемента:

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

В открывшемся окне настройки динамического списка перейдем на закладку Условное оформление и нажмем кнопку Добавить в командной панели окна.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Следует использовать запрос без основной таблицы или задавать необходимое упорядочивание через настройки динамического списка. 1С событие обновления динамического списка Обращайтесь в форму связи

Запросы в динамических списках

Область применения: управляемое приложение, мобильное приложение.

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

Пример

В динамическом списке документов-распоряжений на отгрузку нужно вывести состояние отгрузки. Состояние зависит от остатков регистра накопления, и статусов двух документов другого типа.

НЕПРАВИЛЬНО

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

ПРАВИЛЬНО

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

2. Необходимо выбрать один из трех режимов работы динамического списка:

  • Динамическое считывание данных включено (рекомендуется). Используются запросы, выбирающие записи в количестве приблизительно соответствующем количеству видимых строк в таблице;
  • Динамическое считывание данных выключено, задана не виртуальная основная таблица или одна из следующих таблиц: СрезПервых, СрезПоследних, ЗадачиПоИсполнителю, КритерииОтбора, ДвижениеСубконто. Используются запросы, выбирающие по 1000 записей в буфер на сервере, по мере необходимости данные передаются на клиент. Менее эффективно, чем динамическое считывание;
  • Динамическое считывание данных выключено, основная таблица не задана. Запрос выполняется «как есть». В буфере накапливаются данные, начиная с 1000 записей. Чем ближе к концу списка, тем больше записей. Можно использовать только для заведомо маленьких выборок.

3. При разработке динамического списка следует учитывать что запрос, который фактически будет сформирован к СУБД, зависит от предопределенных настроек отборов, порядка и группировки СКД. В частности это означает, что необходимо рассмотреть индексирование полей:

  • По которым выполняется соединение в запросе;
  • На которые наложены условия в запросе;
  • Выведенных в качестве быстрых отборов;
  • По которым выполняется упорядочивание или предусмотрена группировка;
  • По которым ожидается, что пользователь будет часто упорядочивать (группировать).

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

4. Настоятельно не рекомендуется использовать конструкции, «утяжеляющие» запрос:

  • конструкции РАЗЛИЧНЫЕ и СГРУППИРОВАТЬ ПО;
  • конструкции ВЫБОР в предложении ГДЕ или в условиях соединения;
  • упорядочивание по полю, полученному при помощи конструкции ВЫБОР, в том числе и пользовательское.

1С: Динамическое поле. Дополнительная вычисляемая или текстовая колонка в списке.

  • При использовании в соединениях, отборах, упорядочивании и других конструкциях составного поля, необходимо чтобы состав типов данного поля определялся только ссылочными типами. Подробнее см.: Ограничения на использование реквизитов составного типа;
  • Если известно заранее, какого типа должно быть получено поле составного типа, то его необходимо выражать.

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

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
ИдентификаторПользовательскойНастройки Тип Строка Уникальный идентификатор этого отбора Используется для связи с пользовательскими настройками. Динамические списки: использование и установка параметров в 1С 8.2 и 8.3. Обращайтесь в форму связи

Способы получения и кеширования данных динамическим списком

● В качестве значения свойства Основная таблица указана одна из следующих таблиц: план обмена, справочник, список документов, журнал документов, план видов характеристик, план счетов, план видов расчета, бизнес-процесс, задача, таблица точек бизнес-процесса:

● В качестве значения свойства Основная таблица указана одна из следующих таблиц: основная таблица регистра сведений, регистра накопления, регистра бухгалтерии, регистра расчета, виртуальная таблица регистра бухгалтерии ДвиженияССубконто:

● Свойство Динамическое считывание:
● Установлено: используется способ 1 (описание способов приведено выше).
● Сброшено: используется способ 2 (описание способов приведено выше).

● В качестве свойства Основная таблица указана таблица критерия отбора или таблица задач по исполнителю (ЗадачиПоИсполнителю):
● Ключ, идентифицирующий строку таблицы: Ссылка.

● В качестве свойства Основная таблица указана виртуальная таблица регистра сведений СрезПервых или СрезПоследних:
● Ключ, идентифицирующий строку таблицы: КлючЗаписи.
● Свойство Динамическое считывание не применимо.
● Используется способ 2 (описание способов приведено выше).

● В качестве свойства Основная таблица указана одна из виртуальных таблицы регистров, кроме перечисленных выше:

● Свойство Основная таблица не указано, используется произвольный запрос:
● Ключ, идентифицирующий строку таблицы: Число.
● Свойство Динамическое считывание не применимо.
● Используется способ 3 (описание способов приведено выше).

Запросы в динамических списках: Система стандартов и методик разработки конфигураций для платформы 1С: Предприятие 8

  • Не поддерживаются объединения.
  • Не поддерживается использование секции УПОРЯДОЧИТЬ ПО. Следует использовать запрос без основной таблицы или задавать необходимое упорядочивание через настройки динамического списка.

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

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

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

Рис. 3. Управление включением в пользовательские настройки

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts