Внешние печатные формы БСП

1. frkbvfnjh 805 19.03.21 12:32 Сейчас в теме
Доброго времени суток. Где я помогу прочесть всю необходимую информацию о том как сделать внешнюю печатную форму под конфигурацию на БСП. Я понимаю, что оно есть где-то на ИТС, но найти там ничего не возможно, все разрозненно и не понятно. Если у кого то есть прямы ссылки, то просьба поделиться. Сейчас внешние печатные формы ооооочень сложные, у меня куча вопросов. Все же когда то первый раз делали печатную форму, так вот с чего начать, что почитать, как устроен механизм внешних печатных форм в БСП, какие рекомендации и стандарты разработки? Заранее спасибо!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lefthander 19.03.21 12:37 Сейчас в теме
(1)Вот от ИТС БСП последней версии
10. bmk74 240 19.03.21 13:06 Сейчас в теме
(1)Ну что бы очень быстро
Шаблон для модуля печатной формы
#Область РегистрацияОбъекта
Функция СведенияОВнешнейОбработке() Экспорт
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
	
//       * Вид - Строка - Вид внешнего объекта.
//           Для определения вида рекомендуется использовать функции
//           ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработки<ИмяВида>().
//           Также Вид можно указать явно:
//           ** "ПечатнаяФорма"
//           ** "ЗаполнениеОбъекта"
//           ** "СозданиеСвязанныхОбъектов"
//           ** "Отчет"
//           ** "ДополнительнаяОбработка"
//           ** "ДополнительныйОтчет".
	//ПараметрыРегистрации.Вставить("Вид","ПечатнаяФорма");
	
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
	
//       * Назначение - Массив - Необязательный.
//           Объекты конфигурации, для которых предназначен этот объект.
//           ** Строка - Полное имя объекта метаданных.
//       
//       * Наименование - Строка - Необязательный. Представление для администратора (наименование элемента справочника).
//           Если не заполнено, то берется представление объекта метаданных внешнего объекта.
//       
//       * БезопасныйРежим - Булево - Необязательный. Признак подключения внешней обработки в безопасном режиме.
//           Значение по умолчанию Истина (обработка будет выполняться безопасно).
//           В безопасном режиме:
//             Игнорируется привилегированный режим.
//             Запрещены внешние по отношению к платформе 1С:Предприятия действия:
//               COM;
//               Загрузка внешних компонентов;
//               Запуск внешних приложений и команд операционной системы;
//               Доступ к файловой системе, кроме временных файлов;
//               Доступ к Интернету.
//       
//       * Разрешения - Массив - Необязательный.
//           Дополнительные разрешения, необходимые внешней обработке при работе в безопасном режиме.
//           ** ОбъектXDTO {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}PermissionBase - Разрешение.
//               Для формирования описания разрешения рекомендуется использовать функции
//               РаботаВБезопасномРежиме.Разрешение<ВидРазрешения>(<ПараметрыРазрешения>).
//       
//       * Информация - Строка - Необязательный. Краткая информация по внешнему объекту.
//           В этом параметре для администратора рекомендуется указать описание возможностей внешнего объекта.
//           Если не заполнено, то берется комментарий объекта метаданных внешнего объекта.
//       
//       * ВерсияБСП - Строка - Необязательный. Версия библиотеки, на которую рассчитывают механизмы внешнего объекта.
//           Подробнее - см. СтандартныеПодсистемыСервер.ВерсияБиблиотеки().
//       
//       * ОпределитьНастройкиФормы - Булево - Необязательный.
//           Флажок тесной интеграции дополнительного отчета с общей формой отчета.
//           Позволяет переопределять некоторые настройки формы и подписываться на ее события.
//           Если Истина, тогда в модуле объекта отчета следует определить процедуру по шаблону:
//           
//           // Настройки общей формы отчета подсистемы "Варианты отчетов".
//           //
//           // Параметры:
//           //   Форма - УправляемаяФорма, Неопределено - Форма отчета или форма настроек отчета.
//           //       Неопределено когда вызов без контекста.
//           //   КлючВарианта - Строка, Неопределено - Имя предопределенного
//           //       или уникальный идентификатор пользовательского варианта отчета.
//           //       Неопределено когда вызов без контекста.
//           //   Настройки - Структура - см. возвращаемое значение
//           //       ОтчетыКлиентСервер.ПолучитьНастройкиОтчетаПоУмолчанию().
//           //
//           Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
//           	// Код процедуры.
//           КонецПроцедуры
//           
//           Внимание. Этот флажок работает только для дополнительных отчетов, подключенных к общей форме ФормаОтчета.
//           Подробнее см. в документации к подсистемам "Дополнительные отчеты и обработки" и "Варианты отчетов".
//       
	
	
	
	
	
	//массив с строками документов справочников для которых подключается печатная форма
	ПараметрыРегистрации.Назначение = ПолучитьНазначениеОбработки();
	ПараметрыРегистрации.Наименование =  "Заявка на отгрузку Внешний";
	ПараметрыРегистрации.Версия = "1.0.0.0";
	ПараметрыРегистрации.Информация = "Внешняя печатная форма Заявка на отгрузку";
	ПараметрыРегистрации.БезопасныйРежим = Ложь;
	//ПараметрыРегистрации.Вставить("ПроверкаПроведенияПередПечатью",Истина);
	
	Команды = ПолучитьТаблицуКоманд();
	ЗаполнитьТаблицуКоманд(Команды,"Заявка на отгрузку","заявка_На_отгрузку_Внешняя","ВызовСерверногоМетода",Ложь,"ПечатьMXL");
	ПараметрыРегистрации.Вставить("Команды",Команды);
	Возврат ПараметрыРегистрации;
КонецФункции

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

Функция ПолучитьТаблицуКоманд()
	Команды = Новый ТаблицаЗначений;
	
	//       * Команды - ТаблицаЗначений - Необязательный для отчетов. Настройки команд, поставляемых внешним объектом.
//           
//           ** Идентификатор - Строка - Внутреннее имя команды.
//               Для внешних печатных форм (когда Вид = "ПечатнаяФорма"):
//                 Идентификатор может содержать имена одной или нескольких команд печати,
//                 разделенных запятыми. Подробнее см. описание колонки Идентификатор
//                 в функции СоздатьКоллекциюКомандПечати() общего модуля УправлениеПечатью.
//           
//           ** Представление - Строка - Пользовательское представление команды.
//           
//           ** Использование - Строка - Тип команды.
//               Для определения рекомендуется использовать функции
//               ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКоманды<ИмяТипа>().
//               Шаблоны процедур - обработчиков команд описаны в комментариях к этим функциям.
//               
//               Также Использование можно определить явно:
//               *** "ВызовКлиентскогоМетода"
//               *** "ВызовСерверногоМетода"
//               *** "ЗаполнениеФормы"
//               *** "ОткрытиеФормы"
//               *** "СценарийВБезопасномРежиме".
//           
//           ** ПоказыватьОповещение - Булево - Истина = при запуске команды будет показано стандартное оповещение.
//               Не работает для команд по открытию формы (когда Использование = "ОткрытиеФормы").
//           
//           ** Модификатор - Строка - Дополнительная классификация команды.
//               Для внешних печатных форм (когда Вид = "ПечатнаяФорма"):
//                 *** "ПечатьMXL" - для печатных форм на основе табличных макетов.
//               Для загрузки данных из файла (когда Вид = "ПечатнаяФорма" и Использование = "ЗагрузкаДанныхИзФайла"):
//                 Модификатор является обязательным для заполнения
//                 и должен содержать полное имя объекта метаданных (справочника),
//                 для которого выполняется загрузка данных.
//           
//           ** Скрыть - Булево - Необязательный. Признак того, что это служебная команда.
//               Если установить в значение Истина, то команда скрывается в карточке дополнительного объекта.
	
	
	
	Команды.Колонки.Добавить("Представление",Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("Идентификатор",Новый ОписаниеТипов("Строка"));
	
	//ОткрытиеФормы – Открывает форму обработки.
	//ВызовКлиентскогоМетода – будет вызвана клиентская процедура из модуля формы обработки.
	//ВызовСерверногоМетода  - будет вызвана серверная процедура из модуля обработки.
	//СценарийВБезопасномРежиме – тоже будет вызвана серверная процедура из модуля обработки в безопасном режиме.
	Команды.Колонки.Добавить("Использование",Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("ПоказыватьОповещение",Новый ОписаниеТипов("Булево"));
	Команды.Колонки.Добавить("Модификатор",Новый ОписаниеТипов("Строка"));
	Возврат Команды;
КонецФункции

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

#КонецОбласти


Функция Печать(МассивОбъектов,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода) Экспорт
ПараметрыПечати = Новый Структура();
	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Заявка_На_Отгрузку_ВНЕШНЯЯ") Тогда
		СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивОбъектов);
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
			КоллекцияПечатныхФорм,
			"Заявка_На_Отгрузку_Внешняя",
			НСтр("ru='Счет на оплату'"),
			СформироватьПечатнуюФормуЗаявкаНаОтгрузку(МассивОбъектов, ОбъектыПечати, ПараметрыПечати));
	КонецЕсли;
КонецФункции
Показать


СформироватьПечатнуюФормуЗаявкаНаОтгрузку тут заполняете ТабДок, как если бы делали обычную печатную форму
В функции печать там все стандартно как если бы вы делали обычную печатную форму
11. frkbvfnjh 805 20.03.21 12:57 Сейчас в теме
(10) Спасибо! То что нужно.
3. user633533_encantado 11 19.03.21 12:37 Сейчас в теме
Нет такого на ИТС. Возьми демку БСП и посмотри как там все сделано, нужно и самому учится разбираться в чужом коде, а не ждать что разжуют и в рот положат.

Еще на инфостарте можно статьи почитать об этом, их тут много, но многие устарели.
4. frkbvfnjh 805 19.03.21 12:43 Сейчас в теме
(3) Т.е. нет официальной документации от 1С о том как разрабатывать внешние печатные формы под БСП?
6. lefthander 19.03.21 12:45 Сейчас в теме
(4)https://its.1c.ru/db/bsp314doc - прямая ссылка на документацию БСП
7. frkbvfnjh 805 19.03.21 12:49 Сейчас в теме
(6) Спасибо. Я так понял нужно изучить весь БСП, что бы позволить себе написать внешнюю печатную форму, ну или дополнительную обработку для печать нового макета документа.
8. lefthander 19.03.21 12:53 Сейчас в теме
(7)Зачем? там есть раздел по Доп обработкам, вот его и смотрите.Библиотека - это набор процедур и функций упрощающий процесс разработки и написания конфигураций.
Глава 4 Программный интерфейс
9. SlavaKron 19.03.21 12:55 Сейчас в теме
(7) Всю можно не читать, там же по ссылке, что вам дали можно найти пример:
Пример внешней печатной формы
lefthander; +1 Ответить
5. lefthander 19.03.21 12:44 Сейчас в теме
(3)В БСП нет внешних печатных форм, есть Дополнительные Отчеты и обработки ;)
12. frkbvfnjh 805 20.03.21 13:15 Сейчас в теме
Оставьте свое сообщение

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