Законодательство и регулирование

Какие законы регулируют МФО, правила, ограничения, права заемщика. Ограничения по процентам, штрафам и взысканию. Права заемщиков и изменения в текущем году.

// Autocomplete для поиска МФО/Банков (function(){ function initAutocomplete(inputId, suggestId, type) { var inp = document.getElementById(inputId); var box = document.getElementById(suggestId); if (!inp || !box) return; var timer; inp.addEventListener('input', function() { clearTimeout(timer); var q = this.value.trim(); if (q.length < 2) { box.style.display = 'none'; return; } timer = setTimeout(function() { fetch('/search/suggest?q=' + encodeURIComponent(q)) .then(function(r){ return r.json(); }) .then(function(items) { if (!items.length) { box.innerHTML = '
Ничего не найдено
'; box.style.display = ''; return; } var html = ''; items.forEach(function(it) { if (type && it.type !== type) return; html += '' + '' + '' + it.title + '' + '' + (it.type === 'mfo' ? 'МФО' : 'Банк') + ''; }); box.innerHTML = html || '
Ничего не найдено
'; box.style.display = ''; }); }, 250); }); document.addEventListener('click', function(e) { if (!e.target.closest('#' + inputId) && !e.target.closest('#' + suggestId)) box.style.display = 'none'; }); } initAutocomplete('mfoSearch', 'mfoSuggest', 'mfo'); initAutocomplete('bankSearch', 'bankSuggest', 'bank'); })(); (function() { function setFavoriteState(btn, inFav) { var outline = btn.querySelector('.favorite-icon-outline'); var filled = btn.querySelector('.favorite-icon-filled'); if (outline) outline.style.display = inFav ? 'none' : ''; if (filled) filled.style.display = inFav ? '' : 'none'; } document.querySelectorAll('.favorite-toggle').forEach(function(btn) { setFavoriteState(btn, btn.getAttribute('data-in-favorites') === '1'); }); document.addEventListener('click', function(e) { var btn = e.target.closest('.favorite-toggle'); if (!btn) return; e.preventDefault(); var entityType = btn.getAttribute('data-entity-type'); var entityId = btn.getAttribute('data-entity-id'); if (!entityType || !entityId) return; var formData = new FormData(); formData.append('entity_type', entityType); formData.append('entity_id', entityId); fetch('/favorites/toggle', { method: 'POST', body: formData }) .then(function(r) { return r.json(); }) .then(function(data) { if (data.redirect) { window.location.href = data.redirect; return; } if (data.success) { var inFav = !!data.is_favorite; btn.setAttribute('data-in-favorites', inFav ? '1' : '0'); setFavoriteState(btn, inFav); } }); }); })();