Отгрузка по ЭДО: подписи и маршрут документа давно живут в кабинете оператора, а товарная часть УПД всё равно собирается руками из прайса. В накладной 300 позиций — и по каждой нужны наименование, код, единица, цена без НДС и ставка, причём в точности так, как их ждёт покупатель. Одна строка с «другим» названием — и документ уходит на уточнение, оплата сдвигается. Разберём, какие поля УПД берутся из товарных данных, как держать их в актуальном состоянии и как привести прайс к нужному набору колонок. Сразу оговорка: речь о подготовке данных, а не о юридической форме документа — статусы, сроки и реквизиты оставляем бухгалтеру.
Что в товарной части УПД берётся из прайса
УПД состоит из реквизитов сторон и товарной таблицы. Реквизиты приходят из договора и карточки контрагента, а вот товарные строки почти целиком — справочные данные из вашего каталога:
- Наименование товара — то, под которым позиция проходит по договору и спецификациям. Самое конфликтное поле: о нём отдельный разговор ниже.
- Код товара — ваш артикул или код из каталога. По нему покупатель сопоставляет строку со своей учётной системой.
- Единица измерения — штуки, упаковки, килограммы. Написание должно совпадать с тем, что ждёт принимающая сторона.
- Цена за единицу без НДС — оптовая цена из прайса, но в виде «без налога».
- Налоговая ставка — как правило, одна на весь ассортимент, поэтому её удобно держать отдельной колонкой-константой.
А вот количество и суммы из прайса не берутся: количество — это факт конкретной отгрузки, суммы считает оператор или ваша учётная система. Задача прайса — отдать справочную часть строки без ошибок.
| Поле УПД | Источник |
|---|---|
| Наименование | Колонка «Название» эталонного файла |
| Код товара | Артикул из прайса |
| Единица измерения | Колонка единиц, приведённая к эталону |
| Цена без НДС | Цена прайса, пересчитанная при необходимости |
| Ставка НДС | Константа или колонка ставки |
| Количество | Не из прайса — факт отгрузки |
Эталонный файл: один источник правды
Чтобы не собирать товарную часть заново под каждую отгрузку, заведите мастер-файл — плоскую таблицу с ровно теми колонками, которые уходят в УПД: код, договорное наименование, единица, цена без НДС, ставка. Дальше три правила.
Наименование — договорное и неизменное. Если в спецификации товар проходит как «Кабель силовой ВВГнг(А)-LS 3×2,5», то именно так он пишется в эталоне от отгрузки к отгрузке, даже если поставщик в своём прайсе называет его «ВВГ 3х2.5». Покупатель сверяет строку с договором, а не с каталогом производителя.
Цены обновляются из новых прайсов, а не правкой старых документов. Пришёл новый прайс — пересчитали колонку в эталоне, выгрузили свежий файл. Так в УПД никогда не уедет прошлогодняя цена. Как устроен регулярный пересчёт колонок, мы разбирали в статье про НДС в прайсе — там же формулы перехода между «с налогом» и «без налога».
Единицы и ставка контролируются списком. В эталоне не должно быть «шт.», «ШТ» и «уп.» вперемешку — только те написания, которые принимает сторона покупателя. Про зоопарк единиц и его приведение к одному виду есть отдельный материал о единицах измерения в прайсе.

Приводим прайс к набору колонок для ЭДО
Эталон есть — теперь из него нужен файл под конкретного оператора: у каждого свой шаблон загрузки товарных строк. Конвертер собирает такой файл за четыре шага:
- «Структура». Указываете, с какой строки начинается таблица; многоэтажная шапка схлопывается, строки-разделы и «Итого» удаляются — в УПД они не нужны.
- «Колонки». Оставляете только нужные пять-шесть колонок и переименовываете их под шаблон оператора. Действия доводят значения: «Заменить текст» и «Убрать пробелы» превращают «1 200 руб.» в 1200; если цены хранятся с НДС, действие «Умножить» с коэффициентом 0,833333 и «Округлить» до двух знаков дают цену без налога; колонка ставки добавляется константой — одно значение на весь столбец. Если договорное наименование собирается из частей, его склеивают по шаблону вроде
{Бренд} {Наименование}. - «Фильтры». Оставляете позиции конкретной отгрузки: по списку кодов или условие вроде «остаток больше 0», если УПД закрывает складскую партию.
- «Экспорт». На выходе XLSX со значениями, без формул, или CSV в UTF-8 с точкой с запятой — проверьте в кабинете оператора, какой формат принимает загрузка.

На каждом шаге видно живое превью: расхождение с эталоном заметно до скачивания, а не после вопроса от покупателя. Если отгрузки регулярные, настройка сохраняется шаблоном после регистрации — новый прайс обработается в один клик. Как выглядит загрузка товарных строк на стороне конкретного оператора, разобрано в статье про выгрузку товаров в Диадок. Собрать файл можно прямо сейчас: конвертер работает бесплатно на файлах до 2 МБ и без регистрации.

Типовые расхождения между прайсом и УПД
Наименование в УПД не совпадает с прайсом. Главная и самая дорогая ошибка: в документ ушло поставщиково название, а покупатель ищет его по договорному. При сверке строка «не находится», документ зависает. Лечится только эталонным файлом: наименование пишется один раз, в договорном виде, и дальше кочует из отгрузки в отгрузку без ручного набора.
Цена с НДС вместо цены без НДС. В прайсе — розничные или дилерские цены «с налогом», в УПД нужна цена без него. Если перенести как есть, суммы в документе завысятся на ставку налога, и это вскроется при первой же сверке. Пересчёт — один коэффициент на всю колонку плюс округление до копеек: в документах копейки обязательны, в отличие от витринных цен.
Единица не та или не так написана. Прайс ведётся в упаковках, отгрузка идёт в штуках — цена и количество должны быть пересчитаны парой: поделили цену на фасовку — умножьте количество на неё же. И наоборот. Отдельный случай — написание: «шт.» с точкой для чужой учётной системы другое значение, строка не сопоставится.
Лишние строки. Разделы каталога, пустые строки, «Итого» — в прайсе это навигация, в файле для ЭДО это чужие позиции, которые оператор попытается прочитать как товар. Убираются фильтрами за секунду, но только если про них помнить.
Частые вопросы
Количество в УПД тоже можно взять из прайса?
Нет. Количество — это факт конкретной отгрузки, а не справочные данные: сегодня уехало 50 штук, завтра 12. Из прайса в УПД переезжают только стабильные поля: код, наименование, единица, цена без НДС и ставка. Количество подставляется по накладной.
В каком виде хранить цены в эталонном файле — с НДС или без?
Удобнее без НДС: именно этот вид нужен в товарной части УПД, и колонка уходит в документ без пересчёта. Цену с налогом для дилерских прайсов и витрин всегда можно получить обратным умножением. Если ставка у ассортимента одна, эталон без НДС избавляет от пересчёта при каждой отгрузке.
У разных позиций разные ставки НДС — как быть с константой?
Константа не подойдёт: держите ставку отдельной колонкой в эталонном файле и выгружайте её как есть. Если смешанный файл всё же нужно пересчитать, работайте группами через фильтры: отобрали строки одной ставки, обработали, затем второй.
Оператор просит CSV, а эталон у меня в XLSX?
Это вопрос одного клика: на шаге «Экспорт» выберите CSV — файл сохранится в UTF-8 с разделителем «точка с запятой». Точные требования к формату и набору полей проверьте в актуальном шаблоне загрузки в кабинете вашего оператора: они отличаются.