Прайс с рублевым и евровым разделами: раздельные итоги
Валюта наследуется от заголовка раздела, но не переживает явный разрыв; строка вне раздела попадает на сверку.
Задача и принятое решение
В прайсе цена указана без валюты в каждой товарной строке. После двух разделов есть отдельная вставка без заголовка, которую легко ошибочно принять за евро.
Я ввела явные события начала и окончания раздела. Цена остается вместе с исходной валютой, повторный заголовок не становится товаром. Общую сумму в одной валюте не вывожу: курс в этом наборе не задан.
Валюта берется только из заголовка RUB/EUR. Пересчета по предположительному курсу нет.
Проверить решение
Измените исходные строки или параметры и пересчитайте результат. Данные остаются в этой странице.
| Позиция | Цена | Валюта | Решение |
|---|---|---|---|
| Лоток L1 | 1200 | RUB | В реестр |
| Лоток L2 | 1800 | RUB | В реестр |
| Крышка K1 | 350 | RUB | В реестр |
| Разделитель D1 | 450 | RUB | В реестр |
| Светильник S1 | 25 | EUR | В реестр |
| Светильник S2 | 38 | EUR | В реестр |
| Драйвер D2 | 12 | EUR | В реестр |
| Кабель C1 | 500 | Не определена | Уточнить раздел |
| Крепление K2 | 600 | RUB | В реестр |
Итоги по валютам не складываются. Неопределенная строка исключена из обоих итогов.
Исходный набор
Авторский контрольный набор; не клиентские документы и не результаты внешней модели.
Изменить входные строки
Посмотреть исходные строки
| Тип | Валюта | Позиция | Цена |
|---|---|---|---|
| раздел | RUB | 0 | |
| товар | Лоток L1 | 1200 | |
| товар | Лоток L2 | 1800 | |
| товар | Крышка K1 | 350 | |
| товар | Разделитель D1 | 450 | |
| конец | 0 | ||
| раздел | EUR | 0 | |
| товар | Светильник S1 | 25 | |
| товар | Светильник S2 | 38 | |
| товар | Драйвер D2 | 12 | |
| конец | 0 | ||
| товар | Кабель C1 | 500 | |
| раздел | RUB | 0 | |
| товар | Крепление K2 | 600 |
Что получилось
Девять позиций распределены в реестр: 4400 RUB, 75 EUR и кабель за 500 без установленной валюты. Кабель не добавлен ни к одному итогу. Прогон с USD оставляет соответствующий раздел на уточнении.
Выполненная проверка
| Проверка | Результат |
|---|---|
| Рубли 4400 и евро 75 посчитаны раздельно | Пройдена |
| Разрыв раздела не наследует EUR в строку кабеля | Пройдена |
| Неподдерживаемая валюта не становится рублями | Пройдена |
Нормализация не проверяет актуальность цен и не конвертирует валюты.
Скачать материалы и повторить проверку
source.json · source.csv · result.json · result.csv · engine.js · verify.cjs · checks.json · style.css
Локальная проверка: node verify.cjs. Нужен Node.js; сетевые обращения не выполняются.