Как интегрировать ЭДО СБИС в нетиповую конфигурацию 1С и настроить обмен документами?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

Интеграция электронного документооборота (ЭДО) в нетиповые или сильно кастомизированные конфигурации 1С часто вызывает вопросы у разработчиков. Особенно это актуально, когда база построена на старых версиях БСП (например, 2.3) или является практически «самописной». В данной статье мы подробно разберем, как внедрить СБИС в такую систему, не прибегая к встраиванию стандартного модуля 1С:ЭДО, и как адаптировать обмен под уникальные реквизиты ваших документов.

Нужно ли внедрять подсистему 1С:ЭДО из БСП?

Первый вопрос, который возникает при планировании интеграции: нужно ли переносить модули 1С:ЭДО в свою конфигурацию? Проанализируем архитектуру решения от СБИС. Внешняя обработка СБИС является абсолютно самостоятельным инструментом. Она не требует наличия в конфигурации типовой подписки на ЭДО или встроенных библиотек обмена. Это значительно упрощает задачу, так как вам не придется заниматься сложным слиянием объектов метаданных и разрешением конфликтов в коде БСП.

Выбор метода подключения: SDK против ExtSDK

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

  1. Обычный SDK (через COM-объект): Этот метод требует регистрации библиотек в реестре Windows (regsvr32). Он считается устаревшим и часто вызывает проблемы с правами доступа или несовместимостью разрядности платформы 1С и компонентов СБИС.
  2. ExtSDK (Extensible SDK): Это современный и рекомендуемый способ. Взаимодействие происходит через СБИС.Плагин, который поднимает локальный веб-сервер. 1С обменивается данными с плагином по протоколам HTTP/HTTPS (порты 8431, 8433). Это позволяет избежать проблем с разрядностью (например, когда используется 64-битный клиент 1С).

Важный момент касается криптографии: КриптоПро CSP (или аналогичное СКЗИ, например, ViPNet) необходимо устанавливать на рабочем месте в любом случае, если подписание документов происходит локально. СБИС.Плагин не заменяет криптопровайдер, а лишь управляет им для выполнения операций подписания.

Механизм доработки под нетиповую конфигурацию без изменения основной обработки

СБИС предоставляет гибкую систему «внешних интерфейсов», которая позволяет адаптировать обмен под любую структуру данных. Рассмотрим, как реализовать поддержку собственных документов, не снимая основную обработку СБИС с поддержки.

Для этого используются три типа вспомогательных файлов:

1. Файл настроек СБИС_Настройки.ini

В этом файле описывается «карта» соответствий объектов вашей базы типам документов СБИС. Мы можем принудительно указать, что наш документ ДокументОбъект.АрендаПомещений должен интерпретироваться как «Реализация товаров и услуг». Здесь же настраиваются фильтры для выборки документов.

2. Внешняя обработка ВнешниеФункции_Клиент.epf

Это ключевой элемент кастомизации. В ней переопределяются стандартные методы заполнения полей. Если в вашей базе ИНН контрагента или номер договора хранятся в нетиповых реквизитах, проанализируем пример кода, который может быть размещен в этой обработке:


Функция ПолучитьРеквизитКонтрагента(Контрагент, ИмяРеквизита) Экспорт
    Если ИмяРеквизита = "ИНН" Тогда
        // Наша специфичная логика поиска ИНН в нетиповой базе
        Возврат Контрагент.ДополнительныеПараметры.ИНН_Спец;
    КонецЕсли;
    Возврат Неопределено;
КонецФункции

3. XML-шаблоны документов

Для формирования формализованных документов (УПД, Счета-фактуры) используются XML-описания. Если структура данных в вашей 1С сильно отличается от типовой, вам потребуется создать свой XML-шаблон, соответствующий требованиям ФНС. СБИС будет использовать его для генерации файла обмена, подставляя данные из вашей конфигурации на основе логики, описанной во ВнешниеФункции_Клиент.

Режим обмена через «Каталог»

Если интеграция через SDK кажется слишком сложной или возникают непреодолимые технические ограничения, рассмотрим режим «Каталог». В этом случае 1С просто выгружает файлы в определенную папку на диске, а СБИС.Плагин подхватывает их и отправляет в облако.

Однако выясним причины, по которым этот метод может не подойти:

Проблема с идентификаторами (ИД) и переходом из Личного кабинета

Часто пользователи начинают работать в Личном кабинете СБИС Online, а затем решают перейти в 1С. Здесь важно избежать ошибки смены Идентификатора участника ЭДО. При настройке обработки в 1С убедитесь, что вы используете существующий аккаунт и код филиала. Если создать новое подключение «с нуля», система может сгенерировать новый ИД, и ваши контрагенты перестанут «видеть» ваши документы, так как вы будете числиться под другим идентификатором в роуминге.

Особенности работы на базе БСП 2.3

Поскольку конфигурация базируется на БСП 2.3, проанализируем возможные сложности. Данная версия библиотеки достаточно старая и может не поддерживать некоторые современные методы работы с двоичными данными или асинхронными вызовами, которые ожидает свежая версия обработки СБИС. В этом случае во ВнешнихФункциях следует явно выполнять приведение типов и использовать синхронные методы работы с файлами, чтобы обеспечить стабильность обмена.

Подводя итог, можно сказать, что для успешного внедрения СБИС в нетиповую базу достаточно использовать внешнюю обработку и механизм дополнительных файлов настроек. Это позволяет сохранить возможность обновления коннектора СБИС и при этом полностью адаптировать его под бизнес-логику вашей уникальной конфигурации.

← На главную