Дополнительные отчеты и обработки в БСП: различия между версиями
Danamond (обсуждение | вклад) (Новая страница: «[https://infostart.ru/public/558559/ Авторская статья] =====Сведения о внешней обработке===== Чтобы подключ...») |
Danamond (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 32: | Строка 32: | ||
! Значение поля "Вид" !! Расположение команды !! Расширение файла | ! Значение поля "Вид" !! Расположение команды !! Расширение файла | ||
|- | |- | ||
− | | ПечатнаяФорма | В меню "Печать" на форме объекта или списка | epf | + | | ПечатнаяФорма || В меню "Печать" на форме объекта или списка || epf |
|- | |- | ||
− | | ЗаполнениеОбъекта | В меню "Заполнить" на форме объекта или списка | epf | + | | ЗаполнениеОбъекта || В меню "Заполнить" на форме объекта или списка || epf |
|- | |- | ||
− | | СозданиеСвязанныхОбъектов | В меню "Создать на основании" - "Создание связанных объектов.." на форме объекта или списка | epf | + | | СозданиеСвязанныхОбъектов || В меню "Создать на основании" - "Создание связанных объектов.." на форме объекта или списка || epf |
|- | |- | ||
− | | Отчет | В меню "Отчеты" на форме объекта или списка | erf | + | | Отчет || В меню "Отчеты" на форме объекта или списка || erf |
|- | |- | ||
− | | | + | | ДополнительнаяОбработка || В списке соответствующих подсистем в меню "Сервис" - "Дополнительные обработки" || epf |
|- | |- | ||
− | | ДополнительныйОтчет | В списке соответствующих подсистем в меню "Сервис" - "Дополнительные отчеты" | erf | + | | ДополнительныйОтчет || В списке соответствующих подсистем в меню "Сервис" - "Дополнительные отчеты" || erf |
|} | |} | ||
Строка 101: | Строка 101: | ||
! Тип команды !! Значение поля "Вид" !! Вызываемая экспортная процедура | ! Тип команды !! Значение поля "Вид" !! Вызываемая экспортная процедура | ||
|- | |- | ||
− | | ВызовСерверногоМетода | ПечатнаяФорма | Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) | + | | ВызовСерверногоМетода || ПечатнаяФорма || Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) |
|- | |- | ||
− | | | ДополнительнаяОбработка<br>ДополнительныйОтчет<br>Отчет | ВыполнитьКоманду(ИдентификаторКоманды,ПараметрыВыполнения) | + | | || ДополнительнаяОбработка<br>ДополнительныйОтчет<br>Отчет || ВыполнитьКоманду(ИдентификаторКоманды,ПараметрыВыполнения) |
|- | |- | ||
− | | | СозданиеСвязанныхОбъектов | ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты, ПараметрыВыполнения) | + | | || СозданиеСвязанныхОбъектов || ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты, ПараметрыВыполнения) |
|- | |- | ||
− | | | ЗаполнениеОбъекта | ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) | + | | || ЗаполнениеОбъекта || ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) |
|- | |- | ||
− | | ВызовКлиентскогоМетода | ПечатнаяФорма | &НаКлиенте<br>Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) | + | | ВызовКлиентскогоМетода || ПечатнаяФорма || &НаКлиенте<br>Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) |
|- | |- | ||
− | | | ДополнительнаяОбработка<br>ДополнительныйОтчет | &НаКлиенте<br>ВыполнитьКоманду(ИдентификаторКоманды) | + | | || ДополнительнаяОбработка<br>ДополнительныйОтчет || &НаКлиенте<br>ВыполнитьКоманду(ИдентификаторКоманды) |
|- | |- | ||
− | | | СозданиеСвязанныхОбъектов | &НаКлиенте<br>ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив, СозданныеОбъекты) | + | | || СозданиеСвязанныхОбъектов || &НаКлиенте<br>ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив, СозданныеОбъекты) |
|- | |- | ||
− | | | ЗаполнениеОбъекта Отчет | &НаКлиенте<br>ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) | + | | || ЗаполнениеОбъекта Отчет || &НаКлиенте<br>ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) |
|- | |- | ||
− | | | Для всех видов | в форму передается параметр ДополнительнаяОбработкаСсылка | + | | || Для всех видов || в форму передается параметр ДополнительнаяОбработкаСсылка |
|- | |- | ||
− | | ОткрытиеФормы | СозданиеСвязанныхОбъектов<br>ЗаполнениеОбъекта<br>Отчет | в форму передается дополнительный параметр ОбъектыНазначения | + | | ОткрытиеФормы || СозданиеСвязанныхОбъектов<br>ЗаполнениеОбъекта<br>Отчет || в форму передается дополнительный параметр ОбъектыНазначения |
|- | |- | ||
− | | | Для всех видов | в форму передаются параметры:<br>ИдентификаторКоманды,<br>ДополнительнаяОбработкаСсылка,<br>ИмяФормы | + | | || Для всех видов || в форму передаются параметры:<br>ИдентификаторКоманды,<br>ДополнительнаяОбработкаСсылка,<br>ИмяФормы |
|- | |- | ||
− | | | Отчет | Отчет с макетом СКД может не иметь форму, тогда будет использована общая форма для отчетов по умолчанию | + | | || Отчет || Отчет с макетом СКД может не иметь форму, тогда будет использована общая форма для отчетов по умолчанию |
− | |||
|- | |- | ||
− | | | + | | ЗаполнениеФормы || ЗаполнениеОбъекта || ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) |
|- | |- | ||
− | | ЗагрузкаДанныхИзФайла | ДополнительнаяОбработка | см. описание в комментарии к функции ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыЗагрузкаДанныхИзФайла() | + | | СценарийВБезопасномРежиме || Для всех видов || см. описание в комментарии к функции ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыСценарийВБезопасномРежиме() |
+ | |- | ||
+ | | ЗагрузкаДанныхИзФайла || ДополнительнаяОбработка || см. описание в комментарии к функции ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыЗагрузкаДанныхИзФайла() | ||
|} | |} | ||
Строка 143: | Строка 144: | ||
Также будет полезно развернуть демо конфигурацию по БСП. В ней есть примеры внешних обработок и отчетов в справочнике внешних обработок. | Также будет полезно развернуть демо конфигурацию по БСП. В ней есть примеры внешних обработок и отчетов в справочнике внешних обработок. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Текущая версия на 10:54, 31 декабря 2019
Содержание
Сведения о внешней обработке
Чтобы подключить внешний отчет или обработку в справочник Дополнительные отчеты и обработки необходимо описать экспортную функцию СведенияОВнешнейОбработке() в модуле. Вот шаблон такой функции:
Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(); // заполняем структуру ПараметрыРегистрации Возврат ПараметрыРегистрации; КонецФункции
Описание полей возвращаемой структуры можно посмотреть в комментарии к функции ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(). Там можно получить актуальную информацию для вашей версии БСП. Опишу основные поля структуры сведений о внешней обработке. При этом буду по минимуму повторять информацию в упомянутом комментарии, а постараюсь дополнить ее.
Поле "Вид"
Минимальным условием для регистрации внешнего отчета или обработки является заполненность поля "Вид". То есть, если вы создадите внешнюю обработку и пропишете в ней следующий код, то этого будет достаточно, чтобы добавить ее в справочник Дополнительные отчеты и обработки
// Минимальное описание параметров регистрации Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(); ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта(); Возврат ПараметрыРегистрации; КонецФункции
Это поле определяет откуда будет вызываться команда, из какого пункта меню на форме объекта или списка. Возможные значения этого поля приведу в виде таблицы
Значение поля "Вид" | Расположение команды | Расширение файла |
---|---|---|
ПечатнаяФорма | В меню "Печать" на форме объекта или списка | epf |
ЗаполнениеОбъекта | В меню "Заполнить" на форме объекта или списка | epf |
СозданиеСвязанныхОбъектов | В меню "Создать на основании" - "Создание связанных объектов.." на форме объекта или списка | epf |
Отчет | В меню "Отчеты" на форме объекта или списка | erf |
ДополнительнаяОбработка | В списке соответствующих подсистем в меню "Сервис" - "Дополнительные обработки" | epf |
ДополнительныйОтчет | В списке соответствующих подсистем в меню "Сервис" - "Дополнительные отчеты" | erf |
Это поле может принимать одно из значений, возвращаемых функциями ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработки<Вид>(). Например, для вида "ПечатнаяФорма" есть функция ВидОбработкиПечатнаяФорма().
// рекомендуется заполнять поле "Вид" таким способом ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма(); // а не вот таким ПараметрыРегистрации.Вид = "ПечатнаяФорма";
Поле "Назначение"
Содержит массив объектов конфигурации в формате "<Тип>.<Вид>", для которых будет назначен внешний отчет/обработка.
// для конкретных видов ПараметрыРегистрации.Назначение.Добавить("Документ.Счет"); // для всех документов ПараметрыРегистрации.Назначение.Добавить("Документ.*");
Этот параметр игнорируется, если поле "Вид" имеет значение "ДополнительнаяОбработка" или "ДополнительныйОтчет".
Поле "Наименование"
Это значение подставляется в наименование элемента справочника Дополнительные отчеты и обработки при создании. Если не заполнено, то используется синоним внешней обработки/отчета. Используется только для администрирования, а при добавлении в пункт меню, например, Печать будет подставляться наименование команды из таблицы команд, а не значение этого поля.
Поле "Команды"
Таблица значений, которая загружается в одноименную табличную часть элемента справочника Дополнительные отчеты и обработки при регистрации внешней обработки. Эту табличную часть можно заполнить и вручную. Каждой строке соответствует один пункт в соответствующих меню, описанных в таблице выше. Чтобы команда внешней обработки появилась в нужном меню, обязательно нужно добавить хотя бы одну строку в эту таблицу.
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить(); НоваяКоманда.Представление = "Заказ с характеристиками (сервер)"; НоваяКоманда.Идентификатор = "ЗаказСХарактеристикамиСервер"; НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Таблица "Команды", колонка "Использование"
В колонке "Использование" указывается тип вызываемой команды. По сочетанию Вид-Тип команды система определяет какая предопределенная процедура будет вызвана из внешней обработки/отчета, и где она будет объявлена - на клиенте или на сервере. Наиболее часто используются процедуры Печать() и ВыполнитьКоманду(), а также открытие формы без обращения к методу. Это поле может принимать одно из значений, возвращаемых функциями ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКоманды<Тип>(), например, ТипКомандыВызовСерверногоМетода(). В каждой из этих функций есть подробный комментарий. Кроме того различается состав и количество параметров, передаваемых во внешнюю обработку/отчет. Кратко опишу возможные варианты использования в таблице
Тип команды | Значение поля "Вид" | Вызываемая экспортная процедура |
---|---|---|
ВызовСерверногоМетода | ПечатнаяФорма | Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) |
ДополнительнаяОбработка ДополнительныйОтчет Отчет |
ВыполнитьКоманду(ИдентификаторКоманды,ПараметрыВыполнения) | |
СозданиеСвязанныхОбъектов | ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты, ПараметрыВыполнения) | |
ЗаполнениеОбъекта | ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) | |
ВызовКлиентскогоМетода | ПечатнаяФорма | &НаКлиенте Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) |
ДополнительнаяОбработка ДополнительныйОтчет |
&НаКлиенте ВыполнитьКоманду(ИдентификаторКоманды) | |
СозданиеСвязанныхОбъектов | &НаКлиенте ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив, СозданныеОбъекты) | |
ЗаполнениеОбъекта Отчет | &НаКлиенте ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) | |
Для всех видов | в форму передается параметр ДополнительнаяОбработкаСсылка | |
ОткрытиеФормы | СозданиеСвязанныхОбъектов ЗаполнениеОбъекта Отчет |
в форму передается дополнительный параметр ОбъектыНазначения |
Для всех видов | в форму передаются параметры: ИдентификаторКоманды, ДополнительнаяОбработкаСсылка, ИмяФормы | |
Отчет | Отчет с макетом СКД может не иметь форму, тогда будет использована общая форма для отчетов по умолчанию | |
ЗаполнениеФормы | ЗаполнениеОбъекта | ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) |
СценарийВБезопасномРежиме | Для всех видов | см. описание в комментарии к функции ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыСценарийВБезопасномРежиме() |
ЗагрузкаДанныхИзФайла | ДополнительнаяОбработка | см. описание в комментарии к функции ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыЗагрузкаДанныхИзФайла() |
Для типа команды ВызовКлиентскогоМетода необходимо создать форму в обработке, назначить ее основной и объявить экспортную процедуру.
Полезные процедуры
Рекомендую обратить внимание на следующие процедуры и функции:
ДополнительныеОтчетыИОбработки.ЗарегистрироватьОбработку(ОбъектСправочника, ПараметрыРегистрации) ДополнительныеОтчетыИОбработки.ПолучитьОбъектВнешнейОбработки(Ссылка) ДополнительныеОтчетыИОбработки.ВыполнитьКомандуИзФормыВнешнегоОбъекта(ИдентификаторКоманды, ПараметрыКоманды, ЭтаФорма)
Также будет полезно развернуть демо конфигурацию по БСП. В ней есть примеры внешних обработок и отчетов в справочнике внешних обработок.