Имя: Пароль:
1C
 
Округление суммы при ручной скидке
0 Lamer1C
 
22.10.10
00:05
ут 10.3 документ РТиУ. в ТЧ меняю сумму, т.е. делаю ручную скидку, меняется при этом процент ручной скидки и следом меняется сумма, то есть если я меняю суммы с 1080 на 1000, то происходит такое:
Цена   Количество    СуммаБезСкидки    %РучСкидки   Сумма
180    6             1080              7,41         999,97
В процедуре ТоварыСуммаПриИзменении(Элемент) ссылка на ОбработкаТабличныхЧастей.ПриИзмененииСуммыТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"), РассчитыватьАвтоматическиеСкидки(),истина, ,истина,"Товары"); Тут нашел только где процент считается, но где обратно цена пересчитывается найти не могу. Помогите пожалуйста, буду очень благодарен
1 shurik_klgd
 
22.10.10
00:19
В настройках пользователя есть
ПриИзмененииСуммыПересчитыватьСкидкуАНеЦену
копая отсюда найдешь место и в конфе
2 Lamer1C
 
22.10.10
00:21
(1)эта галочка стоит, сейчас посмотрю по текстам
3 Lamer1C
 
22.10.10
00:23
глобальный поиск по ПриИзмененииСуммыПересчитыватьСкидкуАНеЦену ничего не дал, если не сложно, подскажи где и что искать
4 shurik_klgd
 
22.10.10
00:28
глобальный поиск по "ПриИзмененииСуммыПересчитыватьСкидку"
даст тебе ссылку на ОбщийМодуль.ПриИзмененииСуммыТабЧасти(
думаю там накопаешь дальше
5 Lamer1C
 
22.10.10
00:31
модуль этот был открыт) нашел это:
           ПересчитыватьСкидку = ?(ПересчитыватьСкидкуДокумента = Неопределено,
                                   УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ПриИзмененииСуммыПересчитыватьСкидку"),
                                   ПересчитыватьСкидкуДокумента);
6 shurik_klgd
 
22.10.10
00:36
ток что проделал тоже самое, сумма с 1000 на 999,97 не поменялась
7 Lamer1C
 
22.10.10
00:37
вот кусок что мне нужен, но тут все правильно работает
                   СуммаСоСкидками = СтрокаТабличнойЧасти.Сумма; Сообщить(СуммаСоСкидками); Сообщить(СуммаСоСкидками);
                   СуммаБезСкидок  = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество; Сообщить(СуммаБезСкидок);
                   ПроцентСкидки   = 100 - (СуммаСоСкидками * 100) / СуммаБезСкидок; Сообщить(ПроцентСкидки);
Сообщения:
8 Lamer1C
 
22.10.10
00:37
1 000
1 000
1 080
7,407407407407407407407407407
9 Lamer1C
 
22.10.10
00:38
(6) а количество и цена такие же?
10 Lamer1C
 
22.10.10
00:38
при ровных цифрах он нормально показывает
11 shurik_klgd
 
22.10.10
00:40
т.е. добавил товар
поставил цену 180
потом колво 6
сумма встала 1080
поменял сумму на 1000
стал процент 7.41, а сумма осталась 1000
12 shurik_klgd
 
22.10.10
00:43
конфа типовая 10.3.10.4
13 Lamer1C
 
22.10.10
00:45
цена не меняется и автоматом забивается у меня. ут 10.3.11.4
спасибо, буду вообщем искать где косяк, ппц какой то. могу показать, если не веришь)
14 Lamer1C
 
22.10.10
00:47
15 Lamer1C
 
22.10.10
00:48
(11) после вывода 1000 счелкни по ТЧ, у меня тож не сразу в новом документе
16 shurik_klgd
 
22.10.10
00:51
пощелкал не помогло :)
Вот если я после ввода 1000, зайду в колво, забью туда 6 и нажму энтер то да (аналогично если в цену)
17 shurik_klgd
 
22.10.10
00:55
отладчиком пройдись... потом напиши почему менялась сумма
наверное у тебя после смены суммы срабатывает какимто макаром изменение ручной скидки
18 Lamer1C
 
22.10.10
00:56
такой момент- даже если я меняю сам процент на 7,41 он один хрен пишет 999,97. сейчас на другой конфе попробую
19 shurik_klgd
 
22.10.10
00:59
если процент меняешь, то понятно, 7.41*1080=999.97
поставь точку останова в ТоварыПриОкончанииРедактирования
посмотри там у тебя какая сумма.

Там в ней потом выполняются
       ПересчитатьАвтоматическиеСкидки();
20 shurik_klgd
 
22.10.10
01:01
хыхы, точно
там потом идет в РассчитатьСкидкиПриПродаже
в которой
   Для Каждого СтрокаТаблицы Из ТаблицаТоваров Цикл
       СтрокаТаблицы.СуммаБезСкидки = СтрокаТаблицы.Количество * СтрокаТаблицы.Цена;
   КонецЦикла;
21 shurik_klgd
 
22.10.10
01:02
Разница была в том, что у тебя РассчитыватьАвтоматическиеСкидки() выдает истину, а у меня ложь, поэтому у тебя пересчитывается, а у меня нет :)
22 Lamer1C
 
22.10.10
01:03
блин, тоже самое в демо версии. сейчас посмотрю насчет автоматических
23 Lamer1C
 
22.10.10
01:06
ничего не поменялось(
в которой
   Для Каждого СтрокаТаблицы Из ТаблицаТоваров Цикл
       СтрокаТаблицы.СуммаБезСкидки = СтрокаТаблицы.Количество * СтрокаТаблицы.Цена;
   КонецЦикла;
тут же расчитывается без скидок, то есть она не влияет на сумму со скидками, а в расчитывать автоматические скидки ссылок на ручные нет
24 shurik_klgd
 
22.10.10
01:06
у меня мРассчитыватьАвтоматическиеСкидки = Ложь....
у тебя Истина

смотри в сторону учетной политики:
у тебя стоит галка в одной из этих фишек:
ИспользоватьСкидкиПоКоличествуТовара
ИспользоватьСкидкиПоСуммеДокумента
ИспользоватьСкидкиПоВидуОплаты
ИспользоватьСкидкиПоДисконтнойКарте
25 Lamer1C
 
22.10.10
01:09
еее!! спасибо друг!!! очень выручил
26 shurik_klgd
 
22.10.10
01:09
найди в реализации процедуру
ТоварыПриОкончанииРедактирования

поставь там брэкпоинт
измини сумму в док-те, сработает брэкпоинт
посмотри в табло чему равна сумма, думаю будет 1000,
поставь второй брэкпоинт в конец этой процедуры,
посмотри чему там сумма равна, думаю будет 999.97

дальше найдешь
27 Lamer1C
 
22.10.10
01:10
я сначала автоматические скидки настроил, а потом сказали ручные сделать и вот такая хрень пошла, очень выручил. спасибо за терпение)
28 shurik_klgd
 
22.10.10
01:11
да пож, я футбол смотрел, цска палермо:)
29 Lamer1C
 
22.10.10
01:14
я тут целый вечер лазию по этим процедурам( и в ТоварыПриОкончанииРедактирования был, но смотрю - автоматические скидки - и прошел дальше
30 shurik_klgd
 
22.10.10
01:19
уже не вечер, уже ночь :)
31 Lamer1C
 
22.10.10
01:19
наши победили, да еще как)) а такой интересный момент, то есть если будут и автоматические и ручные скидки то будет косяк, т.е придется исправлять текст
32 Lamer1C
 
22.10.10
01:20
(30) вот. в компании с 1с время летит незаметно)) icq есть?
33 shurik_klgd
 
22.10.10
01:21
есть, но в последнее время не пользуюсь
34 Lamer1C
 
22.10.10
01:23
жалко, ты вроде человек хороший, а с таким всегда приятно пообщаться)