Получение Наименования из заполненной формы для печати документа (вызывается из этой же формы через Печать)

1. xecoder 11.05.22 10:37 Сейчас в теме
Добрый день. Создаю печатную форму через внешнюю обработку. Создал макет, написал запрос к бд (всё работает, проверил через консоль).

В справочнике Контрагенты, при изменении открывается форма - Справочник.Контрагенты.Форма.ФормаЭлемента
Она заполнена данными, мне нужно при нажатии "Печать - Договор" получить данные Поля "Наименование для документов".
Которое я потом по плану буду упаковывать в структуру и использовать для поиска
Результат = РезультатЗапроса.НайтиСледующий(СтруктураДляПоискаЧерезНаименование)
И дальше заполнять данными из результата макет документа.

Как мне получить наименование из формы из которой стартуем печать документа?
По теме из базы знаний
Найденные решения
10. xecoder 11.05.22 11:59 Сейчас в теме
Сделал через ссылку. Заработало

Получилось

НужноеНаименование = СсылкаНаОбъект.Владелец.НаименованиеДляДокумента;
2. petleon 6 11.05.22 10:40 Сейчас в теме
Форма.Владелец.НаименованиеДляДокументов
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. petleon 6 11.05.22 10:40 Сейчас в теме
Форма.Владелец.НаименованиеДляДокументов
3. xecoder 11.05.22 10:41 Сейчас в теме
5. xecoder 11.05.22 10:59 Сейчас в теме
(2)Пишет ошибку. Переменная не определена (Форма).
6. petleon 6 11.05.22 11:05 Сейчас в теме
(5) Возможно ЭтаФорма вместо Форма, т.е. текущая форма обработки.
7. xecoder 11.05.22 11:10 Сейчас в теме
(6)Тоже самое увы. Пробовал через ЭтаФорма и Объект.Форма и Объект.ЭтаФорма.
Ни в одном из этих вариантов не завелось.
8. petleon 6 11.05.22 11:23 Сейчас в теме
(7) Печатная форма видимо с типом команды ВызовСерверногоМетода, попробуйте переделать на ВызовКлиентскогоМетода и все должно работать.
9. xecoder 11.05.22 11:35 Сейчас в теме
(8)
Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = Новый Структура;
	МассивНазначений = Новый Массив;
	МассивНазначений.Добавить("Справочник.Контрагенты"); //Указываем документ к которому делаем внешнюю печ. форму
	ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов... 
	ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
	ПараметрыРегистрации.Вставить("Наименование", "Договор поставки Ефремов"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
	ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
	ПараметрыРегистрации.Вставить("Версия", "1.0"); 
	ПараметрыРегистрации.Вставить("Информация", ""); 
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
	ДобавитьКоманду(ТаблицаКоманд, "Договор с покупателем ", "ДоговорСПокупателем", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL");
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

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

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

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ДоговорСПокупателем", "Договор с покупателем ", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));

КонецПроцедуры // Печать()     


Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.АвтоМасштаб = Истина;
	
	
	МакетОбработки = ПолучитьМакет("ДоговорНаПоставку");  
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Контрагенты.НаименованиеПолное КАК НаименованиеПолное,
		|	Контрагенты.ИНН КАК ИНН,
		|	Контрагенты.КПП КАК КПП,
		|	Контрагенты.ОсновнойБанковскийСчет КАК ОсновнойБанковскийСчет,
		|	Контрагенты.ОсновноеКонтактноеЛицо КАК ОсновноеКонтактноеЛицо,
		|	Контрагенты.РегистрационныйНомер КАК РегистрационныйНомер,
		|	Контрагенты.НалоговыйНомер КАК НалоговыйНомер,
		|	Контрагенты.СвидетельствоСерияНомер КАК СвидетельствоСерияНомер,
		|	Контрагенты.СвидетельствоДатаВыдачи КАК СвидетельствоДатаВыдачи,
		|	Контрагенты.ДатаРегистрации КАК ДатаРегистрации,
		|	Контрагенты.КонтактнаяИнформация.(
		|		НомерТелефона КАК НомерТелефона,
		|		АдресЭП КАК АдресЭП
		|	) КАК КонтактнаяИнформация
		|ИЗ
		|	Справочник.Контрагенты КАК Контрагенты";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	                     
	НужноеНаименование = ЭтаФорма.Владелец.НаименованиеДляДокументов;
	
	СтруктураПоиска = Новый Структура("НаименованиеПолное");
	СтруктураПоиска.НаименованиеПолное = НужноеНаименование;
	
	//Перем ДляДокументаИНН; 
	//Перем ДляДокументаКПП;
	ДляДокументаНаименование = НужноеНаименование;
	
	
	ВыборкаПоНаименованию = Выборка.НайтиСледующий(СтруктураПоиска);
	
	ДляДокументаИНН = ВыборкаПоНаименованию.ИНН;
	ДляДокументаКПП = ВыборкаПоНаименованию.КПП;
	
	Сообщить(ДляДокументаИНН);
	Сообщить(ДляДокументаКПП);

Показать


Ошибка

{ВнешняяОбработка.LC_шаблон_договоров.МодульОбъекта(83,23)}: Переменная не определена (ЭтаФорма)
НужноеНаименование = <<?>>ЭтаФорма.Владелец.НаименованиеДляДокументов; (Проверка: Сервер)

11. xecoder 11.05.22 12:00 Сейчас в теме
(8) Решил через СсылкаНаОбъект, а дальше по вашей методике Владелец.НаименованиеДляДокумента
4. пользователь 11.05.22 10:59
Сообщение было скрыто модератором.
...
10. xecoder 11.05.22 11:59 Сейчас в теме
Сделал через ссылку. Заработало

Получилось

НужноеНаименование = СсылкаНаОбъект.Владелец.НаименованиеДляДокумента;
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)