Имя: Пароль:
1C
1C 7.7
v7: Возврат от покупателя по дате оплаты
,
0 Slypower
 
29.06.15
13:06
Добрый день, местные Гуру. Скажите, как сделать Возврат от покупателя по дате оплаты, а не по дате документа, как это реализовано в 1с. Нужно копать в самом модуле документа или же в процедуре гл.СписаниеПартийТМЦ?
На просторах интернета искал, ничего не нашел. Для процедуры глДвижениеДолгов нашел, изменил, работает. Но она для случая:

Если (КодОперации=Перечисление.КодыОпераций.ВозвратОтПокупателя)
или (КодОперации=Перечисление.КодыОпераций.ВозвратОтПокупателяЕНВД)

А если это другой документ Реализация, в котором Код операции - другой, то идет обработка документов через
            Регистр.ПартииНаличие.ДвижениеПриходВыполнить();

И вот тут я не соображу как сделать по дате оплаты
1 ДенисЧ
 
29.06.15
13:12
в 77 дата документа == дате движения.
2 Slypower
 
29.06.15
14:16
(1) Интересная загадка... Это пояснение на работу 1с 7.7? А вывод какой, что ничего не сделать?
3 Злопчинский
 
29.06.15
18:47
(2) йопт! в 7.7 движения по регистрам и проводкма всегда соответствуют документы-регистратору. Хочешь сделать проводки не датой документа (пля! что в твоем понимании дата документа? - дата подписи на документе возврата?), а датой оплаты (бред конечно, ибо возврат - это товародвижение и прием-передача обязательств по суммам возврата, а оплата - это движение денег и непосредственно не обязана оплата быть связана с жестко с самим возвратом день в день) - оформляй сам документ-регистратор НУЖНОЙ ТЕБЕ ДАТОЙ.
4 Slypower
 
30.06.15
09:17
сейчас я немного буду противоречить (0) посту, т.к. посмотрел внимательней.
Честно, не моя прихоть, чтобы так работало, а начальства.
Есть, например, два документа:
Документ1 создан 21.06.2015 и имеющий реквизита ДатаОплаты: 10.08.2015г.
Документ2 создан 22.06.2015 с ДатойОплаты: 06.08.2015г.
Дата оплаты - дата, до которой продавец должен погасить долги.
Так вот, нужно чтобы документ Возврат от покупателя списывал долг с Документа2, т.к. ДатаОплаты меньше чем у документа1,хотя дата создания больше.
Посмотрев внимательнее, это происходит через глДвижениеДолгов. Только не пойму, почему списывает по дате создания документа, ведь в процедуре глДвиженеиДолгов я изменил списывание  по дате оплаты как в http://catalog.mista.ru/public/175550/
Помогите разобраться
5 Рэйв
 
30.06.15
09:23
Заводи свое измерение с датой и по ней следи
6 Aleksey
 
30.06.15
09:34
(4) А если мы реально возвращаем товар по Документ1?
7 Slypower
 
30.06.15
11:25
(5) Вот я не могу понять, где эта слежка происходит
(6) Если по документ1, то там есть возможность: Основание документа) это задается тогда.
8 Злопчинский
 
30.06.15
14:12
(4) Еще один феерический дятел. Замучили в последнее время.
Погашение долгов ведется В РАМКАХ ДОГОВОРА по ФИФО.

Какого хрена вы документы с разными условиями оплаты - то есть отличающиеся ПО УСЛОВИЯМ ДОГОВОРА - запихнули в один договор?

В описанную ниже функцию вставь проверку что конт - это возвратотПокупателя и наложи дополнительный фильтр на измерение КредДокумент = Конт.Докоснование.  Но это может не помочь. Потому что твой документ продажи уже мог быть погашен давно в общем случае.

Возврат - вводить обязательно НА ОСНОВАНИИ СОТТВЕТСВУЮЩЕГО дока продажи


//******************************************************************************
// глФильтрДолгов(Конт, Договор, СписокПараметров, ВремВзаим)
//
// Параметры:
//  Конт             - контекст проводимого документа
//  Договор          - договор с контрагентом
//  СписокПараметров - список параметров проведения (Использ. "Фирма")
//  ВремВзаим        - Регистр.Покупатели или Регистр.Поставщики
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  Установка фильтра на регистр взаиморасчетов перед проведением и временным расчетом.
//  Если итоги не актуальны, выставляется флаг временного расчета.
//
Процедура глФильтрДолгов(Конт, Договор, СписокПараметров, ВремВзаим) Экспорт
    
    Фирма = СписокПараметров.Получить("Фирма");
    
    ВремВзаим.УстановитьЗначениеФильтра("Фирма",        Фирма,    1);
    ВремВзаим.УстановитьЗначениеФильтра("Договор",        Договор,1);
    
    Если Конт.ИтогиАктуальны()=0 Тогда
        ВремВзаим.ВременныйРасчет();
    КонецЕсли;                      
    
КонецПроцедуры // глФильтрДолгов()
9 Злопчинский
 
30.06.15
14:14
Поправка

"Какого хрена вы документы с разными условиями оплаты - то есть отличающиеся ПО УСЛОВИЯМ ДОГОВОРА - запихнули в один договор?"

читать как
"Какого хрена вы документы с разными условиями оплаты - то есть отличающиеся ПО УСЛОВИЯМ ДОГОВОРА - запихнули в один договор и при этом хотите печенюшек?
10 Злопчинский
 
30.06.15
14:15
для просветления и достижени яниваны читать http://catalog.mista.ru/public/175550/
.
админы включите уже эту ссылку в КЗ! ;-)
11 Slypower
 
30.06.15
15:30
(8) твой ник говорит за тебя. Зачем так  злится. Бесят дятлы - либо не обращай внимание на них. И, пожалуйста, читай внимательно, а не через строчку. в своем (4) посте я написал, что не лично мне это надо... и в КОНЦЕ поста я скинул ссылку ту, что ты кинул в (10) посте. По этой ссылке я сделал не для ЧАСТНОГО случая, что ты мне советуешь в (8), а для общего. Так какого хрена она снимает не по дате оплаты, я не могу понять. А что списание идет через регистры, так это ежу понятно. Возврат вводится на основании дока реализация, но списывает не так, как нам бы это хотелось
12 Злопчинский
 
30.06.15
16:50
(11) "и в КОНЦЕ поста я скинул ссылку ту, что ты кинул в (10) посте" - и при этом списывает все равно не так как надо?
1. криво написал
2. документ который ты хочешь "закрыть" - давно закрыт. Нельзя закрыть уже закрытый

Для проверки всегда используй ШТАТНУЮ типовую "Ведомость по конратгентам" - с группировками ОТ И ДО ФИРМА-ДОГОВОР-ВидДолга-Кредитный документ - и сразу станет все видно.
13 Злопчинский
 
30.06.15
16:50
(11) Было бы странно если бы ник был Доброп, а я бы злобстовал ;-)
14 Злопчинский
 
30.06.15
16:58
(11) Если не лично тебе это надо - какого ХЗ (Хочу Знать) - ты этим занимаешься?

Все что тебе надо делается штатно без изменений конфиги. Все доки, которые попада.т под одинаковые условия - относятся на один "Договор". Какой-то документ делается на острочку не 60 дней как все доки по договору, а на 45 - оформи его отдельным суб"Договором" - в справочнике договоров можно заводить папочки (договора!), а внутри папрочек - отдельные договора и сделки. И все будет показываться штатно.

Тот вариант, который описан по ссылке - это граната для обезъяны. Юо формирование движений и разноска на документы - является ВЫЧИСЛЯЕМЫМ ЗНАЧЕНИЕМ, а не фиксированным случаем. А у вас там вводят все подряд, задним числом, перепроведения, и разноска - все время будет плавать.

И да, если клиент по одному договору и по реализациям с разными условиями просит погасить не вон ту накладную а вот эту (хотя у них отсрочка одинаковая) - это значит клиент за ваш счет облегчает свою жизнь скорее всего - у него нескольо точек, реализации он покупает на точки и раплачивается за соотв.реализации выручучкой с соотв.точек. В таком случае рекомендуется завести отдельные договора на каждую "точку" клиента...

как-то вот так оно...

а дятлы - потому что тупопрограммеры. что сказали - то и запрограммим. тьфу, елы-палы
15 Slypower
 
30.06.15
17:44
(14) Я как те дятлы, нужно начальству - я исполнитель. Интересно, что если использовать док "Строка выписки банка", там тоже используется глДвижениеДолгов, то работает по дате документа. Если же этот гребаный документ не списывает с доков "Отчет комиссионера" по дате оплаты. Только еще к нему добавлен новый док - копия "Отчет комиссионера".
16 Злопчинский
 
30.06.15
18:08
(15) тут понимаешь в чем дело. есть прога. есть заложенная в нее архитектура, есть методика ведения учета. если учет вести вот "так", а данные хотеть "вот этак" - то это лиспед с квадратными колесами.
17 Злопчинский
 
30.06.15
18:09
(15) "что если использовать док "Строка выписки банка", там тоже используется глДвижениеДолгов, то работает по дате документа." - ну так по дате документа - это и есть фифо долгов - а тебе что надо?
18 Злопчинский
 
30.06.15
18:12
(15) блин, там работы подшаманить в этих процедурах- на час с перекурами неторопливо. Ты разберись сначала - нужные доки, которые ты расчитываешь"закрыть" - они ОТКРЫТЫ или что вполне возможно ЗАКРЫТЫ УЖЕ..?

хочешь - глянем совместно удаленно, у меня часик есть, замаялся ячето конфигу с нуля писать - кстати да - бухня хочет к велосипеду приделать квадратные колеа. и все. и никак. не кладется в нормальную вменяемую схему. вот сижу отдыхаю чай пияшу и думаю... то ли ордерную схему применить, то ли еще как-то
19 Slypower
 
01.07.15
09:22
(16) думали мы перейти на 8, но посмотрев какой мопед уже сделан с 7-кой, так стали дальше трансформировать ее в квадропер.
(17) Я уже оговариваюсь. "Строка выписки банка" списывает долги до дате оплаты.
(18) Я вечерами редко работаю, все в основное рабочее время. Спасибо за попытку помочь)
Наверное, зря я тут кипишую. Сперва детально изучу по отчету "Ведомость по контрагентам" все движения, потом буду понимать, может я вообще уперся как баран на новые ворота, а оказывается их нет
20 Slypower
 
01.07.15
12:09
Помоги, пожалуйста, еще с одной дилемой, давно она меня волнует, а тут уже подперла.
При создании Документа1 создается документ2. Вот код:

    Док.Новый();
    Док.ДатаДок=ДатаДок;
    Док.Контрагент=Клиент;
    Док.Валюта=Валюта;
    Док.Фирма=Фирма;  
    Док.Автор=Автор;
    Док.Записать();
    Док.Провести();

Так вот, при создании нового документа Док, все это создается и сохраняется, но только видимо, т.к. при проведении регистра проводки происходят не не по тому клиенту. Смысл в том, что в Документе1 контрагент, по нему и происходят движения. Реквизист Клиент - это ревизит в Документе1 для проводок в Документе2 (код выше). Но при сохранении документа1 и проводки, в Документе2 проводится по реквизиту Контрагент из документа1, а не клиент. Если пойти в документ2 и вручную выбрать Клиента и сохранить и провести этот документ, тогда все работает. Как бы своим словом: клиент в документе2 сохраняется наглядно, а не модально. Как это решить?
21 Злопчинский
 
01.07.15
13:11
(19) "Строка выписки банка" списывает долги до дате оплаты." - штатно выписка списывает долги по фифо. Но тут настаивать не буду - ибо либо у вас допилено, либо в свежих релизах это подшаманили чтобы списывала в первую очередь с дока основания (хотя сомневаюсь)
22 Злопчинский
 
01.07.15
13:13
(20) хз что там в вашей самописке понаписано. как написано - так и записывается/проводится
23 Slypower
 
01.07.15
13:19
(21) нет, это сделано по ссылке, где шаманится глДвижениеДолгрв
24 Slypower
 
01.07.15
13:29
(22) Тут не в допиле дело, а в 7-ке. Почему документ2 сохраняется и проводится без проверки на ошибки документа2? Если есть в модуле в процедуре ПриЗаписи() ошибка, он ее не видит
25 Slypower
 
01.07.15
16:27
(24) исправлено
Тут не в допиле дело, а в 7-ке. Почему документ1 и документ2 сохраняются и проводятся без проверки на ошибки документа2? Если есть в модуле в процедуре ПриЗаписи() ошибка, он ее не видит
26 Злопчинский
 
01.07.15
16:29
(24) GhbPfgbcb() отрабатывает ПРИ ИНТЕРАКТИВНОЙ ЗАПИСИ (или если ты эту процедуру вызовешь программообразноваятельно).
если пишешь Док.Записать() - ПриЗаписи - нифига не отработает, ибо ПриЗаписи - это предопределенная процедура ФОРМЫ документа
27 Slypower
 
01.07.15
16:38
(26) ну это понятно) вот сижу и ищу как вызвать эту процедуру. или нужно в глобальный вносить и оттуда вызывать?
28 Злопчинский
 
01.07.15
22:38
(27) смотря что именно нужно... можно и в программном коде выполнить процедуру из модуля формы документа, надо только знать гитик
29 Slypower
 
02.07.15
09:36
(28) Все, сделал то, что хотел по поводу контрагента) Может и через дальний путь, но все же
30 Злопчинский
 
02.07.15
09:42
(29) ну и славненько, улыбок тебе, дед Макар! ;-)
31 Slypower
 
02.07.15
09:45
(30) Спасибо, осталось только с этими регистрами и списаниями разобраться)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс