Версия для печати темы (https://pro1c.org.ua/index.php?s=f70cc4d3d789b731ed00e5a153053725&showtopic=24754)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Счет контрагента СХ(инагро)

Автор: EritikWoW 23.08.15, 5:15

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

Нужно вытянуть счет по которому пришел приход или расход

на основании документа:

    Если НЕ СтрокаДокумента.DOCSUBTYPESNAME = Неопределено тогда
        Если НРег(СтрокаДокумента.DOCSUBTYPESNAME) = "входящий документ" тогда            
        НовСтрок.СуммаПоступило = НовСтрок.СуммаДокумента;
        ИначеЕсли НРег(СтрокаДокумента.DOCSUBTYPESNAME) = "платежное поручение" тогда
        НовСтрок.СуммаСписано = НовСтрок.СуммаДокумента;
        КонецЕсли;
    Иначе
    Возврат
    КонецЕсли;


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


Есть с загрузки 2 вида документов !
"входящий документ" и "платежное поручение" на основании этих 2ух документов нужно получить счет контрагенты присутсвует сам Контрагент, Банк, МФО Банка, Валюта

Автор: vadim007 23.08.15, 6:08

Какой вам нужно получить счет контрагента: бухгалтерский, банковский, счет-фактуру?

Автор: TipsyKID 23.08.15, 7:09

Необходим отбор по номеру банковского счета.
Вы делаете отбор только по наименованию, валюте, контрагенту, если наименования банковских счетов в 1С слишком однообразное, к примеру, "Основной" и таких 3-и штуки, то и в результате получите все три.
+ добавьте отбор по помете удаления.
Хотя странно,

БанковскиеСчета.Ссылка = &Банк


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

Автор: EritikWoW 23.08.15, 12:39

Цитата(vadim007 @ 23.08.15, 7:08) http://pro1c.org.ua/index.php?act=findpost&pid=102295
БанковскиеСчета.Ссылка = &Банк
&Банк <===== Здесь идет просто Наименования Банка а не ссылка на банк... по этому..


Банки и Валюта это Строки с наименованием полученными из загрузки xml файла

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua