Мазмұнға өту
Tez Base

Эффективная ставка, которая зависела от числа нажатий "Заполнить"

· Жарияланды: · Жаңартылды:

Ломбарды и страховые

В учёте ценных бумаг страховой компании есть ежедневная рутина: амортизация премии по облигациям, удерживаемым до погашения, - расчёт по эффективной ставке. Рутина, которая должна давать одну и ту же цифру, сколько раз её ни пересчитывай.

В этой истории она давала разные. Первое заполнение документа - 40,79 при эталоне бухгалтерии 40,787. Почти точно, можно списать на округление. Повторное нажатие “Заполнить” в том же документе - уже 42,88. А на следующий день вместо ожидаемых 40,335 расчёт выдал 3,72 - ошибку уже не в третьем знаке, а в десять раз.

Эта статья - о том, как устроена такая ошибка, почему она самая коварная из учётных, и как выглядит честная приёмка исправления. Читается без знания 1С.

Почему цифра “плавала”

Расчёт эффективной ставки должен опираться на неизменные исходные данные: первоначальную премию при покупке бумаги. А эта процедура опиралась на текущее сальдо премии - величину, которую сама же и меняла.

Проведёшь документ - сальдо изменилось. Нажмёшь “Заполнить” ещё раз - расчёт стартует уже с новой точки и даёт другую сумму. На следующий день сальдо уехало ещё дальше - и расчёт вместе с ним. Система с обратной связью на саму себя: каждая итерация подтачивает базу для следующей.

Вторая половина беды - расчёт за предыдущий день выполнялся не всегда, а при особом условии (нулевой доходности при покупке). Поэтому перезаполнение шло другой веткой кода, чем первое заполнение, - отсюда 40,79 против 42,88 в одном и том же документе.

Чем такая ошибка опасна

Тем, что её почти невозможно поймать регламентными средствами:

  • Оборот сходится. Никакие контрольные соотношения не краснеют - суммы просто неверные.
  • Ошибка не воспроизводится. Бухгалтер жалуется “вчера считало не так” - программист нажимает “Заполнить”, получает третью цифру и разводит руками.
  • Каждый день по чуть-чуть. Амортизация - ежедневная. Небольшое расхождение, помноженное на портфель облигаций и месяцы, превращается в ощутимое искажение в отчётности - а страховую отчётность читает регулятор.

Если у вас в учёте есть цифра, которая “меняется от пересчёта”, - это не мистика и не “особенности 1С”. Это расчёт, который где-то опирается на собственный результат. Он не починится сам.

Как чинили - и как принимали

Процедуру расчёта заменили целиком, с тремя исправлениями: опора на первоначальную премию покупки вместо текущего сальдо, безусловное выполнение первого прохода для бумаг “до погашения”, отказ от подстановки начального баланса.

Интереснее всего здесь приёмка. Как доказать бухгалтерии, что теперь считается правильно? Договорились о честном критерии:

  1. Три последовательных дня расчёт должен совпасть с эталоном, посчитанным бухгалтерией вручную. Совпали: 40,787 / 40,335 / 39,883 - до третьего знака.
  2. Повторное нажатие “Заполнить” не должно менять сумму. Проверено: не меняет, сколько ни нажимай.

Второй пункт - прямой тест на исходную болезнь: если расчёт больше не зависит от числа нажатий, значит, обратная связь разорвана.

Что из этого стоит забрать себе

  • Если цифра в документе меняется от повторного заполнения - у вас расчёт с опорой на собственный результат. Это дефект, а не особенность.
  • Принимайте исправления расчётов по эталону на нескольких последовательных периодах, а не по одному “вроде сошлось”.
  • В тест приёмки включайте повторное выполнение: правильный расчёт идемпотентен - сколько ни пересчитывай, сумма одна.

Мы сопровождаем учёт ценных бумаг в страховых как постоянное направление - амортизация, эффективная ставка, купоны, переоценка, партионный учёт. Эта история - одна из 46 работ четырёхмесячного кейса сопровождения; чем ещё занимаемся - на странице 1С для страховых компаний.

Мұны сіздің орныңызға жөндей аламын

Сопровождение и доработка 1С:Предприятие 8.3 в страховой организации: класс страхования как обязательная аналитика, партионный учёт ценных бумаг, формы регулятора, МСФО 17, обмен с полисной системой. Мы уже говорим на этом языке - его не нужно объяснять.

Құны
450 000 - 600 000 ₸первый заход: ТЗ и работа, 3-4 дня, без налогов; дальше - абонемент по согласованному числу часов
в страховой компании за 4 месяца
400 часов / 46 работ

Мұны да оқыңыз

Показатель, которого нет вне отчёта: как страховая отдала маржу в BI

Аналитической платформе нужна "фактическая маржа платёжеспособности" по запросу на любую дату. А показатель существует только внутри отчёта: не нажал "Сформировать" - цифры нет нигде. Разбираем три пути решения этой типовой задачи и подводные камни каждого.

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

Месяц закрыт, в ОСВ по 7010 у части товаров ноль, повторное закрытие ничего не меняет. Разбираем для бухгалтера Бухгалтерии для Казахстана 3.0: почему корректировка этот ноль не трогает, как по карточке счёта отличить опоздавший приход от прихода задним числом и красного сальдо, откуда берётся "Нет базы распределения" и в каком порядке исправлять.

Нарушение прав доступа в 1С: как узнать, какого права не хватило, и какую группу доступа выдать

Пользователь видит одну строку "Нарушение прав доступа!", а объект и имя права уже лежат в журнале регистрации. Разбор по шагам: как прочитать событие, как по праву найти роли, профили и самую узкую группу доступа, почему после выдачи права приходит новый отказ и в каких случаях выдавать права бесполезно.