Вызов внешней печатной формы из документа нестандартными средствами

1. PoZiTiFFF 915 14.07.14 00:57 Сейчас в теме
Здравствуйте. Следующая задача - необходимо без использования кнопки Печать вызвать внешнюю печатную форму, то есть добавить на форму документа кнопку при нажатии на которую будет сформирована внешняя печатная форма по текущему документу. Подскажите, пожалуйста, как это сделать. Заранее спасибо.
Платформа 1С 8.2, обычные формы.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PhoenixAOD 62 14.07.14 01:38 Сейчас в теме
(1) PoZiTiFFF, создаете процедуру печать1 забиваете в нее необходимые данные, потом делаете где необходимо в доке кнопку, в действие забиваете эту процедура и все.
3. PoZiTiFFF 915 14.07.14 06:50 Сейчас в теме
(2) PhoenixAOD, спасибо, конечно, огромное, но эти действия я и сам додумал бы, вопрос в другом - как обратиться к внешней печатной форме и заставить её сформировать табличный документ - вывести эту печатную форму для текущего документа, каким кодом?
4. PhoenixAOD 62 14.07.14 06:58 Сейчас в теме
(3) PoZiTiFFF, можно сделать все проще, втягиваете обработку во внешнки, указываете документ, обзываете кнопочку как надо, и все, через меню печать будет подрубаться внешка, если надо то можно заменить какую то печатную форму.
PoZiTiFFF; +1 Ответить
5. ZergKRSK 129 14.07.14 07:09 Сейчас в теме
(3) PoZiTiFFF, можно сделать через обработку заполнения табличных частей, платформа сама даже кнопку создаст. Правда кнопка эта Заполнить называется, но если показать пользователям как пользоваться то вопросов не будет. При этом документ остается типовым что есть гуд.
mrmasson; PoZiTiFFF; +2 Ответить
11. mrmasson 57 14.07.14 10:11 Сейчас в теме
(5) ZergKRSK, Абсолютно с Вами согласен!
И в эту обработку заполнения ТЧ просто "вшить" формирование печатной формы
6. PoZiTiFFF 915 14.07.14 07:19 Сейчас в теме
Спасибо всем, но что-то всё не то. Объясню более подробно - есть куча внешних печатных форм, подцепленных для документа, но данные печатные формы для простых смертных пользователей недоступны, при нажатии на кнопку Печать выдается сообщение "Извините, но Вам сюда нельзя, досвидос", но одну печатную форму всё-таки необходимо разрешить использовать для всех пользователей, решено добавить кнопку там же в командной панели "Основные действия формы" и принудительно вызвать сформированную внешнюю печатную форму для текущего документа... Или невозможно вызвать её в такой ситуации?
7. miniogn 23 14.07.14 08:23 Сейчас в теме
(6) PoZiTiFFF, В данном случае лучше разобраться и доработать механизм запрещения внешних печатных форм, что бы была возможность открывать нужны.
А по основному вопросу - в режиме отладки пройдись по функциям которые вызываются при вызове внешней печатной формы, многое станет ясно.
8. ZergKRSK 129 14.07.14 09:52 Сейчас в теме
(6) PoZiTiFFF, в УПП 1.3 реализован механизм разграничения доступа к внешним отчетам и обработкам, может еще в каких типовых конфах есть. Посмотрите как там сделано, очень удобная вещь.
9. ipoloskov 162 14.07.14 09:59 Сейчас в теме
	ВнешнийОтчет = Справочники.ВнешниеОбработки.НайтиПоНаименованию(Наименование);
	
	Если ВнешнийОтчет.Пустая() Тогда
		Предупреждение("Не найден внешний отчет """+Наименование+"""");
	Иначе
	
		ИмяФайла = ПолучитьИмяВременногоФайла();
		ДвоичныеДанные = ВнешнийОтчет.ХранилищеВнешнейОбработки.Получить();
		ДвоичныеДанные.Записать(ИмяФайла);
		
		Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла);
		
		Если Не Форма = Неопределено Тогда
			
			Форма.Открыть();
			
		КонецЕсли;
		
	КонецЕсли;
	
Показать
palmyra2016; +1 Ответить
10. unoDosTres 14.07.14 10:02 Сейчас в теме
зачем изобретать велосипед, если
но одну печатную форму всё-таки необходимо разрешить использовать для всех пользователей,

просто киньте это ВПФ в справочник внешние обработки и пусть она будет всем доступна через стандартную кнопку печать, ее же все равно всем использовать разрешено :)
12. IvanovIvan 25.05.23 10:53 Сейчас в теме
&НаКлиенте
Процедура Х_ПечатьЭтикетокНашаПосле(Команда)
	ОбъектыНазначения = Новый Массив;
	ОбъектыНазначения.Добавить(Объект);
	ВПФ = ПолучитьВПФпоИмени("ЭтикеткаНашаОрдер");
	ОбъектыПечати = Новый СписокЗначений;
	МассивПечатныхФорм = ПечатьФормыНаСервере(ОбъектыНазначения,ВПФ, ОбъектыПечати);
	ТабДок = МассивПечатныхФорм[0].ТабличныйДокумент;
	
КонецПроцедуры  

&НаСервереБезКонтекста 
Функция ПолучитьВПФпоИмени(ИмяПФ)
	Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяПФ);	
КонецФункции

&НаСервереБезКонтекста
Функция ПечатьФормыНаСервере(ОбъектыНазначения, Форма , ОбъектыПечати)
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(Форма.Команды[0].Идентификатор);
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
    ДвоичныеДанные = Форма.ХранилищеОбработки.Получить();
    АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
    ИмяОбр = ВнешниеОбработки.Подключить(АдресВоВременномХранилище,, Ложь);
    Об    = ВнешниеОбработки.Создать(ИмяОбр);
    Об.Печать(ОбъектыНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
    МассивПечатныхФорм = ОбщегоНазначения.ТаблицаЗначенийВМассив(КоллекцияПечатныхФорм);
    Возврат МассивПечатныхФорм;
КонецФункции
Показать
Оставьте свое сообщение

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