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

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

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

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

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

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

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

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

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

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

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

Программист/тестировщик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Ведущий разработчик 1С / Team lead отдела разработки 1С
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день