7.7 Рег.ВыборДвиженяДокумента не верно

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем ZEMA, 18 фев 2010.

  1. TopicStarter Overlay
    ZEMA
    Offline

    ZEMA Опытный в 1С

    Регистрация:
    5 окт 2007
    Сообщения:
    231
    Симпатии:
    0
    Баллы:
    26
    При формировании отчета по задолженности в базе Торговля и Склад идет обращение к глобальной функции, в которой я пытаюсь произвести подсчет и нахождение просрочки. При обращении к регистру, а именно к функции ВыборДвиженияДокумента происходит за 1 цикл перебор всех подчиненных, но это не правильно. Подскажите что не так((((
    Код:
    Функция КонтрольПросрочки(Док,Кэшировать, Клиент, ДатаКонца) Экспорт;
    ДатаКон = ДатаКонца;
    Если Док.Вид()="Расходная" Тогда
    Отсрочка = ОтсрочкаПоДок(Док);
    ДнейВ=Док.ДнейвПути;
    Иначе
    Отсрочка = 0;
    КонецЕсли;
    
    Если Док.ДатаДок+Отсрочка+ДнейВ > РабочаяДата() Тогда
    ПросроченнаяСумма=0;
    Возврат "";
    КонецЕсли;
    
    Если Кэшировать=0 Тогда
    ПросроченнаяСумма=0;
    Копим=1;
    пер=0;    
    ПоследняяОплата=Дата("01.01.2004");
    ПросроченнаяСумма=Док.Итог("СуммаВсего");
    Состояние("Расчет "+Док.Вид()+" "+Док.НомерДок+" от "+Док.ДатаДок);
    Рег = СоздатьОбъект("Регистр.Деньги");
    Рег.УстановитьФильтр(Клиент);   
    Рег.ВременныйРасчет(1);
    РассчитатьРегистрыНа(ДатаКонца); 
    Сальдо=Рег.СводныйОстаток(Клиент,,,"Сумма");
    
    Док1=СоздатьОбъект("Документ");  
    Докум=Док.ДокументОснование;
    Док1.ВыбратьПодчиненныеДокументы(,, Докум); 
    Пока Док1.ПолучитьДокумент()=1 Цикл  
    Копим=1;    
    Рег.ВыбратьДвиженияДокумента(Док1.ТекущийДокумент());//======ВОТ ЗДЕСЬ НЕ ВЕРНО
    Пока Рег.ПолучитьДвижение() > 0 Цикл 
    пер=Рег.Сумма;
    Если Рег.ТекущийДокумент() = Док1.ТекущийДокумент() Тогда
    Копим=0; 
    КонецЕсли;
    Если Рег.Приход=1 тогда// банковская  
    Если   Копим=0 тогда
    ПоследняяОплата=Рег.ТекущийДокумент().ДатаДок;
    Сальдо = Сальдо + Рег.Сумма;
    Если  (Сальдо<0)  Тогда
    ПросроченнаяСумма = ПросроченнаяСумма - ПЕР;    
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;    
    Если Рег.Расход=1 Тогда
    Если Копим=0 Тогда
    Сальдо = Сальдо - ПЕР;  
    КонецЕсли;
    КонецЕсли;
    Если (Копим=0) и (Сальдо>0)  Тогда // оплачиваем этот док-т    
    ПросроченнаяСумма = ПросроченнаяСумма - Сальдо;
    Если ПросроченнаяСумма<=0 Тогда
    ПросроченнаяСумма=0;
    Возврат Строка(ПоследняяОплата);
    Иначе
    Сальдо=0;
    КонецЕсли;
    КонецЕсли; 
    КонецЦикла; 
    КонецЦикла;
    
    
  2. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Не так построено предложение... Лично я его раз восемь перечитал, так и не понял - чего надо подсказать.....

Поделиться этой страницей