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

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

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

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

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

    ТабДок.Вывести(Макет);
    
    Возврат ТабДок;
        
КонецФункции // СформироватьПечатнуюФорму()
1 ДенисЧ
 
11.01.21
09:44
А это
                   |    БанковскиеСчетаКонтрагентов.АдресБанка КАК АдресБанка,
                   |    БанковскиеСчетаКонтрагентов.ТелефоныБанка КАК ТелефоныБанка,
не реквизиты?
2 Cypher
 
naïve
11.01.21
09:48
(1) Если не затруднит Вас, программный код можно?

Макет.Параметры.НомерСчетаПокупателя = //НомерСчета; ?
3 ДенисЧ
 
11.01.21
09:49
Ты в запросе его выбираешь. Где у тебя вообще обход результата? Зачем вообще запрос тогда, если его результаты не используются?
4 Йохохо
 
11.01.21
09:53
сленг подучил а код нет, 1с-аналитег?
5 Dmitrii
 
гуру
11.01.21
09:57
(0) Если отвечать буквально на Ваш вопрос, то - конечно возможно.
Вопрос только - реквизиты какого конкретно р/с нужны? И откуда вы заранее знаете с какого р/с контрагент будет оплачивать ваш заказ.
Либо этот реквизит должен быть в документе, либо должны быть определены правила, по которым вы выбираете конкретный р/с.

В запросе из (0) обращение идёт вообще исключительно только к одному справочнику. Что это за печатная форма, где нужны только реквизиты р/с?
Если в лоб ответ нужен, то просто дописать текст запроса условием "ГДЕ БанковскиеСчетаКонтрагентов.Владелец В (ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказПокупателя.Контрагент КАК Контрагент ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ГДЕ Ссылка В &МассивОбъектов)".
Только это не решение задачи. В запросе будут все р/счета каждого из контрагентов (одного контрагента, если печатается один заказ). А что делать, если р/счетов у покупателя несколько - неясно.
6 mikecool
 
11.01.21
10:05
(5) правильно, у тебя тоже не решение, предлагать условие ГДЕ ... В () - это плохо
7 ДенисЧ
 
11.01.21
10:11
(6) Зависит от количества
8 Cypher
 
naïve
11.01.21
10:11
(5) Я поняла, в принципе и такой код работает, так что сорри, всем спасибо!

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

    ТабДок = Новый ТабличныйДокумент;
    
    Макет = ПолучитьМакет("Макет");
    
    Макет.Параметры.КонтрагентОГРН = СсылкаНаОбъект.Контрагент.РегистрационныйНомер;
    Макет.Параметры.КонтрагентОрганизация = СсылкаНаОбъект.Контрагент.НаименованиеПолное;
    Макет.Параметры.КонтрагентИНН = СсылкаНаОбъект.Контрагент.ИНН;

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

    ТабДок.Вывести(Макет);
    
    Возврат ТабДок;
        
КонецФункции // СформироватьПечатнуюФорму()
9 Cypher
 
naïve
11.01.21
12:46
(5) О таком запросе речь была?

Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    БанковскиеСчетаКонтрагентов.Ссылка КАК Ссылка,
                   |    БанковскиеСчетаКонтрагентов.ВерсияДанных КАК ВерсияДанных,
                   |    БанковскиеСчетаКонтрагентов.ПометкаУдаления КАК ПометкаУдаления,
                   |    БанковскиеСчетаКонтрагентов.Владелец КАК Владелец,
                   |    БанковскиеСчетаКонтрагентов.Наименование КАК Наименование,
                   |    БанковскиеСчетаКонтрагентов.Банк КАК Банк,
                   |    БанковскиеСчетаКонтрагентов.НомерСчета КАК НомерСчета,
                   |    БанковскиеСчетаКонтрагентов.РучноеИзменениеРеквизитовБанка КАК РучноеИзменениеРеквизитовБанка,
                   |    БанковскиеСчетаКонтрагентов.ГородБанка КАК ГородБанка,
                   |    БанковскиеСчетаКонтрагентов.АдресБанка КАК АдресБанка,
                   |    БанковскиеСчетаКонтрагентов.ТелефоныБанка КАК ТелефоныБанка,
                   |    БанковскиеСчетаКонтрагентов.КоррСчетБанка КАК КоррСчетБанка,
                   |    БанковскиеСчетаКонтрагентов.НаименованиеБанка КАК НаименованиеБанка,
                   |    БанковскиеСчетаКонтрагентов.БИКБанка КАК БИКБанка,
                   |    БанковскиеСчетаКонтрагентов.Предопределенный КАК Предопределенный,
                   |    БанковскиеСчетаКонтрагентов.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
                   |ИЗ
                   |    Справочник.БанковскиеСчетаКонтрагентов КАК БанковскиеСчетаКонтрагентов
                   |ГДЕ
                   |    БанковскиеСчетаКонтрагентов.Владелец = &Контрагент";
    
    
    Запрос.УстановитьПараметр("Контрагент", СсылкаНаОбъект.Контрагент);
    
    Результаты = Запрос.ВыполнитьПакет();
10 Cypher
 
naïve
11.01.21
12:56
Ребята, все таки хочу поднять тему, вывести параметры Банковских реквизитов Контрагента не проблема, мне просто интересно, можно ли сделать это через запрос?
11 Cypher
 
naïve
11.01.21
13:15
Олег, что скажите?
12 maptbln
 
11.01.21
13:48
(10) да,возможно
13 Масянька
 
11.01.21
13:49
(9) Это один запрос?
Закон Брукера: Даже маленькая практика стоит большой теории.