Работа с логистическими операторами, такими как Почта России, напрямую из интерфейса 1С:Управление торговлей (УТ) — это критически важная задача для любого современного торгового бизнеса. Автоматизация позволяет существенно сократить время на подготовку документов, исключить ошибки ручного ввода адресов и ускорить процесс передачи посылок в отделение. Разберем подробно, как подойти к этой задаче, какие инструменты уже есть в программе и как реализовать собственную интеграцию через API.
Прежде чем приступать к разработке собственного решения, проанализируем возможности типовой конфигурации. В современных версиях «1С:Управление торговлей» (начиная с редакции 11.4) предусмотрен встроенный сервис «1С:Доставка». Этот сервис уже содержит готовую интеграцию с Почтой России.
Для активации функционала выполним следующие шаги:
Рассмотрим преимущества этого метода: нам не нужно писать код. Прямо из документа ЗаказКлиента мы можем нажать кнопку «Создать на основании» — «Заказ на доставку». Система автоматически подтянет данные о получателе, составе посылки и предложит рассчитать тарифы (курьерская доставка, посылка онлайн или обычная отправка в отделение).
Если типовой функционал «1С:Доставка» по каким-то причинам не подходит (например, требуются специфические печатные формы или сложная логика группировки партий), мы можем реализовать прямую интеграцию с использованием OTAPI. Это программный интерфейс, который позволяет взаимодействовать с серверами Почты России через HTTP-запросы.
С чего начать разработку? Сначала необходимо зарегистрироваться на портале для разработчиков Почты России и получить Token и Authorization Key. Весь обмен данными строится на передаче JSON-пакетов.
Проанализируем базовый алгоритм создания отправления через код 1С:
Посмотрим на пример формирования структуры для HTTP-запроса в 1С:
ДанныеЗаказа = Новый Структура;
ДанныеЗаказа.Вставить("given-name", "Иван");
ДанныеЗаказа.Вставить("surname", "Иванов");
ДанныеЗаказа.Вставить("address-item", "г. Москва, ул. Ленина, д. 1");
ДанныеЗаказа.Вставить("mass", 500); // вес в граммах
ДанныеЗаказа.Вставить("mail-category", "ORDINARY");
ДанныеЗаказа.Вставить("mail-type", "POSTAL_PARCEL");
Для отправки данных используем объект HTTPСоединение. Важно помнить, что заголовки запроса должны содержать ваши ключи авторизации. Выясним причину возможных ошибок: чаще всего они связаны с неверным указанием типа отправления или отсутствием обязательных полей для конкретного тарифа.
Одной из главных задач менеджера, как отмечалось в обсуждении, является получение готовых документов. Через API можно получить файлы в формате PDF. Проанализируем, как это реализовать. После создания партии (Batch) мы вызываем метод API для получения бланков. Система 1С получает двоичные данные, которые можно сохранить во временный файл и сразу отправить на принтер этикеток.
Основные документы, которые нам понадобятся:
Интеграция позволяет не только отправлять данные «туда», но и получать статусы «обратно». Разберем, как это автоматизировать. Мы можем создать в 1С:Управление торговлей регламентное задание, которое будет выполняться, например, раз в час. Программа будет собирать все активные трек-номера из базы и запрашивать их текущий статус через API трекинга.
При получении статуса «Вручено», мы можем автоматически менять статус в документе ЗаказКлиента или уведомлять менеджера. Это избавляет от необходимости вручную проверять сайт Почты России.
Пример логики обновления статуса:
Для Каждого СтрокаЗаказа Из ТаблицаАктивныхПосылок Цикл
ТекущийСтатус = ПолучитьСтатусПоТрекНомеру(СтрокаЗаказа.ТрекНомер);
Если ТекущийСтатус = "ARRIVED_AT_DESTINATION" Тогда
// Выполняем действия по прибытию посылки
ЗаписатьСтатусВБазу(СтрокаЗаказа.Ссылка, "Ожидает в отделении");
КонецЕсли;
КонецЦикла;
Если бюджет позволяет, а время на разработку ограничено, стоит рассмотреть готовые модули, которые устанавливаются как расширения для 1С. Они позволяют добавить кнопки работы с почтой непосредственно в документы Реализация товаров и услуг или Заказ клиента без изменения типовой конфигурации. Это сохраняет возможность легкого обновления 1С в будущем. Рассмотрим подробнее такие решения на специализированных ресурсах, таких как Infostart, где часто выкладываются уже протестированные обработки для интеграции с личным кабинетом Почты России.
Подведем итог: для начала работы с Почтой России в 1С:УТ лучше всего сначала проверить возможности встроенного модуля 1С:Доставка. Если же требуется глубокая кастомизация процесса под нужды склада, следует использовать API Отправка, реализовав обмен данными через HTTP-запросы и JSON. Это позволит полностью автоматизировать жизненный цикл посылки: от нормализации адреса до получения финального статуса доставки.