Свести тридцать прайсов в одну таблицу — это не задача «написать макрос», а конвейер из пяти шагов: приём файла, распознавание шапки, нормализация единиц и валют, сопоставление с внутренней номенклатурой и загрузка с журналом изменений. На отлаженном конвейере через него без участия человека проходит около 81 % строк. Остальные 19 % достаются закупщику, и это не недоработка, а штатный режим: у поставщиков нет и не будет общего стандарта прайса.
Считать выгоду принято по сэкономленным часам, и здесь она невелика. Тридцать прайсов по 850 строк съедают у закупщика примерно 40 часов в месяц — рабочую неделю. По полной ставке 1 000 ₽ в час это 40 000 ₽ в месяц и 480 000 ₽ в год. Проект конвейера стоит дороже, поэтому на одних часах он не окупается никогда. Настоящие деньги лежат в двух других местах: в подорожаниях, которые проходят незамеченными, потому что сравнивать некогда, и в закупках у привычного поставщика вместо выгодного — по той же причине.
Ниже — разбор конвейера как инженерной задачи: что приходит на вход в шести форматах и что с каждым делать, по каким ключам сопоставляются позиции и почему одного названия мало, как считается сравнимая цена за единицу, как устроен сигнал о подорожании и сколько всё это стоит в рублях. Все расчёты модельные, с прозрачной арифметикой — их можно повторить на калькуляторе, подставив свои числа.
Сколько стоит ручное сведение прайсов
Модельная компания дальше по тексту одна и та же: оптовая торговля с производством, внутренняя номенклатура 12 000 позиций, из них реально закупается около 2 400, тридцать действующих поставщиков, годовой объём закупки 96 000 000 ₽ без НДС. Прайсы приходят на почту закупщика: часть раз в месяц, часть еженедельно, часть «когда поменяли». Средний прайс — 850 строк, суммарно 25 500 строк в месяц.
Первое, что нужно посчитать честно, — сколько стоит час закупщика. Не оклад, а полная стоимость: с взносами, рабочим местом, лицензиями и накладными. Считать по окладу — самая частая ошибка в обосновании автоматизации; мы разбирали её подробно в материале о реальной стоимости ручной работы.
Теперь время на один прайс. Замер по журналу выглядит примерно так: скачать вложение и понять, что это за файл, — 5 минут; привести шапку и убрать объединённые ячейки — 12 минут; найти новые и исчезнувшие позиции — 18 минут; сопоставить их с внутренними кодами — 25 минут; перенести изменившиеся цены и проверить единицы — 20 минут. Восемьдесят минут на прайс, и это при условии, что файл открылся и в нём ничего не сломано.
Запомните цифру и не стройте на ней обоснование проекта. Конвейер стоит дороже 480 000 ₽ в год, и если считать только снятые часы, окупаемость уходит за одиннадцать месяцев. Проект окупается тем, что закупщик наконец успевает сравнивать: об этом разделы про подорожания и про переключение объёма.
Шесть форматов на входе и что делать с каждым
Поставщики не договорятся между собой о формате прайса, поэтому конвейер строится не под «правильный файл», а под шесть типов входа сразу. Ниже — распределение по тридцати поставщикам модельной компании и доля строк, которая проходит по каждому типу без ручного вмешательства.
| Тип входа | Поставщиков | Что ломается | Как решается | Строк без ручной правки |
|---|---|---|---|---|
| Excel: xlsx и старый xls | 17 | Шапка не в первой строке, объединённые ячейки, три листа, итоговые строки внутри таблицы | Поиск строки заголовков по набору ключевых слов, разбор объединённых ячеек, отсечение итогов по признаку пустого артикула | 94 % |
| CSV и текстовые выгрузки | 3 | Разделитель — точка с запятой, кодировка windows-1251, десятичная запятая, кавычки внутри названий | Автоопределение кодировки и разделителя по первым строкам, правила разбора чисел | 97 % |
| PDF-прайс | 4 | Два варианта: текстовый слой и скан. У скана — печати поверх таблицы и перенос строк | Разбор таблицы из текстового слоя; для сканов — распознавание с обязательной проверкой итогов человеком | 88 % на текстовом слое, 74 % на скане |
| Таблица в теле письма | 2 | Вёрстка письма, слитые ячейки, цены рядом с текстом «плюс доставка» | Разбор HTML-таблицы письма, отдельное правило на приписки к цене | 91 % |
| Ссылка на выгрузку: кабинет, FTP, HTTP | 3 | Ссылка меняется, требуется вход, файл выкладывается не по расписанию | Робот забирает файл по расписанию, при недоступности — уведомление закупщику на второй попытке | 99 % |
| XML или YML | 1 | Свои названия тегов, характеристики в свободной форме | Разбор по схеме поставщика, характеристики — в отдельные поля | 99 % |
Сравнительная схема из шести вертикальных колонок, слева направо: «Excel — 17 поставщиков — 94 %», «CSV — 3 — 97 %», «PDF — 4 — 88 % текстовый слой, 74 % скан», «Таблица в письме — 2 — 91 %», «Ссылка на выгрузку — 3 — 99 %», «XML/YML — 1 — 99 %». Высота каждой колонки пропорциональна доле строк без ручной правки, внутри колонки — одна короткая подпись главной проблемы формата. Внизу общая подпись «30 поставщиков, 25 500 строк в месяц». Чертёжный стиль, подписи по-русски.
Про PDF стоит сказать отдельно, потому что именно здесь чаще всего обещают лишнего. Прайс с текстовым слоем разбирается почти как таблица. Скан — это уже распознавание со всеми его свойствами: точность зависит от качества съёмки, печать поверх колонки цен ломает строку, а ошибка в одном символе цены дороже ошибки в названии. Практическое правило: на сканах итоговые цены и единицы измерения обязательно проходят через глаза человека, даже если система уверена в результате. Что происходит с точностью на реальных документах и как считать долю ошибок, мы разбирали в отдельном материале о реальной точности распознавания.
И ещё одно наблюдение из практики: самый дешёвый способ улучшить конвейер — не улучшать конвейер. Три-четыре поставщика из тридцати обычно готовы присылать выгрузку в согласованном формате или дать ссылку на файл, если их об этом попросить письменно один раз. Это переводит их из категории «88 %» в категорию «99 %» бесплатно.
Конвейер из пяти шагов
Порядок шагов важнее их содержания. Самая частая ошибка — начать с сопоставления номенклатуры, потому что это самая интересная часть, и обнаружить на третьей неделе, что половина прайсов вообще не открывается автоматически, а единицы измерения у трёх поставщиков указаны в тоннах при внутреннем учёте в килограммах.
- 1Шаг 1. Приём: файл попадает в систему сам
Отдельный почтовый ящик для прайсов, правило по отправителю и теме, забор вложений и файлов по ссылкам. Каждое письмо кладётся в журнал как есть: отправитель, дата, вложение, контрольная сумма файла. Без этого журнала невозможно потом ответить на вопрос «откуда взялась эта цена» — а он возникает в первый же месяц.
- 2Шаг 2. Разбор: где здесь шапка и где данные
Система ищет строку заголовков по набору ключевых слов — артикул, наименование, цена, остаток, единица, кратность — и запоминает разметку для конкретного поставщика. При следующей загрузке разметка применяется сразу, а если она не сошлась, файл уходит закупщику с пометкой «шапка изменилась», а не загружается наполовину.
- 3Шаг 3. Нормализация: приведение к своим единицам
Единицы измерения (тонны в килограммы, упаковки в штуки, погонные метры в метры), валюта по курсу на дату прайса, цена с НДС и без НДС, кратность упаковки, десятичный разделитель. Здесь же отсекаются мусорные строки: разделители разделов, итоги, строки с нулевой ценой и пометкой «под заказ».
- 4Шаг 4. Сопоставление: чужая позиция становится вашей
Три ключа по очереди — артикул поставщика из накопленного словаря, штрихкод, нормализованное название с характеристиками. Совпадения выше порога уверенности принимаются автоматически, пограничные показываются закупщику парами «предложено — подтвердить», остальные копятся в очереди новых позиций.
- 5Шаг 5. Загрузка и журнал: цена попадает в учёт с историей
Новая версия прайса пишется рядом с предыдущей, а не вместо неё. В учётную систему уходят только изменения: новые позиции, изменившиеся цены, снятые с производства. Одновременно считается разница с прошлой версией — на этом строится сигнал о подорожании.
Горизонтальная схема из пяти прямоугольных блоков со стрелками: «Приём (почта, ссылка, FTP)» → «Разбор шапки» → «Нормализация: единицы, валюта, НДС, кратность» → «Сопоставление: артикул, штрихкод, название» → «Загрузка в учёт + журнал версий». От блоков «Разбор шапки» и «Сопоставление» вниз отходят стрелки в общий лоток «На проверку закупщику — 19 % строк». Над блоком «Сопоставление» подпись «81 % проходит автоматически». Слева на входе подпись «30 поставщиков, 25 500 строк в месяц», справа на выходе — «одна таблица сравнимых цен». Чертёжный стиль, подписи по-русски.
Если новый прайс затирает старый, вы теряете возможность показать поставщику его же цену двухмесячной давности и теряете основание для претензии, когда в накладной цена выше согласованной. Журнал версий не стоит почти ничего на этапе разработки и стоит очень дорого, когда его начинают восстанавливать по переписке. Храните исходный файл, дату получения и отправителя — это тот же принцип, что и в контроле исполнения договоров поставки.
Сопоставление позиций: почему по названию совпадает половина
Один и тот же товар у трёх поставщиков называется тремя разными строками, и ни одна из них не совпадает с вашей карточкой. «Кабель ВВГнг-LS 3х2.5», «ВВГнг(А)-LS 3*2,5 ГОСТ», «Кабель силовой ВВГ нг LS 3 x 2.5 мм2». Человек видит один товар мгновенно, а прямое сравнение строк не находит ничего.
Таблица связей «артикул поставщика → ваш внутренний код», которая накапливается по мере работы. Каждое подтверждённое человеком сопоставление записывается в неё навсегда, и при следующей загрузке та же позиция проходит автоматически. Словарь — главный актив всего проекта: он принадлежит вам, переживает смену подрядчика и стоит дороже кода конвейера.
Ключей сопоставления три, и они применяются по очереди — от самого надёжного к самому спорному. Доли ниже — модельные для номенклатуры технических товаров; на продуктах питания со штрихкодами на всём картина сдвигается в пользу штрихкода, на позициях без артикулов, вроде метизов россыпью, — в сторону ручной работы.
| Ключ | Что сравнивается | Даёт | Накопленный итог | Риск ошибки |
|---|---|---|---|---|
| Точное название | Строка символ в символ | 23 % | 23 % | Практически нет |
| Нормализованное название | Нижний регистр, единый разделитель размеров, развёрнутые сокращения, вынесенные в поля характеристики, порядок слов не важен | +29 % | 52 % | Средний: путает соседние типоразмеры |
| Артикул поставщика из словаря | Код поставщика, подтверждённый человеком в прошлых загрузках | +21 % | 73 % | Низкий: связь подтверждена один раз и навсегда |
| Штрихкод EAN или GTIN | Код упаковки или единицы товара | +8 % | 81 % | Низкий, но штрихкод есть далеко не у всех |
| Остаётся закупщику | Новые позиции, спорные пары, разные комплектации под одним названием | 19 % | 100 % | Здесь и должен работать человек |
Накопительная горизонтальная полоса, разбитая на пять сегментов с подписями долей: «Точное название — 23 %», «Нормализованное название — +29 % (итого 52 %)», «Артикул из словаря — +21 % (итого 73 %)», «Штрихкод — +8 % (итого 81 %)», «Остаётся закупщику — 19 %». Последний сегмент выделен другой штриховкой и подписан «нормальный режим, а не брак системы». Под полосой шкала от 0 до 100 %. Чертёжный стиль, подписи по-русски.
Из этих девятнадцати процентов и складывается вся ручная работа после запуска — но не сразу вся. В первый прогон сопоставлять нужно не весь прайс, а только ту номенклатуру, которую вы реально закупаете. В модельной компании это 2 400 позиций из 12 000: остальные лежат в справочнике как история или как «может пригодиться». Автоматика закрывает 1 944 позиции, на человека остаётся 456. При скорости 2,5 минуты на пару это 19 часов работы — 19 000 ₽ разово, отдельной строкой в смете.
Дальше нагрузка резко падает, потому что словарь уже накоплен. В месяц в тридцати прайсах появляется примерно 260 действительно новых уникальных позиций; 19 % из них, то есть около 50 штук, требуют решения человека — это чуть больше двух часов. Именно поэтому обещание «мы сопоставим всю вашу номенклатуру автоматически» стоит воспринимать как признак неопытности: сопоставляется не номенклатура, а поток, и первый месяц всегда тяжелее следующих.
Позиции «Болт М10х40 оц.» и «Болт М10х45 оц.» отличаются одним символом, а на складе это два разных товара. Если система принимает совпадение при любой похожести, ошибки попадают в заказ и всплывают на приёмке. Рабочее правило: выше порога — принимаем, ниже — показываем пару человеку, ничего не додумываем. Доля пограничных пар в модельном конвейере — около 6 % строк, и они входят в те же 19 %.
Сравнимая цена за единицу: формула
Приведённые к одной строке позиции ещё не значат приведённые к одной цене. Цена в прайсе — это не то, во что вам обойдётся товар. Между ними стоят как минимум шесть поправок, и каждая измерима.
- НДС. Если вы на общей системе, входящий НДС принимается к вычету, поэтому сравнивать нужно цены без НДС. Цена от плательщика НДС делится на единицу плюс ставку — по состоянию на сентябрь 2026 года это 22 %. Цена поставщика на упрощёнке уже сопоставима с ценой без НДС напрямую, и «дешёвый упрощенец» после приведения часто оказывается дороже.
- Единица измерения. Тонны против килограммов, рулоны против квадратных метров, упаковка против штуки. Приводим всё к своей учётной единице, иначе сравниваются разные вещи.
- Кратность упаковки. Если нужно 4 000 метров, а поставщик отгружает барабанами по 305 метров, вы купите 4 270 метров. Излишек — часть цены, если позиция неходовая; если ходовая, он уйдёт в следующий заказ и в расчёт не берётся.
- Доставка. Приводится к единице делением на объём партии. Самовывоз — это тоже деньги: рейс своей машины стоит столько же, сколько наёмный, просто не выставляется счётом.
- Стоимость денег. Предоплата и отсрочка — это кредит в одну или другую сторону. Пересчитывается через вашу стоимость денег в год: цена, умноженная на ставку, умноженная на число дней и делённая на 365.
- Ожидаемый брак и возврат. Считается по фактической истории поставок конкретного поставщика, а не по обещаниям. Как собрать эту историю из своего же учёта, разобрано в материале о рейтинге поставщиков по фактам.
Как это выглядит на одной позиции. Нужно 4 000 метров кабеля ВВГнг-LS 3×2,5. Стоимость денег компании — 24 % годовых: это ставка, по которой компания реально занимает или на которую теряет доход, оставляя деньги в обороте поставщика.
В прайсе поставщик Б выглядит дешевле на 18 % — 68,90 ₽ против 84,00 ₽. После приведения он оказывается дороже на 7,1 %: 75,47 ₽ против 70,48 ₽. На партии в 4 000 метров разница — 19 960 ₽ не в ту сторону, в которую показывал прайс. Это одна позиция из сорока в обычной закупке.
Две вертикальные столбчатые диаграммы рядом, каждая набрана из сегментов снизу вверх. Левый столбец «Поставщик А»: «цена без НДС 68,85» + «доставка 1,63» = итог 70,48 ₽/м. Правый столбец «Поставщик Б»: «цена 68,90» + «излишек кратности 4,65» + «самовывоз 1,60» + «стоимость денег 0,32» = итог 75,47 ₽/м. Над столбцами серые пунктирные метки прайсовых цен: 84,00 и 68,90 со стрелкой и подписью «в прайсе Б дешевле на 18 %». Внизу подпись «на партии 4 000 м разница 19 960 ₽ в пользу А». Ось — рубли за метр, чертёжный стиль, подписи по-русски.
Методику сравнения нескольких предложений целиком — со скидками за объём, гарантией и разной комплектацией — мы вынесли в отдельный материал об автоматическом сравнении коммерческих предложений. Здесь важен один вывод: конвейер прайсов имеет смысл только вместе с формулой сравнимой цены. Без неё вы получите очень аккуратную таблицу неправильных чисел.
Версии прайса и сигнал о подорожании
Прайс — это не справочник, а поток событий. Как только каждая загрузка сохраняется отдельной версией, появляется то, чего при ручной работе не бывает никогда: возможность увидеть движение цен по всей номенклатуре сразу, а не по тем трём позициям, о которых вспомнил закупщик.
- 1Каждая загрузка пишется новой версией с датой, отправителем и исходным файлом. Старые версии не затираются.
- 2Считается разница с предыдущей версией по каждой позиции: цена выросла, упала, позиция исчезла, появилась новая.
- 3Срабатывает порог: рост выше заданного процента по позиции или выше заданной суммы по закупаемому объёму.
- 4Закупщик получает не «пришёл новый прайс», а список из пяти-двадцати строк: что подорожало, на сколько, сколько вы этого берёте в месяц и что есть у других поставщиков.
- 5Решение остаётся человеку: переторговать, переключиться, закупить впрок или согласиться.
Нарисованный абстрактный экран, не скриншот реального продукта. Заголовок «Подорожание выше порога 3 %, поставщик №7, версия от 03.09». Таблица из пяти строк с колонками: «Позиция», «Было», «Стало», «Рост», «Берём в месяц», «Есть дешевле». Значения роста в диапазоне от 3,4 % до 11,2 %, в колонке «Есть дешевле» у двух строк подписи с номерами альтернативных поставщиков. Внизу три кнопки-плашки: «Переторговать», «Переключить», «Согласиться». Сбоку мелкая подпись «25 срабатываний в месяц, 3 минуты на разбор». Чертёжный стиль, подписи по-русски.
Во что это превращается в деньгах. В модельной компании за год «тихо» дорожает примерно 14 % закупочного объёма — это позиции, где поставщик поднял цену на несколько процентов, а закупщик увидел изменение только в счёте. Средний рост по этим позициям — 6,2 %.
Треть — намеренно осторожная оценка. В двух случаях из трёх цена выросла у всего рынка, альтернативы нет, и уведомление даёт не экономию, а понимание: вы хотя бы знаете, что себестоимость поехала, и успеваете поправить свои цены до того, как это увидит бухгалтерия по итогам квартала.
Что реально даёт конвейер: цифры после запуска
Ручная работа не исчезает — она меняет содержание. Вместо приведения файлов закупщик разбирает исключения: новые позиции, сломавшиеся шапки, сработавшие пороги подорожания.
| Что делает закупщик | До конвейера | После конвейера |
|---|---|---|
| Приведение файлов и шапок | 12 часов в месяц | 0 |
| Поиск новых и исчезнувших позиций | 9 часов в месяц | 0 |
| Сопоставление позиций | 12,5 часа в месяц | 125 минут — около 50 новых пар по 2,5 минуты |
| Перенос цен и проверка единиц | 6,5 часа в месяц | 0 |
| Разбор сломавшихся файлов | входит в общее время | 60 минут — 3 файла по 20 минут |
| Разбор сигналов о подорожании | не делается вовсе | 75 минут — 25 срабатываний по 3 минуты |
| Итого | 40 часов | 260 минут, то есть 4,3 часа |
Третья строка требует пояснения, потому что именно её чаще всего раздувают в коммерческих предложениях. Восемь процентов — это доля объёма, по которой в сведённой таблице обнаруживается реально доступная альтернатива: не «где-то дешевле», а тот же товар у поставщика, с которым вы уже работаете, с приемлемым сроком и без потери отсрочки. 4,5 % — средняя разница по этим позициям после приведения к сравнимой цене. Считайте по своей номенклатуре: у дистрибьютора с жёсткой привязкой к вендору эта доля близка к нулю, у торговли расходными материалами доходит до 15 %.
Диаграмма-водопад слева направо. Три положительных столбца: «Снятые часы — 35 700 ₽», «Пойманные подорожания — 22 900 ₽», «Переключение объёма — 28 800 ₽», затем накопленный итог «Эффект — 87 400 ₽», затем отрицательный столбец «Эксплуатация — −22 000 ₽» и финальный «Чистый эффект — 65 400 ₽/мес». Под первым столбцом мелкая подпись «сам по себе, за вычетом эксплуатации, окупает проект только за 35 месяцев». Ось — рубли в месяц, чертёжный стиль, подписи по-русски.
Смета и сроки
Смета ниже — для модельной компании: тридцать поставщиков, шесть форматов, 2 400 закупаемых позиций, учётная система 1С:Управление торговлей. Это середина вилки, а не нижняя граница.
Реалистичная вилка по рынку — 250 000–900 000 ₽. Нижняя граница получается, когда поставщиков меньше десяти, все присылают Excel, а номенклатура уже приведена в порядок. Верхняя — когда прайсов больше сотни, среди них есть сканы, номенклатура ведётся в двух системах одновременно и требуется двусторонний обмен с учётом. Дороже всего обходится не разработка, а беспорядок в справочнике номенклатуры: дубли карточек и позиции без единиц измерения превращают шаг сопоставления в отдельный проект. Про то, какие данные нужно привести в порядок до начала внедрения, у нас есть отдельный разбор.
Окупаемость при таких вводных — 484 000 ₽ разово против 65 400 ₽ чистого эффекта в месяц, то есть 7,4 месяца. Теперь уберите из эффекта пойманные подорожания и переключение объёма. Останется 35 700 ₽ снятых часов против 22 000 ₽ эксплуатации, чистыми 13 700 ₽ в месяц и окупаемость 35 месяцев — то есть не окупается вовсе. Это ровно та причина, по которой проект «давайте просто автоматизируем загрузку прайсов» разочаровывает: автоматизируется не загрузка, а сравнение.
Горизонтальная лента времени на шесть недель с шестью отметками. «Неделя 1: инвентаризация — список 30 поставщиков, форматов и объёмов» → «Неделя 2: приём и разбор — прайсы падают в систему сами» → «Неделя 3: нормализация — единицы, валюта, НДС, кратность» → «Неделя 4: сопоставление — словарь и 456 пар вручную, 19 часов» → «Неделя 5: загрузка в 1С:УТ и журнал версий» → «Неделя 6: пороги подорожания и опытная эксплуатация на живом потоке». Под каждой отметкой подпись, что заказчик принимает на этом шаге. Чертёжный стиль, подписи по-русски.
Подставьте свою стоимость проекта и эксплуатации и свою оценку месячного эффекта по методике выше: снятые часы × полная ставка, плюс пойманные подорожания, плюс переключение объёма. Стартовые значения — модельные: конвейер 484 000 ₽ и 22 000 ₽ в месяц на поддержку и обработку.
Сколько стоит ручная работа в вашем процессе
Расчёт учитывает только время сотрудников. Возвращённые продажи, снятые ошибки и штрафы, скорость реакции — сверх этой модели. На диагностике считаем по вашим фактическим цифрам.
Когда конвейер прайсов не нужен
Проект окупается не всегда, и это стоит проверить до подписания договора. Есть пять ситуаций, в которых мы сами советуем не начинать.
- Меньше восьми поставщиков и один формат. Если все присылают Excel с одинаковой шапкой, задача решается регламентом и парой формул в самой же таблице. Конвейер за 484 000 ₽ здесь заменяется договорённостью на полстраницы.
- Годовой объём закупки ниже 25 000 000 ₽. Эффект от пойманных подорожаний и переключения объёма пропорционален обороту: 51 700 ₽ в месяц на объёме 96 000 000 ₽ превращаются в 13 500 ₽ на объёме 25 000 000 ₽. Вместе со снятыми часами чистого эффекта остаётся 27 200 ₽ в месяц, и окупаемость уходит почти к полутора годам.
- Номенклатура не пересекается. Если у каждого поставщика уникальный товар и сравнивать не с чем, сопоставление теряет смысл — остаётся только загрузка цен, а это в разы более дешёвая задача.
- Справочник номенклатуры в беспорядке. Дубли карточек, товары без единиц измерения, цены внутри названия. Сопоставлять поток с таким справочником — значит закрепить беспорядок навсегда. Сначала чистка справочника, потом конвейер.
- Цены и так фиксируются договором на год. У производств с рамочными контрактами прайс меняется дважды в год по согласованию — весь сюжет с версиями и порогами просто не возникает.
И честная оговорка про 81 %. Эта доля достигается не на первой неделе, а на втором-третьем месяце, когда словарь соответствий наполнился. В первый месяц она держится в районе 55–65 %, и это нормально: подрядчик, который обещает целевой показатель со дня запуска, либо не работал с реальными прайсами, либо считает долю не по строкам, а по файлам. Уточняйте, что именно измеряется, — формулировка «точность 95 %» без указания базы не значит ничего.
Автоматизируется не загрузка прайса, а способность сравнить. Файл, приведённый к таблице неправильных чисел, — это аккуратно оформленный убыток.
