|   |   | 
| 
 | v7: Найти документ... | ☑ | ||
|---|---|---|---|---|
| 0
    
        DES 31.01.14✎ 21:30 | 
        Как мне найти последний платежный документ по контрагенту, если известно что на бухсчете ХХХ.Y по субконто этого контрагента есть положительное СКК() ?     | |||
| 1
    
        SnarkHunter 31.01.14✎ 21:37 | 
        Какая связь между поиском документа и наличием сальдо на тайном счете?     | |||
| 2
    
        NikVars 31.01.14✎ 21:52 | 
        (0) Ты про платежку?! Так платежка не проводится. Тебе нужно смотреть документ Выписка. А в выписке как может быть ссылка на документ Платежное поручение (у аккуратных бухов), так и может отсутствовать (у всех остальных бухов).     | |||
| 3
    
        DES 31.01.14✎ 22:23 | 
        я в курсе про выписку
 я запутался в методах выполнитьЗапрос... | |||
| 4
    
        DES 31.01.14✎ 22:25 | 
        можно же получить проводки до какай-то даты по счету и контрагенту
 и перебирая проводки найти по какому документы они выполнены Не получается. Операция пустая выдается. | |||
| 5
    
        NikVars 31.01.14✎ 22:29 | 
        (3) Та-а-а-а-к... Вот и слова про запрос всплыли...
 А может к 100 посту и сам текст запроса появится, а может и не появится... Если тебе его лень писать, то и мне лень. Тогда дай поговорим об этом. (4) В запросе можно получить, если умеешь, и отвечаю, если спрашивешь. | |||
| 6
    
        Voronve 31.01.14✎ 22:35 | 
        (4) Ты не мудри... ты запрос покажи     | |||
| 7
    
        DES 31.01.14✎ 22:59 | 
        БИ = СоздатьОбъект("БухгалтерскиеИтоги");
 БИ.ИспользоватьСубконто("Контрагенты",Контрагент,2); БИ.ВыполнитьЗапрос(,ДатаДок, КорСчет,,,,,1); | |||
| 8
    
        DES 01.02.14✎ 16:33 | 
        ну подскажите или как ?     | |||
| 9
    
        2S 01.02.14✎ 16:42 | 
        Платежный документ это что? он проводки формирует?     | |||
| 10
    
        DES 01.02.14✎ 16:53 | 
        конечно
 Да и не важно какой документ. как выйти да последний документ сделавший проводку по счету ? | |||
| 11
    
        Джордж1 01.02.14✎ 16:55 | 
        БИ.ВыполнитьЗапрос(,ДатаДок, КорСчет,,,,,1); - сделай тут группировку по операциям и укажи конкретный счет (счета)     | |||
| 12
    
        2S 01.02.14✎ 16:57 | 
        (10) последний, хм
 запрос с периодичностью "Операция", потом выборка по операции, все в тз, сортировать по дате. | |||
| 13
    
        Джордж1 01.02.14✎ 16:58 | 
        (12)я уже не помню, разве нельзя перебрать периоды в обратном порядке?     | |||
| 14
    
        DES 01.02.14✎ 16:59 | 
        покажите как дальше после ВыполнитьЗапрос, у меня циклы пустые получаются     | |||
| 15
    
        Джордж1 01.02.14✎ 16:59 | 
        (14)Ну почитай справку что-ли     | |||
| 16
    
        2S 01.02.14✎ 17:00 | 
        (13) нет     | |||
| 17
    
        DES 01.02.14✎ 17:01 | 
        да блин, какой ты умный     | |||
| 18
    
        2S 01.02.14✎ 17:02 | 
        у тебя писюн больше моего, 9 лет с гаком. Чем ты занимался это время?     | |||
| 19
    
        DES 01.02.14✎ 17:02 | 
        какой тебе дело ?     | |||
| 20
    
        2S 01.02.14✎ 17:03 | 
        Молдавии привет     | |||
| 21
    
        DES 01.02.14✎ 17:03 | 
        почему вы как бабы базарные, обо всем трандите, только не по делу...     | |||
| 22
    
        DES 01.02.14✎ 17:04 | 
        если не знаете, то не вылазьте.     | |||
| 23
    
        Torquader 01.02.14✎ 19:56 | 
        Кстати, на счету может что-то появиться, если мы или на него переводим положительную сумму или с него (тогда он коррсчёт) переводим отрицательную сумму.
 Потом, тип итогов нужно ставить в 2 (обороты между счетами). И потом, мне кажется, что проще использовать "ВыбратьОперацииСПроводками", так как там проще получить то, что нужно. | |||
| 24
    
        DES 01.02.14✎ 21:46 | 
        (23) спс     | |||
| 25
    
        DES 02.02.14✎ 20:44 | 
        есть проводка кредит - дебет сч.200 - сч.300.
 по счету 300 есть субконто. подскажите как отобрать проводки по определенному субконто ? | |||
| 26
    
        Torquader 02.02.14✎ 21:23 | 
        Опер=СоздатьОбъект("Операция");
 Опер.ИспользоватьСубконто("ИмяСубконто",ЗначениеСубконто); Опер.ВыбратьОперацииСПроводками(НачалоПериода,КонецПериода,СчетПоКоду("200"),СчетПоКоду("300"),3); Пока Опер.ПолучитьОперацию()=1 Цикл // здесь мы получаем операции, которые подходят под условие Если Опер.ВыбратьПроводки()=1 Тогда Пока Опер.ПолучитьПроводку()=1 Цикл Если Опер.Дебет.Счет<>СчетПоКоду("200")Тогда Продолжить; КонецЕсли; // здесь мы выбираем проводки операции для проверки КонецЦикла; КонецЕсли; КонецЦикла; | |||
| 27
    
        DES 03.02.14✎ 16:15 | 
        а зачем вот это 
 Если Опер.Дебет.Счет<>СчетПоКоду("200")Тогда | |||
| 28
    
        DES 03.02.14✎ 16:54 | 
        так у меня и было сделано, но не выбирает.
 1.Пока Операция.ПолучитьОперацию()=1 Цикл 2.Если Операция.ВыбратьПроводки()=1 Тогда 3.Пока Операция.ПолучитьПроводку()=1 Цикл под отладчиком смотрю: на 1 строке дебет и кредит - то что нужно на 2 строке тоже на 3 - неопределено. | |||
| 29
    
        DES 03.02.14✎ 16:55 | 
        и в последний цикл не заходит     | |||
| 30
    
        NikVars 03.02.14✎ 16:57 | 
        (28) Покажи целиком запрос, как у тебя сделано.
 Ты в этой ветке не можешь понять, что никто кроме тебя твой экран не видит. | |||
| 31
    
        DES 03.02.14✎ 17:03 | 
        как в (26) сделано     | |||
| 32
    
        NikVars 03.02.14✎ 17:05 | 
        (31) Ясно. Возись сам.     | |||
| 33
    
        DES 03.02.14✎ 17:08 | 
        (32) что тебе ясно?
 говорю же 1 в 1 сделано при выполнении строки Пока Опер.ПолучитьПроводку()=1 Цикл в Отладчике Операция.Дебет.Счет = Ошибка в выражении! Операция.Кредит.Счет = Ошибка в выражении! Операция.Содержание = " " | |||
| 34
    
        DES 03.02.14✎ 17:24 | 
        я так понял что
 Пока Опер.ПолучитьОперацию()=1 Цикл лишнее ? | |||
| 35
    
        пипец 03.02.14✎ 17:34 | 
        СКК это результат выполнения разных операций и найти документ может быть не тривиально - так как это может быть частичные оплаты / документы движения     | |||
| 36
    
        DES 03.02.14✎ 17:36 | 
        ерунда какая то 
 пролетает мимо первой проводки. | |||
| 37
    
        DES 03.02.14✎ 17:39 | 
        работает как описано в (28)
 почему так ? | |||
| 38
    
        DES 03.02.14✎ 17:46 | 
        до строки 
 Пока Операция.ПолучитьПроводку()=1 Цикл в переменных Операция.Дебет.Счет Операция.Кредит.Счет Операция.Документ то что нужно, т.е. первый документ из выборки. после выполнения строки Пока Операция.ПолучитьПроводку()=1 Цикл второй документ выборки, а первый теряется. | |||
| 39
    
        DES 03.02.14✎ 17:50 | 
        первый документ - это выписка по банку, приход на счет контрагента
 последующие это расходы со счета по контрагенту. может от этого зависить ? | |||
| 40
    
        Torquader 03.02.14✎ 20:52 | 
        (39) Ты так сильно не переживай, но первый цикл находит операции, которые подходят под условие.
 Второй цикл я написал по памяти, так как был уверен, что операция содержит проводки и не факт, что будет спозиционирована на той, которая нужна. Видимо, второй цикл не нужен. Просто у меня выбирались все операции и все проводки по ним - было два цикла, а с отбором я никогда не работал, так подробно. | |||
| 41
    
        Torquader 03.02.14✎ 20:54 | 
        +
 Просто я написал алгоритм, прогнал его на тесте и посмотрел, что он находит нужную проводку и пропускает остальные - дальше не копал. Между прочим, у кого-то полоска опыта больше, так что вопросов должно быть меньше. | |||
| 42
    
        Torquader 03.02.14✎ 20:58 | 
        +
 Просто попытка сделать через БухгалтерскиеИтоги явно напорется на камни, так как итоги они по своей сути содержат только итоговые. | |||
| 43
    
        Torquader 03.02.14✎ 21:06 | 
        Так что попробуй без второго цикла вообще и расскажешь, что там получилось.
 Выборка, то, по идее, будет идти по журналу проводок - мне только интересно, если у одной операции две проводки попадают под нужные характеристики - она два раза попадёт или как - сегодня на тестовой проверю. P.S. просто, проводки созданы не только для того, чтобы бухи пялились в окно проводок и чувствовали себя как дома. | |||
| 44
    
        Torquader 04.02.14✎ 01:03 | 
        В общем так.
 Если хочется выбирать операции, то мы выполняем цикл по операциям (через получить операцию), но тогда мы не видим несколько проводок в одной операции. Если же мы хотим видеть только проводки, то выполняем цикл через ПолучитьПроводку() причём не вложенный, а один. Тогда мы получаем все проводки, удовлетворяющие нашему запросу, даже если их несколько в одной операции. Опер=СоздатьОбъект("Операция"); лспр1=СоздатьОбъект("Справочник.Спр1"); лспр1.НайтиПоКоду(1); Опер.ИспользоватьСубконто("Спр1",лспр1.ТекущийЭлемент()); Опер.ВыбратьОперацииСПроводками('01.01.14',ТекущаяДата(),СчетПоКоду("111"),СчетПоКоду("222"),3); //Пока Опер.ПолучитьОперацию()=1 Цикл //Сообщить("Вот что нашли:"+Строка(Опер.Документ)); Пока Опер.ПолучитьПроводку()=1 Цикл Сообщить("Проводка:"+Строка(Опер.Кредит.Счет)+"=>"+Строка(Опер.Дебет.Счет)+" Документ:"+Строка(Опер.Документ)+" Операция:"+Строка(Опер.ДатаОперации)); КонецЦикла; //КонецЦикла; Вот так прекрасно работает. Удачи. | |||
| 45
    
        DES 04.02.14✎ 21:06 | 
        спс, щас попробую     | |||
| 46
    
        DES 04.02.14✎ 23:24 | 
        да, похоже что так то что нужно.     | |||
| 47
    
        Torquader 04.02.14✎ 23:44 | 
        Там получается, что один и тот же объект используется для поиска проводок и операций, а дальше, что мы следующее хотим получить, ту функцию и вызываем.
 Причём, через проводки честно выбирало две одинаковых проводки в одной операции. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |