gifts2017

Поиск должников

Опубликовал Евгения Малашкевич (Evgenia060882) в раздел Отчеты - Управленческие

Ищем должников, сортируем долги по срокам задолженности

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Дебиторка
.1238449210 48,00Kb
25.09.09
459
.1238449210 48,00Kb 459 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сhe Burashka (CheBurator) 31.03.09 02:00
Внимание! Обработка запаролена. Беглый анализ исходного кода показывает, что решение - очень частное и должно использоваться с большой осторожностью.
2. Евгения Малашкевич (Evgenia060882) 31.03.09 02:27
запаролена....да .... хочется так.
а решение пробывано на многих))
3. Igоr Sаulеviсh (gutentag) 31.03.09 12:53
ИМХО интересно посмотреть не только должников по дебету по 62сч, но и дебеторов/кредиторов по другим счетам
4. Евгения Малашкевич (Evgenia060882) 31.03.09 16:15
а по каким?
как то другие не спрашивали(
5. Сhe Burashka (CheBurator) 31.03.09 16:22
(2) ну видать ваши "многие" учет по многим направлениям ведут "котловым" методом. По договору - развернуть нельяз...
6. Сhe Burashka (CheBurator) 31.03.09 16:22
76 счет отсутсвует как класс...
7. Александр Рытов (Арчибальд) 31.03.09 16:25
8. ninak (ninaK) 01.04.09 09:15
В отчете присутствует ОШИБКА. Рассмотрим случай: У контрагента Дт задолженность с 2007 г. Оплаты нет. И в октябре 2008 г. задолженность увеличивается. Вопрос: Почему вся задолженность считается как СВЫШЕ МЕСЯЦЕВ?
9. ninak (ninaK) 01.04.09 09:17
Повторяю. т.к. цифра двеннадцать куда-то исчезла.Свыше двенадцати месяцев.
10. Z-z-z (ZLENKO) 01.04.09 09:47
11. Z-z-z (ZLENKO) 01.04.09 10:12
12. Евгения Малашкевич (Evgenia060882) 01.04.09 13:55
13. ninak (ninaK) 02.04.09 01:26
А во всем остальном - удобный отчет. Сообщите, когда переделаете и обновите.
У вас не работает режим( вообще его нет):"сортировать по клиентам". Может в этом и заключается ошибка.
14. Alex Mal (alexmal) 04.08.09 18:55
І шо тут паролити?
// Определение возраста задолжности по контрагенту
// Тип = 1 - по деебту
// Тип <> 1 - по кредиту
Процедура ПолучитьВозраст(Тип, Ит, СуммаЗадолженности, ДатаЗадолженности)
// ТЗ будет содержать суммы и даты возникновения положительных
// (если можно так сказать) задолженностей
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Дата", "Дата");
ТЗ.НоваяКолонка("Сумма", "Число");

// тут у нас нарастающее сальдо (дебетовое или кредитовое, в зависимости
// от реквищита "тип"), хотя нарастать оно будет только вниз
// положительные суммы будут заноститься в ТЗ
ъСумма = СуммаЗадолженности;
Если ъСумма > 0 Тогда
// если задолженность уже была, то датой её возникновения
// установим начальную дату бух итогов - 1
ТЗ.НоваяСтрока();
ТЗ.Дата = Ит.НачДата - 1;
ТЗ.Сумма = ъСумма;
ъСумма = 0;
КонецЕсли;

Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
// перебираем все операции по текущему контрагенту
Опер = Ит.Операция;


// корректируем наше "нарастающее" сальдо
ъСумма = ъСумма + ?(Тип = 1, Ит.ДО() - Ит.КО(), Ит.КО() - Ит.ДО());

Если ъСумма > 0 Тогда
// если операция ведёт к увеличению задолжности
// то добавляем новую строку в ТЗ
ТЗ.НоваяСтрока();
ТЗ.Дата = Ит.Операция.ДатаОперации;
Сообщить(ТЗ.Дата);
ТЗ.Сумма = ъСумма;
ъСумма = 0;
ИначеЕсли ъСумма < 0 Тогда
// если задолженность уменьшается, то "закрываем" ранние
// операции приведшие к этой самой задолжености (если они конечно имеются)
ку = 1;
Пока ку <= ТЗ.КоличествоСтрок() Цикл
ТЗ.ПолучитьСтрокуПоНомеру(ку);
Если ТЗ.Сумма <= -ъСумма Тогда
ъСумма = ъСумма + ТЗ.Сумма;
ТЗ.УдалитьСтроку(ку);
Продолжить;
Иначе
ТЗ.Сумма = ТЗ.Сумма + ъСумма;
ъСумма = 0;
Прервать;
КонецЕсли;
ку = ку + 1;
КонецЦикла;
КонецЕсли;
КонецЦикла;

ДатаЗадолженности = Дата(0);
Если ъСумма < 0 Тогда
// если наше нарастающее сальдо отрицательное, то значит никакой
// задолженности и небыло
СуммаЗадолженности = ъСумма;
Иначе
// иначе за дату возникновения задолжености берём дату самой
// первой операции
СуммаЗадолженности = ТЗ.Итог("Сумма");
Если ТЗ.КоличествоСтрок() > 0 Тогда
ТЗ.ПолучитьСтрокуПоНомеру(1);
ДатаЗадолженности = ТЗ.Дата;
КонецЕсли;
КонецЕсли;
КонецПроцедуры //ПолучитьВозраст
//__________________________________________________________­___________________

//*******************************************
Процедура Сформировать()
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Контрагент");
ТЗ.НоваяКолонка("Сумма","Число");
ТЗ.НоваяКолонка("Дат");
ТЗ.НоваяКолонка("Срок","Число");

ТЗ1=СоздатьОбъект("ТаблицаЗначений");
ТЗ1.НоваяКолонка("Контрагент");
ТЗ1.НоваяКолонка("Сумма","Число");
ТЗ1.НоваяКолонка("Дат");
ТЗ1.НоваяКолонка("Срок","Число");
Предел1=ДобавитьМесяц(ВыбДата,-1);
Предел2=ДобавитьМесяц(ВыбДата,-3);
Предел3=ДобавитьМесяц(ВыбДата,-12);
Предел =ДобавитьМесяц(ВыбДата,-24);
Ит=СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,,1);
Ит.ВыполнитьЗапрос(Предел, ВыбДата, "62",,,, "Операция", "С");

Ит.ВыбратьСубконто(1);
ИтСум=0;
Пока Ит.ПолучитьСубконто(1)=1 Цикл
СумКл=Ит.СКД()-Ит.СКК();
Если СумКл<=0 Тогда
Продолжить;
КонецЕсли;
//ИтСум=ИтСум+СумКл;
СуммаЗадолженности = СумКл - (Ит.ДО() - Ит.КО());
ДатаЗадолженности = Дата(0);

// расчитываем дату возникновения задолжности
ПолучитьВозраст(1, Ит, СуммаЗадолженности, ДатаЗадолженности);

// Сумма будет содержать возрат задолженности
Сумма = ДатаЗадолженности;
//Сообщить(ДатаЗадолженности);

ТЗ1.НоваяСтрока();
ТЗ1.Контрагент = ИТ.Субконто(1);
ТЗ1.Сумма = СуммаЗадолженности;
ТЗ1.Дат=ДатаЗадолженности;
Если ПустоеЗначение(Сумма)=0 Тогда
Если Сумма>=Предел1 Тогда
ТЗ1.Срок=1;
ИначеЕсли Сумма>=Предел2 Тогда
ТЗ1.Срок=3;
ИначеЕсли Сумма>=Предел3 Тогда
ТЗ1.Срок=12;
Иначе
ТЗ1.Срок=30;
КонецЕсли;

КонецЕсли;
КонецЦикла;
Таб=СоздатьОбъект("Таблица");
Таб.ВывестиСекцию("Шапка");
Сум=0;
ТЗ1.Сортировать("Срок-,Дат,Контрагент");
Срок=-1;
Сум=0;
ИтСум1=0;
ТЗ1.ВыбратьСтроки();
Пока ТЗ1.ПолучитьСтроку()=1 Цикл
Если Срок<>ТЗ1.Срок Тогда
Если Сум>0 Тогда
Если Срок=1 Тогда
СтрСрок="Меньше месяца";
ИначеЕсли Срок=3 Тогда
СтрСрок="от 1 до 3 месяцев";
ИначеЕсли Срок=12 Тогда
СтрСрок="от 3 до 12 месяцев";
Иначе
СтрСрок="Свыше 12 месяцев";
КонецЕсли;
ИтСум1=ИтСум1+Сум;
Таб.ВывестиСекцию("Итог");
КонецЕсли;
Срок=ТЗ1.Срок;
Сум=0;
КонецЕсли;
Сум=Сум+ТЗ1.Сумма;
Если ТЗ1.Срок=1 Тогда
Секц="Строка1";
ИначеЕсли ТЗ1.Срок=3 Тогда
Секц="Строка2";
ИначеЕсли ТЗ1.Срок=12 тогда
Секц="Строка3";
Иначе
Секц="Строка4";
КонецЕсли;
Таб.ВывестиСекцию(Секц);
КонецЦикла;
Если Сум>0 Тогда
Если Срок=1 Тогда
СтрСрок="Меньше месяца";
ИначеЕсли Срок=3 Тогда
СтрСрок="от 1 до 3 месяцев";
ИначеЕсли Срок=12 Тогда
СтрСрок="от 3 до 12 месяцев";
ИначеЕсли Срок=0 Тогда
СтрСрок="дата в договоре не установлена";
Иначе
СтрСрок="Свыше 12 месяцев";
КонецЕсли;
ИтСум1=ИтСум1+Сум;
Таб.ВывестиСекцию("Итог");
КонецЕсли;


//Сообщить("Общая сумма по долгам покупателей "+ИтСум);
//Сообщить("Общая сумма по отчету "+ИтСум1);
Таб.ВывестиСекцию("Ит");
Таб.ТолькоПросмотр(1);
Таб.Показать();
КонецПроцедуры
ВыбДата=РабочаяДата();
Лучше смотрите от Димыча
http://infostart.ru/projects/4412/
15. Сергей Запольский (shtorm512) 20.12.09 13:01
НЕ могли бы вы поделиться паролем от своей разработки. Уж очень хочется на код посмотреть!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа