Много-много скидок

Ко мне обратился клиент, т.к. им нужно было провести сетевую акцию по скидкам.

При этом перечень позиций, на которые должны были быть скидки, был довольно большим — порядка 600 позиций. Кроме того, скидки в некоторых случаях давались не на весь артикул, а на определенный цвет.

Я предложил обучить, как набивать условия в сегменты, но клиент был готов заплатить мне за всю работу целиком, даже за ручной ввод, несмотря на объем.

Так случилось, что мне эта работа выпала на период, когда я заболел ОРВИ. И мне очень не хотелось сидеть и заниматься ручным вводом.

В итоге я прокрастинировал, прокрастинировал — благо, отмазка была — болею же. Но тут мне в голову пришла настолько гениальное решение проблемы, что как будто незримая сила вырвала меня из постели и засадила за рабочий стол, пока я не проверил, что да, сработает. Я тут же обрадовал клиента, что его задача решится проще и быстрее.

Исходный список товаров для акции был в таблице Excel:

Пришлось, правда, разбить цвет и артикул на отдельные колонки, но таких позиций было немного, иначе бы и это автоматизировал.

В итоге я напротив каждой пары артикул+цвет разместил формулу:

=СЦЕПИТЬ(«ИНАЧЕЕСЛИ Артикул = «»»; ПРОПИСН(СЖПРОБЕЛЫ(D3));»»»»;ЕСЛИ(СЖПРОБЕЛЫ(E3)<>»»;СЦЕПИТЬ(» И Содержит(Цвет,»»»;ПРОПИСН(СЖПРОБЕЛЫ(E3));»»»»);»»);» ТОГДА ПроцентСкидки = «;B3*100)

В итоге я получил код из цепочки условий на встроенном языке 1С:

Этот код я запихнул в свою обработку скидок. Сделал тестовые прогоны и сдал работу заказчику. Они просканировали позиции и убедились, что все работает хорошо.

Даже и не знаю, сколько бы это заняло времени, если бы я вносил условия вручную!

Горжусь своей работой!

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 4

  1. fajij28770:

    решение вида «чешем правое ухо левой ногой». можно же было просто сконвертировать данные в csv, открыть его в 1С и там уже написать логику обработки.

    • задачу перечитайте. это одноразовая задача, писать лишние загрузчики — это нецелевое расходование ограниченного бюджета клиента.

      • fajij28770:

        какие загрузчики ты там не можешь написать? чтение из csv-файла? конечно, писать вырвиглазный код в экселе вида

        =СЦЕПИТЬ(«ИНАЧЕЕСЛИ Артикул = «»»; ПРОПИСН(СЖПРОБЕЛЫ(D3));»»»»;ЕСЛИ(СЖПРОБЕЛЫ(E3)»»;СЦЕПИТЬ(» И Содержит(Цвет,»»»;ПРОПИСН(СЖПРОБЕЛЫ(E3));»»»»);»»);» ТОГДА ПроцентСкидки = «;B3*100)

        лучше, чем написать сразу в 1С (псевдокод, на суржике вашем не балакаю):
        load_csv(file_name):
        foreach (row in read_csv(file_name)):
        id, discount, color = row
        if color=blue:
        dicount=60
        //…

        • ну почему же не могу, могу и даже статья про чтение CSV тут имеется.
          Но это надо писать код, отлаживать и т.п.
          В Экселе как-то все это быстрее происходит.

Добавить комментарий для fixin Отменить ответ

Ваш адрес email не будет опубликован.