Заметки из Зазеркалья

21.04.2014

Получение данных динамического списка

Реализовано в версии 8.3.6.1977.

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

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

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

Динамический список сам по себе не может предоставить вам такую информацию. Задача динамического списка - обеспечить быстрый просмотр больших объёмов данных. Поэтому он считывает данные порциями, требуемыми для отображения на одном-двух экранах. И «ничего не знает», например, об общем количестве данных, которые ему предстоит считать.

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

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

Теперь эта задача решается просто. У таблицы динамического списка появились два новых метода:

  • ПолучитьИсполняемуюСхемуКомпоновкиДанных();
  • ПолучитьИсполняемыеНастройкиКомпоновкиДанных().

Таким образом, вы получаете и саму схему компоновки данных, и, главное, все её настройки, благодаря которым пользователь видит список именно таким. Вам остаётся только лишь программно скомпоновать макет и вывести его в коллекцию значений (для программной обработки) или в табличный документ (для отображения):

В результате вы получите структуру (или отчет), содержащую колонки и строки, выводимые в таблицу динамического списка.

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

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

Теги: списки  8.3.6