Обработка СКД

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

  • Каждый новый отбор по требованиям пользователей нужно было выводить на форму;
  • При каждом новом отборе необходимо было модернизировать запрос в коде:

И делал я так до тех пор, пока один хранитель тайн 1с не поведал мне мудрость, хранившую годами: “Ты че дебил, так давно уже никто не делает – используй СКД!”. И действительно – это намного удобнее и правильнее. И так поделюсь с вами этой мудростью.

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

Создаем новую обработку и добавляем реквизит “КомпоновщикНастроек”:

Компоновщик настроек
Компоновщик настроек

Создаем новую форму и добавляем на ней следующие реквизиты: “АдресСхемыКомпоновкиДанных” (тип “Строка”), “ТаблицаЗарплат” (тип “ТаблицаЗначений” с нужными нам колонками) + команду “Сформировать”. Формируем красивое расположение элементов на форме (не в моем случае):

Элементы формы обработки СКД
Элементы формы обработки СКД

Далее добавляем макет схемы компоновки данных в нашу обработку, где описываем какие данные и в каком виде мы будем получать (в нашем случае нужен просто список документов):

Набор данных СКД
Набор данных СКД

Параметры запроса “&НачалоПериода” и “&КонецПериода” преобразуем в один параметр “СтандартныйПериод” с типом “СтандартныйПериод” (удобнее работать на форме с одним параметром, чем с двумя):

Параметры СКД
Параметры СКД

Описываем настройки выводимых данных:

Настройки СКД

И добавляем отборы и параметры для нашего компоновщика настроек:

Параметры СКД
Параметры СКД
Отборы СКД
Отборы СКД
Дополнительные отборы СКД
Дополнительные отборы СКД

Открываем нашу обработку и… Ничего не видим. Правильно – настало время программировать.

И так, первое что мы сделаем, это при создании на сервере инициализируем компоновщик настроек и поместим нашу СКД во временное хранилище:

И о чудо, теперь при открытии нашей обработки появляются наши отборы для пользователей:

Форма с инициализированной СКД и компоновщиком настроек
Форма с инициализированной СКД и компоновщиком настроек

Теперь дело за малым: осталось при нажатии на кнопку “Сформировать” вывести данные в таблицу на форму. Проще простого:

Для вывода результатов СКД в таблицу значений используем параметр метода “Выполнить” “Тип(“ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений”)” и конструкцию ПроцессорВывода.УстановитьОбъект(РезТаблица);

Открываем обработку и формируем нашу таблицу с любыми параметрами и отборами, что бы к примеру отредактировать зарплату Чак Норисса:

Зарплата Чак Норисса
Зарплата Чак Норисса

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

Для примера если в запросе СКД есть параметры, то их можно легко устанавливать программно:

В общем тренируйтесь и развивайтесь! Готовое решение можете скачать по ссылке “СКД в обработке”. Удачи!

0
Интернет-магазин предлагает lirizm.ru недорого, со скидками.

1 комментарий

  1. Валентин

    Спасибо. Помогло.

    0

Оставить комментарий

Ваш адрес email не будет опубликован.