Имя: Пароль:
1C
 
Мое видение "Правила 1 копейки" Критикните плиз
0 vladmenleo
 
20.06.17
11:13
Исходные данные
КолВо = 26.4; // Количество товара, у меня тонны
СуммаДок = 5279.96; // Сумма в документе с НДС, НДС сверху
Считаю:
Цена = Окр(СуммаДок/КолВо, 2);    
    СуммаВыч = Окр(Цена * КолВо, 2);
    Если (СуммаВыч = СуммаДок) или (КолВо <= 1) Тогда
        сообщить("" + Цена + " * " + КолВо + " = " + СуммаВыч);
    Иначе
        КолВоМинус = 0;
        Дельта = 1;
        ФлагВывести = Истина;
        Пока КолВоМинус >= 0 Цикл
            КолВоМинус = КолВо - Дельта;
            СуммаМинус = КолВоМинус * Цена;
            НовЦена = (СуммаДок - СуммаМинус) / Дельта;
            РазницаЦен = Макс(НовЦена - Цена, -(НовЦена - Цена));
            Если РазницаЦен = 0.01 Тогда
                // Выводим две строки на один товар по разным ценам
                сообщить("" + Цена + " * " + КолВоМинус + " = " + СуммаМинус);
                сообщить("" + НовЦена + " * " + Дельта + " = " + НовЦена*Дельта);
                ФлагВывести = Ложь;
                Прервать;
            Иначе
                Дельта = Дельта + 1;
            КонецЕсли;
        КонецЦикла;
        Если ФлагВывести Тогда // не получилось разбить
            сообщить("!! " + Цена + " * " + КолВо + " = " + СуммаВыч);
        КонецЕсли;
    КонецЕсли;

Не учитываю количество меньше 1. Что еще мог пропустить? Перепробовал кучу примеров, вроде все бьется корректно
1 Вафель
 
20.06.17
11:15
сколько платишь за ревью твоего кода?
2 vladmenleo
 
20.06.17
11:16
(1) Пользуйся так, я не жадный :)
3 Волшебник
 
модератор
20.06.17
11:17
что за правило?
4 torgm
 
20.06.17
11:18
(0) что за ересь?
5 vladmenleo
 
20.06.17
11:20
(3) вот тут усиленно муссируется как разбить товар на две позиции для передачи в ККМ
http://catalog.mista.ru/public/603118/
6 Волшебник
 
модератор
20.06.17
11:22
(5) Зачем разбивать на 2 позиции? Из-за копейки?
7 Волшебник
 
модератор
20.06.17
11:22
Округли до целого рубля в пользу покупателя. У тебя товар в тоннах, а ты за копейками гоняешься.
8 assasu
 
20.06.17
11:23
(0) давай на примере окорочка в 231 грамм. и округление до рубля в пользу покупателя.
9 torgm
 
20.06.17
11:24
(5) за такое разбитие, над конторой можно знатно поизголятся.
10 vladmenleo
 
20.06.17
11:28
(6) Да там больше копейки набегает. Пример на тех цифрах, что я ввел Цена = 5279.96/26.4 = Окр(199.8848484848, 2) = 199.88
Передаем в ККМ цену и количество, он считает Сумма= 5 276.83 что не совпадает с уплаченными деньгами
11 h-sp
 
20.06.17
11:29
(0) берите цену с ндс, тогда будет у вас как раз цена * количество = сумма. и ничего разбивать не надо.

Разбивка нужна была если скидки. Например общай скидка на чек и ее надо разбить по строчкам чека.
12 vladmenleo
 
20.06.17
11:31
(11) в том и проблема, что ндс сверху, я-б и не парился тогда
13 Волшебник
 
модератор
20.06.17
11:32
(10) Передавай количество в килограммах
14 vladmenleo
 
20.06.17
11:32
(11) искать все в УТ 10.3 где оно как считает сумму документа и править на свое как-то не хочется, вот и пошел таким путем
15 vladmenleo
 
20.06.17
11:34
(13) Да боюсь меня как-то не поймут. Продавали себе в тоннах, а тут программист и говорит все нафиг, будем торговать в килограммах
16 Волшебник
 
модератор
20.06.17
11:35
(15) Ты не бойся, а выйди с предложением и согласуй техническое задание.
17 Вафель
 
20.06.17
11:36
(15) если у вас цена больше чем 2 знака, то конечно нужно продавать в килограммах
18 vladmenleo
 
20.06.17
11:38
(16) Ну да, ну да. А еще поменяй весы которые взвешивают машины в тоннах, на те, что "1с совместимы" (сарказм если что)
19 vladmenleo
 
20.06.17
11:39
(17) цена как-раз с точностью 2 знака, количество стандартно 3
20 Волшебник
 
модератор
20.06.17
11:40
(19) увеличь точность количества до 6 знаков после запятой
21 Вафель
 
20.06.17
11:41
(20) на кассе не увеличишь
22 Вафель
 
20.06.17
11:41
(19) тогда на цены с ндс переходите
23 Волшебник
 
модератор
20.06.17
11:42
(21) на кассу передавать в килограммах
24 vladmenleo
 
20.06.17
11:42
(22) Единственный нормальный вариант, но он не от меня зависит, вот и изголяюсь
25 h-sp
 
20.06.17
11:43
(19) чего тогда Дельта = 1 ? Сразу делаете плюс минус одна тонна? Делайте дельта 0.001
26 kiruha
 
20.06.17
11:44
(0)
Если им нужна точность - просто увеличиваешь точность в цене и количестве, а не изобретаешь велоспид

Не нравится точность - все остается как есть
27 vladmenleo
 
20.06.17
11:45
(25) торгуем песком, обычно кучу тонн берут, вот так и взял
28 vladmenleo
 
20.06.17
11:47
(26) дело не в точности, а в том, что сумма в документе и сумма на чеке ККМ должна быть одна. Точность в кассе я так понимаю не увеличишь
29 h-sp
 
20.06.17
11:51
(28) ну а в чем проблема. бьете разницу в копейках там второй строчкой как доп.услугу, количество = 1.
30 vladmenleo
 
20.06.17
11:53
(29) а доп.услугу с минусом на кассу можно отправить?
31 kiruha
 
20.06.17
11:54
(28)
А)Можно делать НДС в т.ч.

Б)Можно завести колонку Скидка , туда писать разницу
32 torgm
 
20.06.17
11:56
(29)  тебе за доп услугу потом ай-ай-ай  скажут.
33 kiruha
 
20.06.17
11:56
Цена не является критичным параметром - главное НДС не должен ни на полкопейки быть меньше
34 Вафель
 
20.06.17
11:57
(32) Так скидка же по цене в кассах
УТ - расчет чека от суммы, а в ККМ - от цены
35 torgm
 
20.06.17
11:57
(27)  а вы весёлые, покажите мне тоннажные весы который с точностью до килограмма показывают.
Программист всегда исправляет последнюю ошибку.