Ранее была написана внешняя обработка, позволяющая просматривать количество документов в базе, введенных за текущий день по дате документа. Для чего она была создана не суть важно. Форма обработки достаточно простая, как и реализация:
Программный код обработки Вы можете посмотреть, скачав ее по ссылке в конце статьи. Мы же решим другую задачу. Нам нужно эту обработку запускать из меню "Сервис":
По нажатию на кнопку обработка запускается с уже введенной текущей датой в поле "Дата проверки".
Сначала добавим кнопку "Количество документов за сутки" в интерфейс "Полный" и создадим для нее процедуру-обработчик в общем модуле.
Программный код процедуры-обработчика представлен на следующем листинге:
Процедура ПолныйДействие() Экспорт // Получаем ссылку на элемент справочника "Внешние обработки", //в котором находися искомый файл обработки СсылкаНаОбработку = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Количество введенных документов", Истина); // Записываем двоичные данные файла обработки во временный файл ИмяФайла = ПолучитьИмяВременногоФайла(); ДвоичныеДанные = СсылкаНаОбработку.ХранилищеВнешнейОбработки.Получить(); ДвоичныеДанные.Записать(ИмяФайла); // Получаем форму внешней обработки Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла); // Открываем форму для пользователя Форма.Открыть(); КонецПроцедуры
В общих чертах последовательность действия такая:
Для чего это может понадобиться? Не легче ли добавлять обработки или очтеты непосредственно в конфигурацию?
Да, легче. Но что, если Вы часто дорабатываете обработку? Каждый раз при ее изменении обновлять информационную базу? Использовать динамическое обновление со всеми вытекающими рисками?
В таких случая как-раз и поможет вынос функционала во внешние обработки/отчеты, которые после модификации мы можем просто заменить в справочнике "Внешние обработки", а пользователям останется лишь перезапустить их. Никакого обновления не потребуется.
Использованная в статье обработка "Подсчет количества документов".