Как передать дополнительные идентификаторы и настроить адрес доставки в модуле ЭТрН СБИС (Saby) для 1С?

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

При переходе на обмен электронными транспортными накладными (ЭТрН) компании сталкиваются с жесткими требованиями контрагентов: крупные покупатели и логистические операторы требуют указывать в накладной специальные идентификаторы, такие как номера заказов покупателя (ORDERS), уведомления об отгрузке (DESADV), внутренние коды маршрутов или артикулы. При использовании интеграционного модуля оператора СБИС (Saby) для 1С стандартная выгрузка может не заполнять эти поля по умолчанию. Проанализируем, как правильно передать пользовательские реквизиты в формат титула ЭТрН и как избежать распространенной ошибки с автоматической подменой адреса разгрузки.

Архитектура передачи дополнительных сведений в модуле СБИС

В отличие от типовых механизмов прямой генерации XML-документов непосредственно в базе 1С, модуль интеграции СБИС формирует программные структуры и массивы, которые затем сериализуются и передаются по API на сервер оператора. Сам XML-файл обмена титулов ЭТрН утвержденного формата ФНС формируется уже на стороне облачного сервиса. Все пользовательские идентификаторы и специфические параметры перевозки в формате ФНС должны попадать в информационный блок ИнфПол (информационное поле документа).

В современных конфигурациях на базе управляемых форм механизм сопоставления поставляется в виде расширения конфигурации (.cfe) и содержит визуальный редактор. В решениях предыдущих поколений на базе обычных форм интерактивный конструктор ограничен. Выясним, как настроить сопоставление полей в таких конфигурациях.

Пошаговая настройка передачи идентификаторов покупателя в ЭТрН

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

  1. Создание дополнительных реквизитов: перейдем в план видов характеристик или справочник дополнительных реквизитов и сведений информационной базы. Добавим необходимые реквизиты для документов-оснований (например, для документа реализации или транспортной накладной). Присвоим им имена, соответствующие требуемым идентификаторам контрагента (например, НомерЗаказаПокупателя).
  2. Заполнение значений в документах: перед отправкой накладных убедимся, что добавленные дополнительные свойства заполнены корректными строковыми значениями или кодами.
  3. Настройка правил сопоставления в модуле: в обработке интеграции СБИС откроем настройки сопоставления реквизитов. Для требуемого целевого поля блока ИнфПол переопределим источник данных.
  4. Подключение программного алгоритма: если простого связывания реквизитов через интерфейс недостаточно, в правилах сопоставления пропишем собственную процедуру инициализации и присваивания. В ней происходит считывание дополнительных реквизитов из объекта-основания и запись их ключей и значений в результирующую структуру пакета.

Посмотрим на пример логики сбора дополнительных реквизитов для структуры отправки в пользовательской процедуре:


// Пример заполнения блока ИнфПол из дополнительных реквизитов документа
Если ЗначениеЗаполнено(ДокументСсылка) Тогда
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ДополнительныеРеквизиты.Свойство.Имя КАК Идентификатор,
        |   ДополнительныеРеквизиты.Значение КАК Значение
        |ИЗ
        |   Документ.РеализацияТоваровУслуг.ДополнительныеРеквизиты КАК ДополнительныеРеквизиты
        |ГДЕ
        |   ДополнительныеРеквизиты.Ссылка = &ДокументСсылка
        |   И ДополнительныеРеквизиты.Свойство.Имя В(&СписокИмен)";
    
    Запрос.УстановитьПараметр("ДокументСсылка", ДокументСсылка);
    Запрос.УстановитьПараметр("СписокИмен", СписокНужныхРеквизитов);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        НоваяСтрока = СтруктураПакета.ИнформационноеПоле.Добавить();
        НоваяСтрока.Идентификатор = Выборка.Идентификатор;
        НоваяСтрока.Значение = Строка(Выборка.Значение);
    КонецЦикла;
КонецЕсли;

Если ядро интеграционной обработки поставляется в закрытом виде, используем механизм внешних файлов модификации (пользовательских модулей). В таком файле переопределяются алгоритмы заполнения структур данных непосредственно перед отправкой по API, что избавляет от необходимости вносить изменения в типовой код ядра обработки.

Решение проблемы с подменой адреса доставки груза

Рассмотрим распространенную проблему: при передаче данных ЭТрН в веб-сервис Saby фактический адрес доставки из документа 1С игнорируется, а вместо него в титуле перевозки автоматически проставляется юридический или основной фактический адрес грузополучателя. Выясним причину такого поведения и способы его устранения.

Сервис оператора выполняет автоматическую валидацию и нормализацию адресов по Государственному адресному реестру (ГАР / ФИАС). Если адрес доставки передан из 1С неструктурированной строкой без точных кодов классификатора, система сопоставляет контрагента по ИНН/КПП и автоматически выбирает его адрес регистрации из собственного справочника. Чтобы избежать некорректной подмены адреса, выполним следующие рекомендации:

  1. Передача структурированного адреса: адрес пункта разгрузки в 1С должен быть заполнен строго с использованием адресного классификатора с передачей уникального идентификатора ФИАС/ГАР, кода региона, города, улицы и номера дома.
  2. Использование глобальных идентификаторов (GLN): при поставках в торговые сети в качестве пункта доставки обязательно передается международный идентификатор локации (GLN) или код торговой точки. Это позволяет сервису однозначно определить конкретный распределительный центр или гипермаркет.
  3. Настройка пунктов разгрузки в личном кабинете: в карточке контрагента на стороне оператора предварительно регистрируются все фактические филиалы и места доставки. При выгрузке документа сервис производит поиск по идентификатору подразделения и корректно фиксирует нужную геопозицию в титуле ЭТрН.
← На главную