Возможно ли через запрос подтянуть параметры реквизитов банковского счета контрагента
Всем привет! С наступившими праздниками! Уважаемое сообщество, возник такого рода вопрос: К примеру, нужно создать ВПФ для конфигурации 1С: Розница 8, редакция 2.3 в документе (Заказ покупателя), нужно к макету подтянуть параметры реквизитов Банковского счета Контрагента, его в этом документе нету, подтягиваем из сведений о Юр. Физ. лице, а через запрос ИЗ Справочника возможно это сделать?
Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| БанковскиеСчетаКонтрагентов.Ссылка КАК Ссылка,
| БанковскиеСчетаКонтрагентов.ВерсияДанных КАК ВерсияДанных,
| БанковскиеСчетаКонтрагентов.ПометкаУдаления КАК ПометкаУдаления,
| БанковскиеСчетаКонтрагентов.Владелец КАК Владелец,
| БанковскиеСчетаКонтрагентов.Наименование КАК Наименование,
| БанковскиеСчетаКонтрагентов.Банк КАК Банк,
| БанковскиеСчетаКонтрагентов.НомерСчета КАК НомерСчета,
| БанковскиеСчетаКонтрагентов.РучноеИзменениеРеквизитовБанка КАК РучноеИзменениеРеквизитовБанка,
| БанковскиеСчетаКонтрагентов.ГородБанка КАК ГородБанка,
| БанковскиеСчетаКонтрагентов.АдресБанка КАК АдресБанка,
| БанковскиеСчетаКонтрагентов.ТелефоныБанка КАК ТелефоныБанка,
| БанковскиеСчетаКонтрагентов.КоррСчетБанка КАК КоррСчетБанка,
| БанковскиеСчетаКонтрагентов.НаименованиеБанка КАК НаименованиеБанка,
| БанковскиеСчетаКонтрагентов.БИКБанка КАК БИКБанка,
| БанковскиеСчетаКонтрагентов.Предопределенный КАК Предопределенный,
| БанковскиеСчетаКонтрагентов.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.БанковскиеСчетаКонтрагентов КАК БанковскиеСчетаКонтрагентов";
//Вопрос: Возможно ли через запрос подтянуть реквизиты Банковского счета Контрагента?
Запрос.УстановитьПараметр("МассивОбъектов", СсылкаНаОбъект);
Результаты = Запрос.ВыполнитьПакет();
Макет.Параметры.КонтрагентОГРН = СсылкаНаОбъект.Контрагент.РегистрационныйНомер;
Макет.Параметры.КонтрагентОрганизация = СсылкаНаОбъект.Контрагент.НаименованиеПолное;
Макет.Параметры.КонтрагентИНН = СсылкаНаОбъект.Контрагент.ИНН;
Макет.Параметры.НомерСчетаПокупателя = //НомерСчета; ?
//СведенияОПокупателе = ФормированиеПечатныхФормСервер.СведенияОЮрФизЛице(СсылкаНаОбъект.Контрагент, СсылкаНаОбъект.Дата);
//Макет.Параметры.НомерСчетаПокупателя = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПокупателе, "НомерСчета");
ТабДок.Вывести(Макет);
Возврат ТабДок;
КонецФункции // СформироватьПечатнуюФорму()
ПоказатьПо теме из базы знаний
Найденные решения
(5)
Если в результате будет больше одного счета то в параметр ляжет последний из выборки.
Вопрос - а если есть несколько счетов, как вы собираетесь указывать нужный?
Результаты = Запрос.Выполнить();
Выборка = Результаты.Выбрать();
Пока Выборка.Следующий() Цикл
Макет.Параметры.НомерСчетаПокупателя = Выборка.НомерСчета;
КонецЦикла;
Если в результате будет больше одного счета то в параметр ляжет последний из выборки.
Вопрос - а если есть несколько счетов, как вы собираетесь указывать нужный?
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В запросе в секцию "ГДЕ" добавь условие "БанковскиеСчетаКонтрагентов.Владелец = &Контрагент", и установи значение параметра:
Запрос.УстановитьПараметр("Контрагент", СсылкаНаОбъект.Контрагент); \
В итоге получишь по контрагенту все банковские счета с их реквизитами.
Запрос.УстановитьПараметр("Контрагент", СсылкаНаОбъект.Контрагент); \
В итоге получишь по контрагенту все банковские счета с их реквизитами.
(2) Я правильно прописала запрос?
Макет.Параметры.НомерСчетаПокупателя = //Что здесь прописать.НомерСчета;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| БанковскиеСчетаКонтрагентов.Ссылка КАК Ссылка,
| БанковскиеСчетаКонтрагентов.ВерсияДанных КАК ВерсияДанных,
| БанковскиеСчетаКонтрагентов.ПометкаУдаления КАК ПометкаУдаления,
| БанковскиеСчетаКонтрагентов.Владелец КАК Владелец,
| БанковскиеСчетаКонтрагентов.Наименование КАК Наименование,
| БанковскиеСчетаКонтрагентов.Банк КАК Банк,
| БанковскиеСчетаКонтрагентов.НомерСчета КАК НомерСчета,
| БанковскиеСчетаКонтрагентов.РучноеИзменениеРеквизитовБанка КАК РучноеИзменениеРеквизитовБанка,
| БанковскиеСчетаКонтрагентов.ГородБанка КАК ГородБанка,
| БанковскиеСчетаКонтрагентов.АдресБанка КАК АдресБанка,
| БанковскиеСчетаКонтрагентов.ТелефоныБанка КАК ТелефоныБанка,
| БанковскиеСчетаКонтрагентов.КоррСчетБанка КАК КоррСчетБанка,
| БанковскиеСчетаКонтрагентов.НаименованиеБанка КАК НаименованиеБанка,
| БанковскиеСчетаКонтрагентов.БИКБанка КАК БИКБанка,
| БанковскиеСчетаКонтрагентов.Предопределенный КАК Предопределенный,
| БанковскиеСчетаКонтрагентов.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.БанковскиеСчетаКонтрагентов КАК БанковскиеСчетаКонтрагентов
|ГДЕ
| БанковскиеСчетаКонтрагентов.Владелец = &Контрагент";
Запрос.УстановитьПараметр("Контрагент", СсылкаНаОбъект.Контрагент);
Результаты = Запрос.ВыполнитьПакет();
ПоказатьМакет.Параметры.НомерСчетаПокупателя = //Что здесь прописать.НомерСчета;
(4) Вообще твой код по идее можно сократить до:
Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
СведенияОПокупателе = ФормированиеПечатныхФормСервер.СведенияОЮрФизЛице(СсылкаНаОбъект.Контрагент, СсылкаНаОбъект.Дата);
Макет.Параметры.КонтрагентОГРН = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаОбъект.Контрагент, "РегистрационныйНомер");
Макет.Параметры.КонтрагентОрганизация = СведенияОПокупателе.НаименованиеПолное;
Макет.Параметры.КонтрагентИНН = СведенияОПокупателе.ИНН;
Макет.Параметры.НомерСчетаПокупателя = СведенияОПокупателе.НомерСчета;
ТабДок.Вывести(Макет);
Возврат ТабДок;
КонецФункции
Показать
(5)
Если в результате будет больше одного счета то в параметр ляжет последний из выборки.
Вопрос - а если есть несколько счетов, как вы собираетесь указывать нужный?
Результаты = Запрос.Выполнить();
Выборка = Результаты.Выбрать();
Пока Выборка.Следующий() Цикл
Макет.Параметры.НомерСчетаПокупателя = Выборка.НомерСчета;
КонецЦикла;
Если в результате будет больше одного счета то в параметр ляжет последний из выборки.
Вопрос - а если есть несколько счетов, как вы собираетесь указывать нужный?
(8) Надо проверить на пустоту результат - если не будет вообще счета...
Если Результаты.Пустой() Тогда
Сообщить(" У контрагента нет счета");
Иначе
//Вот здесь уже тот код где вы обрабатываете результат
Выборка = Результаты.Выбрать();
Пока Выборка.Следующий() Цикл
Макет.Параметры.НомерСчетаПокупателя = Выборка.НомерСчета;
КонецЦикла;
КонецЕсли;
Показать
(10) Банковский счет по-умолчанию можно ещё найти вызвав процедуру модуля менеджера справочника БанковскиеСчетаКонтрагентов:
И его реквизиты:
БанковскийСчет = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Контрагент);
И его реквизиты:
РеквизитыСчета = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьРеквизитыБанковскогоСчета(БанковскийСчет);
(13) Советую получать счет через:
А затем обращаться через точку к реквизитам счета:
БанковскийСчет = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Контрагент);
РеквизитыСчета = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьРеквизитыБанковскогоСчета(БанковскийСчет);
А затем обращаться через точку к реквизитам счета:
БИК = РеквизитыСчета.БИК;
КоррСчет = РеквизитыСчета.КоррСчет;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот