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 не будет опубликован. Обязательные поля помечены *