2 + 2 = 5 ? Или как УПП рассчитывает страховые взносы

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

В чем собственно сложность? Весь основной расчет происходит всего в одном запросе, на входе одна таблица значений, на выходе другая. Ничего необычного, но внутри запроса последовательно создаются и обрабатываются более тридцати! временных таблиц, как раз, которые и хотелось бы посмотреть, но сделать это, не редактируя код средствами отладки, невозможно.

В обработке используется штатный алгоритм, взятый из УПП 1.3.20.1, все промежуточные временные таблицы можно увидеть на соответствующих вкладках формы.

Принцип работы: выбираем документ «Начисление страховых взносов» и жмем кнопку «Заполнить и рассчитать». В верхней табличной части будет выведен окончательный результат, в нижней части формы расположена панель вкладок с промежуточными временными таблицами. Последовательность вкладок соответствует последовательности их создания в запросе.

Обновление от 30.04.2013
Адаптирвоано для конфигурации 1.3.38.4. Ошибку заметил Stas_Gromov, спасибо. 

15 Comments

  1. maldinitaly

    здравствуйте, спасибо за обработку.Плюс

    Reply
  2. vec435

    временные таблицы можно просмотреть множеством выложенных здесь консолей

    Reply
  3. mdmdvd

    Спасибо за обработку. Немного подпилил под свою конфигурацию работает прекрасно

    Reply
  4. Cat-MF

    (2) vec435, Согласен, но на входе запрос уже работает с заполненной ранее временной таблицей.

    Reply
  5. dedicated

    Здравствуйте! А ваша обработка будет работать под ЗУП?

    Reply
  6. Misanets

    (5) dedicated, не проверял, но структура регистров УПП схожа с ЗУП, по этому возможно и будет.

    Reply
  7. Stas_Gromov

    Обработка хорошая, только поправь: не работает на конфе УПП 1.3.38.4

    {Форма.ФормаРСВ.Форма(507,46)}: Переменная не определена (ОбщегоНазначенияПереопределяемый)

    Запрос.УстановитьПараметр(«парамЭтоЮрЛицо», <<?>>ОбщегоНазначенияПереопределяемый.ЭтоЮрЛицо(Организация));

    В старой копии нормально всё открылось!

    Reply
  8. Misanets

    (7) Stas_Gromov, спасибо. В этом релизе общий модуль переименован в «ОбщегоНазначенияЗКПереопределяемый», на всякий случай перенес эту функцию в модуль объекта обработки, вдруг потом опять переименуют.

    Reply
  9. the1

    Мегавещь, огромное спасибо!

    Reply
  10. DrAku1a
    внутри запроса последовательно создаются и обрабатываются более тридцати! временных таблиц, как раз, которые и хотелось бы посмотреть, но сделать это, не редактируя код средствами отладки, невозможно.

    Для этого можно использовать отладчик запросов, способный просматривать временные таблицы. На ИС таких полно.

    Как вариант — предложу свой: http://infostart.ru/public/95771/

    Reply
  11. Gesperid
    Вот вроде ничего сложного, и процентные ставки известны, и начисление считает правильно, а результат расчета страховых взносов ну ни как не тот, что ожидаем.

    Случаи неправильного расчета будут? Где 2 + 2 = 5 ?

    Reply
  12. Misanets

    (11) Gesperid, если Вы имеете в виду «привести пример», то нет, задачу я решал более года назад, в чем была соль уже и не помню.

    Reply
  13. Stas_Gromov

    Теперь ещё момент один нашёл: с 01.01.13 используются Работы с досрочным выходом на пенсию — может допилишь что бы эти расчеты тоже были видны? 🙂

    Reply
  14. Misanets

    (13) Stas_Gromov, если честно, то уже лень вникать в задачу. Если исправишь, отправь обработку, я перезалью.

    Reply
  15. Stas_Gromov

    с ходу поправить не получилось — надо вкуривать глубже алгоритм..

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *