Для подключения внешних обработок, отчетов, печатных форм для платформы 1С:Предприятие 8.2 разработан новый стандарт для работы в управляемом приложении (стандарт из подсистемы стандартных библиотек 8.2). Появились «фишки», которых не было до этого, а именно:
-
Расширен вид обработок: заполнение объекта, создание связанных объектов. Теперь в документах можно добавлять свои кнопки по заполнению всего документа, а также свои кнопки по вводу на основании.
-
Одна обработка может содержать сразу список несколько операций (команд), т.е. можно сделать одну обработку , где будет сразу несколько пунктов меню: печать и товарную накладной, печать товарного чека, печать гарантийного талона. (Примечание автора: раньше в старом стандарте, чтобы сделать такие вещи нужно было делать всё сразу (даже если не надо) и закрывать не нужно, либо рисовать свою форму, на который были необходимые кнопки для выбора необходимой операции)
-
Можно вводить на основании и заполнять объекты сразу на основании нескольких объектов, а не одного
-
Можно задавать расписание выполнение серверных команд (на сервере).
-
Можно задавать режим «Безопасный» или «Небезопасный», т.е. запускать обработку с учетом ограничением прав или игнорировать их (как под полными правами)
-
Можно задать режим использования: Не использовать, отладка, использовать. «Не использовать» - не в работе, «Отладка» - видно только администраторам, «Использовать в работе».
-
Можно включить использование в формах объекта и в форма списков
-
Можно привязать сразу ко всем объектам обработку или отчет.
-
Можно настроить быстрый доступ к определенным командам внешних обработок.
-
Есть возможность указать в каких разделах интерфейса должны появляться дополнительные обработки и отчеты.
Итак, что можно подключить к стандартным конфигурациям?
С точки зрения платформы можно подключать :
- внешние обработки (файлы с расширением “epf”) ;
- внешние отчеты (файлы с раширением «erf»).
С точки зрения прикладной области (конфигурации) можно подключать внешние обработки и отчеты с видом*:
- Дополнительная обработка
- Просто дополнительная обработка. Есть возможность настроить
- Дополнительный отчет
- Просто дополнительный отчет
- Заполнение объекта
- Свои кнопки по заполнению объектов (документа), ранее были только кнопки по заполнению табличной части.
- Печатная форма
- Дополнительная печатная форма (добаляется кнопка «Дополнительные печатные формы»)
- Отчет
- Отчет , прикрепляемый к объектам (к справочникам и документам).
- Создание связанных объектов
- Свой ввод на основании (в пункт меню «Ввод на основании» добавляется кнопка «Создание связанных объектов…»)
*на примере редакции «Управление небольшой фирмой ред. 1.2»
Разберем по порядку, как всё это работает. Для подключения внешних обработок и отчетов имеется стандарт, который описывает интерфейс взаимодействия со внешней обработкой и отчетом, причем есть общие требования для всех видов , а есть специфичные для каждого вида обработки или отчета.
Начнем с общих требований для всех видов обработок и отчетов. Для того чтобы создать подключаемую внешнюю обработку или отчет необходимо в модуле объекта объявить экспортную функцию СведенияОВнешнейОбработке(), которая должна заполнить структура, описывающее поведение. Пример этой функции:
Функция СведенияОВнешнейОбработке() Экспорт
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Наименование", "Пример использование внешних обработок 8.2.");
РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
РегистрационныеДанные.Вставить("Версия", "1.0");
//ДополнительнаяОбработка
//ДополнительныйОтчет
//ЗаполнениеОбъекта
//Отчет
//ПечатнаяФорма
//СозданиеСвязанныхОбъектов
РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");
РегистрационныеДанные.Вставить("Информация", "Обработка сделано по новому стандарту подключения внешних обработок 8.2. Пример обработки ""Hello Word"" ");
///////////// команды /////////////////////////
тзКоманд = Новый ТаблицаЗначений;
тзКоманд.Колонки.Добавить("Идентификатор");
тзКоманд.Колонки.Добавить("Представление");
тзКоманд.Колонки.Добавить("Модификатор");
тзКоманд.Колонки.Добавить("ПоказыватьОповещение");
тзКоманд.Колонки.Добавить("Использование");
строкаКоманды = тзКоманд.Добавить();
строкаКоманды.Идентификатор = "1";
строкаКоманды.Представление = "команда ""Hello Word"" (ОткрытиеФормы)";
строкаКоманды.ПоказыватьОповещение = Истина;
строкаКоманды.Использование = "ОткрытиеФормы";
строкаКоманды = тзКоманд.Добавить();
строкаКоманды.Идентификатор = "2";
строкаКоманды.Представление = "команда ""Hello Word"" (ВызовКлиентскогоМетода)";
строкаКоманды.ПоказыватьОповещение = Истина;
строкаКоманды.Использование = "ВызовКлиентскогоМетода";
строкаКоманды = тзКоманд.Добавить();
строкаКоманды.Идентификатор = "3";
строкаКоманды.Представление = "команда ""Hello Word"" (ВызовСерверногоМетода)";
строкаКоманды.ПоказыватьОповещение = Истина;
строкаКоманды.Использование = "ВызовСерверногоМетода";
РегистрационныеДанные.Вставить("Команды", тзКоманд);
////////////// назначение (в каких объектах используется) /////////////////////////
//для печ.форм, заполнения, ввода свазанных объектов
//МассивНазначений = Новый Массив;
//МассивНазначений.Добавить("Документ.*"); // все документы назначаются
//МассивНазначений.Добавить("Документ.АвансовыйОтчет");
//МассивНазначений.Добавить("Документ.ЗаказПокупателя");
//РегистрационныеДанные.Вставить("Назначение", МассивНазначений);
Возврат РегистрационныеДанные;
КонецФункции
Итак как видно функция заполняет структуру РегистрационныеДанные, которая имеет следующие элементы (параметры):
-
Наименование – краткое наименование обработки
-
Версия - информация о версии обработки
-
Безопасный режим – отвечает за то, должна ли обработка выполняться учитывая права пользователя. Если поставить значение «Ложь», то обработка или отчет будут выполняться без учета ограничений прав (как под полными правами). Это возможность появилась именно в 8.2, где при создании внешних обработок и отчетов вторым параметром указывается режим.
-
Вид – вид обработки или отчета. Возможные значения я перечислял вначале статьи, а возможные значения для установки в коде обозначены в комментарии
- Команды – таблица значений, в которой перечисляются используемые команды. Колонки таблицы значений:
- Идентификатор – любая строка (идентификатор команды)
- Представление – описание команды
- Модификатор - строка (используется для дополнительных печатных форм)
- ПоказыватьОповещение – окно оповещение будет появляться перед началом и после окончание выполнения (для команд клиентских и серверных без формы)
- Использование – режим запуска обработки:
- ОткрытиеФормы – откроется форма обработки
- ВызовКлиентскогоМетода – вызов клиентского экспортного метода форма
- ВызовСерверногоМетода – вызов экспортной метода из модуля обработки
В зависимости от вида обработки или отчета, а также от режима запуска команды «Использование» вызываются методы определенные в модуле формы, модуле объекта. Список передаваемых параметров тоже отличается. Примеры вызовов и использования всех видов обработок прилагаю.