Как на форму документа добавить кнопку для запуска обработки

1. user1979322 11.06.25 12:14 Сейчас в теме
Имеется обработка запуск которой производится с формы документа. Данная обработка создает документ и формирует отчет. В модуле обьекта за это отвечает данный код
Функция СведенияОВнешнейОбработке() Экспорт
	
    
	ПараметрыРегистрации    = Новый Структура;
	МассивНазначений        = Новый Массив;
	МассивНазначений.Добавить("Документ.ЗаказНаЭмиссиюКодовМаркировкиСУЗ"); //Указываем документ к которому делаем внешнюю печ. форму
	ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов... 
	ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
	ПараметрыРегистрации.Вставить("Наименование", "ДозаказатьКМ_Отчет"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
	ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
	ПараметрыРегистрации.Вставить("Версия", "1.0"); 
	ПараметрыРегистрации.Вставить("Информация", "Печать реестра Товаров ИСМП. Расхождения СУЗ'"); 
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
	ДобавитьКоманду(ТаблицаКоманд, "ДозаказатьКМ_Отчет", "ДозаказатьКМ_Отчет", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);


	Возврат ПараметрыРегистрации;
	
КонецФункции 
Показать


Теперь мне нужно изменить обработку так что бы при нажатии на кнопку только формировался документ
Для этого Табличный документ не вывожу, сделал Возврат Неопределено, но тогда ругается 1С, на то что нет табличного документа.
Затем стал менять этот код, но тогда кнопка пропадает, по которой пользователь может запустить обработку
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. anton13m 4 11.06.25 12:26 Сейчас в теме
Нужно добавить новую команду с видом открытия формы
 ДобавитьКоманду(ТаблицаКоманд, "ДозаказатьКМ_Отчет_2", "ДозаказатьКМ_Отчет_2", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL");

Пример1
Пример2
3. user1979322 11.06.25 15:02 Сейчас в теме
(2)
ВызовКлиентскогоМетода

Спасибо, с места сдвинулся. В итоге добавил кнопку на форму при нажатии на которую появляется форма обработки, но как передать ссылку документа из которого эта обработка вызывается. При открытии формы в Сообщении видна корректная ссылка, записываю ее в реквизит формы. А в других процедурах этот реквизит пустой. Подскажите где ошибка

&НаКлиенте
Процедура Печать(ИдентификаторКоманды, МассивОбъектов) Экспорт
		
	Праметры1 = Новый Структура;
	Праметры1.Вставить("ИдентификаторКоманды", ИдентификаторКоманды);
	Праметры1.Вставить("МассивОбъектов", МассивОбъектов);  
	СсылкаНаДокумент=МассивОбъектов[0];
	Сообщить("МассивОбъектов= "+Строка(СсылкаНаДокумент));   
	Сообщить("СсылкаНаДокумент= "+Строка(СсылкаНаДокумент));  
	ОткрытьФорму("ВнешняяОбработка.ДокументыКМ.Форма.ФормаВыбора",Праметры1);
	
КонецПроцедуры

&НаКлиенте
Процедура Отчет(Команда)  
	СсылкаНаДокумент2=СсылкаНаДокумент;
	Сообщить("СсылкаНаДокумент= "+Строка(СсылкаНаДокумент2));

	ТабличныйДокумент = ПечатьНаСервере(СсылкаНаДокумент);
	КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("ДокументыКМ");
	ПечатнаяФорма = УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, "ДокументыКМ");
	ПечатнаяФорма.ТабличныйДокумент = ТабличныйДокумент;
	КлючУникальности = ЭтаФорма.КлючУникальности;
	ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати");
	ПараметрыОткрытия.Вставить("ПараметрКоманды", Новый Массив);
	ПараметрыОткрытия.Вставить("ПараметрыПечати", Новый Структура);
	ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
	ПараметрыОткрытия.ПараметрыПечати.Вставить("ЗаголовокФормы", "Реестр товаров ИСМП. Расхождения СУЗ");
	ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, КлючУникальности);
	
КонецПроцедуры
Показать
Прикрепленные файлы:
4. miniogn 47 11.06.25 17:24 Сейчас в теме
(3)
записываю ее в реквизит формы

Покажи, как это делаешь
6. user1979322 11.06.25 17:56 Сейчас в теме
(4) Вот как это делаю, выше в коде это показано. И когда форма открывается, ссылка корректная, потому что в сообщениях видно. Точку останова не поставишь
СсылкаНаДокумент=МассивОбъектов[0];     
	ТЗ_НоваяСтрока=ТЗ.Добавить();   
	Объект.СсылкаНаОбъект=МассивОбъектов[0]; 
	ТЗ_НоваяСтрока.ДокументСсылка=СсылкаНаДокумент;
	
	Сообщить("МассивОбъектов= "+Строка(СсылкаНаДокумент));   
	Сообщить("ТЗ= "+Строка(ТЗ[0].ДокументСсылка));      
	Сообщить("СсылкаНаОбъект= "+Строка(Объект.СсылкаНаОбъект));  


Но когда на форме кликаю на кнопку, то реквизит пустой, потому что пустые сообщения
9. miniogn 47 11.06.25 19:42 Сейчас в теме
(6) На сколько я понял, ты вызвал новую, абсолютно новую и пустую форму ВнешняяОбработка.ДокументыКМ.Форма.ФормаВыбора, на которой есть реквизит со скрина СсылкаНаДокумент. Так вот покажи код, как ты заполняешь в ней, этот реквизит СсылкаНаДокумент.
5. Spurk 42 11.06.25 17:49 Сейчас в теме
в массив объектов ссылку добавляй, раз его в параметрах передаёшь, а не наоборот. Потому что у тебя в параметрах массив этот есть, а ссылки нет.
СсылкаНаДокумент=МассивОбъектов[0];
Местами поменяй и попробуй.
7. user1979322 11.06.25 18:02 Сейчас в теме
(5) Да я все перепробывал
1) Реквизит обработки
2) Реквизит формы
3) ТЗ формы
Записывается корректно, потому что из этих реквизитов вызываю в сообщении
8. user2107191 11.06.25 18:30 Сейчас в теме
(7)
Да я все перепробывал
Пробый еще.
Оставьте свое сообщение

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