Давайте подробно рассмотрим каждый из способов:
1. Открытие формы
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Версия = "1.0.0.1";
ПараметрыРегистрации.Вставить("БезопасныйРежим", ложь);
ПараметрыРегистрации.Наименование = НСтр("ru = 'Дополнительная обработка Открытие формы'");
ПараметрыРегистрации.Информация = НСтр("ru = 'Дополнительная обработка Открытие формы'");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Дополнительная обработка Открытие формы'");
НоваяКоманда.Идентификатор = "Дополнительная обработка Открытие формы";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.ПоказыватьОповещение = Ложь;
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина);
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Возврат ПараметрыРегистрации;
КонецФункции
Как мы видим, строку ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
как раз это реализует.
2. Вызов серверного метода.
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Наименование = "ВызовСерверногоМетода";
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.Информация = "ВызовСерверногоМетода";
ПараметрыРегистрации.БезопасныйРежим = ложь;
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'ВыполнитьПроцедуруНаСервере'");
НоваяКоманда.Идентификатор = "ВыполнитьПроцедуруНаСервере";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Ложь;
Возврат ПараметрыРегистрации;
КонецФункции
Процедура ВыполнитьПроцедуруНаСервере(имяфайла,строка)
//Текст модуля выполняемый на сервере
КонецПроцедуры
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Этот параметр запускает команду на сервере без открытия формы.
3. Заполнение объекта.
К примеру, нам необходимо, чтобы в документе "Табель" появилась кнопка "Заполнить отсутствия"
Перем мОбъект Экспорт;
Перем мИмяТабличнойЧасти Экспорт;
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("");
ПараметрыРегистрации.Наименование = НСтр("ru = 'Дополнительная обработка заполнение объекта'");
ПараметрыРегистрации.Информация = НСтр("ru = 'Дополнительная обработка заполнение объекта'");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Истина;
ПараметрыРегистрации.Назначение.Добавить("Документ.ТабельУчетаРабочегоВремени");
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = НСтр("ru = 'Табель - Заполнить'");
Команда.Использование = "ОткрытиеФормы";
Команда.ПоказыватьОповещение = Истина;
Команда.Модификатор = "ЗаполнитьТабель";
Команда.Идентификатор = "ЗаполнитьТабель";
Возврат ПараметрыРегистрации;
КонецФункции
После чего в форме обработке добавим код
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ДанныеОВремениСФормы = ВладелецФормы.Объект.ДанныеОВремени;
КонецПроцедуры
Теперь мы можем получать данные из реквизитов документа табель через ВладелецФормы.Объект
Также бывают случаи, когда необходимо добавить определенные разрешения.
К примеру:
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаФайловойСистемы("/usr/bin/",Истина,Истина); //на Linux
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаФайловойСистемы("c:\",Истина,Истина); //на Windows
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима();
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина);
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Тут мы дали доступ на запись и чтение диска и привилегированного Режима для того, чтобы ее мог запускать пользователь, у которого нет прав на определенные объекты, которые присутствуют в обработке и чтении данных.