Выгрузка остатков из 1С — одна из самых востребованных операций при работе с торговой системой. Без корректных данных о наличии товаров невозможно синхронизировать склад с сайтом, маркетплейсами или партнерами. Однако даже опытные пользователи сталкиваются с проблемами: не те форматы файлов, ошибки в структуре данных или несоответствие остатков реальному положению дел.
В этой статье мы разберем 5 проверенных способов выгрузки остатков из разных конфигураций 1С: от стандартных отчетов до программного обмена через COM-соединение. Особое внимание уделим типичным ошибкам, которые приводят к расхождениям в данных, и покажем, как их избежать. Если вы работаете с 1С:Управление торговлей 11, ERP или Розницей — здесь найдете актуальные инструкции с учетом последних обновлений платформы.
Для удобства мы структурировали материал по уровням сложности: от ручных методов для начинающих до автоматизированных решений для программистов. В конце статьи — уникальная таблица соответствия форматов выгрузки требованиям популярных маркетплейсов (Ozon, Wildberries, Яндекс Маркет), которую вы не найдете в стандартной документации 1С.
1. Стандартные отчеты 1С: быстрый способ для ручной выгрузки
Самый простой метод — использование встроенных отчетов. Он подходит для разовых выгрузок небольших номенклатур (до 500 позиций) и не требует навыков программирования. Основной инструмент — отчет "Ведомость по товарам на складах", который есть во всех торговых конфигурациях.
Чтобы сформировать выгрузку:
- 📊 Перейдите в раздел
Отчеты → Товары → Ведомость по товарам на складах - 🔍 В настройках отчета выберите нужные склады и период (обычно текущая дата)
- 📥 Нажмите
Ещё → Вывести в ExcelилиСохранить как...для экспорта в CSV - 🔄 При необходимости отсортируйте данные по артикулам или категориям
Главный недостаток метода — отсутствие гибкости. Вы получите все колонки из отчета, включая ненужные для выгрузки (например, себестоимость или последнюю цену закупки). Для маркетплейсов потребуется дополнительная обработка файла.
Если вам нужны только артикул, название и остаток — перед выгрузкой настройте видимость колонок в отчете через кнопку "Настройки → Показать/скрыть колонки".
⚠️ Внимание: В конфигурациях 1С:Розница 2.3 и старше отчет"Ведомость по товарам"может не учитывать резервы под заказы. Для точных остатков используйте отчет"Остатки товаров с учетом резервов".
2. Выгрузка через обработку "Универсальный обмен данными"
Для регулярного обмена данными 1С предлагает стандартную обработку "Универсальный обмен данными" (доступна в УТ 11, ERP и КА 2). Она позволяет настроить выгрузку остатков в форматах XML, CSV или DBF с гибкими настройками структуры файла.
Пошаговая инструкция:
- Откройте обработку через
Файл → Открыть → [Папка с шаблонами] → UniversalDataExchange.epf - Выберите тип обмена
"Выгрузка данных"и укажите объект"Товары" - В настройках отбора задайте нужные склады и номенклатурные группы
- На вкладке
"Формат"выберитеCSVи настройте разделители (обычно;) - Укажите путь для сохранения файла и запустите выгрузку
Преимущество этого метода — возможность сохранять настройки шаблона для повторного использования. Однако для работы с обработкой требуются права администратора базы.
Сделать резервную копию базы|Проверить права доступа|Уточнить требования к формату файла у получателя|Протестировать выгрузку на тестовой базе
-->
| Формат файла | Плюсы | Минусы | Рекомендации |
|---|---|---|---|
CSV |
Универсальный, поддерживается всеми системами | Нет структуры, проблемы с кодировкой | Используйте UTF-8, экранируйте разделители |
XML |
Сохраняет иерархию данных | Большой размер файла, сложно редактировать | Подходит для интеграции с 1С других организаций |
XLSX |
Удобно для ручной обработки | Ограничение на 1 млн строк | Используйте для небольших номенклатур |
JSON |
Идеален для API-интеграций | Не поддерживается стандартными обработками | Требует доработки через 1С:Скрипт |
3. Автоматическая выгрузка через регламентные задания
Для регулярной синхронизации (например, ежедневной выгрузки остатков на сайт) удобно использовать регламентные задания. Этот метод исключает человеческий фактор и гарантирует актуальность данных.
Настройка регламентного задания:
- 🕒 Перейдите в
Администрирование → Поддержка и обслуживание → Регламентные задания - 🆕 Создайте новое задание типа
"Выгрузка данных" - 📁 Укажите обработку выгрузки (можно использовать стандартную или кастомную)
- ⏰ Настройте расписание (например, каждый день в 23:00)
- 📤 Укажите путь для сохранения файла (сетевая папка или FTP)
Важный нюанс: при настройке регламентного задания проверьте, чтобы в указанное время не выполнялись другие ресурсоемкие операции (например, закрытие месяца). В противном случае выгрузка может прерваться.
Раз в день|Раз в неделю|Вручную по запросу|Не выгружаю остатки|Использую автоматическую синхронизацию-->
⚠️ Внимание: В облачных версиях 1С (1С:Фреш) регламентные задания имеют ограничения по времени выполнения — не более 30 минут для одной операции. Для больших баз может потребоваться разбивка выгрузки на части.
4. Программная выгрузка через COM-соединение (для разработчиков)
Для сложных интеграций (например, с Bitrix24, MoySklad или кастомными CRM) используется программная выгрузка через COM-соединение. Этот метод требует знания 1С:Скрипт и основ работы с API.
Пример кода для выгрузки остатков в JSON:
Процедура ВыгрузитьОстатки()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.Наименование КАК Наименование,
| ОстаткиТоваров.КоличествоОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены
| ПО ОстаткиТоваров.Номенклатура = Цены.Номенклатура
|ГДЕ
| ОстаткиТоваров.Склад = &Склад";
Запрос.УстановитьПараметр("Склад", Склад);
Результат = Запрос.Выполнить();
МассивДанных = Новый Массив;
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Элемент = Новый Структура;
Элемент.Вставить("артикул", Выборка.Артикул);
Элемент.Вставить("наименование", Выборка.Наименование);
Элемент.Вставить("остаток", Выборка.Остаток);
МассивДанных.Добавить(Элемент);
КонецЦикла;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписьJSON.Записать(МассивДанных);
ТекстJSON = ЗаписьJSON.Закрыть();
ЗаписатьФайл("C:\temp\остатки.json", ТекстJSON);
КонецПроцедуры
Этот код формирует JSON-файл с остатками для указанного склада. Для работы с API маркетплейсов потребуется добавить авторизацию и обработку ответа сервера.
Как обработать ошибки при COM-выгрузке?
При программной выгрузке частые ошибки связаны с:
1. Превышением лимита памяти — разбивайте большие выборки на части по 1000 записей
2. Блокировками базы — используйте транзакции с коротким временем выполнения
3. Несоответствием типов данных — явное приведение типов (например, Число(Остаток)) решает 80% проблем
4. Проблемами с кодировкой — всегда указывайте UTF-8 при работе с JSON/XML
5. Выгрузка остатков для маркетплейсов: особенности форматов
Каждый маркетплейс предъявляет свои требования к формату выгрузки остатков. Например, Ozon требует обязательные поля offer_id и stock, а Wildberries — barcode и quantity. Ниже приведена таблица соответствия, которая поможет избежать ошибок при загрузке.
| Маркетплейс | Требуемый формат | Обязательные поля | Особенности |
|---|---|---|---|
| Ozon | CSV или XLSX | offer_id, stock, price |
Разделитель — точка с запятой; десятичный разделитель — точка |
| Wildberries | XLSX | barcode, quantity, warehouse |
Остаток должен быть целым числом |
| Яндекс Маркет | XML (YML) | id, available, price |
Требуется валидация через сервис Яндекса |
| М.Видео | CSV | vendor_code, stock_qty |
Ограничение 5000 строк на файл |
Для упрощения работы с маркетплейсами рекомендуем использовать специализированные обработки от партнеров 1С, такие как "1С-Маркетплейс" или "Атол: Интеграция с маркетплейсами". Они автоматически преобразуют данные в нужный формат и обрабатывают ответы серверов.
Перед первой выгрузкой всегда проверяйте требования маркетплейса к формату файла — они могут меняться ежемесячно. Например, Ozon с 2026 года требует обязательное поле warehouse_id для мультискладских продавцов.
6. Типичные ошибки и способы их устранения
Даже при правильной настройке выгрузки пользователи сталкиваются с проблемами. Вот наиболее распространенные ошибки и их решения:
- 🔴 Расхождения в остатках: Проверьте, учитывает ли отчет резервы под заказы. В 1С:ERP используйте отчет
"Остатки товаров с учетом резервов" - 🔴 Пустой файл выгрузки: Убедитесь, что в настройках отбора указаны правильные склады и период. В 1С:Розница по умолчанию может стоять фильтр по текущему магазину
- 🔴 Ошибка кодировки: При экспорте в CSV всегда выбирайте кодировку
UTF-8. В Windows по умолчанию используетсяWindows-1251, что приводит к "кракозябрам" - 🔴 Долгая выгрузка: Для больших баз (более 100к позиций) используйте выгрузку по частям или настройте индексы на таблице остатков
Если ошибка повторяется — проверьте логи обмена в журнале регистрации (Администрирование → Поддержка и обслуживание → Журнал регистрации). Часто там содержится точная причина сбоя.
⚠️ Внимание: В конфигурациях на управляемых формах (начиная с 1С:Предприятие 8.3.10) при программной выгрузке может возникать ошибка "Недостаточно памяти". Решение — увеличьте параметр/MaxMemoryв файле запуска 1С (значение не менее 2048).
7. Альтернативные способы: обмен через EDI и API
Для крупных компаний с высокой частотой обновления остатков (например, сетевых ритейлеров) ручные методы выгрузки не подходят. В таких случаях используют:
- 📡 EDI-обмен: Автоматизированный обмен через операторов электронного документооборота (например, 1С-ЭДО или Диадок). Поддерживает форматы
EDIFACTиXML - 🔌 Прямое API-взаимодействие: Интеграция через REST API маркетплейсов. Требует разработки промежуточного сервиса для преобразования данных
- ☁️ Облачные коннекторы: Сервисы вроде 1С:Link или Atol Online, которые синхронизируют данные в реальном времени
Стоимость таких решений начинается от 10 000 рублей в месяц, но они окупаются за счет экономии времени и снижения ошибок. Например, EDI-обмен с Озон позволяет обновлять остатки каждые 15 минут без ручного участия.
FAQ: Частые вопросы по выгрузке остатков из 1С
Можно ли выгрузить остатки только по определенной группе товаров?
Да, во всех стандартных отчетах и обработках выгрузки есть возможность отбора по номенклатурным группам. В отчете "Ведомость по товарам" используйте фильтр "Группа номенклатуры". В программной выгрузке добавьте условие в запрос:
ГДЕ Номенклатура.Родитель = &ГруппаНоменклатуры
Почему в выгрузке не показываются товары с нулевым остатком?
Это стандартное поведение большинства отчетов 1С. Чтобы включить нулевые остатки:
- В отчете
"Ведомость по товарам"снимите галочку"Только ненулевые остатки"в настройках - В программной выгрузке не используйте условие
КоличествоОстаток > 0
Исключение — выгрузка для Wildberries, где нулевые остатки передавать не рекомендуется (они автоматически скрывают такие товары из продажи).
Как выгрузить остатки с учетом транзитных товаров?
Транзитные товары (находящиеся в пути между складами) не отражаются в стандартных отчетах по остаткам. Для их учета:
- Используйте отчет
"Остатки товаров в пути"(доступен в 1С:ERP и УТ 11) - Объедините данные с основными остатками через
ОБЪЕДИНИТЬв запросе - В 1С:Розница транзит учитывается автоматически при включенной настройке
"Учитывать товары в пути"в параметрах учета
Можно ли настроить выгрузку остатков в Google Sheets?
Да, для этого есть два способа:
- Через CSV: Выгрузите остатки в CSV, затем импортируйте в Google Sheets через
Файл → Импорт - Через API: Используйте Google Apps Script с подключением к 1С через
HTTP-сервис. Пример скрипта:function importFrom1C() {var url = "http://ваш-сервер/hs/exchange/остатки";
var response = UrlFetchApp.fetch(url);
var data = JSON.parse(response.getContentText());
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1, 1, data.length, 3).setValues(
data.map(item => [item.артикул, item.наименование, item.остаток])
);
}
Для автоматического обновления настройте триггер в Google Sheets (например, раз в час).
Как проверить, что выгруженные остатки совпадают с данными в 1С?
Для контроля точности выгрузки:
- Сравните количество строк в выгруженном файле с количеством позиций в отчете
"Ведомость по товарам"(должно совпадать) - Проверьте 5-10 случайных позиций вручную (артикул → остаток)
- Используйте обработку
"Сравнение данных"из 1С:ИТС для автоматического сопоставления - Для маркетплейсов сверьте данные в личном кабинете через 10-15 минут после выгрузки (учитывайте задержки обработки)
Если находите расхождения — проверьте настройки отбора в выгрузке (возможно, исключены некоторые склады или группы номенклатуры).