При работе с внешними обработками электронного документооборота мы нередко сталкиваемся с «плавающими» ошибками, которые воспроизводятся у одних пользователей и отсутствуют у других. Рассмотрим подробнее классическую ситуацию: пользователи загружают документы через обработку интеграции со СБИС в базу 1С:ERP, но у части сотрудников упорно не заполняются реквизиты Контрагент и Договор. Очистка кэша 1С и обновление плагина при этом не дают результата.
Разберем по шагам, как правильно диагностировать подобную проблему, проанализируем возможные причины и найдем эффективные способы восстановления корректной загрузки данных.
Первое, что мы должны сделать при отсутствии данных в реквизитах — посмотреть в отладчике, как обрабатывается входящий файл. Проанализируем фрагмент кода из внешней обработки СБИС, который отвечает за чтение свойств из структуры вложения документа:
//КНГС
Если Вложение.Свойство("Договор1С") Тогда
Договор1С = Вложение.Договор1С;
Иначе
Договор1С = "";
КонецЕсли;
Если Вложение.Свойство("Дата1С") Тогда
Дата1С = Вложение.Дата1С;
Иначе
Дата1С = "";
КонецЕсли;
Если Вложение.Свойство("Контрагент1С") Тогда
Контрагент1С = Вложение.Контрагент1С;
Иначе
Контрагент1С = "";
КонецЕсли;
Посмотрим на пример внимательнее. Если переменные в итоге остаются пустыми, значит метод Свойство() возвращает ложь. Это означает, что в структуре разбираемого XML-файла (или JSON) узлы Договор1С и Контрагент1С физически отсутствуют или не определены для текущей сессии.
Когда ошибка проявляется избирательно, необходимо выяснить причину: виноваты права доступа в 1С или настройки операционной системы. Проведем перекрестное тестирование (эксперимент, описанный разработчиками в процессе разбора инцидента):
Проанализируем ситуацию: права администратора в 1С не гарантируют успешной работы обработки. Ошибка кроется не во внутренних ролях конфигурации 1С, а в профиле пользователя операционной системы Windows на конкретном рабочем месте.
Выясним главную причину такого поведения. Обработка СБИС тесно связана с локальным окружением пользователя Windows. Индивидуальные настройки интеграции и сопоставления хранятся в профиле ОС.
Рассмотрим, что нужно проверить на проблемном компьютере:
C:\Sbis1C. Зачастую именно там должен находиться файл базовых настроек обмена. Если на ПК пользователя с работающей загрузкой этот файл задан и корректен, а у проблемного пользователя папка пуста — скопируйте конфигурационный файл (например, УПД3_01 или аналогичные файлы настроек формата).%AppData%\Roaming\Sbis1c. В ней хранятся файлы settings.xml и локальная база данных SQLite — identities.db. База данных отвечает за связь объектов справочников 1С с их уникальными идентификаторами в облаке СБИС. Если этот файл поврежден, отсутствует или недоступен для чтения из-за прав Windows, автозаполнение работать не будет.Иногда техническая проблема оказывается тривиальной настройкой интерфейса, которая хранится локально для каждого пользователя. Разберем действия в самой обработке:
Откройте форму обработки СБИС, перейдите в раздел Настройки (обычно пиктограмма шестеренки), далее откройте Параметры. Обратите внимание на флаг Автоматически сопоставлять контрагентов/номенклатуру. Если этот флажок снят, обработка принципиально не будет пытаться заполнить поля Контрагент и Договор в документах 1С 1С, ожидая, что пользователь выберет их вручную. Убедитесь, что настройка включена у всех пользователей.
Если для интеграции используется API-подключение (компоненты СБИС), проблема может быть связана со слетевшей или не зарегистрированной библиотекой на компьютере конкретного пользователя.
Рассмотрим порядок действий для проверки компоненты:
SbisXmlRpc.dll (или его актуальный аналог для новых версий СБИС Плагина).Договор1С и Контрагент1С при работе через COM-соединение, библиотеку нужно зарегистрировать в реестре. Запустите командную строку от имени Администратора Windows и выполните команду regsvr32 путь_к_файлу\SbisXmlRpc.dll.Причиной пустых узлов в XML (с которых мы начали наш разбор) может быть отсутствие связи между карточкой в 1С и карточкой в самом сервисе тензора. В момент загрузки списка документов сервер СБИС генерирует XML налету.
Если контрагент в облаке online.sbis.ru не был ранее привязан к справочнику 1С, сервер просто не знает, какой внутренний УникальныйИдентификатор передать в 1С. В результате узел Контрагент1С не формируется. Зайдите в веб-версию СБИС под проблемным пользователем, откройте раздел «Контрагенты» и убедитесь, что у контрагентов указаны корректные коды из вашей базы 1С или абсолютно точно совпадают связки ИНН/КПП.
Современные версии обработки СБИС в 1С используют компоненты встроенного браузера (ранее Internet Explorer, сейчас все чаще Microsoft Edge WebView2) для отображения веб-интерфейса прямо внутри форм 1С.
Проанализируем этот аспект: если в настройках безопасности Windows на конкретном рабочем месте (в свойствах обозревателя) домен СБИС не добавлен в надежные узлы, либо заблокировано выполнение активных скриптов (ActiveX/JavaScript), скрипт на форме просто не сможет передать распарсенные данные документа (контрагента и договор) обратно в контекст 1С.
Обязательно добавьте адреса СБИС в список доверенных сайтов в панели управления ОС и очистите кэш папки компоненты WebView2 (обычно располагается в локальном профиле пользователя %LocalAppData%\Microsoft\EdgeWebView).
Подводя итог, можно с уверенностью сказать, что проблема неработающего автозаполнения в большинстве случаев лежит в плоскости инфраструктуры рабочего места (настроек Windows). При возникновении подобной ситуации всегда проверяйте наличие конфигурационных файлов в каталогах пользователя (C:\Sbis1C и AppData), актуальность установленного СБИС Плагина, регистрацию dll-библиотек и права ОС на чтение базы сопоставлений identities.db. Только обеспечив идентичность локального окружения, вы добьетесь стабильной работы загрузки документов в 1С у всех сотрудников.