Выборка документов с индикатором

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

Пример.

Создаем внешнюю обработку, в ней создаем форму, открываем конструктор формы. На форму вставляем выбор периода, используя волшебную кнопку: 2010-04-29_101328 Удобство этой кнопки в том, что мастер сам пропишет необходимый код для выбора периода и вставит необходимые надписи возле полей с датами. Этой-же кнопкой можно потом добавить на форму и индикатор, получится что-то вроде такого:

2010-04-29_101606Теперь открываем модуль, в модуле уже есть процедура КнопкаВыполнитьНажатие(), вот в нее можно писать код, он запустится при нажатии на кнопку Выполнить, что понятно из названия процедуры. Допустим, в простейшем случае нужно перебрать проведенные накладные в указанном периоде и перепровести их. Для выполнения изменений понадобится объект данных, значит нужно получить на него ссылку, т.е. основной задачей запроса будет получение выборки ссылок на документы, отборы вставляем по необходимости. Запрос:

2010-04-29_101947

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

2010-04-29_102354Ну а теперь простой перебор объектов из выборки и выполнение нужных действий, только не забыть при каждом шаге изменять значение индикатора.

2010-04-29_102511

Вот как-то так.