|
Помогите разобраться со скидкой | ☑ | ||
---|---|---|---|---|
0
pin4er
01.04.13
✎
10:54
|
Доброго всем времени суток! Только начинаю вникать в программирование, особо не ругайте...
Доработка конфигурации с автоматическим выводом скидок: 1С:Предприятие 8. Турагентство, редакция 1.3 (1.3.1.4) УП Дело вот такое: Существует 3и скидки: 7% за 60 дней до поездки (т.е. ... >= 60), 5% за 45 дней дней до поездки (т.е. 60> ... >=45), 2% менее 45 дней дней до поездки (т.е. 45> ...). Вот код который пишу: Если Объект.навСкидкаЗаРаннееБронирование >= 60 тогда Объект.навСкидкаЗаРаннееБронирование = ( Объект.навКомиссия - Объект.навБонус102050 ) / 100 * 7; Если Объект.навСкидкаЗаРаннееБронирование < 60 тогда ИначеЕсли Объект.навСкидкаЗаРаннееБронировани >= 45 тогда Объект.навСкидкаЗаРаннееБронирование = ( Объект.навКомиссия - Объект.навБонус102050 ) / 100 * 5; Иначе Объект.навСкидкаЗаРаннееБронирование = ( Объект.навКомиссия - Объект.навБонус102050 ) / 100 * 2; КонецЕсли; КонецЕсли; Пояснение: Объект.навКомиссия = 16000 Объект.навБонус102050 = 8000 даты по периоду отсчета ставил для примера такие: 10.12.2012, 16.01.2013, 01.03.2013 Получается следующие: при отработке кода с датой 10.12.2012, он подставляет сумму нормально 560руб. (то что мне и требуется) но, при дальнейшей работе кода, он почему то ставит не сумму а количество дней: в случае с 16.01.2013 он ставит 58, а с 01.03.2013 он ставит 14. Помогите разобраться в чем косяк. |
|||
1
Wobland
01.04.13
✎
10:55
|
наверное, косяк в дальнейшей работе кода
|
|||
2
Reset
01.04.13
✎
10:57
|
не читал.
Заметил это: Если Объект.навСкидкаЗаРаннееБронирование >= 60 тогда //// Если Объект.навСкидкаЗаРаннееБронирование < 60 тогда второе условие никогда не выполнится |
|||
3
Wobland
01.04.13
✎
10:58
|
плин, а если всё это в цикле, то в начале имеем там дни, а потом рубли...
|
|||
4
Reset
01.04.13
✎
10:59
|
короче, кусок кода раносилен этому:
Если Объект.навСкидкаЗаРаннееБронирование >= 60 тогда Объект.навСкидкаЗаРаннееБронирование = ( Объект.навКомиссия - Объект.навБонус102050 ) / 100 * 5; КонецЕсли; |
|||
5
pin4er
01.04.13
✎
11:00
|
маленько ошибся, где второе Если у меня стоит ИначеЕсли
|
|||
6
pin4er
01.04.13
✎
11:01
|
я разобраться не могу как правильно задать, чтобы он корректо считал, уже 3 день потею над этим куском кода
|
|||
7
Wobland
01.04.13
✎
11:06
|
(6) не вчитывался. скидку храни в одном (в рублях/процентах), условие - в другом (в днях) месте
|
|||
8
pin4er
01.04.13
✎
11:10
|
(7) а как это лучше сделать, не совсем просто понимаю.
получается "Дата бронирования" сравнивается с "датой выезда", получаем число Объект.навСкидкаЗаРаннееБронирование = Окр((НачалоДня(Объект.ДатаВыезда) - НачалоДня(Объект.ДатаБронирования)) / 86400); далее уже код который выше, просто 1 строку то норм отрабатывает а остальное ставит кол-во ней, может как то по другому надо процедуру составить? кто нибудь может примерно что нить подсказать |
|||
9
eklmn
гуру
01.04.13
✎
11:29
|
может ты все-таки будешь читать, что тебе пишут?
в (2) ответ |
|||
10
Wobland
01.04.13
✎
11:30
|
непонятно, что за объект, непонятно, что и где в (0) происходит, непонятна структура данных...
|
|||
11
Wobland
01.04.13
✎
11:30
|
(9) а в (5) поправка
|
|||
12
Wobland
01.04.13
✎
11:30
|
ну и таки да, непонятен сам код
|
|||
13
pin4er
01.04.13
✎
11:38
|
Все разобрался, работает, чуток натупилсам
Вот получившийся рабочий код, может кому еще пригодится Все сделал так: КолДней = Окр((НачалоДня(Объект.ДатаВыезда) - НачалоДня(Объект.ДатаБронирования)) / 86400); Если КолДней >= 60 тогда Объект.навСкидкаЗаРаннееБронирование = ( Объект.навКомиссия - Объект.навБонус102050 ) / 100 * 7; ИначеЕсли КолДней < 60 и КолДней >= 45 тогда Объект.навСкидкаЗаРаннееБронирование = ( Объект.навКомиссия - Объект.навБонус102050 ) / 100 * 5; Иначе Объект.навСкидкаЗаРаннееБронирование = ( Объект.навКомиссия - Объект.навБонус102050 ) / 100 * 2; КонецЕсли; Спасибо что откликнулись |
|||
14
Wobland
01.04.13
✎
11:39
|
всё-таки в (3) я был прав
|
|||
15
pin4er
01.04.13
✎
11:41
|
(14) да что то тока сейчас осенило что нужно так сделать=)))
так что спасибо за подсказку=) |
|||
16
Wobland
01.04.13
✎
11:41
|
дата бронирования - полночь. при дате выезда 17 часов имеем количество дней - 1 (пусть 45). при дате выезда 1 час ночи имеем количество дней 0 (пусть 44). так и нужно?
|
|||
17
Wobland
01.04.13
✎
11:42
|
(16) сторно. НачалоДня не приметил
|
|||
18
pin4er
01.04.13
✎
11:48
|
(16) по факту "дата бронирование", это когда я пришел в турагенство, запросил тур, на меня нашли тур и забронировали "дату выезда". после чего я уже оплачиваю с учетом полученной скидки от кол-ва дней.
Ну главное разобрался и считает как требуется...=) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |