// Код для Function Node в n8n // Нормализация номера полиса: кириллица -> латиница, к заглавным // Получаем номер полиса из предыдущей ноды const policyNumber = $input.item.json.form_data?.cf_1885 || $input.item.json.cf_1885 || ''; if (!policyNumber || typeof policyNumber !== 'string') { return { json: { original: policyNumber, normalized: '', error: 'Номер полиса не найден или имеет неверный формат' } }; } // Функция нормализации: кириллица -> латиница, к заглавным function normalizePolicyNumber(str) { if (!str) return ''; // Маппинг кириллических букв на латинские (похожие визуально) const cyrillicToLatin = { // Заглавные 'А': 'A', 'В': 'B', 'С': 'C', 'Е': 'E', 'К': 'K', 'М': 'M', 'Н': 'H', 'О': 'O', 'Р': 'P', 'Т': 'T', 'Х': 'X', 'У': 'Y', // Строчные 'а': 'A', 'в': 'B', 'с': 'C', 'е': 'E', 'к': 'K', 'м': 'M', 'н': 'H', 'о': 'O', 'р': 'P', 'т': 'T', 'х': 'X', 'у': 'Y' }; // Заменяем кириллические буквы на латинские let normalized = str.split('').map(char => { return cyrillicToLatin[char] || char; }).join(''); // Приводим к заглавным буквам normalized = normalized.toUpperCase(); // Убираем лишние пробелы в начале и конце normalized = normalized.trim(); return normalized; } // Нормализуем номер полиса const normalized = normalizePolicyNumber(policyNumber); // Возвращаем результат return { json: { original: policyNumber, normalized: normalized, changed: policyNumber !== normalized, // Добавляем нормализованное значение обратно в form_data form_data: { ...($input.item.json.form_data || {}), cf_1885: normalized } } };