Автоматизация закупок в 1С: выгрузка номенклатуры и цен
Как выгрузить номенклатуру, характеристики и цены из 1С для тендерной работы: поля, способы обмена, регламент и расчёт экономики лота.

ИИ-ассистент для тендеров под ваши задачи — обсудим на бесплатной консультации
У большинства поставщиков вся товарная правда живёт в 1С, а тендерный отдел работает с копией прайса в Excel двухмесячной давности. Отсюда и цена, посчитанная по устаревшему закупу, и заявки на позиции, которых нет на складе, и часы, которые уходят на ручную сверку характеристик. Ниже практическая схема: что именно выгружать из 1С, какими способами, с какой периодичностью и как считать экономику лота на этих данных.
Что должно уезжать из 1С в тендерный контур
Тендерная задача отличается от торговой. Для лота нужно ответить на четыре вопроса: подходит ли товар по характеристикам, есть ли он физически, по какой цене я готов встать и какой будет маржа после всех издержек. Отсюда минимальный набор полей.
| Блок | Поля | Откуда в 1С |
|---|---|---|
| Идентификация | артикул, код, наименование, полное наименование | справочник «Номенклатура» |
| Классификация | ОКПД-2, вид номенклатуры, группа, производитель | реквизиты и дополнительные реквизиты номенклатуры |
| Характеристики | атомарные пары «параметр: значение» с единицей | характеристики номенклатуры, дополнительные сведения |
| Упаковка и единицы | базовая единица, коэффициент упаковки, кратность | единицы измерения номенклатуры |
| Цены | закупочная, плановая себестоимость, минимальная отпускная | регистр сведений «Цены номенклатуры», виды цен |
| Наличие | остаток по складам, резерв, товар в пути | регистры остатков товаров |
| Условия | срок поставки, минимальная партия, НДС | реквизиты номенклатуры и договоров поставщиков |
Названия объектов приведены для «Управления торговлей 11» и родственных конфигураций. В «Бухгалтерии» характеристики и виды цен устроены беднее, часть данных придётся хранить в дополнительных реквизитах или тянуть из внешнего источника.
Ключевое требование к выгрузке одно: характеристики должны быть атомарными. Строка вида «Кабель ВВГнг-LS 3х2,5 660/1000В ГОСТ 31996-2012, барабан 200 м» для автоматической сверки бесполезна: система не знает, где здесь сечение, где напряжение, а где длина отреза. Та же информация в виде отдельных пар («число жил: 3», «сечение: 2,5 мм²», «напряжение: 660/1000 В», «длина в бухте: 200 м») сверяется с требованиями ТЗ построчно.
Три способа выгрузки и когда какой брать
| Способ | Трудоёмкость запуска | Актуальность данных | Кому подходит |
|---|---|---|---|
| Выгрузка в Excel вручную | часы | на момент выгрузки | до 500 позиций, редкие изменения цен |
| CommerceML (обмен с сайтом) | 1–2 дня работы программиста | по расписанию, обычно раз в сутки | 500–20 000 позиций, стабильная структура |
| OData или собственный HTTP-сервис | 2–5 дней работы программиста | по запросу, вплоть до реального времени | большой прайс, частые изменения цен и остатков |
Excel
Самый быстрый старт: список номенклатуры с нужными колонками выводится штатными средствами и сохраняется в файл. Годится, чтобы за день собрать первую версию каталога и понять, каких данных не хватает. Проблема одна и известная: через месяц файл расходится с базой, и никто не помнит, какая версия актуальна.
Если остаётесь на этом варианте, заведите регламент: выгрузка по расписанию, имя файла с датой, одно место хранения. Ручная правка выгруженного файла запрещена, все изменения вносятся в 1С.
CommerceML
Штатный механизм обмена с сайтом формирует два файла: import.xml с товарами, группами и свойствами и offers.xml с ценами, остатками и единицами. Формат покрывает почти весь нужный набор полей и умеет отдавать свойства товара отдельными элементами, а не одной строкой описания.
Плюс подхода в том, что механизм уже настроен у многих компаний для интернет-магазина. Тендерный контур подключается к той же выгрузке, дополнительной нагрузки на базу не создаёт.
OData и HTTP-сервисы
Публикация базы на веб-сервере с включённым стандартным интерфейсом OData даёт доступ к справочникам и регистрам по HTTP. Номенклатура читается как Catalog_Номенклатура, цены как срез последних записей регистра цен, остатки как остатки регистра накопления. Поддерживаются отбор и выбор полей, поэтому забирать можно только изменившееся.
Собственный HTTP-сервис сложнее в разработке, но лучше по результату: вы сами определяете структуру ответа и сразу отдаёте готовую карточку товара с характеристиками, ценой и остатком, без склейки трёх запросов на стороне получателя.
Для любого из этих вариантов закройте доступ отдельным пользователем базы с правами только на чтение нужных объектов и ограничьте адреса, с которых разрешён запрос.
Цены: какие именно выгружать
Одна колонка «цена» в тендерной выгрузке бесполезна. Нужны минимум три вида цен, и лучше завести их в 1С отдельными видами:
- Закуп. Последняя фактическая цена поставщика с датой. Без даты цена не работает: закуп трёхмесячной давности в расчёте лота даёт ложную маржу.
- Плановая себестоимость на складе. Закуп плюс входящая логистика и таможня, если она есть.
- Минимальная отпускная. Цена, ниже которой вы не опускаетесь на торгах. Это не расчёт, а управленческое решение, но храниться оно должно в системе, а не в голове у руководителя отдела.
Отдельно выгружайте ставку НДС по позиции и признак того, что товар входит в реестр отечественной продукции, если он там есть. Оба поля влияют на допуск и на итоговую цену заявки, а восстанавливать их вручную по каждому лоту дорого.
Как посчитать экономику лота на выгруженных данных
Когда номенклатура, цены и остатки лежат в одном месте, расчёт лота превращается в арифметику.
Себестоимость лота = Σ (Плановая себестоимость_i × Количество_i)
Издержки лота = Доставка + Обеспечение + Плата ЭТП + Работа отдела
Предельная цена = (Себестоимость + Издержки) / (1 - Целевая маржа)
Максимальное падение = 1 - Предельная цена / НМЦК
Пример на лоте из трёх позиций с НМЦК 1 200 000 ₽. Себестоимость по выгрузке 890 000 ₽, доставка 35 000 ₽, стоимость замороженного обеспечения и платы площадке около 12 000 ₽, работа отдела 5 часов по 800 ₽. Итого 941 000 ₽. При целевой марже 10% предельная цена 1 045 555 ₽, то есть падать можно максимум на 12,9% от НМЦК.
Эта цифра нужна до начала торгов и должна считаться за минуты, а не за полдня. Если данные выгружаются автоматически, расчёт по всему списку интересных лотов делается разом и превращается в короткий список тех, где падение действительно возможно.
Чек-лист качества выгрузки
- У каждой позиции есть уникальный артикул, и он не меняется при переименовании товара.
- Наименование не содержит характеристик, которые должны лежать отдельными полями.
- Единицы измерения приведены к одной системе, коэффициенты упаковки заполнены.
- Числовые характеристики выгружаются числом и единицей отдельно, а не строкой «2,5 мм²».
- Диапазоны выгружаются как минимум и максимум, а не текстом «от 1,5 до 2».
- Позиции, снятые с продажи, помечены и не попадают в выгрузку.
- Дата актуальности цены присутствует в каждой строке.
- Остаток отделён от резерва и от товара в пути.
- Размерные линейки выгружаются как отдельные позиции с общими характеристиками семейства, а не одной строкой «размеры от S до XXL».
Последний пункт даёт самый заметный эффект на СИЗ, спецодежде, обуви, метизах и трубах. Если размерный ряд свёрнут в одну строку, автоматическая сверка с ТЗ либо пропустит подходящий лот, либо отметит как подходящий тот, где нужного размера у вас нет.
Куда это отдавать дальше
Выгрузка сама по себе ничего не решает. Ценность появляется, когда данные попадают в контур, который сопоставляет их с требованиями закупок. В TenderScan прайс загружается один раз и разбирается на атомарные характеристики каждой позиции: числа с единицами, диапазоны, качественные значения, размерные варианты. Дальше система сама сопоставляет позиции каталога с требованиями ТЗ по каждому лоту и показывает, где расхождение критично. Чем чище выгрузка из 1С, тем меньше ручных правок на этом шаге.
Регламент, без которого всё разъедется
- Выгрузка запускается регламентным заданием, а не человеком.
- Периодичность: номенклатура и характеристики раз в сутки, цены и остатки чаще, вплоть до часа.
- Ошибки выгрузки пишутся в журнал и уходят уведомлением ответственному.
- Изменения структуры справочников согласуются с тем, кто отвечает за тендерный контур.
- Раз в квартал проводится сверка: случайные 20 позиций сравниваются вручную с карточками в 1С.
Часто задаваемые вопросы
Обязательно ли программировать, чтобы выгрузить прайс из 1С?
Нет. Первая версия делается штатной выгрузкой списка номенклатуры в файл. Программист нужен, когда прайс большой, цены меняются часто и требуется автоматическое обновление по расписанию.
Что делать, если характеристики в 1С хранятся одной строкой описания?
Разбирать их придётся в любом случае: либо один раз в 1С через дополнительные реквизиты, либо на приёмной стороне. Первый вариант дороже на старте и дешевле в эксплуатации, потому что данные исправляются в источнике.
Как часто обновлять цены для тендерной работы?
Ориентируйтесь на скорость изменения закупа. При стабильных ценах достаточно суточного обновления. При волатильных категориях, где закуп меняется еженедельно, обновление раз в сутки уже даёт риск встать в торгах по устаревшей себестоимости.
Нужно ли выгружать остатки, если поставка идёт под заказ?
Да, но вместе со сроком поставки и минимальной партией. Без этих полей расчёт срока исполнения контракта делается на глаз, а именно из-за сроков чаще всего прилетают пени.
Что сделать на этой неделе
Возьмите последние десять лотов, по которым вы готовили заявку, и посчитайте, сколько времени ушло на поиск характеристик, цен и остатков вручную. Умножьте на месячный поток заявок. Полученные часы и есть бюджет, в который должна уложиться настройка выгрузки. Начните с Excel-версии и списка недостающих полей: он покажет, что чинить в самой 1С, до того как вы закажете интеграцию.
ИИ-ассистент под ваши тендеры
Бесплатный аудит и консультация: разберём ваши тендерные процессы, найдём узкие места и что можно автоматизировать, а дальше — готовый ИИ-ассистент или разработка под вас. Без обязательств.