Вопрос такой: вводим заказ покупателя с предоплатой 70%. Вводим приходник на сумму, составляющую 70% от общей. Контрагент/договор - те же, что и в заказе. Но заказ провести не дает, не понимает типа, что это предоплата была. Куда копать?
Проблемы с предоплатой по заказу
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
Проблемы с предоплатой по заказу
05.10.2010 10:56:36
|
|
|
|
05.10.2010 15:12:56
Проверьте реквизит "Способ закрытия сделок" в договоре взаиморасчетов с покупателем. Он должен в данном случае быть "По счетам и заказам".
|
|
|
|
15.10.2010 11:03:00
Простите, не поняла ответа.
Правильно ли я понимаю методологию учета. 1. если способ закрытия сделок - по расчетным документам, то заказ покупателя не оформляется. 2. если необходимо оформлять заказы покупателя - тогда способ закрытия сделок по счетам и заказам. Тогда 1. присутствует ошибка: при наличии условия предоплаты по заказу и отсутствии остатка денег заказ все равно не проводится... 2. Есть вопрос - как контролируется задолженность по сроку оплаты если есть отсрочка платежа - от даты заказа или счета, наверное? Или от даты отгрузки? |
|
|
|
15.10.2010 16:44:50
В случае способа закрытия сделок по расчетным документам сумму предоплаты надо устанавливать в 0. В этом случае заказ не является взаиморасчетным документом. По поводу возможности/невозможности проведения заказа для такого случая прикинем как корректней отрабатывать данную ситуацию.
|
|
|
|
16.10.2010 12:13:18
По технологии продаж это правильно - я должна зарегистрировать заказ покупателя в любом случае, есть деньги или их нет, есть товар или его нет... А потом сказать покупателю сколько и когда он должен заплатить. Для этого нужно, чтобы в заказ покупателя заносился процент предоплаты из договора и при проведении в служебном сообщении рассчитывалась сумма предоплаты.
В УПП сделано достаточно разумно - в любом случае контроль наличия предоплаты осуществляется при проведении РТУ (РТ в нашем случае). И если заказ не является расчетным документом - зачем в нем контролировать предоплату? Предлагаю что-то поправить... Для приближения к логике продаж ![]() Кроме этого, хотела уточнить - что делать с ошибкой проведения? если условия закрытия сделок "по счетам и заказам" и есть условие предоплаты в заказе - он должен проводиться или нет? Сейчас не проводится.. |
|
|
|
17.10.2010 09:15:48
По поводу контроля предоплаты при взаиморасчетах по расчетным документам. Сделаем проведение заказа без контроля предоплаты.
|
|||
|
|
18.10.2010 14:01:57
оплата по заказу даже не создается в этом случае, потому что документ-основание для чека на оплату должен быть проведен.
"Ввод на основании непроведенного документа запрещен" |
|
|
|
18.10.2010 17:14:24
|
|||
|
|
18.10.2010 17:55:47
Право скорее всего стоит - запретить. Но ровно это право будет стоять у менеджера по продажам, потому что исходя из политики безопасности я не имею права давать такие права продавцам в магазине. Разрешение вводить на основании непроведенного документа не решает методологическую проблему.
|
|
|
|
18.10.2010 17:58:24
Получается, что сотрудник должен создать документ, не проводить его, на его основании создать документ оплаты, и когда его отвлечет следующий покупатель по телефону, забыть провести заказ. Мне кажется, что в этом есть что-то нелогичное и небезопасное для бизнеса...
|
|
|
|
22.11.2010 21:05:29
А вы не могли бы уточнить - когда вы это сделаете? Или дать код для изменения. У нас запуск в эксплуатацию близится, не хочется с начала приучать пользователей к неправильным действиям. Тем более, что из АРМ менеджера по продажам в этом случае не сформировать документы без оплаты вообще никак.
|
|
|
|
23.11.2010 12:44:50
В АА есть право "Разрешить отгрузку при наличии задолженности по договору", есть право "Проверка превышения максимального кредита контрагента" - сумма максимального кредита указывается в договоре.
Для исправления в заказе покупателя нужно заменить процедуру ОбработкаПроведения() не забудьте на всякий случай сначало сохранить старую процедуру. Процедура ОбработкаПроведения(Отказ, Режим) Если НЕ дкОбработкаПроведения(ЭтотОбъект, Отказ, Режим) Тогда Возврат; КонецЕсли; Если ДоговорВзаиморасчетов.СпособЗакрытияСделок = Перечисления.СпособЗакрытияСделок.ПоСчетамИЗаказам Тогда //Проверим процент предоплаты по документу Если НЕ обПраво("РазрешитьЗаказПокупателяБезПредоплаты",Права,,ЭтотОбъект) Тогда Если СуммаДокумента<>0 И СуммаПредоплаты=0 И ПроцентПредоплаты=0 Тогда Сообщить("У Вас нет прав приема заказа покупателя без предоплаты!",СтатусСообщения.Важное); Отказ=Истина; Возврат; КонецЕсли; КонецЕсли; Если СуммаПредоплаты>0 Тогда //Проверим сумму предоплаты по заказу Сделка=Ссылка; СуммаОплаты=орПолучитьОстатокПоСделке(Сделка,МоментВремени(),Истина,ДоговорВзаиморасчетов,ВалютаДокумента,КурсДокумента); Если СуммаОплаты<>Неопределено Тогда Если СуммаПредоплаты>(СуммаДокумента-СуммаОплаты) Тогда дкСообщитьРезультат(" Сумма предоплаты по заказу составляет "+Формат(СуммаПредоплаты,"ЧЦ=15; ЧДЦ=2; ЧН=0.00")+" "+СокрЛП(ВалютаДокумента.Наименование)+". | Оплачено "+Формат(СуммаДокумента-СуммаОплаты,"ЧЦ=15; ЧДЦ=2; ЧН=0.00")+" "+СокрЛП(ВалютаДокумента.Наименование)+". | Для проведения заказа необходимо оплатить "+Формат(СуммаПредоплаты-(СуммаДокумента-СуммаОплаты),"ЧЦ=15; ЧДЦ=2; ЧН=0.00")+" "+СокрЛП(ВалютаДокумента.Наименование)+".",,ЭтотОбъект); Отказ=Истина; дкВыводРезультатовОбработки(ЭтотОбъект,Отказ); Возврат; КонецЕсли; Иначе Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВзаиморасчетыКомпанииОстаткиИОбороты.СуммаРасход КАК Сумма, | ВзаиморасчетыКомпанииОстаткиИОбороты.СуммаУпрРасход КАК СуммаУпр |ИЗ | РегистрНакопления.ВзаиморасчетыКомпании.Обороты(,,, | ДоговорВзаиморасчетов = &ДоговорВзаиморасчетов И | Контрагент = &Контрагент И | (Сделка = &Сделка ИЛИ Сделка.ДокументОснование = &Сделка)) КАК ВзаиморасчетыКомпанииОстаткиИОбороты"; Запрос.УстановитьПараметр("ДоговорВзаиморасчетов",ДоговорВзаиморасчетов); Запрос.УстановитьПараметр("Контрагент",Контрагент); Запрос.УстановитьПараметр("Сделка",Ссылка); тзОплаты=Запрос.Выполнить().Выгрузить(); Если ДоговорВзаиморасчетов.ВалютаВзаиморасчетов=ВалютаДокумента Тогда Оплачено=обПересчет(тзОплаты.Итог("Сумма"),ДоговорВзаиморасчетов.ВалютаВзаиморасчетов,Дата,ВалютаДокумента,Дата,РежимОкругления.Окр15как20); Если СуммаПредоплаты>Оплачено Тогда дкСообщитьРезультат(" Сумма предоплаты по заказу составляет "+Формат(СуммаПредоплаты,"ЧЦ=15; ЧДЦ=2; ЧН=0.00")+" "+СокрЛП(ВалютаДокумента.Наименование)+". | Оплачено "+Формат(Оплачено,"ЧЦ=15; ЧДЦ=2; ЧН=0.00")+" "+СокрЛП(ВалютаДокумента.Наименование)+". | Для проведения заказа необходимо оплатить "+Формат(СуммаПредоплаты-Оплачено,"ЧЦ=15; ЧДЦ=2; ЧН=0.00")+" "+СокрЛП(ВалютаДокумента.Наименование)+".",,ЭтотОбъект); Отказ=Истина; дкВыводРезультатовОбработки(ЭтотОбъект,Отказ); Возврат; КонецЕсли; Иначе ОплаченоУпр=тзОплаты.Итог("СуммаУпр"); СуммаПредоплатыУпр=обПересчет(СуммаПредоплаты,ВалютаДокумента,Дата,Константы.ВалютаУправленческогоУчетаКомпании.Получить(),?(обЗначениеНеЗаполнено(ЭтотОбъект.КурсВалютыУпр), Дата, ЭтотОбъект.КурсВалютыУпр),РежимОкругления.Окр15как20); Если СуммаПредоплатыУпр>ОплаченоУпр Тогда дкСообщитьРезультат(" Сумма предоплаты по заказу составляет "+Формат(СуммаПредоплатыУпр,"ЧЦ=15; ЧДЦ=2; ЧН=0.00")+" "+СокрЛП(Константы.ВалютаУправленческогоУчетаКомпании.Получить().Наименование)+". | Оплачено "+Формат(ОплаченоУпр,"ЧЦ=15; ЧДЦ=2; ЧН=0.00")+" "+СокрЛП(Константы.ВалютаУправленческогоУчетаКомпании.Получить().Наименование)+". | Для проведения заказа необходимо оплатить "+Формат(СуммаПредоплатыУпр-ОплаченоУпр,"ЧЦ=15; ЧДЦ=2; ЧН=0.00")+" "+СокрЛП(Константы.ВалютаУправленческогоУчетаКомпании.Получить().Наименование)+".",,ЭтотОбъект); Отказ=Истина; дкВыводРезультатовОбработки(ЭтотОбъект,Отказ); Возврат; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Если обПраво("ПроверкаМаксимальногоПревышенияКредитаКонтрагента",Права,,ЭтотОбъект) Тогда // получим долг СтруктураОтбора=Новый Структура(); СтруктураОтбора.Вставить("Контрагент",Контрагент); СтруктураОтбора.Вставить("ДоговорВзаиморасчетов",ДоговорВзаиморасчетов); //получаем текущие остатки, т.к. оплата может быть позже заказа тзДолги=РегистрыНакопления.ВзаиморасчетыКомпании.Остатки(,СтруктураОтбора,,"Сумма,СуммаУпр"); Долг=тзДолги.Итог("Сумма"); СуммаДокументаВВалютеДоговора=обПересчет(СуммаДокумента,ВалютаДокумента,КурсДокумента,ДоговорВзаиморасчетов.ВалютаВзаиморасчетов,Дата); Если (Долг+СуммаДокументаВВалютеДоговора)>ДоговорВзаиморасчетов.МаксимальныйКредит Тогда ВалютаВзаиморасчетов=СокрЛП(ДоговорВзаиморасчетов.ВалютаВзаиморасчетов.Наименование); дкСообщитьРезультат(" Сумма долга по договору составляет "+Формат(Долг,"ЧДЦ=2; ЧН=0.00")+" "+ВалютаВзаиморасчетов+". | Сумма заказа составляет "+Формат(СуммаДокументаВВалютеДоговора,"ЧДЦ=2; ЧН=0.00")+" "+ВалютаВзаиморасчетов+". | Итого "+Формат(Долг+СуммаДокументаВВалютеДоговора,"ЧДЦ=2; ЧН=0.00")+" "+ВалютаВзаиморасчетов+". | А максимальный кредит по договору "+Формат(ДоговорВзаиморасчетов.МаксимальныйКредит,"ЧДЦ=2; ЧН=0.00")+" "+ВалютаВзаиморасчетов+".",,ЭтотОбъект); //Отказ=Истина; КонецЕсли; КонецЕсли; Заказывать=Истина; Резервировать=((ХозОперация=Справочники.ХозОперации.ЗаказРезервированиеПокупателя) ИЛИ (ХозОперация=Справочники.ХозОперации.РезервированиеПокупателя)); // проводим заказ покупателя НаборЗаписейЗаказыПокупателей=Движения.ЗаказыПокупателей; НаборЗаписейЗаказыПокупателей.РежимПроведения=Режим; НаборЗаписейЗаказыПокупателей.ДокументОбъект=ЭтотОбъект; НаборЗаписейЗаказыПокупателей.РезультатЗапросаПоТоварам=Неопределено; НаборЗаписейЗаказыПокупателей.Контрагент=Контрагент; НаборЗаписейЗаказыПокупателей.Заказ=Ссылка; НаборЗаписейЗаказыПокупателей.СкладКомпании=СкладКомпании; НаборЗаписейЗаказыПокупателей.Заказывать=Заказывать; НаборЗаписейЗаказыПокупателей.Резервировать=Резервировать; Отказ=НЕ НаборЗаписейЗаказыПокупателей.Приход() ИЛИ Отказ; Если Резервировать Тогда // резервирование заказа покупателя НаборЗаписейОстатки=Движения.ОстаткиТоваровКомпании; НаборЗаписейОстатки.РежимПроведения=Режим; НаборЗаписейОстатки.ДокументОбъект=ЭтотОбъект; НаборЗаписейОстатки.РезультатЗапросаПоТоварам=Неопределено; НаборЗаписейОстатки.СкладКомпании=СкладКомпании; НаборЗаписейОстатки.Приходовать=Ложь; НаборЗаписейОстатки.Резервировать=Резервировать; НаборЗаписейОстатки.ДвиженияПоРознице=Ложь; Отказ=НЕ НаборЗаписейОстатки.Приход() ИЛИ Отказ; КонецЕсли; // двигаем границу последовательности заказов Если Режим<>РежимПроведенияДокумента.Оперативный ИЛИ ЗначениеЗаполнено(ДополнительныеСвойства.ЗаказБыл) Тогда НаборЗаписейГраницыЗаказы = РегистрыСведений.ГраницыЗаказы.СоздатьНаборЗаписей(); Если Режим<>РежимПроведенияДокумента.Оперативный Тогда НаборЗаписейГраницыЗаказы.Заказ = Ссылка; НаборЗаписейГраницыЗаказы.МоментВремени = Дата; НаборЗаписейГраницыЗаказы.ЗаказБыл = ДополнительныеСвойства.ЗаказБыл; НаборЗаписейГраницыЗаказы.МоментВремениБыл = ДополнительныеСвойства.МоментВремениБыл; Иначе НаборЗаписейГраницыЗаказы.Заказ = ДополнительныеСвойства.ЗаказБыл; НаборЗаписейГраницыЗаказы.МоментВремени = ДополнительныеСвойства.МоментВремениБыл; НаборЗаписейГраницыЗаказы.ЗаказБыл = Неопределено; НаборЗаписейГраницыЗаказы.МоментВремениБыл = Неопределено; КонецЕсли; НаборЗаписейГраницыЗаказы.ДокументСсылка = Ссылка; НаборЗаписейГраницыЗаказы.ИзменитьГраницу(); КонецЕсли; // выведем сообщения об ошибках и предупреждениях дкВыводРезультатовОбработки(ЭтотОбъект,Отказ); КонецПроцедуры // ОбработкаПроведения() |
|||||
|
|
23.11.2010 15:07:58
По поводу первого права - я не могу его давать всем продажникам, это нарушение политики безопасности. А вот второе - уже ближе к бизнесу. Это будет работать при ведении расчетов по заказам и счетам? |
|||
|
|
23.11.2010 15:49:53
Да, и ограничение на максимальный кредит это максимальная сумма долга в целом по договору, а не по определенной сделке. |
|||
|
|
23.11.2010 16:03:03
Все поняла. Будем работать дальше
![]() |
|
|
|
07.12.2010 17:06:34
Пожелание выполнено, изменения появятся в 19 релизе.
Изменено: |
|
|
|
07.12.2010 18:50:39
Здорово! Спасибо большое!
|
|
|
|
10.02.2011 09:28:01
Что-то нет никаких изменений в 19 релизе. Продажники не могут провести заказ, т.к. не оплачена предоплата. а как её оплатить, если заказ не проведен. А если оплата безналом - деньги только через сутки приходят?
|
|
|
|
10.02.2011 10:39:25
Я честно говоря вставила кусок кода и ничего не жду
![]() |
|
|
|
10.02.2011 10:46:59
В 19-й релиз приведенный код включен. Обратите внимание, контроль отключен только у предоплаты при взаиморасчетах по расчетным документам.
Изменено: |
|
|
|
10.02.2011 10:51:59
Спасибо.
|
|
|
|
10.02.2011 10:52:10
|
|||
|
|
15.02.2011 17:24:10
а если предоплата должна быть, обнулять её нельзя в заказе, как тогда быть?
|
||||
|
|
|||
Читают тему