Интеграция электронного документооборота (ЭДО) в нетиповые или сильно кастомизированные конфигурации 1С часто вызывает вопросы у разработчиков. Особенно это актуально, когда база построена на старых версиях БСП (например, 2.3) или является практически «самописной». В данной статье мы подробно разберем, как внедрить СБИС в такую систему, не прибегая к встраиванию стандартного модуля 1С:ЭДО, и как адаптировать обмен под уникальные реквизиты ваших документов.
Первый вопрос, который возникает при планировании интеграции: нужно ли переносить модули 1С:ЭДО в свою конфигурацию? Проанализируем архитектуру решения от СБИС. Внешняя обработка СБИС является абсолютно самостоятельным инструментом. Она не требует наличия в конфигурации типовой подписки на ЭДО или встроенных библиотек обмена. Это значительно упрощает задачу, так как вам не придется заниматься сложным слиянием объектов метаданных и разрешением конфликтов в коде БСП.
Для взаимодействия 1С и серверов СБИС используются различные методы. Рассмотрим их подробнее, чтобы выбрать наиболее стабильный вариант:
regsvr32). Он считается устаревшим и часто вызывает проблемы с правами доступа или несовместимостью разрядности платформы 1С и компонентов СБИС.Важный момент касается криптографии: КриптоПро CSP (или аналогичное СКЗИ, например, ViPNet) необходимо устанавливать на рабочем месте в любом случае, если подписание документов происходит локально. СБИС.Плагин не заменяет криптопровайдер, а лишь управляет им для выполнения операций подписания.
СБИС предоставляет гибкую систему «внешних интерфейсов», которая позволяет адаптировать обмен под любую структуру данных. Рассмотрим, как реализовать поддержку собственных документов, не снимая основную обработку СБИС с поддержки.
Для этого используются три типа вспомогательных файлов:
1. Файл настроек СБИС_Настройки.ini
В этом файле описывается «карта» соответствий объектов вашей базы типам документов СБИС. Мы можем принудительно указать, что наш документ ДокументОбъект.АрендаПомещений должен интерпретироваться как «Реализация товаров и услуг». Здесь же настраиваются фильтры для выборки документов.
2. Внешняя обработка ВнешниеФункции_Клиент.epf
Это ключевой элемент кастомизации. В ней переопределяются стандартные методы заполнения полей. Если в вашей базе ИНН контрагента или номер договора хранятся в нетиповых реквизитах, проанализируем пример кода, который может быть размещен в этой обработке:
Функция ПолучитьРеквизитКонтрагента(Контрагент, ИмяРеквизита) Экспорт
Если ИмяРеквизита = "ИНН" Тогда
// Наша специфичная логика поиска ИНН в нетиповой базе
Возврат Контрагент.ДополнительныеПараметры.ИНН_Спец;
КонецЕсли;
Возврат Неопределено;
КонецФункции
3. XML-шаблоны документов
Для формирования формализованных документов (УПД, Счета-фактуры) используются XML-описания. Если структура данных в вашей 1С сильно отличается от типовой, вам потребуется создать свой XML-шаблон, соответствующий требованиям ФНС. СБИС будет использовать его для генерации файла обмена, подставляя данные из вашей конфигурации на основе логики, описанной во ВнешниеФункции_Клиент.
Если интеграция через SDK кажется слишком сложной или возникают непреодолимые технические ограничения, рассмотрим режим «Каталог». В этом случае 1С просто выгружает файлы в определенную папку на диске, а СБИС.Плагин подхватывает их и отправляет в облако.
Однако выясним причины, по которым этот метод может не подойти:
Часто пользователи начинают работать в Личном кабинете СБИС Online, а затем решают перейти в 1С. Здесь важно избежать ошибки смены Идентификатора участника ЭДО. При настройке обработки в 1С убедитесь, что вы используете существующий аккаунт и код филиала. Если создать новое подключение «с нуля», система может сгенерировать новый ИД, и ваши контрагенты перестанут «видеть» ваши документы, так как вы будете числиться под другим идентификатором в роуминге.
Поскольку конфигурация базируется на БСП 2.3, проанализируем возможные сложности. Данная версия библиотеки достаточно старая и может не поддерживать некоторые современные методы работы с двоичными данными или асинхронными вызовами, которые ожидает свежая версия обработки СБИС. В этом случае во ВнешнихФункциях следует явно выполнять приведение типов и использовать синхронные методы работы с файлами, чтобы обеспечить стабильность обмена.
Подводя итог, можно сказать, что для успешного внедрения СБИС в нетиповую базу достаточно использовать внешнюю обработку и механизм дополнительных файлов настроек. Это позволяет сохранить возможность обновления коннектора СБИС и при этом полностью адаптировать его под бизнес-логику вашей уникальной конфигурации.