Как вывести адрес контрагента из табличной части справочника в печатную форму

1. user1732685 28.01.22 14:16 Сейчас в теме
УТ11. Мне нужно создать внешнюю печатную форму для документа ЗаказКлиента, РеализацияТоваровУслуг. Нужно чтобы выводился ссылкой контрагент, его фактический адрес и телефон. Не пойму как мне вывести фактический адрес и телефон контрагента, где их найти? В форме элемента документа Контрагенты этой страницы, где отображается контактная информация нет. Подскажите пожалуйста.

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

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

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

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

Функция СформироватьПечатнуюФорму (СсылкаНаОбъект, ОбъектыПечати);
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	МакетОбработки = ПолучитьМакет("МакетДоговора");
	
	ОбластьШапки = МакетОбработки.ПолучитьОбласть("Шапка");
	ОбластьШапки.Параметры.Дата = Формат(СсылкаНаОбъект.Дата, "ДЛФ=DD" ); 
	
	ТабличныйДокумент.Вывести(ОбластьШапки);
	
	ОбластьТекста = МакетОбработки.ПолучитьОбласть("ТекстДоговора");
	ОбластьТекста.Параметры.Контрагент = СсылкаНаОбъект.Контрагент; 
	
	ТабличныйДокумент.Вывести(ОбластьТекста);
	
	ОбластьПодвал = МакетОбработки.ПолучитьОбласть("Подвал");
	ОбластьПодвал.Параметры.Дата = СсылкаНаОбъект.Дата;
	
	ТабличныйДокумент.Вывести(ОбластьПодвал);
	
	Возврат ТабличныйДокумент;
	
КонецФункции
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. qazaas 28.01.22 14:22 Сейчас в теме
(1) Вот у меня есть некий код, доработай под себя и получай все, что нужно

// Функция ПолучитьКонтактнуюИнформацию
//
// СсылкаНаОбъект - ссылка на объект информационной базы (элемент справочника, документа)
// Вид - вид контактной информации (Справочники.ВидыКонтактнойИнформации)
Функция ПолучитьКонтактнуюИнформацию(СсылкаНаОбъект, Вид)
		
	КИ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(
	СсылкаНаОбъект,
	Вид,
	ТекущаяДатаСеанса(),
	Ложь);
	
	Попытка
		Данные = РаботаСАдресами.АдресВФорматеКЛАДР(КИ[0].ЗначенияПолей);
	Исключение
		Данные = Новый Структура("Представление", "");
	КонецПопытки;
	
	Возврат Данные.Представление;
	
КонецФункции
Показать
3. glek 119 28.01.22 15:33 Сейчас в теме
(1) Переписывайте.
Самый первый вопрос, а если будет выбрано несколько документов
Второй вопрос: а если в документ у вас кто-то добавит Хранилище значения и засунет туда полугигабайнтую информацию?
Посмотрите, как формируются печатные формы: всё вытягивается запросом.
И в том же запросе вы можете левым соединение обратится к контактной информации
4. _Enot_ 10 28.01.22 15:50 Сейчас в теме
В УТ есть встроеные функции по получению контактной информации если не ошибаюсь. Посмотреть можно к примеру в модуле менеджера того же дкумента, где контактная информация выводиться.
Если такая еще осталась, может по другому называется теперь

УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ДанныеПечати.Исполнитель,Справочники.ВидыКонтактнойИнформации.EmailКонтрагента,ТекущаяДата());
Оставьте свое сообщение

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