Вопрос по типовой БП 8.3

1. Tigriss 05.02.19 15:23 Сейчас в теме
Народ, добра всем. Вопросик откуда удобнее всего в ВПО, для типовой БП 8.3 подтянуть для выгрузки красиво полные реквизиты контрагента, в печатную форму типо договора.
Заранее всем спс.
По теме из базы знаний
Найденные решения
6. EVKash 16 06.02.19 22:43 Сейчас в теме
(1)
в печатную форму типо договора

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

КонецФункции
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 05.02.19 16:28 Сейчас в теме
(1)
красиво полные реквизиты контрагента
- это КАК ?
3. Tigriss 05.02.19 16:51 Сейчас в теме
(2) наименование, ИНН/КПП, юр.адрес, факт.адрес, телефон,
где в каком справочнике или регистре они хранятся в полном виде
4. Tigriss 06.02.19 09:22 Сейчас в теме
(2) я понимаю вопрос глупый, но помогите плиз, ткните носом ибо возникла необходимость такая: есть ВПН печатная типо договор, висит на реализации товара, нужно в подвал формы вывести реквизиты клиента, если через ссылка - контрагент , выводится только название через справочник контрагенты. Туплю, не могу найти где они есть
6. EVKash 16 06.02.19 22:43 Сейчас в теме
(1)
в печатную форму типо договора

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

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

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