Добавить внешний отчет в кнопку печати справочника

1. user1145086 24.04.19 11:40 Сейчас в теме
Добрый день, какие параметры регистрации нужно создавать для того, чтобы внешний отчет был подключен к кнопке Печать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. user5300 1015 24.04.19 11:45 Сейчас в теме
(1) Вот готовый код, засунь в модуль внешнего отчета и подредактируй под себя, потом в размещениях укажи нужный справочник
Функция СведенияОВнешнейОбработке() Экспорт
	ОбъектыНазначенияФормы = Новый Массив;
	//ОбъектыНазначенияФормы.Добавить("Справочник.Сотрудники");      //размещает в Сотрудниках 
	ПараметрыРегистрации = ПолучитьПараметрыРегистрации(ОбъектыНазначенияФормы, "Распечатать");
	ПараметрыРегистрации.Версия = "1.1";
	ПараметрыРегистрации.Информация = "Распечатать";
	
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
	ДобавитьКоманду(ТаблицаКоманд,
	"Отправить документ по почте", // Представление команды в пользовательском интерфейсе
	"Отправка_по_почте", // Уникальный идентификатор команды
	"ОткрытиеФормы", //"ВызовСерверногоМетода", //Использование команды 
	Истина, // Показывать оповещение.
	"ПочтаДока" // Дополнительный модификатор команды.
	);
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
	Возврат ПараметрыРегистрации;
КонецФункции

Функция ПолучитьПараметрыРегистрации(ОбъектыНазначенияФормы = Неопределено, НаименованиеОбработки = "", Информация = "", Версия = "1.0.0")

Если ТипЗнч(ОбъектыНазначенияФормы) = Тип("Строка") Тогда
ОбъектНазначенияФормы = ОбъектыНазначенияФормы;
ОбъектыНазначенияФормы = Новый Массив;
ОбъектыНазначенияФормы.Добавить(ОбъектНазначенияФормы);
КонецЕсли;

ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);    ///ИСТИНА
ПараметрыРегистрации.Вставить("Назначение", ОбъектыНазначенияФормы);

Если Не ЗначениеЗаполнено(НаименованиеОбработки) Тогда
НаименованиеОбработки = ЭтотОбъект.Метаданные().Представление();
КонецЕсли;
ПараметрыРегистрации.Вставить("Наименование", НаименованиеОбработки);

Если Не ЗначениеЗаполнено(Информация) Тогда
Информация = ЭтотОбъект.Метаданные().Комментарий;
КонецЕсли;
ПараметрыРегистрации.Вставить("Информация", Информация);

ПараметрыРегистрации.Вставить("Версия", Версия);

Возврат ПараметрыРегистрации;

КонецФункции

Функция ПолучитьТаблицуКоманд()

Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;

КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
// Добавляем команду в таблицу команд по переданному описанию.
// Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры 
Показать
4. user1145086 24.04.19 11:57 Сейчас в теме
(3) пишет вот такое: "Вид обработки, указанный в сведениях о внешней обработке, не соответствует ее расширению."
5. ben19791010 24.04.19 12:01 Сейчас в теме
(4)
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
6. user1145086 24.04.19 12:17 Сейчас в теме
(5)Хорошо, а как где именно можно описать вызов СКД?
9. user5300 1015 24.04.19 12:34 Сейчас в теме
(6) только отчет потом можно будет найти на вкладке Еще - дополнительные отчеты, а не в командах "Печать".
В команду печати можно только обработку засунуть. А вообще вот статья https://infostart.ru/public/558559/ , многое разъяснит )
10. user1145086 24.04.19 13:04 Сейчас в теме
(9)Да, спасибо, как раз её читаю. То-есть отчет в команду "печать" никак не зауснуть?
7. user5300 1015 24.04.19 12:26 Сейчас в теме
(5) ааа, ну да, Это для внешней обработки, а у вас внешний отчет.
Замени
ПараметрыРегистрации.Вставить("Вид", "Отчет"); 

ben19791010; +1 Ответить
8. user5300 1015 24.04.19 12:27 Сейчас в теме
(4) Вот еще пример :
Функция СведенияОВнешнейОбработке() Экспорт

	ПараметрыРегистрации = Новый Структура;
	ПараметрыРегистрации.Вставить("Вид", "Отчет");
	ПараметрыРегистрации.Вставить("Назначение", Новый СписокЗначений);
	ПараметрыРегистрации.Вставить("Наименование", "Справка о среднем заработке ЗУП 3.1 по месяцам");
	ПараметрыРегистрации.Вставить("Версия", "1.1");
	ПараметрыРегистрации.Вставить("Информация", "");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
	
	Команды = ПолучитьТаблицуКоманд();
	ДобавитьКоманду(Команды,"Справка о среднем заработке ЗУП 3.1 по месяцам","СправкаОДоходахПроизвольнаяФорма","ОткрытиеФормы",Ложь,"");
	
	ПараметрыРегистрации.Вставить("Команды",Команды);
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

Функция ПолучитьТаблицуКоманд()
  Команды = Новый ТаблицаЗначений;
  Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
  Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
  Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление;
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Показать
2. signum2009 1030 24.04.19 11:41 Сейчас в теме
Я могу ошибаться, но скорее всего не какие. Если хотите так сделать, то используйте расширения
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот