Обмен данными между СБИС и 1С:Предприятие через XML-файлы — стандартная практика для бухгалтеров, кадровиков и логистов. Однако даже опытные пользователи сталкиваются с проблемами: файлы не загружаются, возникают ошибки формата или данные дублируются. В этой статье разберём три проверенных способа импорта (включая автоматический через HTTP-сервисы), типичные ошибки при работе с .xml из СБИС и дадим готовые скрипты для обработки исключений.

Особенность XML из СБИС — их структура зависит от типа документа: это может быть счёт-фактура, акт выполненных работ или отчётность в ФНС. Мы рассмотрим универсальные методы, которые работают для большинства конфигураций 1С 8.3 (УТ 11, БП 3.0, ЗУП 3.1), но акцентируем внимание на нюансах для каждой. Если вы используете 1С:ERP или КА 2.5, проверьте совместимость обработок в вашей версии — некоторые функции могут требовать доработки.

Прежде чем приступить, убедитесь, что:

  • 📌 У вас есть права на импорт данных в 1С (роль «Администратор» или «Полные права»).
  • 🔄 В СБИС включён экспорт в формате XML для 1С (настройки → интеграция).
  • 🔗 Версии 1С и СБИС совместимы (например, СБИС 3.0 не поддерживает 1С 7.7).
📊 Какой способ обмена с СБИС вы используете чаще?
Ручная загрузка XML
Автоматический обмен через HTTP
Обмен по расписанию
Другой вариант

1. Подготовка XML-файла в СБИС: ключевые настройки

Перед загрузкой в 1С файл XML должен быть корректно сформирован в СБИС. Ошибки на этом этапе приводят к невозможности импорта или потере данных. Рассмотрим пошагово, как экспортировать документ:

В СБИС откройте нужный документ (например, счёт-фактуру) и выберите Файл → Экспорт → В формате 1С (XML). Обратите внимание на две критичные настройки:

  • 📑 Версия схемы: выберите 2.05 для 1С 8.3 или 1.01 для устаревших конфигураций.
  • 🔠 Кодировка: обязательно UTF-8 (иначе кириллица отобразится кракозябрами).
  • 📋 Включать вложения: отключите, если не нужны сканы документов (увеличивают размер файла).

Если в СБИС нет опции экспорта в 1С, проверьте:

  1. Подключён ли модуль Интеграция с 1С (может требовать отдельной лицензии).
  2. Обновлена ли версия СБИС до актуальной (в старых версиях поддерживался только DBF).
💡

Если в XML отсутствуют обязательные реквизиты (например, ИНН контрагента), 1С выдаст ошибку при загрузке. Проверьте заполненность полей в СБИС перед экспортом.

2. Ручная загрузка XML в 1С: пошаговая инструкция

Самый простой способ — импорт через стандартный механизм 1С:Предприятия. Подходит для разовых операций или тестирования обмена. Инструкция актуальна для конфигураций на базе БСП 3.1 (Библиотека Стандартных Подсистем).

Откройте 1С в режиме Предприятие и выполните действия:

  1. Перейдите в раздел Администрирование → Обмен данными → Универсальный обмен данными.
  2. Нажмите Импорт данных и выберите сохранённый XML-файл.
  3. В окне настройки импорта укажите:
    • 📌 Тип данных: Документ (если загружаете счёт) или Справочник (для контрагентов).
    • 🔄 Режим загрузки: Создать новые или Обновить существующие.
    • ⚙️ Формат файла: XML (СБИС).
  4. Нажмите Выполнить и дождитесь завершения операции.
  5. Сохранён ли XML в UTF-8|Закрыты ли все документы в 1С|Есть ли резервная копия базы|Проверена ли структура XML на ошибки-->

    Если после импорта документы не отображаются:

    • 🔍 Проверьте Журнал регистрации (раздел Администрирование → Журналы) на наличие ошибок.
    • 📂 Убедитесь, что файл не пустой (откройте его в блокноте — должны быть теги <Документ>).
Что делать, если 1С "не видит" XML-файл?

Проблема может быть в расширении файла. Переименуйте его с .xml на .XML (регистр важен!) или попробуйте открыть через Файл → Открыть в 1С, а не через drag-and-drop.

3. Автоматическая загрузка через HTTP-сервис (для опытных пользователей)

Если вам нужно наладить регулярный обмен (например, ежедневную выгрузку счетов из СБИС в 1С), ручной импорт не подходит. В этом случае используйте HTTP-сервис или планы обмена. Метод требует настройки на стороне 1С и СБИС, но экономит время в долгосрочной перспективе.

Алгоритм настройки:

  1. В СБИС:
    • 🔗 Перейдите в Настройки → Интеграция → 1С.
    • 📡 Включите опцию Отправлять данные по HTTP.
    • 🔐 Сгенерируйте токен доступа (сохраните его — он понадобится для 1С).
  • В :
    • 🛠️ Откройте Конфигуратор и создайте новый HTTP-сервис (раздел Объекты → HTTP-сервисы).
    • 📜 В модуле сервиса добавьте код для обработки XML (пример ниже).
    • 🔄 Настройте План обмена с указанием URL вашего сервиса.
    • Пример кода для обработки входящего XML (вставляется в модуль HTTP-сервиса):

      Процедура ОбработатьЗапрос(Запрос, Ответ) Экспорт
      

      // Получаем XML из тела запроса

      ТелоЗапроса = Запрос.ПолучитьТекстПотока();

      ДанныеXML = Новый ЧтениеXML;

      ДанныеXML.УстановитьСтроку(ТелоЗапроса);

      // Парсим документ (пример для счёта-фактуры)

      Если ДанныеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ДанныеXML.Имя = "Документ" Тогда

      НовыйДокумент = Документы.СчетФактураВыданный.СоздатьДокумент();

      НовыйДокумент.Загрузить(ДанныеXML);

      НовыйДокумент.Записать();

      КонецЕсли;

      Ответ.УстановитьТелоИзСтроки("OK");

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

      💡

      Автоматический обмен требует статического IP-адреса для 1С-сервера и настройки фаервола. Если IP динамический, используйте сервисы вроде ngrok для туннелирования.

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

      1. В СБИС отправьте тестовый документ.
      2. В 1С откройте Журнал HTTP-запросов (Администрирование → Логи) и убедитесь, что запрос обработан без ошибок.
    ⚠️ Внимание: При автоматическом обмене 1С не проверяет дубликаты документов по умолчанию. Добавьте в код обработчика проверку по номеру и дате документа, чтобы избежать повторной загрузки.

    4. Обработка ошибок при загрузке XML: коды и решения

    Даже при корректной настройке обмена могут возникать ошибки. Ниже — таблица самых распространённых проблем и способы их устранения:

    Код ошибки Описание Решение
    ОшибкаXDTO:201 Несоответствие структуры XML ожидаемой схеме Проверьте версию схемы в СБИС (должна совпадать с версией в 1С). Обновите конфигурацию 1С, если требуется поддержка новой схемы.
    ОшибкаЗаписи:304 Документ с таким номером уже существует Включите режим Обновить существующие при импорте или измените номер документа в СБИС.
    ОшибкаКодировки:105 Некорректное отображение кириллицы (кракозябры) Пересохраните XML в кодировке UTF-8 без BOM (используйте Notepad++).
    ОшибкаПрав:403 Недостаточно прав для создания документа Назначьте пользователю роль с правом Добавление для соответствующего типа документов.

    Если ошибка не указана в таблице:

    1. Откройте Журнал регистрации в 1С и скопируйте полный текст ошибки.
    2. Проверьте XML на валидность с помощью сервиса XML Validator (например, https://www.xmlvalidation.com/).
    3. Сравните структуру вашего XML с официальной схемой 1С.
    4. 💡

      Для отладки сложных ошибок используйте Отладчик 1С (F5 в Конфигураторе). Установите точку останова на строке с ошибкой и пошагово проанализируйте выполнение кода.

      5. Альтернативные способы: обмен через CommerceML и EDI

      Если стандартные методы не подходят (например, из-за специфической структуры данных), рассмотрите альтернативные форматы обмена:

      1. CommerceML (для торгового обмена)

      • 📦 Подходит для обмена номенклатурой, ценами и заказами.
      • 🔄 Требует установки обработки CommerceML.epf (доступна на Инфостарте).
      • 📌 В СБИС выбирайте формат CommerceML 2.0 при экспорте.

      2. EDI (Электронный документооборот)

      • 📄 Используется для юридически значимого обмена (счета-фактуры, УПД).
      • 🔐 Требует подключения к оператору EDI (например, Такском или СКБ Контур).
      • 🔄 В 1С настройте обработку Универсальный обмен в формате EDI.

      Сравнение форматов:

      Формат Когда использовать Сложность настройки
      XML (СБИС) Универсальный обмен документами Низкая
      CommerceML Обмен товарами и заказами Средняя
      EDI Юридически значимые документы Высокая
      ⚠️ Внимание: При использовании CommerceML обязательно настройте соответствие справочников 1С и СБИС (например, Номенклатура → Товары). Без этого товары будут загружаться как новые позиции, дублируя существующие.

      6. Оптимизация процесса: скрипты и внешние обработки

      Для ускорения работы с XML из СБИС можно использовать готовые решения:

      1. Обработка "Загрузка из XML" (Инфостарт)

      • 📥 Автоматически определяет тип документа (счёт, акт, накладная).
      • 🔄 Поддерживает пакетную загрузку нескольких файлов.
      • 📌 Скачать можно здесь (требуется регистрация).

    2. Скрипт для массового импорта

    Если нужно загрузить сотни файлов, используйте этот код в 1С:Предприятии:

    Процедура ЗагрузитьПапкуXML(ПутьКПапке)
    

    Файлы = Новый Массив();

    НайтиФайлы(ПутьКПапке + "\*.xml", Файлы);

    Для Каждого Файл Из Файлы Цикл

    Попытка

    ИмпортXML = Новый ИмпортДанныхИзXML;

    ИмпортXML.Файл = Новый Файл(Файл.ПолноеИмя);

    ИмпортXML.Выполнить();

    Исключение

    ЗаписатьЛог("Ошибка при загрузке " + Файл.Имя + ": " + ОписаниеОшибки());

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

    КонецЦикла;

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

    3. Интеграция через REST API

    Для продвинутых пользователей: настройте обмен через API СБИС. Пример запроса для получения списка документов:

    GET https://online.sbis.ru/api/1c/documents
    

    Headers:

    Authorization: Bearer {ВашТокен}

    Accept: application/xml

    💡

    При использовании внешних обработок всегда проверяйте их на тестовой базе 1С. Некоторые скрипты могут конфликтовать с обновлениями конфигурации.

    FAQ: Ответы на частые вопросы

    🔹 Почему 1С не видит XML-файл при импорте?

    Проблема может быть в:

    • Неправильной кодировке (должна быть UTF-8).
    • Отсутствии прав на импорт у пользователя.
    • Блокировке файла антивирусом (добавьте папку с XML в исключения).
    • Попробуйте открыть файл в блокноте — если вместо текста иероглифы, пересохраните его в правильной кодировке.

    🔹 Как загрузить XML в 1С:ЗУП для табелей рабочего времени?

    Для загрузки табелей:

    1. В СБИС экспортируйте файл в формате XML для ЗУП.
    2. В 1С откройте Зарплата → Табели → Загрузка данных.
    3. Выберите файл и укажите период табеля.
    4. Если возникает ошибка Не найден сотрудник, проверьте соответствие табельных номеров в 1С и СБИС.

    🔹 Можно ли настроить автоматический обмен без HTTP-сервиса?

    Да, альтернативные способы:

    • 📂 Обмен через папку: настройте в СБИС выгрузку XML в сетевую папку, а в 1С — обработку для мониторинга этой папки.
    • 📧 Email-обмен: СБИС отправляет XML на почту, 1С забирает письма по POP3/IMAP.

    Минус этих методов — задержка обмена (до нескольких часов).

    🔹 Как проверить, что XML корректно сформирован?

    Используйте эти инструменты:

    • 🌐 XML Validator (онлайн-проверка структуры).
    • 📝 Notepad++ с плагином XML Tools (проверка тегов).
    • 🛠️ Встроенная утилита 1С: ТестXDTO.epf (проверяет соответствие схеме).
    🔹 Что делать, если после загрузки документы не проводятся?

    Причины и решения:

    • 🔍 Не хватает реквизитов: откройте документ в 1С и заполните обязательные поля (например, Контрагент или Склад).
    • 🔄 Ошибка проводок: проверьте настройки учётной политики (раздел Главное → Настройки → Учётная политика).
    • 📌 Блокировка: снимайте пометку удаления с документа перед повторной загрузкой.