Обмен данными между СБИС и 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).
1. Подготовка XML-файла в СБИС: ключевые настройки
Перед загрузкой в 1С файл XML должен быть корректно сформирован в СБИС. Ошибки на этом этапе приводят к невозможности импорта или потере данных. Рассмотрим пошагово, как экспортировать документ:
В СБИС откройте нужный документ (например, счёт-фактуру) и выберите Файл → Экспорт → В формате 1С (XML). Обратите внимание на две критичные настройки:
- 📑 Версия схемы: выберите
2.05для 1С 8.3 или1.01для устаревших конфигураций. - 🔠 Кодировка: обязательно
UTF-8(иначе кириллица отобразится кракозябрами). - 📋 Включать вложения: отключите, если не нужны сканы документов (увеличивают размер файла).
Если в СБИС нет опции экспорта в 1С, проверьте:
- Подключён ли модуль Интеграция с 1С (может требовать отдельной лицензии).
- Обновлена ли версия СБИС до актуальной (в старых версиях поддерживался только
DBF).
Если в XML отсутствуют обязательные реквизиты (например, ИНН контрагента), 1С выдаст ошибку при загрузке. Проверьте заполненность полей в СБИС перед экспортом.
2. Ручная загрузка XML в 1С: пошаговая инструкция
Самый простой способ — импорт через стандартный механизм 1С:Предприятия. Подходит для разовых операций или тестирования обмена. Инструкция актуальна для конфигураций на базе БСП 3.1 (Библиотека Стандартных Подсистем).
Откройте 1С в режиме Предприятие и выполните действия:
- Перейдите в раздел
Администрирование → Обмен данными → Универсальный обмен данными. - Нажмите
Импорт данныхи выберите сохранённый XML-файл. - В окне настройки импорта укажите:
- 📌 Тип данных:
Документ(если загружаете счёт) илиСправочник(для контрагентов). - 🔄 Режим загрузки:
Создать новыеилиОбновить существующие. - ⚙️ Формат файла:
XML (СБИС).
- 📌 Тип данных:
- Нажмите
Выполнитьи дождитесь завершения операции. - 🔍 Проверьте
Журнал регистрации(разделАдминистрирование → Журналы) на наличие ошибок. - 📂 Убедитесь, что файл не пустой (откройте его в блокноте — должны быть теги
<Документ>).
Сохранён ли XML в UTF-8|Закрыты ли все документы в 1С|Есть ли резервная копия базы|Проверена ли структура XML на ошибки-->
Если после импорта документы не отображаются:
Что делать, если 1С "не видит" XML-файл?
Проблема может быть в расширении файла. Переименуйте его с .xml на .XML (регистр важен!) или попробуйте открыть через Файл → Открыть в 1С, а не через drag-and-drop.
3. Автоматическая загрузка через HTTP-сервис (для опытных пользователей)
Если вам нужно наладить регулярный обмен (например, ежедневную выгрузку счетов из СБИС в 1С), ручной импорт не подходит. В этом случае используйте HTTP-сервис или планы обмена. Метод требует настройки на стороне 1С и СБИС, но экономит время в долгосрочной перспективе.
Алгоритм настройки:
- В СБИС:
- 🔗 Перейдите в
Настройки → Интеграция → 1С. - 📡 Включите опцию
Отправлять данные по HTTP. - 🔐 Сгенерируйте токен доступа (сохраните его — он понадобится для 1С).
- 🔗 Перейдите в
- 🛠️ Откройте
Конфигуратори создайте новыйHTTP-сервис(разделОбъекты → HTTP-сервисы). - 📜 В модуле сервиса добавьте код для обработки XML (пример ниже).
- 🔄 Настройте
План обменас указанием URL вашего сервиса.
Пример кода для обработки входящего XML (вставляется в модуль HTTP-сервиса):
Процедура ОбработатьЗапрос(Запрос, Ответ) Экспорт
// Получаем XML из тела запроса
ТелоЗапроса = Запрос.ПолучитьТекстПотока();
ДанныеXML = Новый ЧтениеXML;
ДанныеXML.УстановитьСтроку(ТелоЗапроса);
// Парсим документ (пример для счёта-фактуры)
Если ДанныеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ДанныеXML.Имя = "Документ" Тогда
НовыйДокумент = Документы.СчетФактураВыданный.СоздатьДокумент();
НовыйДокумент.Загрузить(ДанныеXML);
НовыйДокумент.Записать();
КонецЕсли;
Ответ.УстановитьТелоИзСтроки("OK");
КонецПроцедуры
Автоматический обмен требует статического IP-адреса для 1С-сервера и настройки фаервола. Если IP динамический, используйте сервисы вроде ngrok для туннелирования.
После настройки проверьте обмен:
- В СБИС отправьте тестовый документ.
- В 1С откройте
Журнал HTTP-запросов(Администрирование → Логи) и убедитесь, что запрос обработан без ошибок. - Откройте
Журнал регистрациив 1С и скопируйте полный текст ошибки. - Проверьте XML на валидность с помощью сервиса XML Validator (например,
https://www.xmlvalidation.com/). - Сравните структуру вашего XML с официальной схемой 1С.
- 📦 Подходит для обмена номенклатурой, ценами и заказами.
- 🔄 Требует установки обработки
CommerceML.epf(доступна на Инфостарте). - 📌 В СБИС выбирайте формат
CommerceML 2.0при экспорте. - 📄 Используется для юридически значимого обмена (счета-фактуры, УПД).
- 🔐 Требует подключения к оператору EDI (например, Такском или СКБ Контур).
- 🔄 В 1С настройте обработку
Универсальный обмен в формате EDI. - 📥 Автоматически определяет тип документа (счёт, акт, накладная).
- 🔄 Поддерживает пакетную загрузку нескольких файлов.
- 📌 Скачать можно здесь (требуется регистрация).
- Неправильной кодировке (должна быть
UTF-8). - Отсутствии прав на импорт у пользователя.
- Блокировке файла антивирусом (добавьте папку с XML в исключения).
⚠️ Внимание: При автоматическом обмене 1С не проверяет дубликаты документов по умолчанию. Добавьте в код обработчика проверку по номеру и дате документа, чтобы избежать повторной загрузки.
4. Обработка ошибок при загрузке XML: коды и решения
Даже при корректной настройке обмена могут возникать ошибки. Ниже — таблица самых распространённых проблем и способы их устранения:
| Код ошибки | Описание | Решение |
|---|---|---|
ОшибкаXDTO:201 |
Несоответствие структуры XML ожидаемой схеме | Проверьте версию схемы в СБИС (должна совпадать с версией в 1С). Обновите конфигурацию 1С, если требуется поддержка новой схемы. |
ОшибкаЗаписи:304 |
Документ с таким номером уже существует | Включите режим Обновить существующие при импорте или измените номер документа в СБИС. |
ОшибкаКодировки:105 |
Некорректное отображение кириллицы (кракозябры) | Пересохраните XML в кодировке UTF-8 без BOM (используйте Notepad++). |
ОшибкаПрав:403 |
Недостаточно прав для создания документа | Назначьте пользователю роль с правом Добавление для соответствующего типа документов. |
Если ошибка не указана в таблице:
Для отладки сложных ошибок используйте Отладчик 1С (F5 в Конфигураторе). Установите точку останова на строке с ошибкой и пошагово проанализируйте выполнение кода.
5. Альтернативные способы: обмен через CommerceML и EDI
Если стандартные методы не подходят (например, из-за специфической структуры данных), рассмотрите альтернативные форматы обмена:
1. CommerceML (для торгового обмена)
2. 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-файл при импорте?
Проблема может быть в:
Попробуйте открыть файл в блокноте — если вместо текста иероглифы, пересохраните его в правильной кодировке.
🔹 Как загрузить XML в 1С:ЗУП для табелей рабочего времени?
Для загрузки табелей:
- В СБИС экспортируйте файл в формате
XML для ЗУП. - В 1С откройте
Зарплата → Табели → Загрузка данных. - Выберите файл и укажите период табеля.
Если возникает ошибка Не найден сотрудник, проверьте соответствие табельных номеров в 1С и СБИС.
🔹 Можно ли настроить автоматический обмен без HTTP-сервиса?
Да, альтернативные способы:
- 📂 Обмен через папку: настройте в СБИС выгрузку XML в сетевую папку, а в 1С — обработку для мониторинга этой папки.
- 📧 Email-обмен: СБИС отправляет XML на почту, 1С забирает письма по
POP3/IMAP.
Минус этих методов — задержка обмена (до нескольких часов).
🔹 Как проверить, что XML корректно сформирован?
Используйте эти инструменты:
- 🌐 XML Validator (онлайн-проверка структуры).
- 📝 Notepad++ с плагином
XML Tools(проверка тегов). - 🛠️ Встроенная утилита 1С:
ТестXDTO.epf(проверяет соответствие схеме).
🔹 Что делать, если после загрузки документы не проводятся?
Причины и решения:
- 🔍 Не хватает реквизитов: откройте документ в 1С и заполните обязательные поля (например,
КонтрагентилиСклад). - 🔄 Ошибка проводок: проверьте настройки учётной политики (раздел
Главное → Настройки → Учётная политика). - 📌 Блокировка: снимайте пометку удаления с документа перед повторной загрузкой.