|
v7: Распределение скидки по чеку | ☑ | ||
---|---|---|---|---|
0
san4ez1008
22.05.17
✎
12:15
|
Доброго времени суток всем! Помогите пожалуйста с реализацией алгоритма распределения скидки. На бумажке то все написано, не хватает мозгов реализовать программно...
На входе: •Структура чека: номер позиции, код товара, количество товара, стоимость товара; •Сумма скидки списания бонусов r1, которую нужно распределить по позициям чека; •Максимальная скидка по позициям чека в кассе x1...xn; На выходе: •Распределение скидки по позициям чека - z1...zn; Описание алгоритма: 1.В x1...xn заполняется суммами из входных данных; 2.Выполняется вычисление значений z1...zn, как показано в таблице ниже: http://s019.radikal.ru/i617/1705/ed/746f51d276fc.jpg |
|||
1
1dvd
22.05.17
✎
12:16
|
Что конкретно не получается?
|
|||
2
san4ez1008
22.05.17
✎
12:23
|
код написать не получается =/
|
|||
3
cw014
22.05.17
✎
12:23
|
За тебя нужно написать?
|
|||
4
HawkEye
22.05.17
✎
12:25
|
(2) ну показывай, что ты уже написал...
|
|||
5
Злопчинский
22.05.17
✎
12:26
|
задача рюкзака с дополнительными ограничениями?
. позиций в чеке много? |
|||
6
san4ez1008
22.05.17
✎
12:27
|
(3) по возможности направить в нужное русло. Для начала надо для каждой строки вычислить сумму последующих значений строк. (5) сколько набьют, столько и будет..
|
|||
7
san4ez1008
22.05.17
✎
12:29
|
+ (6) сумму последующих значений включая текущую
|
|||
8
igorPetrov
22.05.17
✎
12:30
|
(7) Кто мешает вычислить?
|
|||
9
HawkEye
22.05.17
✎
12:32
|
(6) писать нужно в конфигураторе...
(7) зачем? |
|||
10
san4ez1008
22.05.17
✎
12:36
|
(9) чтобы потом разделить на эту сумму
|
|||
11
san4ez1008
22.05.17
✎
13:05
|
все так плохо,господа прожженые 1С-ники? никто не может сообразить?
|
|||
12
Джинн
22.05.17
✎
13:13
|
(11) Сообразить что? Как перебрать строки и применить арифметические операции? Или как за Вас решить тестовое задание при приеме на работу?
|
|||
13
san4ez1008
22.05.17
✎
13:20
|
(12) то что я пытаюсь реализовать не так просто на мой взгляд
|
|||
14
Garykom
гуру
22.05.17
✎
13:22
|
В (0) фигня, правильные пацаны несколько видов оплаты (нал, терминал, сертификат, кредит, бонусы) по позициям чека распределяют!
|
|||
15
Garykom
гуру
22.05.17
✎
13:24
|
Короче:
1. Выкинуть 77 2. Поставить Розница 2.2.5.27 |
|||
16
san4ez1008
22.05.17
✎
13:25
|
(14) ну если для Вас это фигня, попробуйте реализовать алгоритм, который мне дали, может и мне поможете. у меня по крайней мере в голове не укладывается, как для каждой строки получить сумму текущей и последующих строк. сижу думаю уже часа полтора-ничего в голову не приходит, только 5 строчек кода
|
|||
17
Garykom
гуру
22.05.17
✎
13:28
|
(16) Начни с цикла по позициям и переменной которая вначале хранит полную сумму "скидки" а затем все меньшую и меньшую...
|
|||
18
Джинн
22.05.17
✎
13:28
|
(16) Коллега, это тестовое задание. Причем достаточно примитивное. Оно как раз повод для Вас подумать. Включайте мозг. Там ТЗ, перебор строк и несколько переменных для хранения данных расчета.
Если Вы с таким не справляетесь, то как работать будете? |
|||
19
Garykom
гуру
22.05.17
✎
13:28
|
(17)+ Внутри цикла вычисляем нечто (в таблице все прописано) и Если...Тогда...
|
|||
20
Garykom
гуру
22.05.17
✎
13:30
|
(18) Тестовое задание на 77 ? Интересно это где нынче такое?
|
|||
21
san4ez1008
22.05.17
✎
13:33
|
(20) меня на работу взяли без знания 1С, вот сижу,учусь.. дали проект на внедрение бонусной программы, вот и надо распределить скидку по позициям. С перебором строк все понятно, как в текущей строке получить сумму ее и последующей-не могу понять..
|
|||
22
san4ez1008
22.05.17
✎
13:33
|
Для стр=1 по ТЗ.КоличествоСтрок() цикл
Остаток=0; Если стр=1 тогда ТЗ.УстановитьЗначение(стр,"СкидкаОст",ТЗ.Итог("МаксСкидка")); иначе Остаток=Остаток+ТЗ.ПолучитьЗначение(стр,"МаксСкидка"); ТЗ.УстановитьЗначение(стр,"СкидкаОст",ТЗ.Итог("МаксСкидка")-Остаток); КонецЕсли; КонецЦикла; это вообще бред бредом.. |
|||
23
HawkEye
22.05.17
✎
13:51
|
(10) что будет для последней строки? 1? какой в этом сакраментальный смысл?
|
|||
24
san4ez1008
22.05.17
✎
13:52
|
для первой строки-сумма всех позиций, для последней-сумма последней позиции
|
|||
25
HawkEye
22.05.17
✎
13:52
|
(21) что мешает отнять от общей суммы - сумму предыдущих?
|
|||
26
HawkEye
22.05.17
✎
13:54
|
(24) ок. пусть будет этот бред... и что в нем не получается?
для каждой строки считаешь (ИтоговаяСумму - СуммаПредыдущихСтрок). |
|||
27
san4ez1008
22.05.17
✎
14:03
|
Ост=0;
Остаток=ТЗ.Итог("МаксСкидка"); Для стр=1 по ТЗ.КоличествоСтрок() цикл Если стр=1 тогда ТЗ.УстановитьЗначение(стр,"СкидкаОст",Остаток); иначе Ост=Ост+ТЗ.ПолучитьЗначение(стр,"МаксСкидка"); Остаток=ТЗ.Итог("МаксСкидка")-ТЗ.ПолучитьЗначение(стр-1,"МаксСкидка");//ТЗ.ПолучитьЗначение(стр,"МаксСкидка"); ТЗ.УстановитьЗначение(стр,"СкидкаОст",Остаток);//ТЗ.Итог("МаксСкидка")-Остаток); КонецЕсли; КонецЦикла; не могу понять,во второй строке нормально, дальше-хуже... |
|||
28
Garykom
гуру
22.05.17
✎
14:11
|
Как раз вторая строка "Остаток=ТЗ.Итог("МаксСкидка");" полный дурдом
|
|||
29
san4ez1008
22.05.17
✎
14:11
|
(28) ну так мне же надо от общей суммы отталкиваться..
|
|||
30
Garykom
гуру
22.05.17
✎
14:12
|
(28)+ У тя есть макс скидка на каждую отдельную позицию, какого ты их складываешь???
|
|||
31
Garykom
гуру
22.05.17
✎
14:13
|
(29) Признавайся ты кто по образованию?
|
|||
32
san4ez1008
22.05.17
✎
14:14
|
(31) не поверишь,бакалавр информационных систем и технологий
|
|||
33
san4ez1008
22.05.17
✎
14:14
|
(30) где я их складываю?? оО
|
|||
34
Злопчинский
22.05.17
✎
14:15
|
тут у нас все программисты-геодезисты и программисты-бетонщики. не, конечно встречаются "инженеры-минус-математики"
|
|||
35
HawkEye
22.05.17
✎
14:16
|
(32) сдай свой диплом назад...
|
|||
36
san4ez1008
22.05.17
✎
14:17
|
(35) может по теме поможете,а не г***м поливать?
|
|||
37
Злопчинский
22.05.17
✎
14:18
|
(36) не кпипишуй, нормально все.. сначал поиздеваются...
1сник должен в начале карьеры быть махохистом, а по мере становления - перетекать в садиста "Каждый автоматизатор - в душе гестаповец" |
|||
38
HawkEye
22.05.17
✎
14:19
|
(29) закрывая глаза на бредовость интерпретации задания..
ОБщаяСумма = ТЗ.Итог("МаксСкидка"); СуммаПройденныхСтрок = 0; ТЗ.выбратьСтроки(); Пока Тз.получитьСтроку() = 1 Цикл нужнаянамсумма = ОБщаяСумма - СуммаПройденныхСтрок ; СуммаПройденныхСтрок = СуммаПройденныхСтрок + ТЗ.МаксСкидка; КонецЦикла |
|||
39
mistеr
22.05.17
✎
14:20
|
(32) Если ты не осилил программирование за 4 года в инсте, почему ты думаешь, что осилишь за два дня на Мисте?
|
|||
40
HawkEye
22.05.17
✎
14:20
|
(36) так тебя и спрашивают русским языком, что не получается..
для составления алгоритма, абсолютно не нужно знание 1С... |
|||
41
san4ez1008
22.05.17
✎
14:26
|
(38) бл***...пора по ходу в отпуск идти,мозг уже совсем не варит
|
|||
42
san4ez1008
22.05.17
✎
14:27
|
(40) спасибо тебе,добрый человек
|
|||
43
Злопчинский
22.05.17
✎
14:27
|
(41) "сгорел на работе"
|
|||
44
san4ez1008
22.05.17
✎
14:28
|
(43) да я тут вторую неделю по 12 часов на работе сижу из-за этих СПАСИБО...
|
|||
45
Злопчинский
22.05.17
✎
14:34
|
(44) ну тады тебе должны бабла овердохрена платить, чтобы после 12 часов ты зашел например а "Азия бьюти спа" - посидел в хамамчике, тебе сделали массаж от головы (я думал мне бошку раздавят - ходим с женой изредка) до ступней ну и т.д.
|
|||
46
Злопчинский
22.05.17
✎
14:34
|
.. чтобы на след день нормально работать
|
|||
47
san4ez1008
22.05.17
✎
15:49
|
(46) овердохрена это сколько по Вашему?
|
|||
48
Злопчинский
22.05.17
✎
16:12
|
(47) ровно столько и больше сколько не противоречит твоему чувству прекрасного.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |