8.х ограничение по точности

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем gosn1ck, 1 апр 2010.

  1. TopicStarter Overlay
    gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    можно ли сделать так чтобы платформа сама высчитывала нужную точность у числового типа даннах? или есть ограничение по точности?
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Это как? искуственный интелект? Понимаете если в регистре у реквизита задана точность 3 знака после запятой то вы туда ходь 10 суйте он округлит до 3х. Вы хотите что бы система сама изменяла разменость реквизитов? :)
  3. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    В смысле "высчитывала"?
    Если это реквизит - то надо смотреть точность в метаданных, если значение из запроса - то никак...
    А так: платформа очень криво работает с больше, чем 9 знаков после запятой.
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Я бы ещё задал вопрос: для чего сие? :)
  5. TopicStarter Overlay
    gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    да именно. меня пока не интересуют регистры, меня интересуют реквизиты документов. проблема как раз в округлении платформой, у меня теряется около 3х копеек в сумме именно из-за округлуния (думаю все знают что будет если бух потеряет эти 3 копейки), а заранее знать количество знаков после запятой я не могу.
    зы в экселе считает нормально =\
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Проблема с ценой? Тогда пофиг на нее - должна интересовать сумма.
    А то, что цена * количество <> сумме - даже письмо минфина есть с объяснением данной ситуации
  7. TopicStarter Overlay
    gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    объясняю ситуацию:

    1) есть количество и цена (продажи), путём перемножения получаем сумму к которой мы должны стремиться (назевем ее СуммаРозницы)
    2) есть табличная часть где заполняется номенклатура, количество и цена (закупочная); перемножение количества и цены (закупочная) даёт сумму закупки, их надо сложить по всей табличной части и получить СуммаЗакупки
    3) СуммаРозницы / СуммаЗакупки = НаценкаТовара (тут начинается самое интересное)

    далее перемножаю цену закупочную на НаценкаТовара, умножаю на количество и получаю сумму товара с наценкой. затем складываю эти суммы и получаю СуммаСНаценкой и поидеи она должна быть равна сумме розницы СуммаРозницы, но получаю расхождение в 3 копейки
  8. TopicStarter Overlay
    gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    выкладываю скрин, чтобы было нагляднее. по математическим правила СуммаСНаценкой должна быть равна СуммаРозницы, но разница между ними 3 копейки. я уже точность реквизитов увеличил до 25 но это не помогает

    Вложения:

    • sshot_1.png
      sshot_1.png
      Размер файла:
      65,6 КБ
      Просмотров:
      30
  9. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Все правильно - операции деления всегда (sic!) вызывают погрешности. Это же математика...

    А последний абзац и вызывает проблему - надо умножать не цену, а цена*количество и потом наценка -> так погрешность будет меньше.
  10. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Чего-то не понимаю, а что у вас с ценами?

    Смотрите, строка 2 ТЧ, сумма у вас стоит 85,48, но цена стоит 8,55. Откуда у вас взялась цена 8,548?

    Если делаем так (т.е. по табличной части как видно на экране):
    8,55 * 10 * 1,52173... то получаем итог: 130,108695651
    Если делаем так (считаем от суммы 85,48 которая непонятно как взялась):
    85,48 * 1,52173... то получаем итог: 130,078260866

    разница 3 коп. И 25 знаков нет необходимости, это очень много. Вам тогда с полем цена надо разобраться.
    Если я все правильно понял.
  11. TopicStarter Overlay
    gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    shurikvz спасибо за наводку, теперь я всё понял и разобрался. видимо в бухлалтерии расчитывается цена от суммы, а не сумма от цены как в ут :) а последний разряд получается теряется у цены, которую я умножал на наценку, а надо было сумму на наценку, а отсюда уже цену с наценкой
    всем спасибо кто выслушал меня :)
  12. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Т.е. я хотел сказать: когда вы считаете наценку вы же делите на "Сумма закупки", но эта сумма у вас получается с учетом 85,48. А когда вы считаете СуммаСНаценкой, вы получаете эту сумму с учетом 8,55 * 10. (т.е. считаете от суммы 85,50).
  13. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    P.S. Мое наблюдение по количеству знаков после запятой: если не прав, поправьте, может кто-то уже математически это доказал до меня. По моим наблюдениям для верного округления количество знаков после запятой должно равняться количеству цифр в числе. Т.е. если у вас макс. сумма заказа 1000,00 руб., то вам будет достаточно 6 знаков после запятой (ну 7 чтобы уж наверняка), если 10000,00 руб., то 7 (8 чтобы наверняка :) ).

Поделиться этой страницей