Универсальная форма отбора/сортировки СКД для любых передаваемых данных (ERP, УТ, БУХ, ЗУП)

14.07.26
Обновлено: 14.07.26

Вы можете использовать данное решение 45 дней бесплатно для этого установите 1С-Store в свою 1С и подключите демо. Если вы уже установили 1С-Store, откройте каталог сервиса в своей 1С, найдите данное решение с помощью поиска и нажмите кнопку «установить»

Дополнительная обработка, которая может использоваться как универсальная форма отбора/сортировки средствами СКД для любых передаваемых в неё данных посредством таблицы значений или текста/параметров запроса.

Доступно в конфигурациях

  • 1С:ERP Управление предприятием 2
  • Управление торговлей, редакция 11
  • Бухгалтерия предприятия КОРП, редакция 3.0
  • Зарплата и управление персоналом КОРП, редакция 3.1

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

 

Дополнительная обработка «Отбор и сортировка средствами СКД»

Обработка «Отбор и сортировка средствами СКД» предоставляет следующие возможности:

  • Для любых переданных данных (посредством запроса или таблицы значений) установка отбора/сортировки средствами системы компоновки данных;

  • Сохранения вариантов отбора/сортировки.

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

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

Для установки интересующих отборов и сортировок следует кликнуть в поле «Настройка СКД» по значку с изображением лупы.

В открывшемся форме «Настройка СКД» необходимо указать интересующие отборы/сортировки и нажать на кнопку «Применить».

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

Выбранную настройку СКД возможно сохранить в вариант настройки. Для этого используется кнопка с изображением дискеты напротив поля «Настройка СКД».

При нажатии на вышеописанную кнопку система предложит пользователю указать имя варианта настройки для сохранения и после щелчка по кнопке «ОК» выбранная настройка СКД под указанным именем для текущего пользователя будет успешно сохранена.

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

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

Для передачи результирующих данных, согласно установленным отборам/сортировкам, в основной форме обработки «Отбор и сортировка средствами СКД» следует нажать на кнопку «ОК».

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

Пару слов по передаваемым параметрам в основную форму обработки "Отбор и сортировка средствами СКД":

  • "Заголовок" - заголовок основной формы обработки "Отбор и сортировка средствами СКД" (необязательный);
  • "ГУИДВладельца" - уникальный идентификатор формы-источника, из которой вызывается основная форма обработки "Отбор и сортировка средствами СКД";
  • "ИмяВладельца" - ключ объекта формы-источника, под которым будут сохраняться настройки СКД (для сохранения используется объект "ХранилищеНастроекДанныхФорм");
  • "ЗагрузитьПоследнююНастройкуСКДПриОткрытии" - Истина - при открытии основной формы обработки "Отбор и сортировка средствами СКД" восстанавливается последняя выбранная настройка СКД для текущего пользователя и ключа объекта формы-источника, Ложь - в ином случае (необязательный, по умолчанию - Ложь).
  • "АдресИсходнойТЗ" - первый вариант передачи данных в виде таблицы значений. Данный параметр содержит адрес временного хранилища, куда помещена передаваемая таблица значений;
  • "ТекстЗапроса"/"ПараметрыЗапроса" - второй вариант передачи данных в виде запроса. Параметр "ТекстЗапроса" содержит текст запроса, формирующий данные для последующего отбора/сортировки, "ПараметрыЗапроса" - массив структур параметров запроса (ключ структуры "Имя" - название параметра запроса, "Значение" - соответствующее значение параметра запроса).  

 

ПарамФормы = новый Структура();
ПарамФормы.Вставить("Заголовок",  "Отбор и сортировка средствами СКД (LKS32)");     
ПарамФормы.Вставить("ГУИДВладельца", ЭтаФорма.УникальныйИдентификатор);
ПарамФормы.Вставить("ИмяВладельца",  "Обработка.ЛКС_ОтборИСортировкаСредствамиСКД.ИсходнаяТаблица");
ПарамФормы.Вставить("ЗагрузитьПоследнююНастройкуСКДПриОткрытии", Истина);

//1 ВАРИАНТ ПЕРЕДАЧИ - ТАБЛИЦА ЗНАЧЕНИЙ
ПарамФормы.Вставить("АдресИсходнойТЗ", ПолучитьАдресИсходнойТаблицы());

//2 ВАРИАНТ ПЕРЕДАЧИ - Текст запроса и параметры (если они нужны)
ПарамФормы.Вставить("ТекстЗапроса", ТекстЗапроса);  
Если ПараметрыЗапроса.Количество() > 0 Тогда
	ПарамФормы.Вставить("ПараметрыЗапроса", ПолучитьМассивПараметров());	
КонецЕсли;