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