Выгрузка данных из 1С:Предприятие — критически важный процесс для бизнеса, который связывает учетную систему с внешними сервисами: интернет-магазинами, CRM, маркетплейсами (Ozon, Wildberries, Яндекс Маркет) или бухгалтерскими программами. Неправильно настроенная выгрузка приводит к дублям товаров, ошибкам в остатках, расхождениям в ценах и даже блокировке аккаунтов на торговых площадках. В этой статье разберем, как гибко настроить выгрузку под конкретные задачи — от изменения форматов файлов до создания сложных правил трансформации данных.

Особенность в том, что универсального решения для выгрузки нет: для УТ 11 и КА 2.4 используются разные механизмы, а обмен с МойСклад или Bitrix24 требует отдельных доработок. Мы рассмотрим стандартные инструменты платформы (включая Обмен данными XML и Универсальный формат обмена), а также варианты с внешними обработками и REST API для автоматизации. Если вы ранее сталкивались с ошибками типа "Не найден элемент справочника" или "Ошибка контрольной суммы" — здесь найдете причины и способы их устранения.

Важно: статья ориентирована на пользователей с правами "Администратор" или "Полный доступ" в . Для изменений в конфигурации (например, доработки правил обмена) могут потребоваться навыки 1С-программирования или помощь специалиста.

1. Базовые настройки выгрузки: где искать и что можно изменить

Первый шаг — определить, какой механизм выгрузки используется в вашей базе. В большинстве типовых конфигураций (Управление торговлей 11, Комплексная автоматизация 2.4, ERP 2.5) выгрузка настраивается через:

  • 📁 Справочники → Обмен данными (для универсальных форматов)
  • 🔄 Администрирование → Обмен данными с сайтом/CRM (для специализированных обменов)
  • 📥 Сервис → Обмен данными с внешними системами (для XML/JSON)

Если в меню нет нужного пункта, проверьте, подключен ли дополнительный модуль обмена (например, "1С-Битрикс: Управление сайтом" или "Интеграция с Маркетплейсами"). В некоторых случаях выгрузка настраивается прямо в обработках — их можно найти через Файл → Открыть → Обработки.

Основные параметры, которые можно изменить без программирования:

Параметр Где менять Возможные значения
Формат файла Настройки обмена → Формат данных XML, JSON, CSV, XLS, CommerceML
Кодировка Дополнительные параметры выгрузки UTF-8, Windows-1251, KOI8-R
Глубина выгрузки Правила обмена → Уровень детализации Только изменения, Полная выгрузка, По расписанию
Разделитель CSV Формат CSV → Параметры Запятая, Точка с запятой, Табуляция
⚠️ Внимание: При изменении формата выгрузки с XML на JSON проверьте, поддерживает ли внешняя система новый формат. Например, МойСклад работает с JSON, а 1С-Битриксolder версий может требовать XML.
📊 Какой формат выгрузки вы используете чаще?
XML
JSON
CSV
Excel
Другой

2. Изменение структуры выгружаемых данных

Частая проблема: внешняя система требует данные в одном виде, а выгружает их в другом. Например, Ozon ожидает поле "barcode", а в вашей базе штрихкоды хранятся в реквизите "АртикулПоставщика". Решается это через правила обмена или XDTO-пакеты.

Способы трансформации данных:

  • 🔧 Стандартные правила обмена (для типовых конфигураций): позволяют переименовать поля, добавить префиксы, преобразовать типы данных. Настраиваются в Обмен данными → Правила обмена.
  • 📝 XDTO-пакеты (для сложных преобразований): используются, если нужно изменить структуру XML/JSON на уровне схемы. Требует знаний XSD.
  • 🤖 Внешние обработки: например, "ВыгрузкаУниверсальная" или "Обмен с Excel" от 1С-Рарус. Позволяют гибко настраивать вывод данных без изменения конфигурации.

Пример изменения структуры через правила обмена:

  1. Откройте Обмен данными → Правила обмена → [Ваше правило].
  2. В разделе "Сопоставление объектов" найдите нужный справочник (например, "Номенклатура").
  3. Добавьте новое поле для выгрузки, укажите источник (например, реквизит "Артикул") и целевое имя (например, "vendorCode").
  4. Сохраните правило и выполните тестовую выгрузку.
Что делать, если поле не выгружается?

Если поле отсутствует в выгружаемом файле, проверьте:

1. Есть ли оно в правилах обмена (возможно, отключено флажком "Выгружать").

2. Заполнено ли поле в карточке товара/документа.

3. Нет ли фильтров по группам номенклатуры или складам в настройках выгрузки.

4. Поддерживает ли внешняя система такое поле (например, Wildberries игнорирует некоторые реквизиты).

3. Фильтрация данных: как выгружать только нужное

По умолчанию выгружает все данные из справочников, что не всегда удобно. Например, для Яндекс Маркета нужны только товары с остатком > 0, а для CRM — только активные клиенты. Фильтрация настраивается в:

  • 🔍 Настройках обмена (раздел "Фильтры")
  • 📋 Правилах отбора (для конкретных справочников)
  • 🖥️ Запросах в обработке выгрузки (для сложных условий)

Пример настройки фильтра по остаткам:

  1. В правилах обмена найдите справочник "Номенклатура".
  2. Добавьте условие отбора: "ОстаткиТоваров.Количество > 0".
  3. Укажите склад, по которому проверять остатки (например, "Основной склад").

Для динамических фильтров (например, выгрузка только измененных за день товаров) используйте пометки на удаление или реквизит "Дата изменения". В обработке выгрузки добавьте запрос:

ВЫБРАТЬ

Номенклатура.Ссылка КАК Ссылка

ИЗ

Справочник.Номенклатура КАК Номенклатура

ГДЕ

Номенклатура.ДатаИзменения >= НачалоДня(ТекущаяДата())

💡

Если нужно выгрузить данные по расписанию (например, каждый день в 3 часа ночи), используйте регламентные задания. Настройте их в Администрирование → Регламентные задания → Обмен данными.

4. Работа с ошибками выгрузки: диагностика и исправление

Ошибки при выгрузке делятся на три типа:

  1. Синтаксические (неверный формат файла, например, незакрытый тег в XML).
  2. Логические (несовпадение структуры данных, например, отсутствует обязательное поле).
  3. Технические (проблемы с доступом к файлу или сети).

Как диагностировать:

  • 📄 Проверьте лог обмена (Обмен данными → Журнал обменов). Ищите строки с "Ошибка" или "Предупреждение".
  • 🔎 Сравните выгруженный файл с требованиями внешней системы (например, документацией Wildberries).
  • 🛠️ Используйте валидаторы (например, XML Validator для проверки структуры файла).

Типичные ошибки и решения:

Ошибка Причина Решение
Не найден элемент справочника "Номенклатура" с кодом "123" Товар удален или не существует Проверьте наличие товара в базе или настройте фильтр по пометке удаления
Ошибка контрольной суммы файла Файл поврежден при передаче Повторите выгрузку, проверьте права доступа к папке
Неверный формат даты Несовпадение форматов (например, DD.MM.YYYY vs YYYY-MM-DD) Настройте формат даты в правилах обмена или обработке
⚠️ Внимание: Если ошибка возникает при выгрузке на маркетплейс, проверьте лимиты API. Например, Ozon ограничивает количество запросов в минуту. В этом случае настройте пакетную выгрузку с задержками.

Проверьте журнал обменов в 1С|Сравните файл с требованиями внешней системы|Проверьте права доступа к папке выгрузки|Обновите обработку обмена до последней версии-->

5. Автоматизация выгрузки: расписание и триггеры

Ручная выгрузка данных отнимает время и чревата ошибками. Автоматизировать процесс можно через:

  • Регламентные задания: настройка выгрузки по расписанию (ежедневно, еженедельно).
  • 🔄 Триггеры: выгрузка при изменении данных (например, после проведения документа "Реализация товаров").
  • 🌐 REST API: интеграция с внешними сервисами для выгрузки по событию (например, после оплаты заказа на сайте).

Пример настройки регламентного задания:

  1. Перейдите в Администрирование → Регламентные задания.
  2. Создайте новое задание, выберите тип "Обмен данными".
  3. Укажите обработку выгрузки (например, "ВыгрузкаТоваровНаСайт").
  4. Настройте расписание (например, "Ежедневно в 02:00").
  5. Укажите параметры выгрузки (формат, путь к файлу).

Для триггеров потребуется доработка конфигурации. Например, чтобы выгружать остатки после изменения документа "Поступление товаров", добавьте в модуль документа код:

Процедура ПослеЗаписи(Отказ)

Если НЕ Отказ Тогда

ВыгрузкаДанных.ВыгрузитьОстатки();

КонецЕсли;

КонецПроцедуры

💡

Используйте тестовый режим перед настройкой автоматической выгрузки. Выполните 2-3 ручных выгрузки и проверьте корректность данных во внешней системе.

6. Оптимизация выгрузки для маркетплейсов

Маркетплейсы (Ozon, Wildberries, Яндекс Маркет) предъявляют строгие требования к структуре данных. Типичные проблемы:

  • 🏷️ Несовпадение атрибутов (например, отсутствует обязательное поле "brand").
  • 📦 Некорректные остатки (выгружаются резервы вместо свободных остатков).
  • 💰 Неверные цены (не учитываются скидки или НДС).

Решения:

  1. Для Wildberries: используйте обработку "Выгрузка для WB" от 1С-Рарус. Она автоматически преобразует данные под требования WB, включая генерацию vendorCode и расчет цен с учетом комиссии.
  2. Для Ozon: настройте выгрузку через Ozon Seller API. В правилах обмена добавьте поля:
    "ozon_id" (идентификатор товара на Ozon)
    

    "price" (цена с учетом скидок)

    "stock" (остаток на складе Ozon)

  3. Для Яндекс Маркета: проверьте соответствие YML-формату. Используйте валидатор Яндекса.

Критично для маркетплейсов: выгружайте только актуальные остатки. Если товар резервируется на складе, но еще не оплачен, не включайте его в выгрузку. Это приведет к штрафам за отмененные заказы.

7. Альтернативные способы выгрузки: когда стандартных инструментов недостаточно

Если встроенные механизмы не покрывают ваши задачи, рассмотрите:

  • 🔌 Подключение через REST API: например, для интеграции с Bitrix24 или amoCRM. Требует настройки OAuth 2.0 и написания кода на или Python.
  • 📊 Выгрузка в Google Sheets: через обработку "Выгрузка в Excel" или сервис Zapier.
  • 🔄 Облачные интеграторы: Alfa-Integration, SyncMaster или 1C-Fresh. Позволяют настроить обмен без программирования.

Пример выгрузки через REST API:

// Пример кода для отправки данных в Bitrix24

Функция ВыгрузитьЗаказВBitrix24(Заказ)

URL = "https://ваш-домен.bitrix24.ru/rest/1/апи-ключ/crm.deal.add";

ТелоЗапроса = Новый Структура();

ТелоЗапроса.Вставить("fields[TITLE]", Заказ.Номер);

ТелоЗапроса.Вставить("fields[OPPORTUNITY]", Заказ.СуммаДокумента);

HTTPЗапрос = Новый HTTPЗапрос(URL);

HTTPЗапрос.УстановитьТелоИзСтроки(СериализоватьJSON(ТелоЗапроса));

HTTPЗапрос.УстановитьЗаголовок("Content-Type", "application/json");

Ответ = Новый HTTPСоединение();

Ответ.Получить(HTTPЗапрос);

Возврат Ответ.ПолучитьТелоКакСтроку();

КонецФункции

⚠️ Внимание: При использовании REST API убедитесь, что ваш сервер имеет белый IP-адрес и открытые порты для исходящих соединений. В противном случае запросы будут блокироваться.

FAQ: Частые вопросы по выгрузке в 1С

Как выгрузить данные в Excel с сохранением формул?

Стандартная выгрузка в Excel через СохранитьКак() не сохраняет формулы. Используйте одну из обработок:

  • "ВыгрузкаВExcelСФормулами" от 1С-Галэкс.
  • "UniversalExcel" (бесплатная обработка с Инфостарта).

В обработке укажите, какие колонки должны содержать формулы, а не значения.

Почему выгружаются не все товары?

Возможные причины:

  1. В правилах обмена установлен фильтр по группам номенклатуры.
  2. Товары помечены на удаление (ПометкаУдаления = Истина).
  3. Не хватает прав у пользователя, выполняющего выгрузку.
  4. Внешняя система игнорирует товары без штрихкода или артикула.

Проверьте настройки фильтра в Обмен данными → Правила обмена → Фильтры.

Можно ли выгрузить данные в JSON без программирования?

Да, в последних версиях 1С:Предприятие 8.3.20+ поддерживается выгрузка в JSON через стандартные механизмы:

  1. В правилах обмена выберите формат "JSON".
  2. Настройте структуру выходного файла (можно использовать XDTO-пакет или сериализацию).
  3. Для упрощения используйте обработку "Универсальный обмен данными" (доступна на ITS).

Если ваша версия старше, потребуется внешняя обработка или доработка конфигурации.

Как выгрузить историю изменений товара (например, старые цены)?

Для выгрузки истории используйте:

  • Регистры сведений: например, "Цены номенклатуры" хранит историю изменений цен.
  • Журнал документов: выгружайте документы "Установка цен" за нужный период.
  • Внешние отчеты: например, "История изменений номенклатуры" от 1С-Рарус.

Пример запроса для выгрузки истории цен:

ВЫБРАТЬ

ЦеныНоменклатуры.Номенклатура КАК Товар,

ЦеныНоменклатуры.Цена КАК Цена,

ЦеныНоменклатуры.Период КАК ДатаИзменения

ИЗ

РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры

ГДЕ

ЦеныНоменклатуры.Номенклатура = &Товар

Нужно ли останавливать работу пользователей во время выгрузки?

Зависит от объема данных и типа выгрузки:

  • Выгрузка изменений: можно не останавливать (используются транзакции).
  • Полная выгрузка: рекомендуется заблокировать базу на время выгрузки, чтобы избежать расхождений.
  • Выгрузка через REST API: блокировка не требуется, но следите за лимитами нагрузки на сервер.

Для блокировки используйте команду:

Попытка

Монопольно = Новый МонопольныйРежим();

Монопольно.Захватить();

Исключение

Сообщить("Не удалось заблокировать базу: " + ОписаниеОшибки());

КонецПопытки;