Возможно ли через запрос подтянуть параметры реквизитов банковского счета контрагента

1. user1503152 11.01.21 09:23 Сейчас в теме
Всем привет! С наступившими праздниками! Уважаемое сообщество, возник такого рода вопрос: К примеру, нужно создать ВПФ для конфигурации 1С: Розница 8, редакция 2.3 в документе (Заказ покупателя), нужно к макету подтянуть параметры реквизитов Банковского счета Контрагента, его в этом документе нету, подтягиваем из сведений о Юр. Физ. лице, а через запрос ИЗ Справочника возможно это сделать?

Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)

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

	Макет.Параметры.КонтрагентОГРН = СсылкаНаОбъект.Контрагент.РегистрационныйНомер;
	Макет.Параметры.КонтрагентОрганизация = СсылкаНаОбъект.Контрагент.НаименованиеПолное;
	Макет.Параметры.КонтрагентИНН = СсылкаНаОбъект.Контрагент.ИНН;
	Макет.Параметры.НомерСчетаПокупателя = //НомерСчета; ?

	//СведенияОПокупателе = ФормированиеПечатныхФормСервер.СведенияОЮрФизЛице(СсылкаНаОбъект.Контрагент, СсылкаНаОбъект.Дата);
	//Макет.Параметры.НомерСчетаПокупателя = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПокупателе, "НомерСчета");

	ТабДок.Вывести(Макет);
	
	Возврат ТабДок;
		
КонецФункции // СформироватьПечатнуюФорму()
Показать
По теме из базы знаний
Найденные решения
6. lefthander 11.01.21 13:39 Сейчас в теме
(5)
 Результаты = Запрос.Выполнить();
Выборка = Результаты.Выбрать();
Пока Выборка.Следующий() Цикл
   Макет.Параметры.НомерСчетаПокупателя = Выборка.НомерСчета;
КонецЦикла;

Если в результате будет больше одного счета то в параметр ляжет последний из выборки.

Вопрос - а если есть несколько счетов, как вы собираетесь указывать нужный?
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. BomjBandit 11.01.21 10:28 Сейчас в теме
В запросе в секцию "ГДЕ" добавь условие "БанковскиеСчетаКонтрагентов.Владелец = &Контрагент", и установи значение параметра:
Запрос.УстановитьПараметр("Контрагент", СсылкаНаОбъект.Контрагент); \
В итоге получишь по контрагенту все банковские счета с их реквизитами.
3. user1503152 11.01.21 10:37 Сейчас в теме
(2) Можно полный код вместе с запросом, у меня туго с запросами, как раз это пытаюсь для себя немного подучить, если можно конечно?
4. user1503152 11.01.21 11:55 Сейчас в теме
(2) Я правильно прописала запрос?

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


Макет.Параметры.НомерСчетаПокупателя = //Что здесь прописать.НомерСчета;
11. BomjBandit 11.01.21 13:52 Сейчас в теме
(4) Вообще твой код по идее можно сократить до:
Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
	
	ТабДок = Новый ТабличныйДокумент;
    
    Макет = ПолучитьМакет("Макет");
    
	СведенияОПокупателе = ФормированиеПечатныхФормСервер.СведенияОЮрФизЛице(СсылкаНаОбъект.Контрагент, СсылкаНаОбъект.Дата);
	
    Макет.Параметры.КонтрагентОГРН 			= ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаОбъект.Контрагент, "РегистрационныйНомер");
    Макет.Параметры.КонтрагентОрганизация	= СведенияОПокупателе.НаименованиеПолное;
    Макет.Параметры.КонтрагентИНН 			= СведенияОПокупателе.ИНН;
    Макет.Параметры.НомерСчетаПокупателя 	= СведенияОПокупателе.НомерСчета;

    ТабДок.Вывести(Макет);
    
    Возврат ТабДок;
        
КонецФункции
Показать
5. user1503152 11.01.21 13:30 Сейчас в теме
Уважаемое сообщество, так кто ни будь подскажет?
6. lefthander 11.01.21 13:39 Сейчас в теме
(5)
 Результаты = Запрос.Выполнить();
Выборка = Результаты.Выбрать();
Пока Выборка.Следующий() Цикл
   Макет.Параметры.НомерСчетаПокупателя = Выборка.НомерСчета;
КонецЦикла;

Если в результате будет больше одного счета то в параметр ляжет последний из выборки.

Вопрос - а если есть несколько счетов, как вы собираетесь указывать нужный?
7. user1503152 11.01.21 13:47 Сейчас в теме
(6) А есть решение указать нужный?
9. lefthander 11.01.21 13:49 Сейчас в теме
(7)Если счет указать как основной, то его и можно будет использовать как нужный.
ЗЫ не помню есть такой реквизит в справочнике Розницы
8. user1503152 11.01.21 13:48 Сейчас в теме
(6) Спасибо, все четко работает!
12. lefthander 11.01.21 13:52 Сейчас в теме
(8) Надо проверить на пустоту результат - если не будет вообще счета...

Если Результаты.Пустой() Тогда

Сообщить(" У контрагента нет счета");

Иначе
//Вот здесь уже тот код где вы обрабатываете результат
Выборка = Результаты.Выбрать();
Пока Выборка.Следующий() Цикл
Макет.Параметры.НомерСчетаПокупателя = Выборка.НомерСчета;
КонецЦикла; 

КонецЕсли;
Показать
10. user1503152 11.01.21 13:50 Сейчас в теме
Ок, буду иметь ввиду (Основной), ясно!
14. BomjBandit 11.01.21 13:59 Сейчас в теме
(10) Банковский счет по-умолчанию можно ещё найти вызвав процедуру модуля менеджера справочника БанковскиеСчетаКонтрагентов:
БанковскийСчет = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Контрагент);


И его реквизиты:

РеквизитыСчета = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьРеквизитыБанковскогоСчета(БанковскийСчет);
13. user1503152 11.01.21 13:58 Сейчас в теме
Я так поняла, все остальное точно так же выводится, я имею ввиду: "Банк, КоррСчет, БИК"
15. BomjBandit 11.01.21 14:15 Сейчас в теме
(13) Советую получать счет через:
БанковскийСчет  = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Контрагент);
РеквизитыСчета  = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьРеквизитыБанковскогоСчета(БанковскийСчет);

А затем обращаться через точку к реквизитам счета:
БИК          = РеквизитыСчета.БИК;
КоррСчет = РеквизитыСчета.КоррСчет;
Оставьте свое сообщение

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