{"id":446122,"date":"2025-01-26T09:00:45","date_gmt":"2025-01-26T09:00:45","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=446122"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=446122","title":{"rendered":"<span>\u041a\u0440\u0435\u0434\u0438\u0442, \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439, \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442, \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0435 \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0435. \u0422\u0435\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f. \u0412\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c\u0441\u044f \u0432\u0435\u0447\u043d\u043e<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u0412\u0441\u0442\u0443\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e<\/h2>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a &#171;\u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044e \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u043e\u0432&#187;, \u0438 \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043a \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u041f\u043b\u044e\u0441 \u043e\u043d\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f, \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043a\u043e\u043f\u0430\u0435\u043c\u0441\u044f \u0432 \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u0445. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0445\u043e\u0447\u0443 \u0435\u0439 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, &#171;\u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0438\u0441\u0442&#187; \u0432 \u043d\u0435\u0439 \u043d\u0435 \u044f \u043e\u0434\u0438\u043d \u0438 \u044f \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439. \u0415\u0449\u0451 \u043e\u0434\u043d\u0438\u043c \u0441\u0442\u0438\u043c\u0443\u043b\u043e\u043c \u0432\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u0432\u0441\u0435\u043e\u0431\u0449\u0435\u0435 \u043e\u0431\u043e\u0437\u0440\u0435\u043d\u0438\u0435, \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0437\u0430\u043a\u0440\u0435\u0434\u0438\u0442\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0441\u0435\u043b\u0435\u043d\u0438\u044f: <a href=\"https:\/\/www.rbc.ru\/finances\/02\/04\/2024\/660c0a9e9a79473d5dc5bea2\" rel=\"noopener noreferrer nofollow\">\u0420\u0411\u041a. 02 \u0430\u043f\u0440\u0435\u043b\u044f 2024. &#171;\u0427\u0438\u0441\u043b\u043e \u0440\u043e\u0441\u0441\u0438\u044f\u043d \u0441 \u043a\u0440\u0435\u0434\u0438\u0442\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u043b\u043e 50 \u043c\u043b\u043d&#187;<\/a> &#8212; \u0442\u0435\u043c\u0430 \u044f\u0432\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u0439 \u043e\u0445\u0432\u0430\u0442.<\/p>\n<h2>\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/h2>\n<p>\u0412\u0437\u044f\u043b \u043a\u0440\u0435\u0434\u0438\u0442 \u0432 2021 \u0433\u043e\u0434\u0443.\u00a0\u041f\u0435\u0440\u0435\u0434 \u044d\u0442\u0438\u043c \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043e\u043f\u044b\u0442,\u00a0\u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0434 \u043b\u044e\u0431\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0437\u0430\u0432\u043e\u0434\u0438\u043b\u0441\u044f,\u00a0\u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f,\u00a0\u0444\u0430\u0439\u043b\u0438\u043a Excel \u0438 \u0432\u0435\u043b\u0430\u0441\u044c \u0441\u0432\u0435\u0440\u043a\u0430,\u00a0\u0447\u0442\u043e \u043d\u0430\u0441\u0447\u0438\u0442\u0430\u043b\u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u044b \u043f\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0443,\u00a0\u0430 \u0447\u0442\u043e \u043d\u0430\u0441\u0447\u0438\u0442\u0430\u043b\u0438 \u043c\u044b.\u00a0\u0418 \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u0435\u0447\u043a\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u0438 \u043a \u043e\u0431\u0449\u0435\u043c\u0443 \u0432\u0437\u0430\u0438\u043c\u043e\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044e.\u00a0\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u044f \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043b \u0441 \u043a\u0440\u0435\u0434\u0438\u0442\u043e\u043c.\u00a0\u041f\u043e\u0442\u0438\u0445\u043e\u043d\u0435\u0447\u043a\u0443 \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e\u043a\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438.\u00a0\u0412 \u043a\u043e\u043d\u0446\u0435-\u043a\u043e\u043d\u0446\u043e\u0432 \u043a\u0440\u0435\u0434\u0438\u0442 \u0431\u044b\u043b \u0432\u044b\u043f\u043b\u0430\u0447\u0435\u043d,\u00a0\u0438 \u0442\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c,\u00a0\u0447\u0442\u043e \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u043f\u043e \u043d\u0435\u043c\u0443 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043f\u0430\u043b\u0438 \u0441 \u043c\u043e\u0438\u043c\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u043c\u0438 \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043a\u043e\u043f\u0435\u0439\u043a\u0438.<\/p>\n<p>\u0418 \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430,\u00a0\u043f\u043e\u0447\u0435\u043c\u0443 \u044f \u0441\u0442\u0430\u043b \u0432\u0435\u0441\u0442\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u00a0&#8212;\u00a0\u044d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u043f\u043e \u0413\u0440\u0430\u0444\u0438\u043a\u0443 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439.\u00a0\u0422.\u0435.\u00a0\u0435\u0441\u043b\u0438 \u0446\u0438\u0444\u0435\u0440\u043a\u0438 \u0438 \u0434\u0430\u0442\u044b \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0435\u0441\u0442\u044c \u0438 \u043e\u043d\u0438 \u0434\u0430\u0436\u0435 \u043a\u0430\u043a-\u0442\u043e \u0441\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435,\u00a0\u0442\u043e \u0432\u043e\u0442 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430\u00a0\u0437\u0430\u0433\u0430\u0434\u043a\u043e\u0439 \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u043f\u043b\u0430\u0442\u044b.\u00a0\u0423\u0442\u043e\u0447\u043d\u044e \u0441\u0432\u043e\u0451 \u043d\u0435\u0434\u043e\u0443\u043c\u0435\u043d\u0438\u0435,\u00a0\u0435\u0441\u043b\u0438 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u00a0(\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u00a0\u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043d\u0430\u0432\u0435\u0440\u043d\u043e \u0432\u0441\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435,\u00a0\u0430\u0432\u0442\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u044b \u0438 \u0438\u043f\u043e\u0442\u0435\u043a\u0438)\u00a0\u0438 \u043b\u043e\u0433\u0438\u043a\u043e\u0439 \u0435\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e,\u00a0\u0442\u043e \u0437\u0430\u0433\u0432\u043e\u0437\u0434\u043a\u0443 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b:\u00a0\u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f,\u00a0\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u0430.<\/p>\n<p>\u041e\u0431\u043e \u0432\u0441\u0451\u043c \u043f\u043e \u043f\u0440\u044f\u0434\u043a\u0443.<\/p>\n<h2>\u0426\u0435\u043b\u044c \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b<\/h2>\n<p>\u0418\u043c\u0435\u0442\u044c \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0441\u0432\u0435\u0440\u043a\u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439:<\/p>\n<ol>\n<li>\n<p>\u041a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u0431\u044b\u043b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u043e\u0447\u043d\u044b\u043c<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0435\u0441\u0442\u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u043a\u0440\u0435\u0434\u0438\u0442\u0443<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u043c\u043e\u0433 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0443\u0449\u0438\u0439 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436, \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430:<\/p>\n<ol>\n<li>\n<p>\u0423\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043a\u0440\u0435\u0434\u0438\u0442\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u041f\u043b\u0430\u0442\u0435\u0436\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0438\u043c\u0435\u043b\u0438 \u043c\u0435\u0441\u0442\u043e<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0435 \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044e \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0441\u0451 \u043b\u0438\u0448\u043d\u0435\u0435 \u043e\u043f\u0443\u0449\u0435\u043d\u043e:<\/p>\n<ol>\n<li>\n<p>\u0414\u0435\u043d\u044c \u0432\u044b\u043f\u043b\u0430\u0442\u044b \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043c\u0438\u0441\u0441\u0438\u0438 \u043d\u0435 \u0432\u0437\u0438\u043c\u0430\u044e\u0442\u0441\u044f<\/p>\n<\/li>\n<li>\n<p>\u0418 \u0435\u0449\u0451 \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e (\u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u0433\u0430\u0442\u044b\u0439 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0432\u0441\u0435\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439\u00a0<a href=\"https:\/\/calcus.ru\/kreditnyj-kalkulyator-s-dosrochnym-pogasheniem\" rel=\"noopener noreferrer nofollow\">https:\/\/calcus.ru\/kreditnyj-kalkulyator-s-dosrochnym-pogasheniem<\/a>)<\/p>\n<\/li>\n<\/ol>\n<h2>\u0421\u0435\u0440\u0432\u0438\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c<\/h2>\n<p>\u0418,\u00a0\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044f \u0442\u0435\u043c\u0443 \u0441 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0430\u043c\u0438,\u00a0\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0449\u0438\u0435 <strong>\u0426\u0435\u043b\u0438<\/strong>, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0435\u0441\u0442\u044c. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0430\u043a\u0446\u0435\u043d\u0442\u0438\u0440\u0443\u044e \u043d\u0430 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u0445\u00a0&#171;\u041f\u043b\u0430\u0442\u0435\u0436\u0438,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0438\u043c\u0435\u043b\u0438 \u043c\u0435\u0441\u0442\u043e&#187;\u00a0\u0438\u043c\u0435\u044e\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/calcus.ru\/kreditnyj-kalkulyator-s-dosrochnym-pogasheniem\" rel=\"noopener noreferrer nofollow\">https:\/\/calcus.ru\/kreditnyj-kalkulyator-s-dosrochnym-pogasheniem<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/calc.consultant.ru\/crd\" rel=\"noopener noreferrer nofollow\">https:\/\/calc.consultant.ru\/crd<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/fincult.info\/calc\/loan\/\" rel=\"noopener noreferrer nofollow\">https:\/\/fincult.info\/calc\/loan\/<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/calculoan.ru\/\" rel=\"noopener noreferrer nofollow\">https:\/\/calculoan.ru\/<\/a> (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u043d\u0435 \u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0442, \u043d\u043e \u0432\u0435\u0434\u0451\u0442 \u0441\u0435\u0431\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u043a calc.consultant.ru \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430)<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e,\u00a0\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c,\u00a0\u043d\u0430 \u043d\u0435\u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u043e\u0441\u0442\u044c \u0438\u0445 \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432 \u043f\u0440\u0438 \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u043c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u043c \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0438.<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 1. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f (\u0431\u0435\u0437 \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f)<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"center\">\u0423\u0441\u043b\u043e\u0432\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"center\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">5 100 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430 \u0432\u044b\u0434\u0430\u0447\u0438<\/p>\n<\/td>\n<td>\n<p align=\"right\">10.10.2022<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0440\u043e\u043a \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">8 \u043b\u0435\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0442\u0430\u0432\u043a\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">8.2%<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412\u0441\u0435 3 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0432\u044b\u0434\u0430\u044e\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443.\u00a0\u0410\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435\u00a0(\u043e \u0447\u0451\u043c \u044f \u0435\u0449\u0451 \u0443\u043f\u043e\u043c\u044f\u043d\u0443 \u043d\u0438\u0436\u0435\u00a0&#8212;\u00a0\u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435 \u0442\u043e\u0447\u043d\u044b\u043c)<\/p>\n<p>\u0421\u0443\u043c\u043c\u0430 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u0437\u0430 \u043c\u0435\u0441\u044f\u0446\u00a0=\u00a0\u0421\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430\u00a0\u00d7\u00a0( (\u0413\u043e\u0434\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0432\u043a\u0430\u00a0\/\u00a0100\u00a0\/\u00a012)\u00a0\/\u00a0(1\u00a0&#8212;\u00a0(1\u00a0+\u00a0(\u0413\u043e\u0434\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0432\u043a\u0430\u00a0\/\u00a0100\u00a0\/\u00a012) )\u00a0&#8212;\u00a0\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432\u00a0) )<\/p>\n<p>\u0421\u0443\u043c\u043c\u0430 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432\u00a0=\u00a0\u041e\u0441\u0442\u0430\u0442\u043e\u043a \u0437\u0430\u0434\u043e\u043b\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443\u00a0\u00d7\u00a0(\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439,\u00a0\u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u044b\u00a0\u00d7\u00a0\u0413\u043e\u0434\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0432\u043a\u0430\u00a0\/\u00a0100\u00a0\/\u00a0\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439 \u0432 \u0433\u043e\u0434\u0443)\u00a0<a href=\"https:\/\/calc.consultant.ru\/crd\" rel=\"noopener noreferrer nofollow\">\u0441\u043c \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0440\u0430\u0441\u0447\u0451\u0442\u0430 consultant.ru<\/a><\/p>\n<h4>calcus.ru<\/h4>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f4f\/c03\/467\/f4fc034679d9fbc96cc9f898603734b8.png\" width=\"862\" height=\"991\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f4f\/c03\/467\/f4fc034679d9fbc96cc9f898603734b8.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/791\/ff1\/42f\/791ff142fb621a15c941365525906581.png\" width=\"988\" height=\"761\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/791\/ff1\/42f\/791ff142fb621a15c941365525906581.png\"\/><\/figure>\n<h4>calc.consultant.ru<\/h4>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d94\/1d9\/5c0\/d941d95c0321aef463838139db4bad0e.png\" width=\"958\" height=\"985\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d94\/1d9\/5c0\/d941d95c0321aef463838139db4bad0e.png\"\/><\/figure>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c24\/08d\/ba7\/c2408dba75d8bab3b1c3c5c21fd4ed67.png\" width=\"486\" height=\"981\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c24\/08d\/ba7\/c2408dba75d8bab3b1c3c5c21fd4ed67.png\"\/><\/figure>\n<h4>fincult.info<\/h4>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/25c\/e51\/a1d\/25ce51a1d48e8c259dcade549e3a9b08.png\" width=\"1092\" height=\"719\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/25c\/e51\/a1d\/25ce51a1d48e8c259dcade549e3a9b08.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/891\/262\/1a9\/8912621a914aac0d2dcf103120058e9c.png\" width=\"1101\" height=\"976\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/891\/262\/1a9\/8912621a914aac0d2dcf103120058e9c.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/86f\/d6d\/9c3\/86fd6d9c3da6a536f4eb9bb4172653c4.png\" width=\"1093\" height=\"972\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/86f\/d6d\/9c3\/86fd6d9c3da6a536f4eb9bb4172653c4.png\"\/><\/figure>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 2. \u0421 \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u043c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u043c \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0435\u043c<\/h3>\n<p>\u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u041f\u0440\u0438\u043c\u0435\u0440\u0430 1. <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"center\">\u0414\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0435 \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"center\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">484 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">13.11.2022<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"right\">\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0441\u0443\u043c\u043c\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0410 \u043f\u0440\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u043c \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f\u00a0(\u043e\u0434\u0438\u043d \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436).\u00a0\u041a \u0441\u043b\u043e\u0432\u0443,\u00a0\u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443,\u00a0\u0442\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b\u0430\u0441\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430,\u00a0\u043f\u043b\u044e\u0441 \u0443 \u0431\u0430\u043d\u043a\u0430 \u0431\u044b\u043b \u0441\u0432\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442,\u00a0\u0438 \u0443 \u043c\u0435\u043d\u044f\u00a0&#8212;\u00a0\u0441\u0432\u043e\u0439,\u00a0\u0431\u043b\u0438\u0437\u043a\u0438\u0439 \u043f\u043e \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u043c \u043a \u0431\u0430\u043d\u043a\u043e\u0432\u0441\u043a\u043e\u043c\u0443,\u00a0\u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u043e \u043c\u0435\u043d\u0435\u0435 1 \u0440\u0443\u0431\u043b\u044f \u0432 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u044b\u0439 \u043c\u0435\u0441\u044f\u0446.<\/p>\n<p>\u0418 \u044f \u043d\u0435 \u0437\u0440\u044f \u0434\u0435\u043b\u0430\u044e \u043f\u0440\u0438\u043d\u0442\u0441\u043a\u0440\u0438\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430.\u00a0\u0412 \u043d\u0435\u0433\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u0437\u0430 \u0432\u0435\u0441\u044c\u00a0(\u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044f)\u00a0\u043f\u0435\u0440\u0438\u043e\u0434 \u043a\u0440\u0435\u0434\u0438\u0442\u0430.\u00a0\u0418 \u043f\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u00a0(\u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e \u0440\u0430\u0437\u043d\u0438\u0446\u044b)\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0443\u0434\u0438\u0442\u044c \u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u00a0\u0441\u0430\u043c\u043e\u0433\u043e \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u0432 \u0446\u0435\u043b\u043e\u043c.<\/p>\n<h4>calcus.ru<\/h4>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/79f\/183\/90d\/79f18390d04e457a01e7f49d5a7da6eb.png\" width=\"947\" height=\"1125\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/79f\/183\/90d\/79f18390d04e457a01e7f49d5a7da6eb.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/af9\/fb1\/9fe\/af9fb19feed79e75f13c4be02836c459.png\" width=\"1070\" height=\"818\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/af9\/fb1\/9fe\/af9fb19feed79e75f13c4be02836c459.png\"\/><\/figure>\n<h4>calc.consultant.ru<\/h4>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/58f\/fa3\/cd8\/58ffa3cd8636125b61b7707cfaa57c8f.png\" width=\"1046\" height=\"1077\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/58f\/fa3\/cd8\/58ffa3cd8636125b61b7707cfaa57c8f.png\"\/><\/figure>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6b0\/8fe\/84a\/6b08fe84a81cdc2a3e162a767c062c08.png\" width=\"516\" height=\"959\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6b0\/8fe\/84a\/6b08fe84a81cdc2a3e162a767c062c08.png\"\/><\/figure>\n<h4>fincult.info<\/h4>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/873\/fc5\/dd6\/873fc5dd63f6d4087b8189ba321cf91d.png\" width=\"1094\" height=\"1011\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/873\/fc5\/dd6\/873fc5dd63f6d4087b8189ba321cf91d.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cdf\/499\/bd7\/cdf499bd7d36982245969ab5d9b5c259.png\" width=\"1103\" height=\"969\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cdf\/499\/bd7\/cdf499bd7d36982245969ab5d9b5c259.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9de\/a53\/f2e\/9dea53f2e79fd52d940498390c98b08d.png\" width=\"1102\" height=\"985\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9de\/a53\/f2e\/9dea53f2e79fd52d940498390c98b08d.png\"\/><\/figure>\n<h3>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434<\/h3>\n<p>\u0422\u0443\u0442 \u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u043f\u0440\u0430\u0432\u0434\u044b\u0432\u0430\u044e \u0441\u0432\u043e\u0451 \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f,\u00a0\u043e\u0434\u043d\u0430\u043a\u043e \u0441\u0434\u0435\u043b\u0430\u044e \u0430\u043a\u0446\u0435\u043d\u0442 \u043d\u0430 \u0442\u043e\u043c,\u00a0\u0447\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0449\u044c \u043a\u0430\u043a\u00a0\u043a\u0440\u0435\u0434\u0438\u0442 \u0441 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u0441 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u043c \u043f\u043b\u0430\u0442\u0435\u0436\u043e\u043c \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439,\u00a0\u0442.\u0435.\u00a0\u043d\u0435\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430.\u00a0\u0418 \u0442\u0443\u0442 \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u043a\u0430\u0441\u0430\u044e\u0441\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0442\u0438\u043f\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043b\u0438 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438 \u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e,\u00a0\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0438\/\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b.\u00a0\u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e,\u00a0\u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c,\u00a0\u043d\u043e \u043e\u0437\u0432\u0443\u0447\u0443,\u00a0\u0435\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u043d\u0443\u0436\u0434\u0430 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043b\u0430\u00a0\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438\u00a0&#8212;\u00a0\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u043f\u0430\u0432\u0448\u0438\u0439\u0441\u044f,\u00a0\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u043e\u0442,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043b\u0438\u0436\u0435\u00a0\u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043a\u0440\u0435\u0434\u0438\u0442\u0443.<\/p>\n<p>\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e,\u00a0&#171;\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439&#187;\u00a0\u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439\u00a0(\u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439\u00a0\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0435\u043d)\u00a0\u043d\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c,\u00a0\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f.<\/p>\n<h2>\u0413\u0440\u0430\u0444\u0438\u043a \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439<\/h2>\n<p>\u0415\u0449\u0451 \u043f\u0440\u0435\u0442\u0435\u043d\u0437\u0438\u044f \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430 \u043a \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439,\u00a0\u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439.\u00a0\u0418 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0432\u043e\u0438\u0445 \u043c\u044b\u0442\u0430\u0440\u0441\u0442\u0432\u00a0\u043f\u0440\u0438\u0448\u0451\u043b \u0432 \u0432\u044b\u0432\u043e\u0434\u0443,\u00a0\u0447\u0442\u043e \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0432\u0438\u0434,\u00a0\u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e,\u00a0\u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u0434\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u043e\u0441\u043e\u0431\u043e \u043d\u0435\u043b\u044c\u0437\u044f\u00a0&#8212;\u00a0\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u00a0\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u0438\u0439 \u0438 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0439,\u00a0\u0447\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u0435\u0439.\u00a0\u041d\u043e \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c,\u00a0\u0431\u0443\u0434\u0443 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. <\/p>\n<h3>\u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435<\/h3>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u0440\u0435\u0434\u0438\u0442 \u0441 2-\u043c\u044f \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u043c\u0438 \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"center\">\u0423\u0441\u043b\u043e\u0432\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"center\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">1 000 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430 \u0432\u044b\u0434\u0430\u0447\u0438<\/p>\n<\/td>\n<td>\n<p align=\"right\">20.11.2023<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0440\u043e\u043a \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">1 \u0433\u043e\u0434<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0442\u0430\u0432\u043a\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">12.3%<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0413\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u043d\u0430\u0448 \u043a\u0440\u0435\u0434\u0438\u0442\u043e\u0440 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0435 \u043e\u0442 2024-03-30 \u0434\u043e 2024-04-20.\u00a0\u0414\u043e 2024-03-30 \u0432\u0441\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0438\u00a0\u043f\u0440\u043e\u0448\u043b\u0438 \u043f\u043b\u0430\u043d\u043e\u0432\u043e.\u00a0\u0421 \u0434\u0432\u0443\u043c\u044f \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u043c\u0438 \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"center\">id_payment<\/p>\n<\/th>\n<th>\n<p align=\"center\">\u0414\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0435 \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"center\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">21.01.2024<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"right\">\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0441\u0443\u043c\u043c\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">30 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">30.03.2024<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"right\">\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0441\u0443\u043c\u043c\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0415\u0433\u043e \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u0432 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435,\u00a0\u043d\u0430\u0437\u043e\u0432\u0451\u043c credit,\u00a0\u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442\u00a0&#8230; <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>id_payment<\/p>\n<\/th>\n<th>\n<p>date<\/p>\n<\/th>\n<th data-colwidth=\"88\" width=\"88\">\n<p>days<\/p>\n<\/th>\n<th>\n<p>credit_sum<\/p>\n<\/th>\n<th>\n<p>payment<\/p>\n<\/th>\n<th>\n<p>accrued_interest<\/p>\n<\/th>\n<th>\n<p>principal_debt<\/p>\n<\/th>\n<th>\n<p>interest_rate<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2023-11-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1 000 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">2023-12-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">921 129,48<\/p>\n<\/td>\n<td>\n<p align=\"left\">88 980,11<\/p>\n<\/td>\n<td>\n<p align=\"left\">10 109,59<\/p>\n<\/td>\n<td>\n<p align=\"left\">78 870,52<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-01-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">841 755,06<\/p>\n<\/td>\n<td>\n<p align=\"left\">88 980,11<\/p>\n<\/td>\n<td>\n<p align=\"left\">9 605,69<\/p>\n<\/td>\n<td>\n<p align=\"left\">79 374,42<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-01-21<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">742 037,94<\/p>\n<\/td>\n<td>\n<p align=\"left\">100 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">282,88<\/p>\n<\/td>\n<td>\n<p align=\"left\">99 717,12<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-02-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">742 037,94<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 481,20<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 481,20<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-03-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">29<\/p>\n<\/td>\n<td>\n<p align=\"left\">662 568,77<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 231,83<\/p>\n<\/td>\n<td>\n<p align=\"left\">79 469,17<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-03-30<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">634 795,44<\/p>\n<\/td>\n<td>\n<p align=\"left\">30 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 226,67<\/p>\n<\/td>\n<td>\n<p align=\"left\">27 773,33<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-04-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">21<\/p>\n<\/td>\n<td>\n<p align=\"left\">582 574,43<\/p>\n<\/td>\n<td>\n<p align=\"left\">56 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">4 479,99<\/p>\n<\/td>\n<td>\n<p align=\"left\">52 221,01<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-05-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">501 746,93<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">5 873,50<\/p>\n<\/td>\n<td>\n<p align=\"left\">80 827,50<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">9<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-06-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">420 273,15<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">5 227,22<\/p>\n<\/td>\n<td>\n<p align=\"left\">81 473,78<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-07-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">337 809,33<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">4 237,18<\/p>\n<\/td>\n<td>\n<p align=\"left\">82 463,82<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">11<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-08-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">254 627,64<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">3 519,31<\/p>\n<\/td>\n<td>\n<p align=\"left\">83 181,69<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">12<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-09-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">170 579,36<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 652,72<\/p>\n<\/td>\n<td>\n<p align=\"left\">84 048,28<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">13<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-10-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">85 598,14<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">1 719,78<\/p>\n<\/td>\n<td>\n<p align=\"left\">84 981,22<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-11-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 489,90<\/p>\n<\/td>\n<td>\n<p align=\"left\">891,76<\/p>\n<\/td>\n<td>\n<p align=\"left\">85 598,14<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>&#8230;\u00a0\u0438 \u0432 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u043c,\u00a0\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u043f\u043e\u043b\u044f \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438,\u00a0\u043d\u0430\u0437\u043e\u0432\u0451\u043c credit_event, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>id_date<\/p>\n<\/th>\n<th>\n<p>id_payment<\/p>\n<\/th>\n<th>\n<p>is_payment_date<\/p>\n<\/th>\n<th>\n<p>date_type_event<\/p>\n<\/th>\n<th>\n<p>date<\/p>\n<\/th>\n<th>\n<p>days<\/p>\n<\/th>\n<th>\n<p>days_year<\/p>\n<\/th>\n<th>\n<p>credit_sum<\/p>\n<\/th>\n<th>\n<p>payment<\/p>\n<\/th>\n<th>\n<p>accrued_interest<\/p>\n<\/th>\n<th data-colwidth=\"58\" width=\"58\">\n<p>principal_debt<\/p>\n<\/th>\n<th>\n<p>interest_rate<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">False<\/p>\n<\/td>\n<td>\n<p align=\"left\">creditStartDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2023-11-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1 000 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2023-12-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">365<\/p>\n<\/td>\n<td>\n<p align=\"left\">921 129,48<\/p>\n<\/td>\n<td>\n<p align=\"left\">88 980,11<\/p>\n<\/td>\n<td>\n<p align=\"left\">10 109,59<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">78 870,52<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">False<\/p>\n<\/td>\n<td>\n<p align=\"left\">noCharge<\/p>\n<\/td>\n<td>\n<p align=\"left\">2023-12-31<\/p>\n<\/td>\n<td>\n<p align=\"left\">11<\/p>\n<\/td>\n<td>\n<p align=\"left\">365<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">3 414,49<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">-3 414,49<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-01-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">20<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">841 755,06<\/p>\n<\/td>\n<td>\n<p align=\"left\">88 980,11<\/p>\n<\/td>\n<td>\n<p align=\"left\">6 191,20<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">82 788,91<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">False<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-01-21<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">742 037,94<\/p>\n<\/td>\n<td>\n<p align=\"left\">100 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">282,88<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">99 717,12<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-02-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">742 037,94<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 481,20<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 481,20<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-03-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">29<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">662 568,77<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 231,83<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">79 469,17<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">False<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-03-30<\/p>\n<\/td>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">634 795,44<\/p>\n<\/td>\n<td>\n<p align=\"left\">30 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 226,67<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">27 773,33<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">9<\/p>\n<\/td>\n<td>\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayTheRestDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-04-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">21<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">582 574,43<\/p>\n<\/td>\n<td>\n<p align=\"left\">56 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">4 479,99<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">52 221,01<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-05-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">501 746,93<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">5 873,50<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">80 827,50<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">11<\/p>\n<\/td>\n<td>\n<p align=\"left\">9<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-06-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">420 273,15<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">5 227,22<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">81 473,78<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">12<\/p>\n<\/td>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-07-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">337 809,33<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">4 237,18<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">82 463,82<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">13<\/p>\n<\/td>\n<td>\n<p align=\"left\">11<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-08-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">254 627,64<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">3 519,31<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">83 181,69<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">12<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-09-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">170 579,36<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 652,72<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">84 048,28<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">15<\/p>\n<\/td>\n<td>\n<p align=\"left\">13<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-10-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">85 598,14<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">1 719,78<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">84 981,22<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">16<\/p>\n<\/td>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-11-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 489,90<\/p>\n<\/td>\n<td>\n<p align=\"left\">891,76<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">85 598,14<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th data-colwidth=\"161\" width=\"161\">\n<p>\u041f\u043e\u043b\u0435<\/p>\n<\/th>\n<th>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">id_date<\/p>\n<\/td>\n<td>\n<p align=\"left\">id \u0434\u0430\u0442\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">id_payment<\/p>\n<\/td>\n<td>\n<p align=\"left\">id \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">is_payment_date<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0434\u0430\u0442\u043e\u0439 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">date_type_event<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0438\u043f\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">date<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">days<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043f\u0440\u043e\u0448\u043b\u043e \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">days_year<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043d\u0435\u0439 \u0432 \u0433\u043e\u0434\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">credit_sum<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f \u0441\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">payment<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443 (= accrued_interest + principal_debt)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">accrued_interest<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u044b \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443 \u0437\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">principal_debt<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0435\u043b\u043e \u0434\u043e\u043b\u0433\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">interest_rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443, \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u043d\u0430\u0447\u0430\u043b\u0430<\/h3>\n<p>\u041d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u043f\u043e\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c \u043a\u0440\u0435\u0434\u0438\u0442\u0430 <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c0b\/581\/665\/c0b581665ca78e1c9e73f221a19f38cb.png\" width=\"1067\" height=\"289\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c0b\/581\/665\/c0b581665ca78e1c9e73f221a19f38cb.png\"\/><\/figure>\n<p>\u041f\u043b\u044e\u0441 \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u044b \u043f\u043e\u043b\u044f,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u043f\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043b\u0430\u0442\u0435\u0436\u0430\u043c\u00a0(\u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043a\u0440\u0435\u0434\u0438\u0442\u043e\u0440 \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0433\u0434\u0435-\u0442\u043e \u0432\u00a0\u043f\u0435\u0440\u0438\u043e\u0434\u0435 \u043c\u0435\u0436\u0434\u0443 \u0434\u0430\u0442\u0430\u043c\u0438 \u043e\u0442 2024-03-30 \u0434\u043e 2024-04-20).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/86a\/c48\/7d5\/86ac487d563c83021b686a3a8a00f728.png\" width=\"1062\" height=\"285\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/86a\/c48\/7d5\/86ac487d563c83021b686a3a8a00f728.png\"\/><\/figure>\n<h3>days<\/h3>\n<p><strong>days<\/strong>\u00a0\u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u043e\u0439 \u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u043e\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c78\/90c\/25d\/c7890c25de9b4698c031b77654d4fbd9.png\" width=\"1194\" height=\"384\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c78\/90c\/25d\/c7890c25de9b4698c031b77654d4fbd9.png\"\/><\/figure>\n<h3>days_year<\/h3>\n<p><strong>days_year<\/strong>\u00a0\u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u043d\u0435\u0439 \u0432 \u0433\u043e\u0434\u0443 \u043d\u0430 \u0434\u0430\u0442\u0443. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bea\/9cd\/ba0\/bea9cdba0f7b0328501a0c7779692b0e.png\" width=\"1189\" height=\"385\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bea\/9cd\/ba0\/bea9cdba0f7b0328501a0c7779692b0e.png\"\/><\/figure>\n<h3>accrued_interest<\/h3>\n<p><strong>accrued_interest<\/strong>\u00a0\u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c\u00a0<strong>credit_sum<\/strong>\u00a0(\u041e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f \u0441\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443)\u00a0\u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u044b\u0439\u00a0<strong>id_payment<\/strong>,\u00a0\u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u043d\u0430\u00a0<strong>interest_rate<\/strong>\u00a0(\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443,\u00a0\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434)\u00a0\u0441 \u043f\u043e\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u043d\u0430 \u043a\u043e\u043b-\u0432\u043e \u0434\u043d\u0435\u0439 \u0437\u0430\u00a0\u043f\u0435\u0440\u0438\u043e\u0434\u00a0(\u043b\u0443\u0447\u0448\u0435 \u0441\u0432\u0435\u0440\u0438\u0442\u044c\u0441\u044f \u0441 \u0444\u043e\u0440\u043c\u0443\u043b\u043e\u0439 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435\u00a0&#8212;\u00a0\u0442\u0430\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e). <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8ff\/d74\/dc6\/8ffd74dc67f28e09528a7b73dca3303c.png\" width=\"1188\" height=\"383\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8ff\/d74\/dc6\/8ffd74dc67f28e09528a7b73dca3303c.png\"\/><\/figure>\n<p>\u0418 \u0442\u0443\u0442 \u043c\u044b \u043f\u0440\u0438\u0442\u0440\u043e\u043d\u0443\u043b\u0438\u0441\u044c \u043a \u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0441\u0442\u0430\u0432\u0438\u0442 \u043f\u043e\u0434 \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u00a0\u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439.\u00a0\u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0441\u044b\u043b\u043a\u0430 \u0434\u043b\u044f 2\u0445 \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432\u00a0<strong>accrued_interest<\/strong>\u00a0\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c\u00a0<strong>credit_sum<\/strong>\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f,\u00a0\u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043f\u0440\u043e\u0447\u0438\u0435 \u043f\u043e\u043b\u044f\u00a0&#8212;\u00a0\u0441\u0434\u0432\u0438\u043d\u0443\u043b\u0438\u0441\u044c. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/54a\/dd5\/a62\/54add5a62ee9042bdd4ca0364b3ab3f6.png\" width=\"1189\" height=\"380\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/54a\/dd5\/a62\/54add5a62ee9042bdd4ca0364b3ab3f6.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa9\/4fb\/5ea\/fa94fb5ea591670848811f888951710d.png\" width=\"1187\" height=\"381\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fa9\/4fb\/5ea\/fa94fb5ea591670848811f888951710d.png\"\/><\/figure>\n<p>\u041e\u0431\u0440\u0430\u0449\u0430\u044e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435,\u00a0\u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c\u00a0<strong>date_type_event<\/strong>\u00a0=\u00a0&#8216;noCharge&#8217;\u00a0\u0442\u0443\u0442 \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u043c\u0435\u0442\u044c \u043c\u0435\u0441\u0442\u043e,\u00a0\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u0433\u043e\u0434\u0430\u00a0\u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043c\u0435\u043d\u0430\u00a0<strong>days_year<\/strong>\u00a0\u0441 365 \u043d\u0430 366,\u00a0\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f\u00a0<strong>accrued_interest<\/strong>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f07\/86d\/d27\/f0786dd279b5b6b5fda3e72e36f98f9a.png\" width=\"1129\" height=\"310\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f07\/86d\/d27\/f0786dd279b5b6b5fda3e72e36f98f9a.png\"\/><\/figure>\n<p>\u0418 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438,\u00a0\u043d\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e\/\u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c\u0443\u00a0\u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044e.\u00a0\u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c.\u00a0\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c 2 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0412 I-\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\u00a0<strong>interest_rate<\/strong>\u00a0\u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u043e\u0439 \u0441\u0442\u0430\u0432\u043a\u0438.\u00a0\u0422.\u0435.\u00a0\u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 31 \u0434\u043d\u044f \u0438\u0437 366,\u00a0\u043f\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0441\u0442\u0430\u0432\u043a\u0430 15%\u00a0(\u043e\u0434\u043d\u0430\u043a\u043e \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0432\u043a\u0430 \u0432 15%\u00a0\u0441\u0442\u0430\u043b\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 2024-03-20).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0a9\/0dc\/261\/0a90dc261b1cefecb73da240b18a0f05.png\" width=\"1186\" height=\"364\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0a9\/0dc\/261\/0a90dc261b1cefecb73da240b18a0f05.png\"\/><\/figure>\n<p>\u0412\u043e II-\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\u00a0<strong>interest_rate<\/strong>\u00a0\u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u0434\u0430\u0442\u044b 2024-03-20 \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u043e\u0432\u0430\u044f 15%\u00a0\u0441\u0442\u0430\u0432\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c\u00a0(\u043d\u043e \u0432 \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u0445 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 31 \u0434\u0435\u043d\u044c \u0438\u0437 366).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3fe\/d63\/1b3\/3fed631b3700830b4b23399af73f5165.png\" width=\"1186\" height=\"363\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3fe\/d63\/1b3\/3fed631b3700830b4b23399af73f5165.png\"\/><\/figure>\n<p>\u041e\u0431\u0435 \u0440\u0430\u0432\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b,\u00a0\u043b\u043e\u0433\u0438\u0447\u043d\u044b \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442,\u00a0\u043e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0441 \u0432\u043a\u0443\u0441\u043e\u0432\u0449\u0438\u043d\u043e\u0439,\u00a0\u0432\u0435\u0434\u0443\u0449\u0435\u0439 \u043a \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u0438\u044f\u043c.\u00a0\u042f \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f I-\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430.<\/p>\n<h3>credit_sum<\/h3>\n<p><strong>credit_sum<\/strong>\u00a0\u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0431\u0435\u0440\u0451\u0442\u0441\u044f\u00a0<strong>credit_sum<\/strong>\u00a0\u0437\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043f\u0435\u0440\u0438\u043e\u0434,\u00a0\u0432\u044b\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f\u00a0<strong>payment<\/strong>\u00a0\u0437\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u00a0\u043f\u0435\u0440\u0438\u043e\u0434 \u0438 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f\u00a0<strong>accrued_interest<\/strong>\u00a0\u0437\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0435\u0440\u0438\u043e\u0434. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/437\/667\/2f4\/4376672f4ed4c14fdd0e0b563e3222df.png\" width=\"1186\" height=\"379\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/437\/667\/2f4\/4376672f4ed4c14fdd0e0b563e3222df.png\"\/><\/figure>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043c\u0435\u0447\u0443 \u0440\u0430\u0441\u0447\u0451\u0442\u00a0<strong>credit_sum<\/strong>\u00a0\u0434\u043b\u044f\u00a0<strong>id_payment<\/strong>\u00a0=\u00a02,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u00a0<strong>date_type_event<\/strong>\u00a0=\u00a0&#8216;noCharge&#8217;. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/66f\/d0e\/057\/66fd0e057f7c173eed18228e52db3fb3.png\" width=\"1333\" height=\"378\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/66f\/d0e\/057\/66fd0e057f7c173eed18228e52db3fb3.png\"\/><\/figure>\n<h3>principal_debt<\/h3>\n<p><strong>principal_debt<\/strong>\u00a0=\u00a0<strong>payment<\/strong>\u00a0&#8212;\u00a0<strong>accrued_interest<\/strong> <\/p>\n<p>\u0418\u0437-\u0437\u0430 \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0434\u0430\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u043f\u043b\u043e\u0434\u0438\u0442 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438\u00a0&#8212;\u00a0\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f\u00a0<strong>date_type_event<\/strong>\u00a0=\u00a0&#8216;noCharge&#8217;.\u00a0\u041e\u043f\u044f\u0442\u044c \u0436\u0435 &#8212; \u044d\u0442\u0438\u0445 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c, \u0438 \u0441\u0445\u043b\u043e\u043f\u043d\u0443\u0442\u044c \u0441 \u0438\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044f\u043c\u0438 \u0441\u043e \u0441\u043c\u0435\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438.<\/p>\n<h3>date_type_event<\/h3>\n<p><strong>date_type_event<\/strong>\u00a0&#8212;\u00a0\u044d\u0442\u043e \u0442\u0438\u043f\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439. <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>date_type_event<\/p>\n<\/th>\n<th data-colwidth=\"223\" width=\"223\">\n<p>\u0422\u0438\u043f\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439<\/p>\n<\/th>\n<th data-colwidth=\"109\" width=\"109\">\n<p>\u0412\u044b\u043f\u043b\u0430\u0442\u0430<\/p>\n<\/th>\n<th data-colwidth=\"130\" width=\"130\">\n<p>\u041d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p>\u041f\u0435\u0440\u0435\u0441\u0447\u0451\u0442 credit_sum<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">creditStartDate<\/p>\n<\/td>\n<td data-colwidth=\"223\" width=\"223\">\n<p align=\"left\">\u0414\u0430\u0442\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\">\u041d\u0435\u0442<\/p>\n<\/td>\n<td data-colwidth=\"130\" width=\"130\">\n<p align=\"left\">\u041d\u0435\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0415\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td data-colwidth=\"223\" width=\"223\">\n<p align=\"left\">\u0420\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\">\u0415\u0441\u0442\u044c<\/p>\n<\/td>\n<td data-colwidth=\"130\" width=\"130\">\n<p align=\"left\">\u0415\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0415\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">planPayTheRestDate<\/p>\n<\/td>\n<td data-colwidth=\"223\" width=\"223\">\n<p align=\"left\">\u041f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430, \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u0430\u0442\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u041d\u0415 \u0441\u043e\u0432\u043f\u0430\u043b\u0430 \u0441 \u043f\u043b\u0430\u043d\u043e\u0432\u043e\u0439 *<\/p>\n<\/td>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\">\u0415\u0441\u0442\u044c<\/p>\n<\/td>\n<td data-colwidth=\"130\" width=\"130\">\n<p align=\"left\">\u0415\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0415\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td data-colwidth=\"223\" width=\"223\">\n<p align=\"left\">\u041f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\">\u0415\u0441\u0442\u044c<\/p>\n<\/td>\n<td data-colwidth=\"130\" width=\"130\">\n<p align=\"left\">\u0415\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0415\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">noCharge<\/p>\n<\/td>\n<td data-colwidth=\"223\" width=\"223\">\n<p align=\"left\">\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \/ \u043f\u043b\u0430\u0442 \u043d\u0435\u0442<\/p>\n<\/td>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\">\u041d\u0435\u0442<\/p>\n<\/td>\n<td data-colwidth=\"130\" width=\"130\">\n<p align=\"left\">\u0415\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0435\u0442<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>*\u00a0\u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e.\u00a0\u0422.\u0435.,\u00a0\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0\u0437\u0430\u043f\u043b\u0430\u0442\u0438\u043b\u0438 01.12,\u00a0\u0430 \u043f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 02.12 \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435\u00a002.12 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a &#8216;planPayTheRestDate&#8217;.\u00a0\u0422.\u0435.\u00a0\u0432 \u044d\u0442\u0443 \u0434\u0430\u0442\u0443 \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u044b,\u00a0\u043b\u0438\u0431\u043e \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043e\u0442 \u043f\u043b\u0430\u043d\u043e\u0432\u043e\u0439 \u0441\u0443\u043c\u043c\u044b\u00a0\u043f\u043b\u0430\u0442\u0435\u0436\u0430.<\/p>\n<p>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430\u00a0<strong>date_type_event<\/strong>\u00a0=\u00a0&#8216;planPayTheRestDate&#8217;.\u00a0\u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043a\u0440\u0435\u0434\u0438\u0442\u043e\u043c \u0438 \u0432\u00a0\u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438,\u00a0\u043f\u043e\u043b\u0435\u00a0<strong>payment<\/strong>\u00a0\u0432\u0435\u0434\u0451\u0442 \u0441\u0435\u0431\u044f \u043f\u043e \u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0440\u0435\u0434\u0443\u0441\u043b\u043e\u0432\u0438\u0439.\u00a0\u0415\u0441\u043b\u0438\u00a0\u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439\u00a0<strong>payment<\/strong>\u00a0\u0443 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e\u00a0&#8216;realPayDate&#8217; &gt;\u00a0\u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442,\u00a0\u0442\u043e payment \u0434\u043b\u044f\u00a0&#8216;planPayTheRestDate&#8217;\u00a0\u0440\u0430\u0432\u0435\u043d \u0441\u0443\u043c\u043c\u0435 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ac7\/d57\/44f\/ac7d5744f51af1aa427fd819ca255200.png\" width=\"1055\" height=\"260\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ac7\/d57\/44f\/ac7d5744f51af1aa427fd819ca255200.png\"\/><\/figure>\n<p>\u0418\u043d\u0430\u0447\u0435\u00a0<strong>payment<\/strong>\u00a0\u0434\u043b\u044f planPayTheRestDate \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d \u043e\u0441\u0442\u0430\u0442\u043a\u0443,\u00a0\u0442.\u0435.\u00a0&#171;\u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442&#187;\u00a0&#8212;\u00a0(\u043c\u0438\u043d\u0443\u0441)\u00a0<strong>payment<\/strong>\u00a0\u0443 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e\u00a0&#8216;realPayDate&#8217;.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9d3\/2b1\/616\/9d32b1616c905b8c0f359b42ad6a00d6.png\" width=\"1056\" height=\"294\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9d3\/2b1\/616\/9d32b1616c905b8c0f359b42ad6a00d6.png\"\/><\/figure>\n<p>\u0422\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u043f\u0443\u0442\u0451\u043c.\u00a0\u041d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d,\u00a0\u0447\u0442\u043e \u043e\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0441\u0435\u0445 \u043a\u0440\u0435\u0434\u0438\u0442\u0430\u0445.<\/p>\n<h4>\u0418\u0442\u043e\u0433\u043e \u043f\u043e \u0413\u0440\u0430\u0444\u0438\u043a\u0443 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439<\/h4>\n<p>\u0411\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0413\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.\u00a0\u041e\u0434\u043d\u0430\u043a\u043e,\u00a0\u043f\u0440\u0438 \u0438\u0445 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0434\u0442\u0438 \u043d\u0430 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441\u044b.\u00a0\u0412 \u0438\u0442\u043e\u0433\u0435,\u00a0\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0432\u044b\u0448\u0435 \u043a\u0430\u043a \u043c\u043d\u0435 \u0432\u0438\u0434\u0438\u0442\u0441\u044f,\u00a0\u043d\u043e\u00a0\u044d\u0442\u043e \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438,\u00a0\u0441\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044f \u043c\u043e\u0436\u043d\u043e \u0438 \u0438\u043d\u0430\u0447\u0435.<\/p>\n<h2>\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h2>\n<p>\u041a\u0430\u043a \u0412\u044b \u0443\u0436\u0435 \u043d\u0430\u0432\u0435\u0440\u043d\u043e \u043f\u043e\u043d\u044f\u043b\u0438,\u00a0\u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0433\u043e \u0432\u044b\u0448\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e.\u00a0\u0421\u0447\u0438\u0442\u0430\u044e,\u00a0\u0447\u0442\u043e \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0435\u0451 \u043d\u0435 \u0437\u0430 \u0447\u0435\u043c\u00a0\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0435\u0451 \u043d\u0438\u0436\u0435.\u00a0\u041f\u043e\u043d\u0438\u043c\u0430\u044e,\u00a0\u0447\u0442\u043e \u0444\u043e\u0440\u043c\u0430\u0442 Habr-\u0430 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438,\u00a0\u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0441\u043e\u0431\u0440\u0430\u043b \u0432 \u043e\u0434\u0438\u043d\u00a0\u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b,\u00a0\u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0435 \u043e\u0431\u0435\u0441\u0441\u0443\u0434\u044c\u0442\u0435.\u00a0\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 Python \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u00a0(\u043a\u0440\u043e\u043c\u0435 jsonschema\u00a0\u0434\u043b\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e json \u0438 \u043e\u0442\u0432\u0435\u0442\u0430),\u00a0\u0441\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043b\u043e\u0433\u0438\u043a\u0438 \u043d\u0430 SQL.<\/p>\n<h3>\u041b\u043e\u0433\u0438\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u0440\u0430\u0442\u043a\u043e<\/h3>\n<p>\u041b\u043e\u0433\u0438\u043a\u0443 \u0441\u043f\u0440\u044f\u043c\u0438\u043b<\/p>\n<ol>\n<li>\n<p>\u0411\u0435\u0440\u0451\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 json<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u043b\u0438\u0434\u0438\u0440\u0443\u0435\u0442<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u0442 \u0411\u0414 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 (2 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, 1 view)<\/p>\n<ol>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u043f\u0440\u0438\u0451\u043c\u0430 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443 + \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>view &#8212; \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0413\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043b\u0442\u0435\u0436\u0435\u0439 \u0432 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u043e\u043b\u044f\u043d\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 tbl_date \u0434\u043b\u044f \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0434\u0430\u0442 (\u0434\u043b\u044f \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 date_type_event)<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u0442\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 tbl_credit_events<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 (\u0435\u0441\u043b\u0438 \u043a\u0440\u0435\u0434\u0438\u0442 \u0435\u0449\u0451 \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0442) \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043f\u043e\u0434\u0431\u043e\u0440\u0430<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0447\u0438\u0435 \u043f\u043e\u043b\u044f (\u043f\u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435)<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u043b\u0438\u0434\u0438\u0440\u0443\u0435\u0442 \u043e\u0442\u0432\u0435\u0442<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<ol>\n<li>\n<p>\u0412 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0442\u0430\u0431\u043b\u0438\u0446<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 json<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h4>credit_terms.json<\/h4>\n<p>\u0422\u0443\u0442 \u043b\u0435\u0436\u0430\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u0438 \u043f\u043b\u0430\u0442\u0435\u0436\u0438,\u00a0\u0438\u043c\u0435\u0432\u0448\u0438\u0435 \u043c\u0435\u0441\u0442\u043e.\u00a0\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 credit_annuity_payment_schedule.py,\u00a0def get_json_schema_input()<\/p>\n<details class=\"spoiler\">\n<summary>credit_terms.json<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{   \"credit\": {     \"sum\": 1000000.0,     \"yearly_percent\": 12.3,     \"years_span\": 1,     \"date_start\": \"2023-11-20\"   },   \"payments\": [ {\"date\": \"2023-12-20\", \"payment\": 88980.11}, {\"date\": \"2024-01-20\", \"payment\": 88980.11}, {\"date\": \"2024-01-21\", \"payment\": 100000.0}, {\"date\": \"2024-02-20\", \"payment\": 7481.2}, {\"date\": \"2024-03-20\", \"payment\": 86701.0}, {\"date\": \"2024-03-30\", \"payment\": 30000.0}, {\"date\": \"2024-04-20\", \"payment\": 56701.0}, {\"date\": \"2024-05-20\", \"payment\": 86701.0}, {\"date\": \"2024-06-20\", \"payment\": 86701.0}, {\"date\": \"2024-07-20\", \"payment\": 86701.0}, {\"date\": \"2024-08-20\", \"payment\": 86701.0}, {\"date\": \"2024-09-20\", \"payment\": 86701.0}, {\"date\": \"2024-10-20\", \"payment\": 86701.0}, {\"date\": \"2024-11-20\", \"payment\": 86489.9}   ] }<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h4>credit_annuity_payment_schedule.py<\/h4>\n<details class=\"spoiler\">\n<summary>credit_annuity_payment_schedule.py<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># -*- coding: utf-8 -*-  import os.path import jsonschema import logging import json import sqlite3 import datetime import copy   c_dict_global = {  # \u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435     \"paths\": {  # \u041f\u0443\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0430\u043c         \"json\": r\"..\\credit_terms.json\",  # \u0413\u0434\u0435 \u043b\u0435\u0436\u0438\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c         \"test_json\": r\"..\\credit_terms.json\" # \u0413\u0434\u0435 \u043b\u0435\u0436\u0438\u0442 \u0444\u0430\u0439\u043b \u043e\u0441\u043d\u043e\u0432\u044b \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432     },     \"b_test_mode\": False,  # \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 True \/ \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430, \u0440\u0430\u0441\u0447\u0451\u0442 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 False     \"b_return_table\": True,  # (\u0434\u043b\u044f \"b_test_mode\": False) \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 True \/ \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u044c False     \"logging\": {         # \"level\": logging.INFO,  # \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f         \"level\": logging.DEBUG,  # \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f         \"b_show_tbls_in_debug\": True  # \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     } }   def main() -&gt; None:     logging_basic_config(c_dict_global[\"logging\"][\"level\"])     dict_json = step_01_get_json_form_file(c_dict_global[\"paths\"][\"json\"])     b_success = False     if not bool(dict_json):         logging.error(\"\u0424\u0430\u0439\u043b \u043f\u0443\u0441\u0442: {}\".format(c_dict_global[\"paths\"][\"json\"]))     else:         try:             jsonschema.validate(instance=dict_json, schema=get_json_schema_input())         except jsonschema.exceptions.ValidationError as exp:             logging.error(exp)         else:             b_success = True      if b_success:         dict_credit_annuity_payment_schedule = credit_annuity_payment_schedule(dict_json, c_dict_global[\"logging\"][\"b_show_tbls_in_debug\"])         if c_dict_global[\"b_return_table\"]:             print(\"\\ncredit\")             step_99_print_table_from_dict(dict_credit_annuity_payment_schedule[\"credit\"])             print(\"\\ncredit_events\")             step_99_print_table_from_dict(dict_credit_annuity_payment_schedule[\"credit_events\"])             print(\"\\ntests\")             print(json.dumps(dict_credit_annuity_payment_schedule[\"tests\"], indent=2, ensure_ascii=False))         else:             print(json.dumps(dict_credit_annuity_payment_schedule, indent=2, ensure_ascii=False))   def test() -&gt; None:     \"\"\"     \u041f\u0440\u043e\u0433\u043e\u043d \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432     :return: None     \"\"\"     logging_basic_config(c_dict_global[\"logging\"][\"level\"])     b_all_test_ok = True  # \u041f\u0440\u043e\u0439\u0434\u0435\u043d\u044b \u043b\u0438 \u0432\u0441\u0435 \u0442\u0435\u0441\u0442\u044b     dict_json = step_01_get_json_form_file(c_dict_global[\"paths\"][\"test_json\"])      b_success = False     if not bool(dict_json):         logging.error(\"\u0424\u0430\u0439\u043b \u043f\u0443\u0441\u0442: {}\".format(c_dict_global[\"paths\"][\"test_json\"]))     else:         try:             jsonschema.validate(instance=dict_json, schema=get_json_schema_input())         except jsonschema.exceptions.ValidationError as exp:             logging.error(exp)             b_all_test_ok = False         else:             b_success = True      if b_success:         list_dict_test = test_step_01_test_scenario_list()         for dict_test in list_dict_test:             dict_sample = copy.deepcopy(dict_json)             dict_sample[\"payments\"] = test_step_02_remove_dates_in_list(dict_sample[\"payments\"], dict_test[\"date_from\"])             logging.debug(\"\u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439: \" + dict_test[\"description\"])             print(\"\\n\u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439: \" + dict_test[\"description\"])             dict_credit_annuity_payment_schedule = credit_annuity_payment_schedule(dict_sample, c_dict_global[\"logging\"][\"b_show_tbls_in_debug\"])             print(json.dumps(dict_credit_annuity_payment_schedule[\"tests\"], indent=2))             if not dict_credit_annuity_payment_schedule[\"tests\"][\"success\"]:                 b_all_test_ok = False     if b_all_test_ok:         print(\"\u0418\u0442\u043e\u0433\u043e: \u0412\u0441\u0435 \u0442\u0435\u0441\u0442\u044b \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u044b \u0443\u0434\u0430\u0447\u043d\u043e\")     else:         print(\"\u0418\u0442\u043e\u0433\u043e: ERROR! \u0422\u0435\u0441\u0442\u044b \u041d\u0415 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u044b!!!\")   def credit_annuity_payment_schedule(dict_motgage: dict, b_show_tbls_in_debug: bool = False) -&gt; dict[str, any]:     \"\"\"     \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u0441 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u043c \u043f\u043b\u0430\u0442\u0435\u0436\u043e\u043c     :param dict_motgage: \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u0440\u0435\u0434\u0438\u0442\u0430     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :return:     \"\"\"     conn = sqlite3.connect(\":memory:\")     conn.row_factory = dict_factory     cursor = conn.cursor()      step_02_create_tbls(cursor)     step_03_insert_payments_real_date_priority_1(cursor, b_show_tbls_in_debug, dict_motgage[\"payments\"])     step_04_insert_payments_plan_date_priority_3(cursor, b_show_tbls_in_debug, dict_motgage[\"credit\"][\"date_start\"],                                                  dict_motgage[\"credit\"][\"years_span\"])     step_05_insert_no_charge_date_type_event_priority_4(cursor, b_show_tbls_in_debug,                                                         dict_motgage[\"credit\"][\"date_start\"],                                                         dict_motgage[\"credit\"][\"years_span\"])      step_06_transfer_dates_to_tbl_credit_events(cursor, b_show_tbls_in_debug)     cursor.execute(\"DROP TABLE [tbl_date];\")  # \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u0432 [tbl_credit_events] \u0442\u0430\u0431\u043b\u0438\u0446\u0430 [tbl_date] \u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430      if step_07_vaildate_real_and_plan_dates(cursor):         step_08_update_credit_sum_credit_start(cursor, b_show_tbls_in_debug, dict_motgage[\"credit\"])         step_09_update_interest_rate(cursor, b_show_tbls_in_debug, dict_motgage[\"credit\"])         step_10_update_tbl_credit_events_days_year(cursor, b_show_tbls_in_debug)         step_11_update_tbl_credit_events_days(cursor, b_show_tbls_in_debug)         step_12_update_no_charge(cursor, b_show_tbls_in_debug)         step_13_update_real_payments(cursor, b_show_tbls_in_debug, dict_motgage[\"payments\"])          dict_payment = step_14_get_credit_sum_accrued_interest(cursor)         if bool(dict_payment):             dict_payment = step_15_calculate_credit_sum_accrued_interest(dict_payment)             step_16_update_credit_sum_accrued_interest(cursor, b_show_tbls_in_debug, dict_payment)         del dict_payment          dict_id_date_max = step_17_select_id_date_max(cursor)         flt_sum = step_18_select_last_credit_sum(cursor, dict_id_date_max)         int_months = step_19_select_months_number(cursor, dict_id_date_max)         dict_ratios = step_20_select_month_ratios(cursor, dict_id_date_max)         flt_percent = step_21_select_average_yearly_percent(cursor, dict_id_date_max)         dict_plan_payment = step_22_calculate_annuity_payment(flt_sum, flt_percent, dict_ratios, int_months)         del dict_id_date_max, flt_sum, flt_percent, dict_ratios, int_months          if step_23_to_update_plan_pay_the_rest_date(cursor):             flt_last_payment = step_24_select_last_payment(cursor)             if flt_last_payment &gt;= dict_plan_payment[\"payment\"]:                 step_25_update_accrued_interest_and_credit_sum(cursor, b_show_tbls_in_debug)                 dict_id_date_max = step_26_select_id_date_max(cursor)                 flt_sum = step_18_select_last_credit_sum(cursor, dict_id_date_max)                 int_months = step_19_select_months_number(cursor, dict_id_date_max)                 dict_ratios = step_20_select_month_ratios(cursor, dict_id_date_max)                 flt_percent = step_21_select_average_yearly_percent(cursor, dict_id_date_max)                 dict_plan_payment = step_22_calculate_annuity_payment(flt_sum, flt_percent, dict_ratios, int_months)                 del dict_id_date_max, flt_sum, flt_percent, dict_ratios, int_months             else:                 step_27_update_payment_for_plan_the_rest_date(cursor, b_show_tbls_in_debug,                                                               dict_plan_payment[\"payment\"] - flt_last_payment)          step_28_update_payment(cursor, b_show_tbls_in_debug, dict_plan_payment)          dict_payment = step_14_get_credit_sum_accrued_interest(cursor)         if bool(dict_payment):             dict_payment = step_15_calculate_credit_sum_accrued_interest(dict_payment)             step_16_update_credit_sum_accrued_interest(cursor, b_show_tbls_in_debug, dict_payment)         del dict_payment          step_29_update_principal_debt(cursor, b_show_tbls_in_debug)         step_30_update_the_last_date(cursor, b_show_tbls_in_debug)          dict_out = dict()         dict_out[\"credit_events\"] = step_31_select_tbl_credit_events(cursor)         dict_out[\"credit\"] = step_32_annuity_payment_schedule(cursor)          dict_out[\"tests\"] = {             \"details\": {                 \"annuity_payment\": dict_plan_payment[\"message\"][\"sucess\"],                 \"test_last_payment\": step_33_test_last_payment(cursor),                 \"test_principal_debt\": step_34_test_principal_debt(cursor),                 \"test_rows\": step_35_test_rows(cursor),                 \"jsonschema_credit_events_is_valid\": step_36_validate_output(dict_out[\"credit_events\"]),                 \"jsonschema_credit_is_valid\": step_36_validate_output(dict_out[\"credit\"])             }         }         dict_out[\"tests\"][\"success\"] = dict_out[\"tests\"][\"details\"][\"annuity_payment\"] \\                                        and dict_out[\"tests\"][\"details\"][\"test_last_payment\"] \\                                        and dict_out[\"tests\"][\"details\"][\"test_principal_debt\"] \\                                        and dict_out[\"tests\"][\"details\"][\"test_rows\"] \\                                        and dict_out[\"tests\"][\"details\"][\"jsonschema_credit_events_is_valid\"] \\                                        and dict_out[\"tests\"][\"details\"][\"jsonschema_credit_is_valid\"]     else:         dict_out = {             \"credit_events\": [],             \"credit\": [],             \"tests\": {                 \"details\": {                     \"annuity_payment\": False,                     \"test_last_payment\": False,                     \"test_principal_debt\": False,                     \"test_rows\": False,                     \"jsonschema_credit_events_is_valid\": False,                     \"jsonschema_credit_is_valid\": False                 },                 \"success\": False             }         }     cursor.close()     conn.close()      return dict_out   def step_01_get_json_form_file(str_file_path: str) -&gt; dict:     \"\"\"     \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e json \u0444\u0430\u0439\u043b\u0430     :param str_file_path: \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443     :return: \u0421\u043e\u0434\u0435\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430     \"\"\"     dict_credit_params = dict()     if not os.path.exists(str_file_path):         logging.error(\"\u0424\u0430\u0439\u043b \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442: \" + str_file_path)     else:         with open(str_file_path, \"r\", encoding=\"utf-8\") as obj_file:             str_json_in = obj_file.read()         try:             dict_credit_params = json.loads(str_json_in)         except json.JSONDecodeError as exc:             logging.error(\"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 json:\\n\" + str(exc))         else:             logging.debug(\"\u041f\u0430\u0440\u0441\u0438\u043d\u0433 json \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0439: \" + str(str_file_path))     return dict_credit_params   def step_02_create_tbls(cursor: sqlite3.Cursor) -&gt; None:     \"\"\"     \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432     :param cursor: sqlite3.Cursor     :return: None     \"\"\"     str_query = \"\"\"         CREATE TABLE [tbl_date] (  -- \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u0430\u044f\/\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0434\u043b\u044f \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0434\u0430\u0442             [date] TEXT(10) NOT NULL -- \u0434\u0430\u0442\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f             , [date_type_event] TEXT(16) NOT NULL CHECK([date_type_event] IN (  -- \u0422\u0438\u043f\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439                 'creditStartDate'  -- \u0434\u0430\u0442\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430; [priority] = 1                 , 'realPayDate'  -- \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430; [priority] = 1                 , 'planPayDate'  -- \u043f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430; [priority] = 3                 , 'noCharge'  -- \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \/ \u043f\u043b\u0430\u0442 \u043d\u0435\u0442; [priority] = 4               ))             , [priority] INTEGER NOT NULL CHECK([priority] IN (1, 3, 4))  -- \u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0442\u0438\u043f\u0430 \u0434\u0430\u0442\u044b,             -- \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u0438 \u0442\u043e\u0439 \u0436\u0435 \u0434\u0430\u0442\u044b; \u0447\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 - \u0442\u0435\u043c \u043b\u0443\u0447\u0448\u0435         );          CREATE TABLE [tbl_credit_events] (             [id_date] INTEGER PRIMARY KEY AUTOINCREMENT  -- id \u0434\u0430\u0442\u044b             , [id_payment] INTEGER NOT NULL CHECK([id_payment] &gt;= 0)  -- id \u043f\u043b\u0430\u0442\u0435\u0436\u0430             , [is_payment_date] INTEGER NOT NULL CHECK([is_payment_date] IN (0, 1))  -- \u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0434\u0430\u0442\u043e\u0439 \u043f\u043b\u0430\u0442\u0435\u0436\u0430             , [date_type_event] TEXT(16) NOT NULL CHECK([date_type_event] IN (  -- \u0422\u0438\u043f\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439                 'creditStartDate'  -- \u0434\u0430\u0442\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430; [priority] = 1                 , 'realPayDate'  -- \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430; [priority] = 1                 , 'planPayTheRestDate'  -- \u043f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430, \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u0430\u0442\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u041d\u0415 \u0441\u043e\u0432\u043f\u0430\u043b\u0430 \u0441 \u043f\u043b\u0430\u043d\u043e\u0432\u043e\u0439                 -- \u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e. \u0422.\u0435., \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u043b\u0438 01.12, \u0430 \u043f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 02.12                 -- \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 02.12 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a planPayTheRestDate. \u0422.\u0435. \u0432 \u044d\u0442\u0443 \u0434\u0430\u0442\u0443 \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u044b                 -- , \u043b\u0438\u0431\u043e \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043e\u0442 \u043f\u043b\u0430\u043d\u043e\u0432\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0430;                 -- [priority] = 2                 , 'planPayDate'  -- \u043f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430; [priority] = 3                 , 'noCharge'  -- \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \/ \u043f\u043b\u0430\u0442 \u043d\u0435\u0442; [priority] = 4               ))             , [date] TEXT(10) NOT NULL  -- \u0414\u0430\u0442\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 ISO 8601 (YYYY-MM-DD)             , [days] REAL CHECK([days] &gt; 0)  -- \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043f\u0440\u043e\u0448\u043b\u043e \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u044b             , [days_year] REAL CHECK([days_year] IN (365, 366))  -- \u0414\u043d\u0435\u0439 \u0432 \u0433\u043e\u0434\u0443             , [credit_sum] REAL  -- \u041e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f \u0441\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443             , [payment] REAL  -- \u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443             , [accrued_interest] REAL  -- \u041d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u044b \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443 \u0437\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434             , [principal_debt] REAL  -- \u0422\u0435\u043b\u043e \u0434\u043e\u043b\u0433\u0430             , [interest_rate] REAL CHECK([interest_rate] &gt; 0)  -- \u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443, \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434         );          -- \u0413\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u0432 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435         CREATE VIEW [v_credit] AS         WITH [tbl_01] AS (             SELECT [id_payment], [date]             FROM [tbl_credit_events]             WHERE [date_type_event] != 'noCharge'         )         , [tbl_02] AS (             SELECT [id_payment]             , MAX([credit_sum]) AS [credit_sum]             , SUM([days]) AS [days]             , ROUND(SUM([payment]), 2) AS [payment]             , ROUND(SUM([accrued_interest]), 2) AS [accrued_interest]             , ROUND(SUM([principal_debt]), 2) AS [principal_debt]             , MAX([interest_rate]) AS [interest_rate]             FROM [tbl_credit_events]             GROUP BY [id_payment]         )         SELECT [tbl_01].[id_payment]         , [tbl_01].[date]         , [tbl_02].[days]         , [tbl_02].[credit_sum]         , [tbl_02].[payment]         , [tbl_02].[accrued_interest]         , [tbl_02].[principal_debt]         , [tbl_02].[interest_rate]         FROM [tbl_01]         INNER JOIN [tbl_02]         ON [tbl_01].[id_payment] = [tbl_02].[id_payment];     \"\"\"     cursor.executescript(str_query)   def step_03_insert_payments_real_date_priority_1(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool,                                                  list_payments: list[dict]) -&gt; None:     \"\"\"     \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b [tbl_date] \u0434\u0430\u0442\u0430\u043c\u0438, [priority] = 1     realPayDate - \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u0442\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :param list_payments:     :return:     \"\"\"     str_query = \"\"\"         INSERT INTO [tbl_date] ([date], [date_type_event], [priority])         VALUES (:date, 'realPayDate', 1);     \"\"\"     cursor.executemany(str_query, list_payments)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_date]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_date\"))   def step_04_insert_payments_plan_date_priority_3(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool,                                                  date_start: str, years_span: int) -&gt; None:     \"\"\"     \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b [tbl_date] \u0434\u0430\u0442\u0430\u043c\u0438, [priority] = 1 \u0438 3     creditStartDate - \u0434\u0430\u0442\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430     \u0438 planPayDate - \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0434\u0430\u0442\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :param date_start:     :param years_span:     :return:     \"\"\"     dict_preliminary_setting = {         \"date_start\": date_start,         \"months_span\": 12 * years_span + 1     }      str_query = \"\"\"         WITH [tbl_01] ([date], [date_type_event], [priority]) AS (             VALUES             (:date_start, 'creditStartDate', 1)             UNION ALL             SELECT             date([date], '+1 months')             , 'planPayDate', 3             FROM [tbl_01]             LIMIT :months_span         )         INSERT INTO [tbl_date] ([date], [date_type_event], [priority])         SELECT [date], [date_type_event], [priority]         FROM [tbl_01];     \"\"\"     cursor.execute(str_query, dict_preliminary_setting)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_date]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_date\"))   def step_05_insert_no_charge_date_type_event_priority_4(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool,                                                         date_start: str, years_span: int) -&gt; None:     \"\"\"     \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b [tbl_date] \u0434\u0430\u0442\u0430\u043c\u0438, [priority] = 4     noCharge - \u0434\u0430\u0442\u0430 \u0431\u0435\u0437 \u043e\u043f\u043b\u0430\u0442\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0446\u0430 \u0433\u043e\u0434\u0430, \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0441 365 \u043d\u0430 366 \u0434\u043d\u0435\u0439 \u0432 \u0433\u043e\u0434\u0443     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :param date_start:     :param years_span:     :return:     \"\"\"      dict_insert = {         \"date_start\": date_start,         \"years_span\": years_span,         \"date_type_event\": \"noCharge\",         \"priority\": 4     }     str_query = \"\"\"         WITH [tbl_01] ([date_start]) AS (             SELECT strftime('%Y', :date_start) || '-01-01'             UNION ALL             SELECT date([date_start], '+1 year')             FROM [tbl_01]             LIMIT :years_span         )         , [tbl_02] ([date_start], [date_end]) AS (             SELECT [date_start], DATE([date_start], '+1 year', '-1 day')             FROM [tbl_01]         )         INSERT INTO [tbl_date] ([date], [date_type_event], [priority])         SELECT [date_end], :date_type_event, :priority         FROM [tbl_02];     \"\"\"     cursor.execute(str_query, dict_insert)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_date]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_date\"))   def step_06_transfer_dates_to_tbl_credit_events(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool) -&gt; None:     \"\"\"     \u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0434\u0430\u0442 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b [tbl_date] \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0438\u0445 \u0432 [tbl_credit_events]     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :return:     \"\"\"     str_query = \"\"\"         WITH [tbl_01_01] AS (             SELECT [date], MIN([priority]) AS [priority]             FROM [tbl_date]             GROUP BY [date]         )         , [tbl_01_02] AS (             SELECT [date]             FROM [tbl_date]             WHERE [date_type_event] = 'planPayDate'         )         , [tbl_01_03] AS (             -- \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0435 \u0434\u0430\u0442\u044b             -- \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f date_type_event: realPayDate, planPayDate, noCharge             SELECT             ROW_NUMBER() OVER (ORDER BY [t1].[date]) AS [id_date]             , [t1].[date]             , CASE               WHEN [tbl_01_02].[date] IS NULL THEN 0               ELSE 1               END AS [is_payment_date]             , [t1].[date_type_event]             FROM [tbl_date] AS [t1]             INNER JOIN [tbl_01_01]             ON [t1].[date] = [tbl_01_01].[date]             AND [t1].[priority] = [tbl_01_01].[priority]             LEFT JOIN [tbl_01_02] ON [t1].[date] = [tbl_01_02].[date]         )         , [tbl_02_01] AS (             SELECT             ROW_NUMBER() OVER (ORDER BY [date]) AS [id_payment]             , *             FROM [tbl_01_03]             WHERE [date_type_event] IN ('creditStartDate', 'realPayDate', 'planPayDate')         )         , [tbl_02_02] AS (  --  \u043e\u043f\u0440\u0435\u0434\u044f\u0435\u043b\u044f\u0435\u043c date_type_event == 'planPayDate', \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0442\u044c \u0432 'planPayTheRestDate' (priority = 2)             SELECT [T2].*             FROM [tbl_02_01] AS [T1]             INNER JOIN [tbl_02_01] AS [T2]             ON [T1].[id_payment] + 1 = [T2].[id_payment]             AND [T1].[is_payment_date] = 0             AND [T1].[date_type_event] = 'realPayDate'             AND [T2].[date_type_event] = 'planPayDate'         )         , [tbl_02_03] AS (             -- \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u0442             -- \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f date_type_event: realPayDate, planPayDate, planPayTheRestDate, noCharge             SELECT [tbl_01_03].[id_date]             , [tbl_02_01].[id_payment]             , [tbl_01_03].[date], [tbl_01_03].[is_payment_date], [tbl_01_03].[date_type_event]             FROM [tbl_01_03]             LEFT JOIN [tbl_02_01]             ON [tbl_01_03].[date] = [tbl_02_01].[date]             WHERE [tbl_01_03].[id_date] NOT IN (                 SELECT [id_date]                 FROM [tbl_02_02]             )             UNION ALL             SELECT [id_date], [id_payment], [date], [is_payment_date], 'planPayTheRestDate'             FROM [tbl_02_02]         )         , [tbl_03_01] AS (             SELECT [T1].[id_payment]             , [T1].[id_date] AS [id_date_from]             , [T2].[id_date] AS [id_date_to]             FROM [tbl_02_03] AS [T1]             INNER JOIN [tbl_02_03] AS [T2]             ON [T1].[id_payment] + 1 = [T2].[id_payment]         )         , [tbl_03_02] AS (             SELECT             [tbl_02_03].[id_date]             , [tbl_02_03].[date]             , CASE               WHEN [tbl_03_01].[id_payment] IS NOT NULL THEN [tbl_03_01].[id_payment]               ELSE 0               END AS [id_payment]             , [tbl_02_03].[is_payment_date]             , [tbl_02_03].[date_type_event]             FROM [tbl_02_03]             LEFT JOIN [tbl_03_01]             ON [tbl_02_03].[id_date] &gt; [tbl_03_01].[id_date_from]             AND [tbl_02_03].[id_date] &lt;= [tbl_03_01].[id_date_to]         )         INSERT INTO [tbl_credit_events] ([date], [id_payment], [is_payment_date], [date_type_event])         SELECT [tbl_03_02].[date]         , [tbl_03_02].[id_payment]         , [tbl_03_02].[is_payment_date]         , [tbl_03_02].[date_type_event]         FROM [tbl_03_02]         ORDER BY [tbl_03_02].[id_date];     \"\"\"     cursor.execute(str_query)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_07_vaildate_real_and_plan_dates(cursor: sqlite3.Cursor) -&gt; bool:     \"\"\"     \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u0430\u0442. \u041d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0435 \u043e\u043f\u043b\u0430\u0447\u0435\u043d\u043d\u044b\u0435 'planPayDate', \u0442.\u0435. \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u043c\u0435\u0442\u044c \u0434\u043b\u044f     [date_type_event]: 'realPayDate', 'planPayDate', 'realPayDate'     :param cursor: sqlite3.Cursor     :return: true - \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \/ false - \u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439     \"\"\"     str_query = \"\"\"         WITH [tbl_01_plan_pay_date] AS (             SELECT MIN([date]) AS [min_plan_pay_date]             FROM [tbl_credit_events]             WHERE [date_type_event] IN (                 'planPayDate'                 , 'planPayTheRestDate'             )         )         , [tbl_02_real_pay_date] AS (             SELECT MAX([date]) AS [max_real_pay_date]             FROM [tbl_credit_events]             WHERE [date_type_event] = 'realPayDate'         )         SELECT         CASE         WHEN [tbl_02_real_pay_date].[max_real_pay_date] IS NULL THEN 1         WHEN [tbl_01_plan_pay_date].[min_plan_pay_date] IS NULL THEN 1         WHEN [tbl_01_plan_pay_date].[min_plan_pay_date] &gt; [tbl_02_real_pay_date].[max_real_pay_date] THEN 1         ELSE 0         END AS [is_valid]         , [tbl_01_plan_pay_date].[min_plan_pay_date]         , [tbl_02_real_pay_date].[max_real_pay_date]         FROM [tbl_01_plan_pay_date], [tbl_02_real_pay_date];     \"\"\"     cursor.execute(str_query)     dict_validate = cursor.fetchone()     if dict_validate[\"is_valid\"] == 1:         logging.debug(\"dates are valid\")         return True     else:         logging.error(\"not valid: MIN([date]) for 'planPayDate' is '{}'\\n\".format(dict_validate[\"min_plan_pay_date\"]) +                       \"and is greater then MAX([date]) for 'realPayDate' is {}. \".format(dict_validate[\"max_real_pay_date\"]) +                       \"This is prohibited\")         return False   def step_08_update_credit_sum_credit_start(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool, dict_motgage_credit: dict) -&gt; None:     \"\"\"     \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 [credit_sum] \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :param dict_motgage_credit: \u0423\u0441\u043b\u043e\u0432\u0438\u044f \u043a\u0440\u0435\u0434\u0438\u0442\u0430     :return:     \"\"\"     str_query = \"\"\"         UPDATE [tbl_credit_events]         SET [credit_sum] = :sum         WHERE [id_date] = 1  -- \u043b\u0438\u0448\u043d\u0435\u0435, \u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043b\u0443\u0447\u0448\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c         AND [date_type_event] = 'creditStartDate'  -- \u043b\u0438\u0448\u043d\u0435\u0435, \u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043b\u0443\u0447\u0448\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c         AND [date] = :date_start;     \"\"\"     cursor.execute(str_query, dict_motgage_credit)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_09_update_interest_rate(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool, dict_motgage_credit: dict) -&gt; None:     \"\"\"     \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 [interest_rate] \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :param dict_motgage_credit: \u0423\u0441\u043b\u043e\u0432\u0438\u044f \u043a\u0440\u0435\u0434\u0438\u0442\u0430     :return:     \"\"\"     str_query = \"\"\"         UPDATE [tbl_credit_events]         SET [interest_rate] = :yearly_percent         WHERE [id_date] != 1         AND [date_type_event] != 'creditStartDate';     \"\"\"     cursor.execute(str_query, dict_motgage_credit)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_10_update_tbl_credit_events_days_year(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool) -&gt; None:     \"\"\"     \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u043d\u0435\u0439 \u0432 \u0433\u043e\u0434\u0443 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :return:     \"\"\"     str_query = \"\"\"         UPDATE [tbl_credit_events]         SET [days_year] =         JULIANDAY(DATE([date], 'start of year', '+1 year'))         - JULIANDAY(DATE([date], 'start of year'))         WHERE [id_date] != 1;     \"\"\"     cursor.execute(str_query)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_11_update_tbl_credit_events_days(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool) -&gt; None:     \"\"\"     \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u043d\u0435\u0439 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0435\u0433\u043e \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u044b     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :return:     \"\"\"     str_query = \"\"\"         WITH [tbl_1] ([id_date], [days]) AS (             SELECT [T2].[id_date]             , JULIANDAY([T2].[date]) - JULIANDAY([T1].[date]) AS [days]             FROM [tbl_credit_events] AS [T1]             INNER JOIN [tbl_credit_events] AS [T2]             ON [T1].[id_date] + 1 = [T2].[id_date]         )         UPDATE [tbl_credit_events] AS [T1]         SET [days] = [T2].[days]         FROM [tbl_1] AS [T2]         WHERE [T1].[id_date] = [T2].[id_date];     \"\"\"     cursor.execute(str_query)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_12_update_no_charge(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool) -&gt; None:     \"\"\"     \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043b\u044f [date_type_event] = 'noCharge' \u043d\u0443\u043b\u0451\u0432\u044b\u0435 [payment], [credit_sum]     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :return:     \"\"\"     str_query = \"\"\"         UPDATE [tbl_credit_events]         SET [payment] = 0         , [credit_sum] = 0         WHERE [date_type_event] = 'noCharge';     \"\"\"     cursor.execute(str_query)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_13_update_real_payments(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool,                                  dict_payments: dict[str, any]) -&gt; None:     \"\"\"     \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u043f\u043b\u0430\u0442     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :param dict_payments:     :return:     \"\"\"     str_query = \"\"\"         UPDATE [tbl_credit_events]         SET [payment] = :payment         WHERE [date_type_event] = 'realPayDate'  -- \u043b\u0438\u0448\u043d\u0435\u0435, \u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043b\u0443\u0447\u0448\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c         AND [date] = :date;     \"\"\"     cursor.executemany(str_query, dict_payments)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_14_get_credit_sum_accrued_interest(cursor: sqlite3.Cursor) -&gt; list[dict[str, any]]:     \"\"\"     \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u0435\u0439 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f [accrued_interest], [credit_sum];     \u0442\u0435 \u043f\u043e\u043b\u044f, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b [payment], \u043d\u043e \u043d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b [credit_sum]     :param cursor: sqlite3.Cursor     :return: \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u0435\u0439 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f     \"\"\"     str_query = \"\"\"         WITH [tbl_01_min_id_date] AS (             SELECT MAX([id_date]) AS [min_id_date]             FROM [tbl_credit_events]             WHERE [credit_sum] IS NOT NULL             AND [date_type_event] != 'noCharge'         )         , [tbl_02_max_id_date] AS (             SELECT MAX([id_date]) AS [max_id_date]             FROM [tbl_credit_events]             WHERE [payment] IS NOT NULL             AND [date_type_event] != 'noCharge'         )         SELECT [t1].[id_date]         , [t1].[date]         , [t1].[date_type_event]         , [t1].[days]         , [t1].[days_year]         , [t1].[credit_sum]         , [t1].[payment]         , [t1].[accrued_interest]  -- \u0432\u0441\u0435\u0433\u0434\u0430 null         , [t1].[interest_rate]         FROM [tbl_credit_events] AS [t1], [tbl_01_min_id_date], [tbl_02_max_id_date]         WHERE [t1].[id_date] BETWEEN [tbl_01_min_id_date].[min_id_date] AND [tbl_02_max_id_date].[max_id_date];     \"\"\"     cursor.execute(str_query)     logging.debug(\"\")     return cursor.fetchall()   def step_15_calculate_credit_sum_accrued_interest(dict_payment: list[dict[str, any]]) -&gt; list[dict[str, any]]:     \"\"\"     \u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f [accrued_interest], [credit_sum]     :param dict_payment: \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u0435\u0439 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f     :return: \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u0435\u0439     \"\"\"     is_first = True     accrued_interest_2 = 0     for elem in dict_payment:         if is_first:             is_first = False             credit_sum = elem[\"credit_sum\"]         else:             if elem[\"date_type_event\"] == \"noCharge\":                 accrued_interest = round(credit_sum * elem[\"interest_rate\"] * elem[\"days\"] \/                                          (100.0 * elem[\"days_year\"]), 2)                 elem[\"accrued_interest\"] = accrued_interest                 accrued_interest_2 = accrued_interest             else:                 accrued_interest = round(                     credit_sum * elem[\"interest_rate\"] * elem[\"days\"] \/ (100.0 * elem[\"days_year\"]), 2)                 elem[\"accrued_interest\"] = accrued_interest                 credit_sum = round(credit_sum + accrued_interest + accrued_interest_2 - elem[\"payment\"], 2)                 elem[\"credit_sum\"] = credit_sum                 accrued_interest_2 = 0     return dict_payment   def step_16_update_credit_sum_accrued_interest(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool,                                     dict_payment: list[dict[str, any]]) -&gt; None:     \"\"\"     \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 [accrued_interest], [credit_sum]     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :param dict_payment: \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u0435\u0439     :return:     \"\"\"     str_query = \"\"\"         UPDATE [tbl_credit_events]         SET [credit_sum] = :credit_sum         , [accrued_interest] = :accrued_interest         WHERE [id_date] = :id_date     \"\"\"     cursor.executemany(str_query, dict_payment)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_17_select_id_date_max(cursor: sqlite3.Cursor) -&gt; dict[str, int]:     \"\"\"     \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0434\u0430\u0442\u0430 \u0441 \u043e\u043f\u043b\u0430\u0442\u043e\u0439 \u0438\u043b\u0438 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u0435\u0441\u043b\u0438 \u043e\u043f\u043b\u0430\u0442 \u0435\u0449\u0451 \u043d\u0435 \u0431\u044b\u043b\u043e     :param cursor: sqlite3.Cursor     :return: id_date     \"\"\"     str_query = \"\"\"         SELECT MAX([id_date]) AS [id_date_max]         FROM [tbl_credit_events]         WHERE (             [date_type_event] = 'realPayDate'             AND [is_payment_date] = 1         ) OR (             [date_type_event] = 'creditStartDate'             AND [id_date] = 1         );     \"\"\"     cursor.execute(str_query)     dict_date_max = cursor.fetchone()     logging.debug(\"MAX([id_date]) for 'realPayDate' OR 'creditStartDate' = \" + str(dict_date_max))     return dict_date_max   def step_18_select_last_credit_sum(cursor: sqlite3.Cursor, dict_id_date_max: dict[str, int]) -&gt; float:     \"\"\"     [credit_sum] - \u043e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f \u0441\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0434\u0430\u0442\u0443 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 (\u0438\u043b\u0438 \u043d\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0430)     :param cursor: sqlite3.Cursor     :param dict_id_date_max: \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 (\u0438\u043b\u0438 \u043d\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0430)     :return: credit_sum     \"\"\"     str_query = \"\"\"         SELECT [credit_sum]         FROM [tbl_credit_events]         WHERE [id_date] = :id_date_max;     \"\"\"     cursor.execute(str_query, dict_id_date_max)     flt_credit_sum = cursor.fetchone()[\"credit_sum\"]     logging.debug(\"[credit_sum] for MAX([id_date]) of 'realPayDate' = \" + str(flt_credit_sum))     return flt_credit_sum   def step_19_select_months_number(cursor: sqlite3.Cursor, dict_id_date_max: dict[str, int]) -&gt; int:     \"\"\"     \u041a\u043e\u043b-\u0432\u043e \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u043e\u043f\u043b\u0430\u0442\u044b     :param cursor: sqlite3.Cursor     :param dict_id_date_max: \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 (\u0438\u043b\u0438 \u043d\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0430)     :return: \u041a\u043e\u043b-\u0432\u043e \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u043e\u043f\u043b\u0430\u0442\u044b     \"\"\"     str_query = \"\"\"         SELECT COUNT(1) AS [months]         FROM [tbl_credit_events]         WHERE [is_payment_date] = 1         AND [id_date] &gt; :id_date_max     \"\"\"     cursor.execute(str_query, dict_id_date_max)     int_number_of_months = cursor.fetchone()[\"months\"]     logging.debug(\"Number of months left = \" + str(int_number_of_months))     return int_number_of_months   def step_20_select_month_ratios(cursor: sqlite3.Cursor, dict_id_date_max: dict[str, int]) -&gt; dict[int, float]:     \"\"\"     \u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432     :param cursor: sqlite3.Cursor     :param dict_id_date_max: \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 (\u0438\u043b\u0438 \u043d\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0430)     :return: \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441\u043e \u0441\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u043c\u0438 \u043f\u043e \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u043c\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0430\u043c     \"\"\"     str_query = \"\"\"         WITH [tbl_01] AS (             SELECT [id_date]             FROM [tbl_credit_events]             WHERE [date_type_event] = 'planPayTheRestDate'         )         , [tbl_02] AS (             SELECT CASE             WHEN [tbl_01].[id_date] IS NULL THEN [t1].[id_payment]             WHEN  [tbl_01].[id_date] &lt;= [t1].[id_date] THEN [t1].[id_payment] - 1             ELSE [t1].[id_payment]             END AS [id_payment]             , [t1].[days]             , [t1].[days_year]             , [t1].[interest_rate]             FROM [tbl_credit_events] AS [t1]             LEFT JOIN [tbl_01]             ON [tbl_01].[id_date] &lt;= [t1].[id_date]             WHERE [T1].[id_date] &gt; :id_date_max         )         , [tbl_03] AS (             SELECT [id_payment]             , SUM([interest_rate] * [days] \/ [days_year]) AS [ratio]             FROM [tbl_02]             GROUP BY [id_payment]         )         SELECT ROW_NUMBER() OVER (ORDER BY [id_payment]) - 1 AS [id_payment]         , [ratio]         FROM [tbl_03];     \"\"\"     cursor.execute(str_query, dict_id_date_max)     list_ratios = cursor.fetchall()      dict_out = {}     for elem in list_ratios:         dict_out[elem[\"id_payment\"]] = elem[\"ratio\"]     logging.debug(\"[ratios]:\\n\" + str(dict_out))     return dict_out   def step_21_select_average_yearly_percent(cursor: sqlite3.Cursor, dict_id_date_max: dict[str, int]) -&gt; float:     \"\"\"     \u0421\u0440\u0435\u0434\u043d\u0438\u0439 \u0433\u043e\u0434\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u043d\u0442, \u043e\u0441\u0442\u0430\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0430     :param cursor: sqlite3.Cursor     :param dict_id_date_max: \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 (\u0438\u043b\u0438 \u043d\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0430)     :return:     \"\"\"     str_query = \"\"\"         SELECT SUM([interest_rate] * [days]) \/ SUM([days]) AS [avg_interest_rate]         FROM [tbl_credit_events]         WHERE [id_date] &gt; :id_date_max     \"\"\"     cursor.execute(str_query, dict_id_date_max)     flt_avg_interest_rate = cursor.fetchone()[\"avg_interest_rate\"]     logging.debug(\"avg interest_rate = \" + str(flt_avg_interest_rate))     return flt_avg_interest_rate   def step_22_calculate_annuity_payment(flt_sum_in: float, flt_avg_yearly_percent: float, dict_ratios: dict[int, float],                                    int_months: int) -&gt; dict[str, any]:     \"\"\"     \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \/ \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430     :param flt_sum_in: \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0442\u0435\u043b\u0430 \u0434\u043e\u043b\u0433\u0430 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0434\u0430\u0442\u0443     :param flt_avg_yearly_percent: \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0433\u043e\u0434\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u043d\u0442, \u043e\u0441\u0442\u0430\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0430     :param dict_ratios: \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441\u043e \u0441\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u043c\u0438 \u043f\u043e \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u043c\u0438\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0430\u043c     :param int_months: \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430     :return: \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436 + \u0442\u0435\u0445 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f     \"\"\"     c_flt_abs_success_threshold = 1.0  # \u0443\u0441\u043f\u0435\u0445\u043e\u043c \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0438\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043e\u0441\u0442\u0430\u0442\u043a\u0430 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043c\u0435\u0441\u044f\u0446 \u043d\u0438\u0436\u0435 \u044d\u0442\u043e\u0439 \u043e\u0442\u043c\u0435\u0442\u043a\u0438     c_int_max_iterations = 1000  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430      if int_months == 0:  # \u041a\u0440\u0435\u0434\u0438\u0442 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f         dict_plan_payment = {             \"payment\": 0.0,  # \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430             \"message\": {                 \"sucess\": True,  # \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0435\u0436? true \/ false                 \"iterations\": 0  # \u041a\u043e\u043b-\u0432\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0434\u043e \u0443\u0434\u0430\u0447\u043d\u043e\u0433\u043e \/ \u043d\u0435 \u0443\u0434\u0430\u0447\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430             }         }     else:         # flt_payment = flt_sum_in * (1 \/ int_months + flt_yearly_percent \/ (12 * 100))  # \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043a\u043e\u043b-\u0432\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \"int_iter\"         flt_interm = (1 + flt_avg_yearly_percent \/ (12 * 100)) ** int_months         flt_payment = flt_sum_in * flt_avg_yearly_percent * flt_interm \/ (12 * 100) \/ (flt_interm - 1)         del flt_interm          int_payment_pow_offset = len(str(int(flt_payment))) - 2         int_iter = 0         b_proceed = True         b_sucess = False         while b_proceed:             int_iter += 1             flt_sum = flt_sum_in             for i in range(int_months):                 flt_accrued = flt_sum * dict_ratios[i] \/ 100                 flt_sum = flt_sum + flt_accrued - flt_payment             if abs(flt_sum) &lt;= c_flt_abs_success_threshold:                 b_proceed = False                 b_sucess = True             elif int_iter == c_int_max_iterations:  # \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 1000-\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438                 b_proceed = False                 b_sucess = False             elif flt_sum &lt; 0:                 flt_payment = flt_payment - 10 ** int_payment_pow_offset             elif flt_sum &gt; 0:                 flt_payment = flt_payment + 10 ** int_payment_pow_offset                 int_payment_pow_offset -= 1                 flt_payment = flt_payment - 10 ** int_payment_pow_offset          dict_plan_payment = {             \"payment\": round(flt_payment, 2),  # \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430             \"message\": {                 \"sucess\": b_sucess,  # \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0435\u0436? true \/ false                 \"iterations\": int_iter  # \u041a\u043e\u043b-\u0432\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0434\u043e \u0443\u0434\u0430\u0447\u043d\u043e\u0433\u043e \/ \u043d\u0435 \u0443\u0434\u0430\u0447\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430             }         }         if b_sucess:             logging.debug(\"\u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0435\u0436 \u043d\u0430\u0439\u0434\u0435\u043d\\n\" + json.dumps(dict_plan_payment, indent=2))         else:             logging.error(\"\u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u0445 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430\\n\" + json.dumps(dict_plan_payment, indent=2))      return dict_plan_payment   def step_23_to_update_plan_pay_the_rest_date(cursor: sqlite3.Cursor) -&gt; bool:     \"\"\"     \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 [date_type_event] = 'planPayTheRestDate'     :param cursor: sqlite3.Cursor     :return: True \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c 'planPayTheRestDate' \/ False \u0435\u0441\u043b\u0438 \u043d\u0435\u0442     \"\"\"     str_query = \"\"\"         SELECT count(1) AS [num]         FROM [tbl_credit_events]         WHERE [date_type_event] = 'planPayTheRestDate';     \"\"\"     cursor.execute(str_query)     if cursor.fetchone()[\"num\"] == 0:         logging.debug(\"No 'planPayTheRestDate' found\")         return False     else:         logging.debug(\"'planPayTheRestDate' found, need update\")         return True   def step_24_select_last_payment(cursor: sqlite3.Cursor) -&gt; float:     \"\"\"     \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c [payment] \u043d\u0430 \u0434\u0430\u0442\u0443 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430     :param cursor: sqlite3.Cursor     :return:     \"\"\"     str_query = \"\"\"         WITH [tbl_01] AS (             SELECT MAX([id_date]) AS [id_date]             FROM [tbl_credit_events]             WHERE [date_type_event] IN ('creditStartDate', 'realPayDate')         )         SELECT [payment]         FROM [tbl_credit_events]         WHERE [id_date] = (             SELECT [id_date]             FROM [tbl_01]         );     \"\"\"     cursor.execute(str_query)     flt_payment = cursor.fetchone()[\"payment\"]     logging.debug(\"last payment = \" + str(flt_payment))     return flt_payment   def step_25_update_accrued_interest_and_credit_sum(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool) -&gt; None:     \"\"\"     \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u043b\u044f [date_type_event] = 'planPayTheRestDate'     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :return:     \"\"\"     str_query = \"\"\"         WITH [tbl_01] AS (             SELECT [id_date], [days], [days_year]             FROM [tbl_credit_events]             WHERE [date_type_event] = 'planPayTheRestDate'         )         , [tbl_02] AS (             SELECT [tbl_01].[id_date], [tbl_01].[days], [tbl_01].[days_year]             , [T1].[credit_sum], [T1].[days], [T1].[days_year], [T1].[interest_rate]             FROM [tbl_credit_events] AS [T1]             INNER JOIN [tbl_01]             ON [T1].[id_date] + 1 = [tbl_01].[id_date]         )         , [tbl_03] AS (             SELECT [id_date]             , ROUND([credit_sum] * [interest_rate] * [days] \/ (100.0 * [days_year]), 2) AS [payment]             , [credit_sum]             FROM [tbl_02]         )         UPDATE [tbl_credit_events] AS [T1]         SET [payment] = [tbl_03].[payment]         , [accrued_interest] = [tbl_03].[payment]         , [credit_sum] = [tbl_03].[credit_sum]         FROM [tbl_03]         WHERE [T1].[id_date] = [tbl_03].[id_date]         AND [T1].[date_type_event] = 'planPayTheRestDate';     \"\"\"     cursor.execute(str_query)      if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_26_select_id_date_max(cursor: sqlite3.Cursor) -&gt; dict[str, int]:     \"\"\"     \u041f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430, \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u0430\u0442\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u041d\u0415 \u0441\u043e\u0432\u043f\u0430\u043b\u0430 \u0441 \u043f\u043b\u0430\u043d\u043e\u0432\u043e\u0439     :param cursor: sqlite3.Cursor     :return: id_date     \"\"\"     str_query = \"\"\"         SELECT [id_date] AS [id_date_max]         FROM [tbl_credit_events]         WHERE [date_type_event] = 'planPayTheRestDate';     \"\"\"     cursor.execute(str_query)     dict_date_max = cursor.fetchone()     logging.debug(\"MAX([id_date]) for 'realPayDate' = \" + str(dict_date_max))     return dict_date_max   def step_27_update_payment_for_plan_the_rest_date(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool,                                           flt_last_payment: float) -&gt; None:     \"\"\"     \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u043b\u044f [date_type_event] = 'planPayTheRestDate'     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :param flt_last_payment: \u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443     :return:     \"\"\"      str_query = \"\"\"         UPDATE [tbl_credit_events]         SET [payment] = ROUND(?, 2)         WHERE [date_type_event] = 'planPayTheRestDate'     \"\"\"     cursor.execute(str_query, (flt_last_payment,))     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_28_update_payment(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool, dict_payment: dict) -&gt; None:     \"\"\"     \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u043a\u0440\u0435\u0434\u0438\u0442\u0430     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :param dict_payment: \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0435\u0436     :return:     \"\"\"     str_query = \"\"\"         UPDATE [tbl_credit_events]         SET [payment] = :payment         WHERE [date_type_event] = 'planPayDate';     \"\"\"     cursor.execute(str_query, dict_payment)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_29_update_principal_debt(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool) -&gt; None:     \"\"\"     \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c [principal_debt] \u0442\u0435\u043b\u043e \u0434\u043e\u043b\u0433\u0430     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :return:     \"\"\"     str_query = \"\"\"         UPDATE [tbl_credit_events]         SET [principal_debt] = ROUND([payment] - [accrued_interest], 2);     \"\"\"     cursor.execute(str_query)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_30_update_the_last_date(cursor: sqlite3.Cursor, b_show_tbls_in_debug: bool) -&gt; None:     \"\"\"     \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u043b\u0430\u0442\u0451\u0436. \u041f\u0440\u0438\u0432\u043e\u0434\u0438\u043c [credit_sum] \u043a 0.0; + \u043f\u0440\u043e\u0447\u0438\u0435 \u043f\u0440\u0430\u0432\u043a\u0438     \u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0438 \u043d\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f     :param cursor: sqlite3.Cursor     :param b_show_tbls_in_debug: \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DEBUG     :return:     \"\"\"     str_query = \"\"\"         WITH [tbl_01] AS (             SELECT MAX([id_date]) AS [max_id_date]             FROM [tbl_credit_events]             WHERE [date_type_event] != 'realPayDate'         )         , [tbl_02] AS (             SELECT [id_date] AS [max_id_date]             , [credit_sum], [payment], [accrued_interest], [principal_debt]             FROM [tbl_credit_events]             WHERE [id_date] = (                 SELECT [max_id_date]                 FROM [tbl_01]             )         )         , [tbl_03] AS (             SELECT [max_id_date]             , ROUND([payment] + [credit_sum], 2) AS [payment]             , ROUND([payment] + [credit_sum] - [accrued_interest], 2) AS [principal_debt]             FROM [tbl_02]         )         UPDATE [tbl_credit_events] AS [T1]         SET [credit_sum] = 0.0         , [payment] = [tbl_03].[payment]         , [principal_debt] = [tbl_03].[principal_debt]         FROM [tbl_03]         WHERE [T1].[id_date] = [tbl_03].[max_id_date];     \"\"\"     cursor.execute(str_query)     if b_show_tbls_in_debug:         logging.debug(\"[tbl_credit_events]\\n\" + step_99_select_all_from_tbl(cursor, \"tbl_credit_events\"))   def step_31_select_tbl_credit_events(cursor: sqlite3.Cursor) -&gt; list[dict[str, any]]:     \"\"\"     \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u044f     :param cursor: sqlite3.Cursor     :return:     \"\"\"     str_query = \"\"\"         SELECT *         FROM [tbl_credit_events]     \"\"\"     cursor.execute(str_query)     return cursor.fetchall()   def step_32_annuity_payment_schedule(cursor: sqlite3.Cursor) -&gt; list[dict[str, any]]:     \"\"\"     \u0413\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u0432 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435     :param cursor: sqlite3.Cursor     :return:     \"\"\"     str_query = \"\"\"         SELECT *         FROM [v_credit];     \"\"\"     cursor.execute(str_query)     return cursor.fetchall()   def step_33_test_last_payment(cursor: sqlite3.Cursor) -&gt; bool:     \"\"\"     \u0422\u0435\u0441\u0442. \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430. \u041f\u043e \u0441\u0443\u0442\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430,     \u0442.\u043a. \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u043b\u0430\u0442\u0451\u0436 \u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u0437\u0430 \u0432\u0441\u0435 \u043f\u0435\u0440\u0438\u043e\u0434\u044b     :param cursor: sqlite3.Cursor     :return: true - \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \/ false - \u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439     \"\"\"     c_flt_threshold = 0.01     str_query = \"\"\"         WITH [tbl_01] AS (             SELECT MAX([id_date]) AS [max_id_date]             FROM [tbl_credit_events]         )         SELECT         CASE         WHEN [T2].[payment] = 0.0 THEN 0.0         ELSE ABS([T1].[payment] \/ [T2].[payment] - 1.0)         END AS [ratio]         , ROUND([T1].[payment] - [T2].[payment], 2) AS [delta]         FROM [tbl_credit_events] AS [T1], [tbl_credit_events] AS [T2]         WHERE [t1].[id_date] = (             SELECT [max_id_date]             FROM [tbl_01]         )         AND [t2].[id_date] = (             SELECT [max_id_date] - 1             FROM [tbl_01]         );     \"\"\"     cursor.execute(str_query)     tpl_flt_test = cursor.fetchone()     if tpl_flt_test[\"ratio\"] &lt;= c_flt_threshold:         logging.debug(\"\u0422\u0435\u0441\u0442 \u043f\u0440\u043e\u0439\u0434\u0435\u043d. \u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u043a \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c\u0443 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:\\n\" +                       \"\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 {} &lt;= \u043f\u043e\u0440\u043e\u0433 {}\\n\".format(tpl_flt_test[\"ratio\"], c_flt_threshold) +                       \"\u0420\u0430\u0437\u043d\u0438\u0446\u0430: {}\".format(tpl_flt_test[\"delta\"]))         return True     else:         logging.error(\"\u0422\u0435\u0441\u0442 \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043d! \u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u043a \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c\u0443 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:\\n\" +                       \"\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 {} &gt; \u043f\u043e\u0440\u043e\u0433 {}\\n\".format(tpl_flt_test[\"ratio\"], c_flt_threshold) +                       \"\u0420\u0430\u0437\u043d\u0438\u0446\u0430: {}\".format(tpl_flt_test[\"delta\"]))         return False   def step_34_test_principal_debt(cursor: sqlite3.Cursor) -&gt; bool:     \"\"\"     \u0422\u0435\u0441\u0442. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u043e\u043f\u043b\u0430\u0447\u0435\u043d\u043d\u044b\u043c \u0442\u0435\u043b\u043e\u043c \u0434\u043e\u043b\u0433\u0430     :param cursor: sqlite3.Cursor     :return: true - \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \/ false - \u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439     \"\"\"     c_flt_threshold = 0.01     str_query = \"\"\"         WITH [tbl_01] AS (             SELECT [credit_sum]             FROM [tbl_credit_events]             WHERE [id_date] = 1         )         , [tbl_02] AS (             SELECT SUM([principal_debt]) AS [principal_debt]             FROM [tbl_credit_events]         )         SELECT ROUND([tbl_01].[credit_sum] - [tbl_02].[principal_debt], 2) AS [delta]         FROM [tbl_01], [tbl_02];     \"\"\"     cursor.execute(str_query)     flt_delta = cursor.fetchone()[\"delta\"]     if flt_delta &lt;= c_flt_threshold:         logging.debug(\"\u0422\u0435\u0441\u0442 \u043f\u0440\u043e\u0439\u0434\u0435\u043d. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043e\u043f\u043b\u0430\u0447\u0435\u043d\u043d\u044b\u043c \u0442\u0435\u043b\u043e\u043c \u0434\u043e\u043b\u0433\u0430.\" +                       \"\u0420\u0430\u0437\u043d\u0438\u0446\u0430: {}\".format(flt_delta))         return True     else:         logging.error(\"\u0422\u0435\u0441\u0442 \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043d! \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043e\u043f\u043b\u0430\u0447\u0435\u043d\u043d\u044b\u043c \u0442\u0435\u043b\u043e\u043c \u0434\u043e\u043b\u0433\u0430.\" +                       \"\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430: {}\".format(flt_delta))         return False   def step_35_test_rows(cursor: sqlite3.Cursor) -&gt; bool:     \"\"\"     \u0422\u0435\u0441\u0442. \u0414\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0435\u0439 [date_type_event] = 'noCharge' [accrued_interest] + [principal_debt] \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430 0.0,     \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 [principal_debt] != 'noCharge' \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 0.0     :param cursor: sqlite3.Cursor     :return: true - \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \/ false - \u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439     \"\"\"     str_query = \"\"\"         SELECT [id_date], [date_type_event], [date]         , [credit_sum], [payment], [accrued_interest], [principal_debt]         FROM [tbl_credit_events]         WHERE (             [date_type_event] = 'noCharge'             AND ROUND([accrued_interest] + [principal_debt], 2) != 0         ) OR (             [date_type_event] != 'noCharge'             AND [principal_debt] &lt; 0.0         );     \"\"\"     cursor.execute(str_query)     rows = cursor.fetchall()     if len(rows) == 0:         logging.debug(\"\u0422\u0435\u0441\u0442 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\")         return True     else:         logging.error(\"\u0422\u0435\u0441\u0442 \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\\n[id_date], [date_type_event]\" +                       \", [date], [credit_sum], [payment], [accrued_interest], [principal_debt]\")         for row in rows:             logging.error(\", \".join(map(str, row.values())))         return False   def step_36_validate_output(dict_in: list[dict]) -&gt; bool:     \"\"\"     \u0412\u0430\u043b\u0438\u0430\u0434\u0446\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430     :param dict_in: \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e     :return: true - \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \/ false - \u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439     \"\"\"     try:         jsonschema.validate(instance=dict_in, schema=get_json_schema_output())     except jsonschema.exceptions.ValidationError as exp:         logging.error(exp)         b_success = False     else:         logging.debug(\"\u0424\u043e\u0440\u043c\u0430\u0442 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439\")         b_success = True     return b_success   # ==================================================&lt;tests&gt;================================================== def test_step_01_test_scenario_list() -&gt; list[dict[str, str]]:     \"\"\"     \u0421\u043f\u0438\u0441\u043e\u043a \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432     :return:     \"\"\"     return [         {             \"date_from\": \"2023-12-20\",             \"description\": \"\u041d\u0430\u0447\u0430\u043b\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0430\"         },         {             \"date_from\": \"2024-01-21\",             \"description\": \"\u043f\u043b\u0430\u0442\u0451\u0436 \u043f\u0435\u0440\u0435\u0434 \u0434\u0430\u0442\u043e\u0439 planPayTheRestDate &gt;= \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0451\u0436\u0430\"         },         {             \"date_from\": \"2024-03-30\",             \"description\": \"\u043f\u043b\u0430\u0442\u0451\u0436 \u043f\u0435\u0440\u0435\u0434 \u0434\u0430\u0442\u043e\u0439 planPayTheRestDate &lt; \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436\u0430\"         },         {             \"date_from\": \"2024-01-20\",             \"description\": \"\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436\"         },         {             \"date_from\": \"2024-11-20\",             \"description\": \"\u041a\u0440\u0435\u0434\u0438\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0433\u0430\u0448\u0435\u043d\"         }     ]   def test_step_02_remove_dates_in_list(list_payments_in: list[dict[str, any]], str_date_remove_more: str) -&gt; list[dict[str, any]]:     \"\"\"     \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043b\u0438\u0448\u043d\u0438\u0445 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439     :param list_payments_in: \u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439     :param str_date_remove_more: \u0415\u0441\u043b\u0438 \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0430\u0442\u044b str_date_remove_more, \u0442\u043e \u043f\u043b\u0430\u0442\u0451\u0436 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437     \u0441\u043f\u0438\u0441\u043a\u0430     :return: \u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439     \"\"\"     int_len = len(list_payments_in)     for i in range(int_len - 1, -1, -1):         if datetime.date.fromisoformat(list_payments_in[i][\"date\"]) &gt; datetime.date.fromisoformat(str_date_remove_more):             list_payments_in.pop(i)     return list_payments_in # ==================================================&lt;\/tests&gt;==================================================   # ==================================================&lt;utilities&gt;================================================== def logging_basic_config(logging_level: int) -&gt; None:     \"\"\"     \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f     :return: None     \"\"\"     logging.basicConfig(         level=logging_level,         encoding=\"utf-8\",         format=\"\\t\".join([             \"%(asctime)s\",             \"file: %(filename)s\",             \"def: %(funcName)s\",             \"Script line #:%(lineno)d\",             \"%(levelname)s\",             \"%(message)s\"         ])     )   def dict_factory(cursor: sqlite3.Cursor, row: tuple) -&gt; dict[str, any]:     \"\"\"     \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e\u0442 \u0411\u0414 \u0432 \u0432\u0438\u0434\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u044f     :param cursor: sqlite3.Cursor     :param row:     :return:     \"\"\"     dict_row = {}     for idx, col in enumerate(cursor.description):         dict_row[col[0]] = row[idx]     return dict_row   def step_99_select_all_from_tbl(cursor: sqlite3.Cursor, str_table_name: str) -&gt; str:     \"\"\"     \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b     :param cursor: sqlite3.Cursor     :param str_table_name: \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b     :return:     \"\"\"     if str_table_name == \"tbl_credit_events\":         str_query = \"\"\"             SELECT *             FROM [tbl_credit_events]         \"\"\"     elif str_table_name == \"tbl_date\":         str_query = \"\"\"             SELECT *             FROM [tbl_date];         \"\"\"     else:         logging.error(\"str_table_name \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439\")         str_query = \"SELECT 1 AS [dummy]\"     cursor.execute(str_query)     return step_99_select_tab_join(cursor)   def step_99_select_tab_join(cursor: sqlite3.Cursor) -&gt; str:     \"\"\"     \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443     :param cursor: sqlite3.Cursor     :return: \u0442\u0430\u0431\u043b\u0438\u0446\u0430     \"\"\"     list_row_out = []     column_list = []     for column in cursor.description:         column_list.append(column[0])      list_row_out.append(\"\\t\".join(column_list))      rows = cursor.fetchall()     for row in rows:         column_list = []         for column in cursor.description:             column_list.append(str(row[column[0]]))         list_row_out.append(\"\\t\".join(column_list))     return \"\\n\".join(list_row_out)   def step_99_print_table_from_dict(list_dict_in: list[dict]) -&gt; None:     \"\"\"     \u0418\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0447\u0435\u0440\u0435\u0437 print()     :param list_dict_in: \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u043d\u0430 \u0432\u0445\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u0430\u043a\u0431\u043b\u0438\u0446\u0443     :return: None     \"\"\"     b_first = True     for row in list_dict_in:         if b_first:             b_first = False             print(\"\\t\".join(row))         print(\"\\t\".join(map(str, row.values()))) # ==================================================&lt;\/utilities&gt;==================================================   # ==================================================&lt;business_logic&gt;================================================== def get_json_schema_input() -&gt; dict[str, any]:     \"\"\"     \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u043a\u0440\u0435\u0434\u0438\u0442\u0430     :return:     \"\"\"     return {         \"$schema\": \"https:\/\/json-schema.org\/draft\/2020-12\/schema\",         \"title\": \"Credit input\",         \"description\": \"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u043a\u0440\u0435\u0434\u0438\u0442\u0430\",         \"required\": [\"credit\", \"payments\"],         \"type\": \"object\",         \"additionalProperties\": True,         \"properties\": {             \"credit\": {                 \"type\": \"object\",                 \"additionalProperties\": True,                 \"required\": [\"sum\", \"yearly_percent\", \"years_span\", \"date_start\"],                 \"properties\": {                     \"sum\": {                         \"type\": \"number\",                         \"description\": \"\u0421\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430\",                         \"nullable\": False,                         \"exclusiveMinimum\": 0,                         \"example\": 1000.01                     },                     \"yearly_percent\": {                         \"type\": \"number\",                         \"description\": \"\u0413\u043e\u0434\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u0430\u044f \u0441\u0442\u0430\u0432\u043a\u0430, \u0442.\u0435. \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 8.2% \u0432\u043d\u043e\u0441\u0438\u043c 8.2 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\",                         \"nullable\": False,                         \"exclusiveMinimum\": 0,                         \"example\": 8.2                     },                     \"years_span\": {                         \"type\": \"number\",                         \"description\": \"\u041d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043a\u0440\u0435\u0434\u0438\u0442\",                         \"nullable\": False,                         \"exclusiveMinimum\": 0,                         \"example\": 4                     },                     \"date_start\": {\"$ref\": \"#\/$defs\/date-type\"}                 }             },             \"payments\": {                 \"type\": \"array\",                 \"items\": {                     \"type\": \"object\",                     \"additionalProperties\": False,                     \"required\": [\"date\", \"payment\"],                     \"properties\": {                         \"date\": {\"$ref\": \"#\/$defs\/date-type\"},                         \"payment\": {                             \"type\": \"number\",                             \"description\": \"\u0412\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430\",                             \"nullable\": False,                             \"exclusiveMinimum\": 0,                             \"example\": 100.2                         }                     }                 }             }         },         \"$defs\": {             \"date-type\": {                 \"type\": \"string\",                 \"description\": \"\u0414\u0430\u0442\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 ISO 8601 (YYYY-MM-DD)\",                 \"nullable\": False,                 \"maxLength\": 10,                 \"minLength\": 10,                 \"example\": \"2020-07-12\",                 \"pattern\": \"^\\\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$\"             }         }     }   def get_json_schema_output() -&gt; dict[str, any]:     \"\"\"     \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439     :return:     \"\"\"     return {         \"$schema\": \"https:\/\/json-schema.org\/draft\/2020-12\/schema\",         \"title\": \"Credit output\",         \"description\": \"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439\",         \"type\": \"array\",         \"items\": {             \"type\": \"object\",             \"additionalProperties\": False,             \"required\": [\"id_payment\", \"date\", \"days\", \"credit_sum\", \"payment\",                          \"accrued_interest\", \"principal_debt\", \"interest_rate\"],             \"properties\": {                 \"id_date\": {                     \"type\": \"integer\",                     \"description\": \"id \u0434\u0430\u0442\u044b\",                     \"nullable\": False,                     \"exclusiveMinimum\": 0,                     \"example\": 10                 },                 \"id_payment\": {                     \"type\": \"integer\",                     \"description\": \"id \u043f\u043b\u0430\u0442\u0435\u0436\u0430\",                     \"nullable\": False,                     \"minimum\": 0,                     \"example\": 10                 },                 \"is_payment_date\": {                     \"type\": \"integer\",                     \"description\": \"\u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0434\u0430\u0442\u043e\u0439 \u043f\u043b\u0430\u0442\u0435\u0436\u0430\",                     \"nullable\": False,                     \"enum\": [0, 1]                 },                 \"date_type_event\": {                     \"type\": \"string\",                     \"description\": \"\u0422\u0438\u043f\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439\",                     \"nullable\": False,                     \"enum\": [\"creditStartDate\", \"realPayDate\", \"planPayTheRestDate\", \"planPayDate\", \"noCharge\"]                 },                 \"date\": {                     \"type\": \"string\",                     \"description\": \"\u0414\u0430\u0442\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 ISO 8601 (YYYY-MM-DD)\",                     \"nullable\": False,                     \"maxLength\": 10,                     \"minLength\": 10,                     \"example\": \"2020-07-12\",                     \"pattern\": \"^\\\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$\"                 },                 \"days\": {                     \"type\": [\"number\", \"null\"],                     \"description\": \"\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043f\u0440\u043e\u0448\u043b\u043e \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u044b\",                     \"minimum\": 1.0,                     \"maximum\": 31.0,                     \"example\": 11.0                 },                 \"days_year\": {                     \"type\": [\"number\", \"null\"],                     \"description\": \"\u0414\u043d\u0435\u0439 \u0432 \u0433\u043e\u0434\u0443\",                     \"enum\": [365.0, 366.0, None]                 },                 \"credit_sum\": {                     \"type\": \"number\",                     \"description\": \"\u041e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f \u0441\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443\",                     \"nullable\": False,                     \"minimum\": 0,                     \"example\": 111_111.1                 },                 \"payment\": {                     \"type\": [\"number\", \"null\"],                     \"description\": \"\u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443 (= accrued_interest + principal_debt)\",                     \"minimum\": 0,                     \"example\": 543.2                 },                 \"accrued_interest\": {                     \"type\": [\"number\", \"null\"],                     \"description\": \"\u041d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u044b \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443 \u0437\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434\",                     \"minimum\": 0,                     \"example\": 111.1                 },                 \"principal_debt\": {                     \"type\": [\"number\", \"null\"],                     \"description\": \"\u0422\u0435\u043b\u043e \u0434\u043e\u043b\u0433\u0430\",                     \"example\": 432.1                 },                 \"interest_rate\": {                     \"type\": [\"number\", \"null\"],                     \"description\": \"\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443, \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434\",                     \"nullable\": False,                     \"exclusiveMinimum\": 0,                     \"example\": 7.1                 }             }         }     } # ==================================================&lt;\/business_logic&gt;==================================================   if __name__ == \"__main__\":     if c_dict_global[\"b_test_mode\"]:         test()     else:         main()<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h4>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h4>\n<ol>\n<li>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u0430 \u0444\u0430\u0439\u043b\u0430<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c jsonschema<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u044b c_dict_global \u0432 credit_annuity_payment_schedule.py. \u041d\u0443\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c &#171;paths&#187; &#8212; \u041f\u0443\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0430\u043c<\/p>\n<\/li>\n<\/ol>\n<details class=\"spoiler\">\n<summary>c_dict_global<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">c_dict_global = {  # \u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435     \"paths\": {  # \u041f\u0443\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0430\u043c         \"json\": r\"..\\credit_terms.json\",  # \u0413\u0434\u0435 \u043b\u0435\u0436\u0438\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c         \"test_json\": r\"..\\credit_terms.json\" # \u0413\u0434\u0435 \u043b\u0435\u0436\u0438\u0442 \u0444\u0430\u0439\u043b \u043e\u0441\u043d\u043e\u0432\u044b \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432     }, ... <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<ol start=\"4\">\n<li>\n<p>\u041e\u0431\u0440\u0430\u0449\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0442\u0435\u0441\u0442\u044b def test_step_01_test_scenario_list() \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043d\u0430 \u0432\u044b\u0448\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 credit_terms.json<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0451<\/p>\n<\/li>\n<\/ol>\n<h2>\u0418\u0442\u043e\u0433\u0438<\/h2>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0451,\u00a0\u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.\u00a0\u041d\u0430\u0434\u0435\u044e\u0441\u044c \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e,\u00a0\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u043f\u043e \u043c\u0435\u0440\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438. <\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/876520\/\"> https:\/\/habr.com\/ru\/articles\/876520\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u0412\u0441\u0442\u0443\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e<\/h2>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a &#171;\u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044e \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u043e\u0432&#187;, \u0438 \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043a \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u041f\u043b\u044e\u0441 \u043e\u043d\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f, \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043a\u043e\u043f\u0430\u0435\u043c\u0441\u044f \u0432 \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u0445. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0445\u043e\u0447\u0443 \u0435\u0439 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, &#171;\u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0438\u0441\u0442&#187; \u0432 \u043d\u0435\u0439 \u043d\u0435 \u044f \u043e\u0434\u0438\u043d \u0438 \u044f \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439. \u0415\u0449\u0451 \u043e\u0434\u043d\u0438\u043c \u0441\u0442\u0438\u043c\u0443\u043b\u043e\u043c \u0432\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u0432\u0441\u0435\u043e\u0431\u0449\u0435\u0435 \u043e\u0431\u043e\u0437\u0440\u0435\u043d\u0438\u0435, \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0437\u0430\u043a\u0440\u0435\u0434\u0438\u0442\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0441\u0435\u043b\u0435\u043d\u0438\u044f: <a href=\"https:\/\/www.rbc.ru\/finances\/02\/04\/2024\/660c0a9e9a79473d5dc5bea2\" rel=\"noopener noreferrer nofollow\">\u0420\u0411\u041a. 02 \u0430\u043f\u0440\u0435\u043b\u044f 2024. &#171;\u0427\u0438\u0441\u043b\u043e \u0440\u043e\u0441\u0441\u0438\u044f\u043d \u0441 \u043a\u0440\u0435\u0434\u0438\u0442\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u043b\u043e 50 \u043c\u043b\u043d&#187;<\/a> &#8212; \u0442\u0435\u043c\u0430 \u044f\u0432\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u0439 \u043e\u0445\u0432\u0430\u0442.<\/p>\n<h2>\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/h2>\n<p>\u0412\u0437\u044f\u043b \u043a\u0440\u0435\u0434\u0438\u0442 \u0432 2021 \u0433\u043e\u0434\u0443.\u00a0\u041f\u0435\u0440\u0435\u0434 \u044d\u0442\u0438\u043c \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043e\u043f\u044b\u0442,\u00a0\u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0434 \u043b\u044e\u0431\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0437\u0430\u0432\u043e\u0434\u0438\u043b\u0441\u044f,\u00a0\u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f,\u00a0\u0444\u0430\u0439\u043b\u0438\u043a Excel \u0438 \u0432\u0435\u043b\u0430\u0441\u044c \u0441\u0432\u0435\u0440\u043a\u0430,\u00a0\u0447\u0442\u043e \u043d\u0430\u0441\u0447\u0438\u0442\u0430\u043b\u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u044b \u043f\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0443,\u00a0\u0430 \u0447\u0442\u043e \u043d\u0430\u0441\u0447\u0438\u0442\u0430\u043b\u0438 \u043c\u044b.\u00a0\u0418 \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u0435\u0447\u043a\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u0438 \u043a \u043e\u0431\u0449\u0435\u043c\u0443 \u0432\u0437\u0430\u0438\u043c\u043e\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044e.\u00a0\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u044f \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043b \u0441 \u043a\u0440\u0435\u0434\u0438\u0442\u043e\u043c.\u00a0\u041f\u043e\u0442\u0438\u0445\u043e\u043d\u0435\u0447\u043a\u0443 \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e\u043a\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438.\u00a0\u0412 \u043a\u043e\u043d\u0446\u0435-\u043a\u043e\u043d\u0446\u043e\u0432 \u043a\u0440\u0435\u0434\u0438\u0442 \u0431\u044b\u043b \u0432\u044b\u043f\u043b\u0430\u0447\u0435\u043d,\u00a0\u0438 \u0442\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c,\u00a0\u0447\u0442\u043e \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u043f\u043e \u043d\u0435\u043c\u0443 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043f\u0430\u043b\u0438 \u0441 \u043c\u043e\u0438\u043c\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u043c\u0438 \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043a\u043e\u043f\u0435\u0439\u043a\u0438.<\/p>\n<p>\u0418 \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430,\u00a0\u043f\u043e\u0447\u0435\u043c\u0443 \u044f \u0441\u0442\u0430\u043b \u0432\u0435\u0441\u0442\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u00a0&#8212;\u00a0\u044d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u043f\u043e \u0413\u0440\u0430\u0444\u0438\u043a\u0443 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439.\u00a0\u0422.\u0435.\u00a0\u0435\u0441\u043b\u0438 \u0446\u0438\u0444\u0435\u0440\u043a\u0438 \u0438 \u0434\u0430\u0442\u044b \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0435\u0441\u0442\u044c \u0438 \u043e\u043d\u0438 \u0434\u0430\u0436\u0435 \u043a\u0430\u043a-\u0442\u043e \u0441\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435,\u00a0\u0442\u043e \u0432\u043e\u0442 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430\u00a0\u0437\u0430\u0433\u0430\u0434\u043a\u043e\u0439 \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u043f\u043b\u0430\u0442\u044b.\u00a0\u0423\u0442\u043e\u0447\u043d\u044e \u0441\u0432\u043e\u0451 \u043d\u0435\u0434\u043e\u0443\u043c\u0435\u043d\u0438\u0435,\u00a0\u0435\u0441\u043b\u0438 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u00a0(\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u00a0\u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043d\u0430\u0432\u0435\u0440\u043d\u043e \u0432\u0441\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435,\u00a0\u0430\u0432\u0442\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u044b \u0438 \u0438\u043f\u043e\u0442\u0435\u043a\u0438)\u00a0\u0438 \u043b\u043e\u0433\u0438\u043a\u043e\u0439 \u0435\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e,\u00a0\u0442\u043e \u0437\u0430\u0433\u0432\u043e\u0437\u0434\u043a\u0443 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b:\u00a0\u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f,\u00a0\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u0430.<\/p>\n<p>\u041e\u0431\u043e \u0432\u0441\u0451\u043c \u043f\u043e \u043f\u0440\u044f\u0434\u043a\u0443.<\/p>\n<h2>\u0426\u0435\u043b\u044c \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b<\/h2>\n<p>\u0418\u043c\u0435\u0442\u044c \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0441\u0432\u0435\u0440\u043a\u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439:<\/p>\n<ol>\n<li>\n<p>\u041a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u0431\u044b\u043b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u043e\u0447\u043d\u044b\u043c<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0435\u0441\u0442\u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u043a\u0440\u0435\u0434\u0438\u0442\u0443<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u043c\u043e\u0433 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0443\u0449\u0438\u0439 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436, \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430:<\/p>\n<ol>\n<li>\n<p>\u0423\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043a\u0440\u0435\u0434\u0438\u0442\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u041f\u043b\u0430\u0442\u0435\u0436\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0438\u043c\u0435\u043b\u0438 \u043c\u0435\u0441\u0442\u043e<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0435 \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044e \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0441\u0451 \u043b\u0438\u0448\u043d\u0435\u0435 \u043e\u043f\u0443\u0449\u0435\u043d\u043e:<\/p>\n<ol>\n<li>\n<p>\u0414\u0435\u043d\u044c \u0432\u044b\u043f\u043b\u0430\u0442\u044b \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043c\u0438\u0441\u0441\u0438\u0438 \u043d\u0435 \u0432\u0437\u0438\u043c\u0430\u044e\u0442\u0441\u044f<\/p>\n<\/li>\n<li>\n<p>\u0418 \u0435\u0449\u0451 \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e (\u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u0433\u0430\u0442\u044b\u0439 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0432\u0441\u0435\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439\u00a0<a href=\"https:\/\/calcus.ru\/kreditnyj-kalkulyator-s-dosrochnym-pogasheniem\" rel=\"noopener noreferrer nofollow\">https:\/\/calcus.ru\/kreditnyj-kalkulyator-s-dosrochnym-pogasheniem<\/a>)<\/p>\n<\/li>\n<\/ol>\n<h2>\u0421\u0435\u0440\u0432\u0438\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c<\/h2>\n<p>\u0418,\u00a0\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044f \u0442\u0435\u043c\u0443 \u0441 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0430\u043c\u0438,\u00a0\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0449\u0438\u0435 <strong>\u0426\u0435\u043b\u0438<\/strong>, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0435\u0441\u0442\u044c. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0430\u043a\u0446\u0435\u043d\u0442\u0438\u0440\u0443\u044e \u043d\u0430 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u0445\u00a0&#171;\u041f\u043b\u0430\u0442\u0435\u0436\u0438,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0438\u043c\u0435\u043b\u0438 \u043c\u0435\u0441\u0442\u043e&#187;\u00a0\u0438\u043c\u0435\u044e\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/calcus.ru\/kreditnyj-kalkulyator-s-dosrochnym-pogasheniem\" rel=\"noopener noreferrer nofollow\">https:\/\/calcus.ru\/kreditnyj-kalkulyator-s-dosrochnym-pogasheniem<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/calc.consultant.ru\/crd\" rel=\"noopener noreferrer nofollow\">https:\/\/calc.consultant.ru\/crd<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/fincult.info\/calc\/loan\/\" rel=\"noopener noreferrer nofollow\">https:\/\/fincult.info\/calc\/loan\/<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/calculoan.ru\/\" rel=\"noopener noreferrer nofollow\">https:\/\/calculoan.ru\/<\/a> (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u043d\u0435 \u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0442, \u043d\u043e \u0432\u0435\u0434\u0451\u0442 \u0441\u0435\u0431\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u043a calc.consultant.ru \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430)<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e,\u00a0\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c,\u00a0\u043d\u0430 \u043d\u0435\u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u043e\u0441\u0442\u044c \u0438\u0445 \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432 \u043f\u0440\u0438 \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u043c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u043c \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0438.<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 1. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f (\u0431\u0435\u0437 \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f)<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"center\">\u0423\u0441\u043b\u043e\u0432\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"center\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">5 100 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430 \u0432\u044b\u0434\u0430\u0447\u0438<\/p>\n<\/td>\n<td>\n<p align=\"right\">10.10.2022<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0440\u043e\u043a \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">8 \u043b\u0435\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0442\u0430\u0432\u043a\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">8.2%<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412\u0441\u0435 3 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0432\u044b\u0434\u0430\u044e\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443.\u00a0\u0410\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435\u00a0(\u043e \u0447\u0451\u043c \u044f \u0435\u0449\u0451 \u0443\u043f\u043e\u043c\u044f\u043d\u0443 \u043d\u0438\u0436\u0435\u00a0&#8212;\u00a0\u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435 \u0442\u043e\u0447\u043d\u044b\u043c)<\/p>\n<p>\u0421\u0443\u043c\u043c\u0430 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u0437\u0430 \u043c\u0435\u0441\u044f\u0446\u00a0=\u00a0\u0421\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430\u00a0\u00d7\u00a0( (\u0413\u043e\u0434\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0432\u043a\u0430\u00a0\/\u00a0100\u00a0\/\u00a012)\u00a0\/\u00a0(1\u00a0&#8212;\u00a0(1\u00a0+\u00a0(\u0413\u043e\u0434\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0432\u043a\u0430\u00a0\/\u00a0100\u00a0\/\u00a012) )\u00a0&#8212;\u00a0\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432\u00a0) )<\/p>\n<p>\u0421\u0443\u043c\u043c\u0430 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432\u00a0=\u00a0\u041e\u0441\u0442\u0430\u0442\u043e\u043a \u0437\u0430\u0434\u043e\u043b\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443\u00a0\u00d7\u00a0(\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439,\u00a0\u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u044b\u00a0\u00d7\u00a0\u0413\u043e\u0434\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0432\u043a\u0430\u00a0\/\u00a0100\u00a0\/\u00a0\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439 \u0432 \u0433\u043e\u0434\u0443)\u00a0<a href=\"https:\/\/calc.consultant.ru\/crd\" rel=\"noopener noreferrer nofollow\">\u0441\u043c \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0440\u0430\u0441\u0447\u0451\u0442\u0430 consultant.ru<\/a><\/p>\n<h4>calcus.ru<\/h4>\n<figure class=\"full-width\"><\/figure>\n<figure class=\"full-width\"><\/figure>\n<h4>calc.consultant.ru<\/h4>\n<figure class=\"full-width\"><\/figure>\n<figure class=\"\"><\/figure>\n<h4>fincult.info<\/h4>\n<figure class=\"full-width\"><\/figure>\n<figure class=\"full-width\"><\/figure>\n<figure class=\"full-width\"><\/figure>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 2. \u0421 \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u043c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u043c \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0435\u043c<\/h3>\n<p>\u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u041f\u0440\u0438\u043c\u0435\u0440\u0430 1. <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"center\">\u0414\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0435 \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"center\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">484 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">13.11.2022<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"right\">\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0441\u0443\u043c\u043c\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0410 \u043f\u0440\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u043c \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f\u00a0(\u043e\u0434\u0438\u043d \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436).\u00a0\u041a \u0441\u043b\u043e\u0432\u0443,\u00a0\u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443,\u00a0\u0442\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b\u0430\u0441\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430,\u00a0\u043f\u043b\u044e\u0441 \u0443 \u0431\u0430\u043d\u043a\u0430 \u0431\u044b\u043b \u0441\u0432\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442,\u00a0\u0438 \u0443 \u043c\u0435\u043d\u044f\u00a0&#8212;\u00a0\u0441\u0432\u043e\u0439,\u00a0\u0431\u043b\u0438\u0437\u043a\u0438\u0439 \u043f\u043e \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u043c \u043a \u0431\u0430\u043d\u043a\u043e\u0432\u0441\u043a\u043e\u043c\u0443,\u00a0\u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u043e \u043c\u0435\u043d\u0435\u0435 1 \u0440\u0443\u0431\u043b\u044f \u0432 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u044b\u0439 \u043c\u0435\u0441\u044f\u0446.<\/p>\n<p>\u0418 \u044f \u043d\u0435 \u0437\u0440\u044f \u0434\u0435\u043b\u0430\u044e \u043f\u0440\u0438\u043d\u0442\u0441\u043a\u0440\u0438\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430.\u00a0\u0412 \u043d\u0435\u0433\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u0437\u0430 \u0432\u0435\u0441\u044c\u00a0(\u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044f)\u00a0\u043f\u0435\u0440\u0438\u043e\u0434 \u043a\u0440\u0435\u0434\u0438\u0442\u0430.\u00a0\u0418 \u043f\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u00a0(\u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e \u0440\u0430\u0437\u043d\u0438\u0446\u044b)\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0443\u0434\u0438\u0442\u044c \u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u00a0\u0441\u0430\u043c\u043e\u0433\u043e \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u0432 \u0446\u0435\u043b\u043e\u043c.<\/p>\n<h4>calcus.ru<\/h4>\n<figure class=\"full-width\"><\/figure>\n<figure class=\"full-width\"><\/figure>\n<h4>calc.consultant.ru<\/h4>\n<figure class=\"full-width\"><\/figure>\n<figure class=\"\"><\/figure>\n<h4>fincult.info<\/h4>\n<figure class=\"full-width\"><\/figure>\n<figure class=\"full-width\"><\/figure>\n<figure class=\"full-width\"><\/figure>\n<h3>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434<\/h3>\n<p>\u0422\u0443\u0442 \u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u043f\u0440\u0430\u0432\u0434\u044b\u0432\u0430\u044e \u0441\u0432\u043e\u0451 \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f,\u00a0\u043e\u0434\u043d\u0430\u043a\u043e \u0441\u0434\u0435\u043b\u0430\u044e \u0430\u043a\u0446\u0435\u043d\u0442 \u043d\u0430 \u0442\u043e\u043c,\u00a0\u0447\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0449\u044c \u043a\u0430\u043a\u00a0\u043a\u0440\u0435\u0434\u0438\u0442 \u0441 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u0441 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u043c \u043f\u043b\u0430\u0442\u0435\u0436\u043e\u043c \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439,\u00a0\u0442.\u0435.\u00a0\u043d\u0435\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430.\u00a0\u0418 \u0442\u0443\u0442 \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u043a\u0430\u0441\u0430\u044e\u0441\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0442\u0438\u043f\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043b\u0438 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438 \u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e,\u00a0\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0438\/\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b.\u00a0\u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e,\u00a0\u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c,\u00a0\u043d\u043e \u043e\u0437\u0432\u0443\u0447\u0443,\u00a0\u0435\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u043d\u0443\u0436\u0434\u0430 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043b\u0430\u00a0\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438\u00a0&#8212;\u00a0\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u043f\u0430\u0432\u0448\u0438\u0439\u0441\u044f,\u00a0\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u043e\u0442,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043b\u0438\u0436\u0435\u00a0\u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043a\u0440\u0435\u0434\u0438\u0442\u0443.<\/p>\n<p>\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e,\u00a0&#171;\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439&#187;\u00a0\u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0439\u00a0(\u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0430\u043d\u043d\u0443\u0438\u0442\u0435\u0442\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439\u00a0\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0435\u043d)\u00a0\u043d\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c,\u00a0\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f.<\/p>\n<h2>\u0413\u0440\u0430\u0444\u0438\u043a \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439<\/h2>\n<p>\u0415\u0449\u0451 \u043f\u0440\u0435\u0442\u0435\u043d\u0437\u0438\u044f \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430 \u043a \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439,\u00a0\u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439.\u00a0\u0418 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0432\u043e\u0438\u0445 \u043c\u044b\u0442\u0430\u0440\u0441\u0442\u0432\u00a0\u043f\u0440\u0438\u0448\u0451\u043b \u0432 \u0432\u044b\u0432\u043e\u0434\u0443,\u00a0\u0447\u0442\u043e \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0432\u0438\u0434,\u00a0\u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e,\u00a0\u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u0434\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u043e\u0441\u043e\u0431\u043e \u043d\u0435\u043b\u044c\u0437\u044f\u00a0&#8212;\u00a0\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u00a0\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u0438\u0439 \u0438 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0439,\u00a0\u0447\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u0435\u0439.\u00a0\u041d\u043e \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c,\u00a0\u0431\u0443\u0434\u0443 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. <\/p>\n<h3>\u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435<\/h3>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u0440\u0435\u0434\u0438\u0442 \u0441 2-\u043c\u044f \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u043c\u0438 \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"center\">\u0423\u0441\u043b\u043e\u0432\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"center\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">1 000 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430 \u0432\u044b\u0434\u0430\u0447\u0438<\/p>\n<\/td>\n<td>\n<p align=\"right\">20.11.2023<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0440\u043e\u043a \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">1 \u0433\u043e\u0434<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0442\u0430\u0432\u043a\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">12.3%<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0413\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u043d\u0430\u0448 \u043a\u0440\u0435\u0434\u0438\u0442\u043e\u0440 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0435 \u043e\u0442 2024-03-30 \u0434\u043e 2024-04-20.\u00a0\u0414\u043e 2024-03-30 \u0432\u0441\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0438\u00a0\u043f\u0440\u043e\u0448\u043b\u0438 \u043f\u043b\u0430\u043d\u043e\u0432\u043e.\u00a0\u0421 \u0434\u0432\u0443\u043c\u044f \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u043c\u0438 \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"center\">id_payment<\/p>\n<\/th>\n<th>\n<p align=\"center\">\u0414\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0435 \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"center\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">21.01.2024<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"right\">\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0441\u0443\u043c\u043c\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">30 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"right\">30.03.2024<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"right\">\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0441\u0443\u043c\u043c\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0415\u0433\u043e \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u0432 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435,\u00a0\u043d\u0430\u0437\u043e\u0432\u0451\u043c credit,\u00a0\u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442\u00a0&#8230; <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>id_payment<\/p>\n<\/th>\n<th>\n<p>date<\/p>\n<\/th>\n<th data-colwidth=\"88\" width=\"88\">\n<p>days<\/p>\n<\/th>\n<th>\n<p>credit_sum<\/p>\n<\/th>\n<th>\n<p>payment<\/p>\n<\/th>\n<th>\n<p>accrued_interest<\/p>\n<\/th>\n<th>\n<p>principal_debt<\/p>\n<\/th>\n<th>\n<p>interest_rate<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2023-11-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1 000 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">2023-12-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">921 129,48<\/p>\n<\/td>\n<td>\n<p align=\"left\">88 980,11<\/p>\n<\/td>\n<td>\n<p align=\"left\">10 109,59<\/p>\n<\/td>\n<td>\n<p align=\"left\">78 870,52<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-01-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">841 755,06<\/p>\n<\/td>\n<td>\n<p align=\"left\">88 980,11<\/p>\n<\/td>\n<td>\n<p align=\"left\">9 605,69<\/p>\n<\/td>\n<td>\n<p align=\"left\">79 374,42<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-01-21<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">742 037,94<\/p>\n<\/td>\n<td>\n<p align=\"left\">100 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">282,88<\/p>\n<\/td>\n<td>\n<p align=\"left\">99 717,12<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-02-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">742 037,94<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 481,20<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 481,20<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-03-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">29<\/p>\n<\/td>\n<td>\n<p align=\"left\">662 568,77<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 231,83<\/p>\n<\/td>\n<td>\n<p align=\"left\">79 469,17<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-03-30<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">634 795,44<\/p>\n<\/td>\n<td>\n<p align=\"left\">30 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 226,67<\/p>\n<\/td>\n<td>\n<p align=\"left\">27 773,33<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-04-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">21<\/p>\n<\/td>\n<td>\n<p align=\"left\">582 574,43<\/p>\n<\/td>\n<td>\n<p align=\"left\">56 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">4 479,99<\/p>\n<\/td>\n<td>\n<p align=\"left\">52 221,01<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-05-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">501 746,93<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">5 873,50<\/p>\n<\/td>\n<td>\n<p align=\"left\">80 827,50<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">9<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-06-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">420 273,15<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">5 227,22<\/p>\n<\/td>\n<td>\n<p align=\"left\">81 473,78<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-07-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">337 809,33<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">4 237,18<\/p>\n<\/td>\n<td>\n<p align=\"left\">82 463,82<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">11<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-08-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">254 627,64<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">3 519,31<\/p>\n<\/td>\n<td>\n<p align=\"left\">83 181,69<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">12<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-09-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">170 579,36<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 652,72<\/p>\n<\/td>\n<td>\n<p align=\"left\">84 048,28<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">13<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-10-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">85 598,14<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">1 719,78<\/p>\n<\/td>\n<td>\n<p align=\"left\">84 981,22<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-11-20<\/p>\n<\/td>\n<td data-colwidth=\"88\" width=\"88\">\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 489,90<\/p>\n<\/td>\n<td>\n<p align=\"left\">891,76<\/p>\n<\/td>\n<td>\n<p align=\"left\">85 598,14<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,30<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>&#8230;\u00a0\u0438 \u0432 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u043c,\u00a0\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u043f\u043e\u043b\u044f \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438,\u00a0\u043d\u0430\u0437\u043e\u0432\u0451\u043c credit_event, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>id_date<\/p>\n<\/th>\n<th>\n<p>id_payment<\/p>\n<\/th>\n<th>\n<p>is_payment_date<\/p>\n<\/th>\n<th>\n<p>date_type_event<\/p>\n<\/th>\n<th>\n<p>date<\/p>\n<\/th>\n<th>\n<p>days<\/p>\n<\/th>\n<th>\n<p>days_year<\/p>\n<\/th>\n<th>\n<p>credit_sum<\/p>\n<\/th>\n<th>\n<p>payment<\/p>\n<\/th>\n<th>\n<p>accrued_interest<\/p>\n<\/th>\n<th data-colwidth=\"58\" width=\"58\">\n<p>principal_debt<\/p>\n<\/th>\n<th>\n<p>interest_rate<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">False<\/p>\n<\/td>\n<td>\n<p align=\"left\">creditStartDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2023-11-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1 000 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2023-12-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">365<\/p>\n<\/td>\n<td>\n<p align=\"left\">921 129,48<\/p>\n<\/td>\n<td>\n<p align=\"left\">88 980,11<\/p>\n<\/td>\n<td>\n<p align=\"left\">10 109,59<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">78 870,52<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">False<\/p>\n<\/td>\n<td>\n<p align=\"left\">noCharge<\/p>\n<\/td>\n<td>\n<p align=\"left\">2023-12-31<\/p>\n<\/td>\n<td>\n<p align=\"left\">11<\/p>\n<\/td>\n<td>\n<p align=\"left\">365<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">3 414,49<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">-3 414,49<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-01-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">20<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">841 755,06<\/p>\n<\/td>\n<td>\n<p align=\"left\">88 980,11<\/p>\n<\/td>\n<td>\n<p align=\"left\">6 191,20<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">82 788,91<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">False<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-01-21<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">742 037,94<\/p>\n<\/td>\n<td>\n<p align=\"left\">100 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">282,88<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">99 717,12<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-02-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">742 037,94<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 481,20<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 481,20<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-03-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">29<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">662 568,77<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 231,83<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">79 469,17<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">False<\/p>\n<\/td>\n<td>\n<p align=\"left\">realPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-03-30<\/p>\n<\/td>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">634 795,44<\/p>\n<\/td>\n<td>\n<p align=\"left\">30 000,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 226,67<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">27 773,33<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">9<\/p>\n<\/td>\n<td>\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayTheRestDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-04-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">21<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">582 574,43<\/p>\n<\/td>\n<td>\n<p align=\"left\">56 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">4 479,99<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">52 221,01<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-05-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">501 746,93<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">5 873,50<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">80 827,50<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">11<\/p>\n<\/td>\n<td>\n<p align=\"left\">9<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-06-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">420 273,15<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">5 227,22<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">81 473,78<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">12<\/p>\n<\/td>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-07-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">337 809,33<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">4 237,18<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">82 463,82<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">13<\/p>\n<\/td>\n<td>\n<p align=\"left\">11<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-08-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">254 627,64<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">3 519,31<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">83 181,69<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">12<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-09-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">170 579,36<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 652,72<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">84 048,28<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">15<\/p>\n<\/td>\n<td>\n<p align=\"left\">13<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-10-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">30<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">85 598,14<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 701,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">1 719,78<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">84 981,22<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">16<\/p>\n<\/td>\n<td>\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">True<\/p>\n<\/td>\n<td>\n<p align=\"left\">planPayDate<\/p>\n<\/td>\n<td>\n<p align=\"left\">2024-11-20<\/p>\n<\/td>\n<td>\n<p align=\"left\">31<\/p>\n<\/td>\n<td>\n<p align=\"left\">366<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,00<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 489,90<\/p>\n<\/td>\n<td>\n<p align=\"left\">891,76<\/p>\n<\/td>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">85 598,14<\/p>\n<\/td>\n<td>\n<p align=\"left\">12,3<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th data-colwidth=\"161\" width=\"161\">\n<p>\u041f\u043e\u043b\u0435<\/p>\n<\/th>\n<th>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">id_date<\/p>\n<\/td>\n<td>\n<p align=\"left\">id \u0434\u0430\u0442\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">id_payment<\/p>\n<\/td>\n<td>\n<p align=\"left\">id \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">is_payment_date<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0434\u0430\u0442\u043e\u0439 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">date_type_event<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0438\u043f\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">date<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">days<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043f\u0440\u043e\u0448\u043b\u043e \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">days_year<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043d\u0435\u0439 \u0432 \u0433\u043e\u0434\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">credit_sum<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f \u0441\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">payment<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443 (= accrued_interest + principal_debt)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">accrued_interest<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u044b \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443 \u0437\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">principal_debt<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0435\u043b\u043e \u0434\u043e\u043b\u0433\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">interest_rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443, \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u043d\u0430\u0447\u0430\u043b\u0430<\/h3>\n<p>\u041d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u043f\u043e\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c \u043a\u0440\u0435\u0434\u0438\u0442\u0430 <\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u043b\u044e\u0441 \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u044b \u043f\u043e\u043b\u044f,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u043f\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043b\u0430\u0442\u0435\u0436\u0430\u043c\u00a0(\u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043a\u0440\u0435\u0434\u0438\u0442\u043e\u0440 \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0433\u0434\u0435-\u0442\u043e \u0432\u00a0\u043f\u0435\u0440\u0438\u043e\u0434\u0435 \u043c\u0435\u0436\u0434\u0443 \u0434\u0430\u0442\u0430\u043c\u0438 \u043e\u0442 2024-03-30 \u0434\u043e 2024-04-20).<\/p>\n<figure class=\"full-width\"><\/figure>\n<h3>days<\/h3>\n<p><strong>days<\/strong>\u00a0\u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u043e\u0439 \u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u043e\u0439.<\/p>\n<figure class=\"full-width\"><\/figure>\n<h3>days_year<\/h3>\n<p><strong>days_year<\/strong>\u00a0\u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u043d\u0435\u0439 \u0432 \u0433\u043e\u0434\u0443 \u043d\u0430 \u0434\u0430\u0442\u0443. <\/p>\n<figure class=\"full-width\"><\/figure>\n<h3>accrued_interest<\/h3>\n<p><strong>accrued_interest<\/strong>\u00a0\u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c\u00a0<strong>credit_sum<\/strong>\u00a0(\u041e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f \u0441\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443)\u00a0\u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u044b\u0439\u00a0<strong>id_payment<\/strong>,\u00a0\u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u043d\u0430\u00a0<strong>interest_rate<\/strong>\u00a0(\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u043f\u043e \u043a\u0440\u0435\u0434\u0438\u0442\u0443,\u00a0\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434)\u00a0\u0441 \u043f\u043e\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u043d\u0430 \u043a\u043e\u043b-\u0432\u043e \u0434\u043d\u0435\u0439 \u0437\u0430\u00a0\u043f\u0435\u0440\u0438\u043e\u0434\u00a0(\u043b\u0443\u0447\u0448\u0435 \u0441\u0432\u0435\u0440\u0438\u0442\u044c\u0441\u044f \u0441 \u0444\u043e\u0440\u043c\u0443\u043b\u043e\u0439 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435\u00a0&#8212;\u00a0\u0442\u0430\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e). <\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0418 \u0442\u0443\u0442 \u043c\u044b \u043f\u0440\u0438\u0442\u0440\u043e\u043d\u0443\u043b\u0438\u0441\u044c \u043a \u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0441\u0442\u0430\u0432\u0438\u0442 \u043f\u043e\u0434 \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u00a0\u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439.\u00a0\u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0441\u044b\u043b\u043a\u0430 \u0434\u043b\u044f 2\u0445 \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432\u00a0<strong>accrued_interest<\/strong>\u00a0\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c\u00a0<strong>credit_sum<\/strong>\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f,\u00a0\u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043f\u0440\u043e\u0447\u0438\u0435 \u043f\u043e\u043b\u044f\u00a0&#8212;\u00a0\u0441\u0434\u0432\u0438\u043d\u0443\u043b\u0438\u0441\u044c. <\/p>\n<figure class=\"full-width\"><\/figure>\n<figure class=\"full-width\"><\/figure>\n<p>\u041e\u0431\u0440\u0430\u0449\u0430\u044e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435,\u00a0\u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c\u00a0<strong>date_type_event<\/strong>\u00a0=\u00a0&#8216;noCharge&#8217;\u00a0\u0442\u0443\u0442 \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u043c\u0435\u0442\u044c <\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-446122","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/446122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=446122"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/446122\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=446122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=446122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=446122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}