7.7 Контроль задолжности покупателя

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

  1. TopicStarter Overlay
    dimyanik
    Offline

    dimyanik

    Регистрация:
    30 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток, подскажите пожалуйста как малой кровью сделать так, чтобы при превешении глубины кредита товар покупателю не оптускался. Конфигурация - комплексная 460.
    В справочники контрагенты есть "глубина кредита" и "сумма кредита"
    Заранее спасибо!
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Все заложено уже внутри конфигурации - внимательно посмотри константы и включи контроль....
  3. TopicStarter Overlay
    dimyanik
    Offline

    dimyanik

    Регистрация:
    30 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Я смотрю в модуле реализации и что-то найти не могу, можно конкретнее, пожалуйста...
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    В модуле реализации наверняка есть обращения к ГЛОБАЛЬНОМУ МОДУЛЮ))))))))
  5. TopicStarter Overlay
    dimyanik
    Offline

    dimyanik

    Регистрация:
    30 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    В глобальном модуле черт ногу сломит! Я попробовал через запрос, он выполняется, но группировка не идет!
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    О каком запросе речь? Ты спрашивал про включение контроля! Не помню точно ка она звучит (нет конфы под рукой), но посмотри константы - там есть что-то типа "не контролировать кредит"
  7. TopicStarter Overlay
    dimyanik
    Offline

    dimyanik

    Регистрация:
    30 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Есть такое в форме договора с контрагентом, но проведение не запрещается =(
  8. Vlad
    Offline

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

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Либо в договоре контрагента стоит галка "не контролировать", либо в полномочиях пользователя стоит галка "разрешить превышение кредита". Какой нах глобальный??? Нечего туда лезть из-за этой ерунды.
  9. TopicStarter Overlay
    dimyanik
    Offline

    dimyanik

    Регистрация:
    30 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Это да, но мне надо так:
    Если клиент не оплатил СФ в срок который установлен в договоре (например: 21 день), то на него больше не должны проводиться СФ (в данном случае - реализация). Даже если сумма кредита не превышена. Способ который сказали вы отказывает в проведении если сумма кредита превышена, на просрочку оплат он не смотрит!..
  10. TopicStarter Overlay
    dimyanik
    Offline

    dimyanik

    Регистрация:
    30 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Код:
    Функция СформироватьРеестр()
    
    Перем Запрос, ТекстЗапроса;   
    
    ВыбКонтрагент = Контрагент;
    ВыбЮрЛицо = Фирма;
    ДатаКонца = ТекущаяДата();
    Если ВыбЮрЛицо.Выбран()=0 Тогда
    Предупреждение("Не выбрано юридическое лицо!",60);
    КонецЕсли;
    
    
    Реализация = "Реализация";
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "Период с ДатаКонца по ДатаКонца;Фирма= Регистр.Покупатели.Фирма,
    |Регистр.Поставщики.Фирма;
    |УпрАналитика= Регистр.Покупатели.Фирма.УпрАналитика,Регистр.Поставщики.Фирма.УпрАналитика;
    |ЮрЛицо= Регистр.Покупатели.Фирма.ЮрЛицо,Регистр.Поставщики.Фирма.ЮрЛицо;
    |Контрагент1= Регистр.Покупатели.Договор.Владелец,Регистр.Поставщики.Договор.Владелец;
    |СвойствоКонтр= Регистр.Покупатели.Договор.Владелец.ОсновноеСвойство.ЗначениеСвойства,
    |Регистр.Поставщики.Договор.Владелец.ОсновноеСвойство.ЗначениеСвойства;
    |Договор= Регистр.Покупатели.Договор,Регистр.Поставщики.Договор;
    |КодОперации= Регистр.Покупатели.КодОперации,Регистр.Поставщики.КодОперации;
    |ВидДолга= Регистр.Покупатели.ВидДолга,Регистр.Поставщики.ВидДолга;
    |КредДокумент= Регистр.Покупатели.КредДокумент,Регистр.Поставщики.КредДокумент;
    |СуммаВ= Регистр.Покупатели.СуммаВал,Регистр.Поставщики.СуммаВал;
    |ДатаДок = Регистр.Покупатели.КредДокумент.ДатаДок,Регистр.Поставщики.КредДокумент.ДатаДок;
    |СрокКредита = Регистр.Покупатели.Договор.ГлубинаКредита,Регистр.Поставщики.Договор.ГлубинаКредита;
    |Сумма= Регистр.Покупатели.СуммаРуб,Регистр.Поставщики.СуммаРуб; 
    |Функция КонОст = КонОст(Сумма);
    |Условие (Фирма.ЮрЛицо = ВыбЮрЛицо);          
    |Условие (КредДокумент.Вид() = Реализация); 
    |Условие (Контрагент1 = ВыбКонтрагент);
    |Группировка Контрагент1 без групп;
    |Группировка КредДокумент;   
    |Функция ДельтаПриход = Приход(Сумма)Когда((КодОперации = глКО.ЗачтенАвансПоставщику) или
    |(КодОперации = глКО.ЗачтенАвансПокупателя) или (КодОперации = глКО.СторнированАванс) 
    |или (КодОперации = глКО.ЗачтенВозвратПокупателя) или (КодОперации = глКО.СторнированВозврат) 
    |или (КодОперации = глКО.ЗачтенВозвратПоставщику)  или (КодОперации = глКО.ЗачтенАвансПоставщикуВал));
    |Функция ДельтаРасход = Расход(Сумма)Когда((КодОперации = глКО.ЗачтенАвансПоставщику) 
    |       или (КодОперации = глКО.ЗачтенАвансПокупателя) или (КодОперации = глКО.СторнированАванс) 
    |       или (КодОперации = глКО.ЗачтенВозвратПокупателя) или (КодОперации = глКО.СторнированВозврат) 
    |	    или (КодОперации = глКО.ЗачтенВозвратПоставщику) или(КодОперации = глКО.ЗачтенАвансПоставщикуВал));
    |Функция ДельтаПриходВ = Приход(СуммаВ)Когда((КодОперации = глКО.ЗачтенАвансПоставщику)
    |       или (КодОперации = глКО.ЗачтенАвансПокупателя) или (КодОперации= глКО.СторнированАванс)
    |	    или (КодОперации = глКО.ЗачтенВозвратПокупателя) или (КодОперации = глКО.СторнированВозврат)
    |	    или (КодОперации = глКО.ЗачтенВозвратПоставщику) или (КодОперации = глКО.ЗачтенАвансПоставщикуВал));
    |Функция ДельтаРасходВ = Расход(СуммаВ)Когда((КодОперации = глКО.ЗачтенАвансПоставщику) 
    |       или (КодОперации = глКО.ЗачтенАвансПокупателя) или (КодОперации = глКО.СторнированАванс) 
    |	    или(КодОперации = глКО.ЗачтенВозвратПокупателя) или (КодОперации = глКО.СторнированВозврат)
    |	    или (КодОперации = глКО.ЗачтенВозвратПоставщику) или (КодОперации = глКО.ЗачтенАвансПоставщикуВал));" ;                     
    
    //Загол="";
    //
    //НетОш = 1; // нет ошибок при наложении фильтров
    //НетОш = НетОш * глФильтрПоПеременнойЗапроса(, "ЮрЛицо",ВыбЮрЛицо,"ВыбЮрЛицо",ТекстЗапроса,Загол);
    //
    //Если НетОш = 0 Тогда
    //КонецЕсли;
    
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    КонецЕсли;
    
    глЧислоСтрок  = 0;
    
    глОживить(1);
    
    ИтогоТек = 0;
    ИтогоПросрочено = 0;
    Ном = 0;
    Пока Запрос.Группировка("Контрагент1") = 1 Цикл 
    Покупатель = Запрос.Контрагент1;
    Задолженность = Запрос.КонОст; 
    Если (Задолженность<=0) Тогда
    Продолжить;
    КонецЕсли;
    ПросроченнаяЗадолженностьП = 0; 
    ЗадолженностьП = 0;
    Пока Запрос.Группировка("КредДокумент") = 1 Цикл
    
    КредДокумент   = Запрос.КредДокумент;   
    Если КредДокумент.Вид() <> "Реализация" Тогда
    Продолжить;
    КонецЕсли;
    Задолженность = 0;
    ПросроченнаяЗадолженность = 0;
    СрокКредита = КредДокумент.Договор.ГлубинаКредита;
    ЧислоДней = ТекущаяДата() - (КредДокумент.ДатаДок + СрокКредита);  
    ДатаОплаты = КредДокумент.ДатаДок + СрокКредита;
    Если ЧислоДней <= 0 Тогда
    ЧислоДней = 0; 
    Задолженность = Запрос.КонОст;   
    ИтогоТек = ИтогоТек + Задолженность; 
    ЗадолженностьП = ЗадолженностьП + Задолженность;
    Иначе
    ПросроченнаяЗадолженность = Запрос.КонОст; 
    ИтогоПросрочено = ИтогоПросрочено + ПросроченнаяЗадолженность; 
    ПросроченнаяЗадолженностьП = ПросроченнаяЗадолженностьП + ПросроченнаяЗадолженность;
    КонецЕсли;
    Ном = Ном+1;  
    ДокПоставки = КредДокумент;
    Возврат ПросроченнаяЗадолженностьП;
    Сообщить(ПросроченнаяЗадолженностьП,);
    КонецЦикла;	
    Если (ПросроченнаяЗадолженностьП>0)ИЛИ (ЗадолженностьП>0) Тогда
    КонецЕсли;
    КонецЦикла;
    
    глОживить(1);
    
    КонецФункции 
    
    
    Вот какой запрс я использую, взял его из внешнего отчета, где он прекрасно работает, а тут группировка ни в какую не идет :unsure:
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    На вскидку ты берешь Для вычисления ЧислоДней ТекущуюДату(). Логичнее было бы брать ДатаДок (документ не обязательно ведь выписан сегодня)
  12. Vlad
    Offline

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

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Есть реквизит Срок кредита. Попробуй его использовать.
  13. TopicStarter Overlay
    dimyanik
    Offline

    dimyanik

    Регистрация:
    30 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Срок кредита у меня используется он берется из запроса (КредДокумент.Договор.ГлубинаКредита).
    Теперь про ДатуДокумента в ЧислоДней, ЧислоДней - это просрочка оплаты, которая считается из даты оплаты по договору и сегодняшней даты!
    Но вопрос в том, что запрос выполняется не правильно, группировка не идет!!! :unsure:
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Группировок в запросе две - КАКАЯ?
  15. TopicStarter Overlay
    dimyanik
    Offline

    dimyanik

    Регистрация:
    30 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Ни одна, ни другая... контрагент1 и кредитный документ =(
  16. TopicStarter Overlay
    dimyanik
    Offline

    dimyanik

    Регистрация:
    30 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Мыслей нет ни у кого? =(

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