Имя: Пароль:
1C
1C 7.7
v7: Просроченные дни Реализации (ТиС)
Ø (andrewks 14.11.2011 11:46)
,
0 FREEEEs
 
14.11.11
06:11
Всем привет..

Нужна помощь! Т.к. сам уже не могу сделать, перепробовал много вариантов.

Конфигурация ТиС.

Суть в том, что нужно сделать отчёт, который за данный период, грубо говоря с 01.06.11 по 30.06.11, берёт документы Реализация и проверят их на: Оплачен ли документ полностью и не позже ли даты оплаты (реквизит ДатаОплаты).

Таких регистров как Долг и т.д. нету в природе.

Все движения идут по регистру Покупатели.

Когда мы проводим документ Реализация в регистре «покупатели» идёт движение расхода на n сумму.

Когда мы проводим документ «Выписка банка приход», в регистре «покупатели» идёт движение прихода на n сумму.

Реализация и Выписка банка приход вообще не как не взаимосвязаны (((

Может быть такая ситуация, что сначала пришли деньги, или они уже были, а потом сделали Реализацию.

Или один документ Реализация был оплачен с 3 документов Выписка банка приход.

----

Ну подскажите как делать (( Вишу на одном заказе.
1 titan_aleks
 
14.11.11
06:46
Делал так: Весь приход/расход денег в одну кучу, а потом отнимал от этого реализации. Как только деньги кончались, проверял на дату оплаты. Если дата оплаты меньше расчетной даты - то документ просрочен. Если же будешь привязывать реализацию к конкретной оплате - то не взлетит.
2 FREEEEs
 
14.11.11
06:56
А как ты делал "Весь приход/расход денег в одну кучу, а потом отнимал от этого реализации" ?

Через Рег.ВыбратьДвижения(,); ??

Если можно примерный код.
3 miki
 
14.11.11
06:57
(1)Закат Солнца вручную? а если "в одной куче" доки за годы?
(0)В ТиС всё есть. Кури регистр "Покупатели" - там есть измерение "КредДокумент" - можешь с него доставать (если по нему есть остаток) свою ДатуОплаты.
4 FREEEEs
 
14.11.11
06:57
Или через запрос "Функция = Приход(Сумма)"
5 FREEEEs
 
14.11.11
06:59
miki я в курсе обо всём что там есть.

Скажи подробнее, не могу уловить мысль «можешь с него доставать (если по нему есть остаток) свою ДатуОплаты.»
6 miki
 
14.11.11
07:00
(5)Имея док - можешь получить любой его реквизит.
7 FREEEEs
 
14.11.11
07:03
Да причём тут это.

Суть отчёта вывести документы Реализация которые не были оплачены, или которые были просрочены.

Понять что он был просрочен не сложно.

А вот как понять был ли он оплачен или на сколько.

Ты скажи как сделать запрос к регистру Покупатели, что бы он вернул нужные данные то.
8 povar
 
14.11.11
07:05
а шо, ведомостьПоКонтрагентам не устраивает ?
9 titan_aleks
 
14.11.11
07:06
|Док = Регистр.Покупатели.ТекущийДокумент,Регистр.Поставщики.ТекущийДокумент;
   |СуммаРуб = Регистр.Покупатели.СуммаРуб,Регистр.Поставщики.СуммаРуб;
   |Контрагенты = Регистр.Покупатели.Договор.Владелец,Регистр.Поставщики.Договор.Владелец;
   |Функция СуммаРубНачОст = НачОст(СуммаРуб);
   |Функция СуммаРубКонОст = КонОст(СуммаРуб);
   |Функция СуммаРубПриход = Приход(СуммаРуб);
   |Функция СуммаРубРасход = Расход(СуммаРуб);
10 miki
 
14.11.11
07:07
(7)Остаток регистра "Покупатели" по измерению "КредДокумент" - суть долг клиента по этому "КредДокумент". Нет остака - нет долга. Отрицательный долг - аванс.

Если этого не можешь осознать - меняй профессию.
11 FREEEEs
 
14.11.11
07:29
Да видимо придётся менять профессию, т.к. Рег.Остаток(,,,,ДокРеа, "СуммаРуб") возвращает всегда нули.
12 Mikeware
 
14.11.11
07:34
(3) Если последовательность - в опе (а у ТС так и есть с вероятностью 99.9%), то только перебором. Получать общий долг, выбирать в обратном порядке образующие долг документы на сумму долга, и смотреть по каждому из них плановую дату оплаты...
13 FREEEEs
 
14.11.11
07:36
А через Рег.СводныйОстаток(,,,,ДокРеа.ТекущийДокумент(),"СуммаРуб")  ?
Как в посте 10.

Вроде возвращает что то толковое. ??
14 Mikeware
 
14.11.11
07:48
(13) СП украли?
15 FREEEEs
 
14.11.11
07:50
Что значит СП ?
16 FREEEEs
 
14.11.11
07:53
И ещё в (10) посту, остаток будет только у тех док. у которых долг верно? А у тех которых нет долго но просрочка оплаты, он их не выведет?
17 miki
 
14.11.11
08:15
(12)Я вообще стараюсь сразу заворачивать людей, если у них ГП<>ТА... От бардака в учете алгоритма пока нет.

(16)какая просрочка, если нет долга? Что они просрочили?
Можешь выбрать все доки за период и каждый проанализировать на долг.
Тем более, если в (12) правда...
18 FREEEEs
 
14.11.11
08:23
Имел ввиду просрочка даты оплаты!
То есть в доке указана ДО какой даты оплатить, они оплатили, теперь нужно понять что оплатили вовремя.

Ну я щас сделал так.

Док = СоздатьОбъект("Документ.Реализация");
Док.УстановитьФильтр(1,0);
Док.ВыбратьДокументы(фОт,фПо);

Рег = СоздатьОбъект("Регистр.Покупатели");

Пока Док.ПолучитьДокумент() = 1 Цикл  

// Тут мы получаем остаток всех документов (долговато правда, ну лан)
Остаток = Рег.СводныйОстаток(,,,,Док.ТекущийДокумент(),"СуммаРуб");

// Если у нас Остаток = 0 (то есть оплатили), как узнать КОНЕЧНУЮ дату оплаты, что бы уже сравнить с начальной

КонецЦикла;
19 miki
 
14.11.11
08:24
>>нужно понять что оплатили вовремя.

Чисто спортивный интерес: зачем? премию выпишите?
20 FREEEEs
 
14.11.11
08:28
Эмм как зачем?
Я прото наёмник из франчайзи.

Заказчик сделал мне заказ отчёта.

Что бы он мог видеть СКОЛЬКО дней просрочили и за эти дни прибавлять деньгу.
21 Фокусник
 
14.11.11
08:37
(20) >за эти дни прибавлять деньгу
Пеню что-ли? А заказчик в курсе, что пеню он может взыскать только через суд? :)
22 miki
 
14.11.11
08:39
(20)про просрочку понятно, мне показалось, что ты хочешь ещё и тех, кто платит вовремя...

>>(долговато правда, ну лан)
В 1С есть фильтры и запросы (разных видов и цветов)...
23 FREEEEs
 
14.11.11
08:44
Ну так есь идея ? Как улучшить (18) или вообще по другому пути
24 ildary
 
14.11.11
09:03
(22) так ведь фильтры и запросы для программистов, это понимать надо.
25 Mikeware
 
14.11.11
09:10
ты еще и франч??? зачетно!!!
26 ArtKzn
 
14.11.11
09:39
(23) сделай вычисление в два этапа: сначала остаток по состоянию на конечную дату, здесь ты вытащишь неоплаченные документы. А потом перебери оплаты за период, и посмотри какие документы закрываются. Здесь ты вытащишь оплаченные с просрочкой. Будет работать точно быстрее (18).
27 ArtKzn
 
14.11.11
09:42
А про прибавлять деньгу за уже оплаченные доккменты– заказчик действительно хочет странного. Или ты его неправильно понял.
28 FREEEEs
 
14.11.11
11:15
(26) мда... набор слов.

Кодом можно закрепить?

И мне оч. интересно как это будет быстрее (18), теории не более
29 Mikeware
 
14.11.11
11:25
(28) Если для тебя это "набор слов" - может, действительно, озвучить название франча? чтоб люди не "попадали"...
32 Mikeware
 
14.11.11
11:29
(31) Тебе, решение дано в (12), почти 4 часа назад. Думай.
33 ArtKzn
 
14.11.11
11:33
(28)
>как это будет быстрее
Почитай на старых ИТСках (а может и на новых есть) для 77, почему не рекомендуется использовать метод СводныйОстаток() с пропуском первых измерений.

>набор слов
Действительно совсем ничего не понятно?
В этом случае кодом можно закрепить только за деньги.
36 Ёпрст
 
14.11.11
11:46
Какой-то обиженный Мишка.
Не может подумать немножко над ответами.
Как там говорится то ?
-Вон из профессии!
37 andrewks
 
14.11.11
11:46
тема закрыта
Закон Брукера: Даже маленькая практика стоит большой теории.