| 
    
        
     
     | 
    
  | 
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) ровно столько и больше сколько не противоречит твоему чувству прекрасного.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |