Сведения о внешней обработке: Дополнительный отчет
Универсальные функции для модуля дополнительных внешних отчетов (1С 8.3, управляемые формы).
Вариант № 1
Функция СведенияОВнешнейОбработке() Экспорт
ИмяОтчета = ЭтотОбъект.Метаданные().Имя;
Синоним = ЭтотОбъект.Метаданные().Синоним;
Синоним = ?(ЗначениеЗаполнено(Синоним), Синоним, ИмяОтчета);
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Вид", "ДополнительныйОтчет");
РегистрационныеДанные.Вставить("Наименование", Синоним);
РегистрационныеДанные.Вставить("Версия", "1.1");
РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
РегистрационныеДанные.Вставить("Информация", "Отчет " + Синоним);
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, Синоним, "СформироватьОтчет", "ОткрытиеФормы", Истина);
РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);
Возврат РегистрационныеДанные;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование = "ОткрытиеФормы", ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Вариант № 2
// Возвращает сведения о внешней обработке. // // Возвращаемое значение: // Структура - Подробнее см. ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(). // Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1"); ПараметрыЭтойОбработки = ПолучитьПараметрыЭтойОбработки(Ложь); ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка(); ПараметрыРегистрации.Информация = ПараметрыЭтойОбработки.Комментарий + ?(ЗначениеЗаполнено(ПараметрыЭтойОбработки.Комментарий), Символы.ПС, "") + "Дата создания: 01.01.2020." + Символы.ПС + "Дата последнего редактирования: 01.02.2020."; ПараметрыРегистрации.Версия = "1.0.0.1"; ПараметрыРегистрации.БезопасныйРежим = Истина; // отключаем безопасный режим только при необходимости НоваяКоманда = ПараметрыРегистрации.Команды.Добавить(); НоваяКоманда.Представление = ПараметрыЭтойОбработки.Синоним + " (настройки)"; НоваяКоманда.Идентификатор = ПараметрыЭтойОбработки.Имя + "_Настройка"; НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(); НоваяКоманда = ПараметрыРегистрации.Команды.Добавить(); НоваяКоманда.Представление = ПараметрыЭтойОбработки.Синоним + " (регламентное задание)"; НоваяКоманда.Идентификатор = ПараметрыЭтойОбработки.Имя + "_РегламентноеЗадание"; НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(); Возврат ПараметрыРегистрации; КонецФункции Функция ПолучитьПараметрыЭтойОбработки(ВызыватьИсключение = Истина) Экспорт ИмяОбработки = ЭтотОбъект.Метаданные().Имя; СинонимОбработки = ЭтотОбъект.Метаданные().Синоним; КомментарийОбработки = ЭтотОбъект.Метаданные().Комментарий; Ссылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоРеквизиту("ИмяОбъекта", ИмяОбработки); Если Ссылка.Пустая() Тогда Если ВызыватьИсключение Тогда ВызватьИсключение "Данная обработка не зарегистрирована в справочнике внешних обработок!"; КонецЕсли; КонецЕсли; ПараметрыЭтойОбработки = Новый Структура; ПараметрыЭтойОбработки.Вставить("Ссылка", Ссылка); ПараметрыЭтойОбработки.Вставить("Имя", ИмяОбработки); ПараметрыЭтойОбработки.Вставить("Синоним", ?(ЗначениеЗаполнено(СинонимОбработки), СинонимОбработки, ИмяОбработки)); ПараметрыЭтойОбработки.Вставить("Комментарий", КомментарийОбработки); Возврат ПараметрыЭтойОбработки; КонецФункции
Комментарии
Спасибо тебе добрый человек!
Спасибо тебе добрый человек!
Спасибо вам, второй пример
Спасибо вам, второй пример просто замечательный
Пользуйтесь на здоровье)
Пользуйтесь на здоровье)
Добавить комментарий