Народ, добра всем. Вопросик откуда удобнее всего в ВПО, для типовой БП 8.3 подтянуть для выгрузки красиво полные реквизиты контрагента, в печатную форму типо договора.
Заранее всем спс.
---
в печатную форму типо договора
говнокод... т.е. не оптимальный запрос... писал очень давно, но для понимания - пойдет.

```1c
    &НаСервере
    Функция ПолучитьРеквизитыДокумента(ЭтотДоговор)

    РеквизитыДокумента = Новый Структура("НомерДоговора, ДатаДоговора, Организация, Контрагент,
    | РуководительДолжность, РуководительФИО,
    | КонтрагентРуководительДолжность, КонтрагентРуководительФИО,
    | ОрганизацияИНН, КонтрагентИНН, ОрганизацияКПП, КонтрагентКПП,
    | ОрганизацияПолное, КонтрагентПолное,
    | ОрганизацияАдрес, ОрганизацияПочтовыйАдрес,
    | КонтрагентАдрес, КонтрагентПочтовыйАдрес,
    | ОрганизацияТелефон, КонтрагентТелефон,
    | ОрганизацияНомерСчета, ОрганизацияГородБанка,
    | ОрганизацияНаименованиеБанка, ОрганизацияКоррСчет,
    | КонтрагентНомерСчета, КонтрагентГородБанка,
    | КонтрагентНаименованиеБанка, КонтрагентКоррСчет,
    | ОрганизацияБИК, КонтрагентБИК");

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

    ВыборкаПоКонтактам = ВыборкаЗапроса.КонтактнаяИнформация.Выбрать();
    Пока ВыборкаПоКонтактам.Следующий() Цикл
    Если Строка(ВыборкаПоКонтактам.Вид) = "Юридический адрес" Тогда
    РеквизитыДокумента.КонтрагентАдрес = ВыборкаПоКонтактам.Представление;
    КонецЕсли;
    Если Строка(ВыборкаПоКонтактам.Вид) = "Почтовый адрес" Тогда
    РеквизитыДокумента.КонтрагентПочтовыйАдрес = ВыборкаПоКонтактам.Представление;
    КонецЕсли;
    Если Строка(ВыборкаПоКонтактам.Вид) = "Телефон" Тогда
    РеквизитыДокумента.КонтрагентТелефон = ВыборкаПоКонтактам.Представление;
    КонецЕсли;
    КонецЦикла;

    Возврат РеквизитыДокумента;

    КонецФункции
```
---
красиво полные реквизиты контрагента - это КАК ?
---
наименование, ИНН/КПП, юр.адрес, факт.адрес, телефон,
где в каком справочнике или регистре они хранятся в полном виде
---
я понимаю вопрос глупый, но помогите плиз, ткните носом ибо возникла необходимость такая: есть ВПН печатная типо договор, висит на реализации товара, нужно в подвал формы вывести реквизиты клиента, если через ссылка - контрагент , выводится только название через справочник контрагенты. Туплю, не могу найти где они есть
---
в печатную форму типо договора
говнокод... т.е. не оптимальный запрос... писал очень давно, но для понимания - пойдет.

```1c
    &НаСервере
    Функция ПолучитьРеквизитыДокумента(ЭтотДоговор)

    РеквизитыДокумента = Новый Структура("НомерДоговора, ДатаДоговора, Организация, Контрагент,
    | РуководительДолжность, РуководительФИО,
    | КонтрагентРуководительДолжность, КонтрагентРуководительФИО,
    | ОрганизацияИНН, КонтрагентИНН, ОрганизацияКПП, КонтрагентКПП,
    | ОрганизацияПолное, КонтрагентПолное,
    | ОрганизацияАдрес, ОрганизацияПочтовыйАдрес,
    | КонтрагентАдрес, КонтрагентПочтовыйАдрес,
    | ОрганизацияТелефон, КонтрагентТелефон,
    | ОрганизацияНомерСчета, ОрганизацияГородБанка,
    | ОрганизацияНаименованиеБанка, ОрганизацияКоррСчет,
    | КонтрагентНомерСчета, КонтрагентГородБанка,
    | КонтрагентНаименованиеБанка, КонтрагентКоррСчет,
    | ОрганизацияБИК, КонтрагентБИК");

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

    ВыборкаПоКонтактам = ВыборкаЗапроса.КонтактнаяИнформация.Выбрать();
    Пока ВыборкаПоКонтактам.Следующий() Цикл
    Если Строка(ВыборкаПоКонтактам.Вид) = "Юридический адрес" Тогда
    РеквизитыДокумента.КонтрагентАдрес = ВыборкаПоКонтактам.Представление;
    КонецЕсли;
    Если Строка(ВыборкаПоКонтактам.Вид) = "Почтовый адрес" Тогда
    РеквизитыДокумента.КонтрагентПочтовыйАдрес = ВыборкаПоКонтактам.Представление;
    КонецЕсли;
    Если Строка(ВыборкаПоКонтактам.Вид) = "Телефон" Тогда
    РеквизитыДокумента.КонтрагентТелефон = ВыборкаПоКонтактам.Представление;
    КонецЕсли;
    КонецЦикла;

    Возврат РеквизитыДокумента;

    КонецФункции
```
---
В одном месте данная инфа не хранится. Посмотрите процедуры формирования шапки любой типовой печатки (типа ТОРГ-12). Увидите там вызов общего модуля с функцией типа "СведенияОбОрганизации". Нет конфигуратора под рукой чтобы написать точнее, но насколько я помню в данную функцию передают желаемые (из списка возможных) поля для вывода, а в обратку функция выдает строку, которую и вставляют в печатную форму.