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

По теме из базы знаний
- Новый взгляд на старое. Внешняя печатная форма – НАСТРАИВАЕМАЯ
- Обзор полезных методов БСП 3.1.4. Часть 2
- Полезный код для программистов 1С (часть 3). Подготовка печатных форм + подсистема Управление печатью (БСП)
- Опыт разработки ботов на 1С: от идеи до продукта, кейсы использования
- Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Вот у меня есть некий код, доработай под себя и получай все, что нужно
// Функция ПолучитьКонтактнуюИнформацию
//
// СсылкаНаОбъект - ссылка на объект информационной базы (элемент справочника, документа)
// Вид - вид контактной информации (Справочники.ВидыКонтактнойИнформации)
Функция ПолучитьКонтактнуюИнформацию(СсылкаНаОбъект, Вид)
КИ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(
СсылкаНаОбъект,
Вид,
ТекущаяДатаСеанса(),
Ложь);
Попытка
Данные = РаботаСАдресами.АдресВФорматеКЛАДР(КИ[0].ЗначенияПолей);
Исключение
Данные = Новый Структура("Представление", "");
КонецПопытки;
Возврат Данные.Представление;
КонецФункции
Показать
(1) Переписывайте.
Самый первый вопрос, а если будет выбрано несколько документов
Второй вопрос: а если в документ у вас кто-то добавит Хранилище значения и засунет туда полугигабайнтую информацию?
Посмотрите, как формируются печатные формы: всё вытягивается запросом.
И в том же запросе вы можете левым соединение обратится к контактной информации
Самый первый вопрос, а если будет выбрано несколько документов
Второй вопрос: а если в документ у вас кто-то добавит Хранилище значения и засунет туда полугигабайнтую информацию?
Посмотрите, как формируются печатные формы: всё вытягивается запросом.
И в том же запросе вы можете левым соединение обратится к контактной информации
В УТ есть встроеные функции по получению контактной информации если не ошибаюсь. Посмотреть можно к примеру в модуле менеджера того же дкумента, где контактная информация выводиться.
Если такая еще осталась, может по другому называется теперь
Если такая еще осталась, может по другому называется теперь
УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ДанныеПечати.Исполнитель,Справочники.ВидыКонтактнойИнформации.EmailКонтрагента,ТекущаяДата());
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот