Решите проблему с округлением!
2006-11-26 06:54 pmКак-то раз, когда я работал в компании Y, в наш отдел пришло письмо из бухгалтерии с темой: "СРОЧНО! Помогите решить проблему с округлением!".
Письмо содержало полную историю примерно недельной переписки бухгалтерии и клиента, суть которой сводилась к следующему.
Бухгалтерия выслала клиенту счет вида (на самом деле, там было около 150 позиций):
В этом счете итоговая сумма НДС была посчитана как (итого * НДС), а не как сумма НДС по отдельным позициям (поскольку, как я помню, детализация давалась, что называется, JFYI).
Клиент попался дотошный и не поленился просуммировать НДС по всем позициям и сравнить его с итоговым. У него получился, отличающийся от "бухгалтерского" где-то на рубль. Клиент понял, что если его каждый раз дурят на рубль - так это ж всех остальных тоже, небось, дурят на рубль. Прикинув в уме кол-во клиентов, он получил таки суммы, от которых захватывало дух.
Ну уж нет - решил клиент, я этого вам так не спущу. И пошел на бухгалтерию войной.
Бухгалтерия какое-то время отпиралась, но потом решила уступить и спустила проблему "в IT".
Задача IT-шникам была поставлена так: "принципы формирования сумм и рассчета НДС - незыблемы и неизменны. Но! Надо сделать так, чтобы клиент, просуммировав НДС по всем позициям, получал то же значение "итого", что и в нашем счете".
- Ок, - сказали мы. Давайте увеличим точность НДС по позиции до четырех знаков после запятой.
- Нельзя(TM).
- Давайте будем считать "итого НДС", суммируя позиции
- Нельзя(ТМ)
- Давайте не будем показывать НДС по позициям
- Нельзя(ТМ)
- Но ведь Метро же так делает
- А нам пофиг
- Тогда давайте в некоторые позиции "добрасывать" копеечку на НДС
- Вы что! Аудит нас схавает живьем!
- Так а что вы хотите тогда от нас?
- Как что?! Решите проблему с округлением!
- Как?
- Сделайте так, чтобы расхождений не было
- Это невозможно
- Как это невозможно? В счет эти данные попадают из вашей системы, значит - где-то у вас ошибка. Вот найдите ее и устраните!
IT полезло в бутылку. Бухгалтерия пошла к начальству. Пришел чуть ли не генеральный директор интересоваться, "неужели так тяжело найти в программе ошибку?".
Тут дискуссия перешла в плоскость незамутненного обмена эмоциями и обсуждения личностей (кто как учил математику в школе, и т.п.)
К счастью, в том момент, когда конфликт близился к своему апогею и было понятно, что вот-вот, и прольется чья-то кровь, случилось чудо. Верховные Бухгалтерские Жрецы удачно принесли жертву не то Нацбанку, не то Минфину, не то какому-то другому языческому богу, и сказали, что можно НДС по отдельным позициям не писать.
Между IT и бухгалтерией воцарился вооруженный до зубов нейтралитет, но на слово "округление" и те, и другие еще где-то год реагировали очень нервно.
Письмо содержало полную историю примерно недельной переписки бухгалтерии и клиента, суть которой сводилась к следующему.
Бухгалтерия выслала клиенту счет вида (на самом деле, там было около 150 позиций):
| Цена без НДС | НДС | |
|---|---|---|
| Фиговины | 1,02 | 0,27 |
| Хреновины | 3,05 | 0,79 |
| Прочая ерунда | 28,6 | 7,44 |
| Итого | 32,67 | 8,49 |
В этом счете итоговая сумма НДС была посчитана как (итого * НДС), а не как сумма НДС по отдельным позициям (поскольку, как я помню, детализация давалась, что называется, JFYI).
Клиент попался дотошный и не поленился просуммировать НДС по всем позициям и сравнить его с итоговым. У него получился, отличающийся от "бухгалтерского" где-то на рубль. Клиент понял, что если его каждый раз дурят на рубль - так это ж всех остальных тоже, небось, дурят на рубль. Прикинув в уме кол-во клиентов, он получил таки суммы, от которых захватывало дух.
Ну уж нет - решил клиент, я этого вам так не спущу. И пошел на бухгалтерию войной.
Бухгалтерия какое-то время отпиралась, но потом решила уступить и спустила проблему "в IT".
Задача IT-шникам была поставлена так: "принципы формирования сумм и рассчета НДС - незыблемы и неизменны. Но! Надо сделать так, чтобы клиент, просуммировав НДС по всем позициям, получал то же значение "итого", что и в нашем счете".
- Ок, - сказали мы. Давайте увеличим точность НДС по позиции до четырех знаков после запятой.
- Нельзя(TM).
- Давайте будем считать "итого НДС", суммируя позиции
- Нельзя(ТМ)
- Давайте не будем показывать НДС по позициям
- Нельзя(ТМ)
- Но ведь Метро же так делает
- А нам пофиг
- Тогда давайте в некоторые позиции "добрасывать" копеечку на НДС
- Вы что! Аудит нас схавает живьем!
- Так а что вы хотите тогда от нас?
- Как что?! Решите проблему с округлением!
- Как?
- Сделайте так, чтобы расхождений не было
- Это невозможно
- Как это невозможно? В счет эти данные попадают из вашей системы, значит - где-то у вас ошибка. Вот найдите ее и устраните!
IT полезло в бутылку. Бухгалтерия пошла к начальству. Пришел чуть ли не генеральный директор интересоваться, "неужели так тяжело найти в программе ошибку?".
Тут дискуссия перешла в плоскость незамутненного обмена эмоциями и обсуждения личностей (кто как учил математику в школе, и т.п.)
К счастью, в том момент, когда конфликт близился к своему апогею и было понятно, что вот-вот, и прольется чья-то кровь, случилось чудо. Верховные Бухгалтерские Жрецы удачно принесли жертву не то Нацбанку, не то Минфину, не то какому-то другому языческому богу, и сказали, что можно НДС по отдельным позициям не писать.
Между IT и бухгалтерией воцарился вооруженный до зубов нейтралитет, но на слово "округление" и те, и другие еще где-то год реагировали очень нервно.
(no subject)
Date: 2006-11-26 05:23 pm (UTC)(no subject)
Date: 2006-11-26 05:36 pm (UTC)(no subject)
Date: 2006-11-26 05:49 pm (UTC)(no subject)
Date: 2006-11-26 07:16 pm (UTC)(no subject)
Date: 2006-11-27 04:43 am (UTC)(no subject)
Date: 2006-11-26 05:55 pm (UTC)(no subject)
Date: 2006-11-27 10:38 pm (UTC)(no subject)
Date: 2006-11-27 04:38 am (UTC)Какое-то ненормальное распределение. :)
(no subject)
Date: 2006-11-27 10:36 pm (UTC)Уже нельзя гиперболу использовать без того, чтобы тебя за руку не поймали :)
(no subject)
Date: 2006-11-27 05:43 am (UTC)Тут и "списание по среднему" и любимый нежно 6-й журнал-ордер...
Остальные персонажи, как правило, более вменяемые, а эти...
(no subject)
Date: 2006-11-27 10:37 pm (UTC)(no subject)
Date: 2006-11-27 07:42 am (UTC)(no subject)
Date: 2006-11-27 08:51 am (UTC)Звонит барышня, ну назовем ее бухгалтером, хотя на самом деле она кредиты администрирует - суть от этого не меняется. Рыдает: В вашей программе пропала копейка! Я ваши результаты на калькуляторе пересчитываю, и с программой не совпадает! Найдите! Мы неделю с ней мыкаемся - а там мало того, что расчет суммы кредита, а это почище, чем НДС 0.18, так и еще перевод по курсу, три валюты туда и обратно. Нашли, где у этой барышни пропадала копеечка. Накатили изменения. И завтра же другие барышни начинают рыдать - теперь копеечка теряется у них. В итоге выяснилось, что каждая из барышень считает и округляет эти суммы по разному алгоритму, и копееечки у них всех скачут в разные стороны. Вот мне была веселуха объяснять их начальнице, в чем на самом деле фишка и утверждать единый алгоритм для них всех.
(no subject)
Date: 2006-11-27 10:40 pm (UTC)Потом stop, drop & roll под ближайший стол и оттуда наблюдать за развитием конфликта.
:)
(no subject)
Date: 2006-11-27 11:11 am (UTC)(no subject)
Date: 2006-11-29 02:06 pm (UTC)А так по 4 знака после запятой пишут все газовики например (прям в счет фактуре фигачат по 4 знака) ... да и с валютой такой же косяк. Вобщим вечная проблема - жызненна.
(no subject)
Date: 2006-12-06 03:47 pm (UTC)(no subject)
Date: 2006-12-06 03:50 pm (UTC)