Интеграция с программным комплексом СДЭК








Выгрузка заявок в СДЭК — edostavka.ru, получение трек номера заказа, получение печатной формы квитанции к заказу.

 Интеграция написана по документации с сайта СДЭК — http://www.edostavka.ru/clients/integrator.html

Что реализовано:

1. Получение  "Списка пунктов выдачи заказов (ПВЗ)" для выбранного города (город выбирается из классификатора СДЭК, который загружен в макет обработки).

2. Формирование  "Списка заказов на доставку", при успешной выгрузке обратно приходит "трек номер" заказа (необходимо создать такой реквизит у документа "ЗаказПокупателя"), если при выгрузке были ошибки, то их можно увидеть в соответствующей колонке.

3. Формирование "Печатной формы квитанции к заказу"  по загруженным в СДЭК заказам.

Если будет востребовано данное решение, то планирую реализовать все возможности интеграции. 

25.02.16 

Добавлена обработка для "Управление торговлей 11".

1. Логин и пароль задаются в процедуре ПриСозданииНаСервере.

2. Реализован рассчет доставки по выбраным тарифам.

3. Настройки по печати выведены на форму.

4. Функционал версии для обычного приложения сохранен. 

38 Comments

  1. kolabaister

    А реализован ли вызов курьера?

    Reply ↓
  2. morik44

    (1) kolabaister,

    нет, но это реализуемо, если есть необходимость — пишите.

    Reply ↓
  3. specerp

    Такое решение уже существует http://1softbiz.ru/?p=486

    Reply ↓
  4. morik44

    (3) specerp, ну я рад, плати 10 рублей и радуйся)

    Reply ↓
  5. 1sbiz

    morik44, окей)

    Reply ↓
  6. chuklay

    Форма обработки для УТ 11.1.10.94 открывается пустой.

    Reply ↓
  7. morik44

    (6) chuklay, завтра гляну, делалось на 11.2 Оставьте Вашу почту.

    Reply ↓
  8. fdrpaid

    По ссылке ИнтеграцияСДЭК_УТ11 вариант обработки для толстого клиента.

    На управляемых формах (например в УТ11) обработка не работает. Я оплатил именно для УТ 11.

    Reply ↓
  9. morik44

    отредактировал для УТ 11.

    Reply ↓
  10. vamleshka

    код закрыт для доработок?

    Reply ↓
  11. morik44

    (10) код конечно открыт

    Reply ↓
  12. morik44

    Доработаю вашу конфигурации под синхронизацию с Яндекс.Маркет по программе «Заказ на Маркете». Реализовано через HTTP-сервис.

    Обращайтесь в скайп: spartak-ks

    Reply ↓
  13. sobeyko2008

    У меня не открылась обработка

    {ВнешняяОбработка.ОтправкаСДЭК.Форма.Форма.Форма(283)}: Ошибка при вызове метода контекста (Выполнить)

    Заказы.Загрузить(Запрос.Выполнить().Выгрузить());

    по причине:

    {(7, 18)}: Поле не найдено «ЗаказПокупателя.ТрекНомер»

    ЗаказПокупателя.<<?>>ТрекНомер КАК НомерСДЭК

    Reply ↓
  14. morik44

    (13) — Читайте внимательно :

    2. Формирование «Списка заказов на доставку», при успешной выгрузке обратно приходит «трек номер» заказа (необходимо создать такой реквизит у документа «ЗаказПокупателя»), если при выгрузке были ошибки, то их можно увидеть в соответствующей колонке.

    Reply ↓
  15. sobeyko2008

    (14)я скорей всего плохо понимаю логику… Но для чего используется документ заказ покупателя. Разве отправка наложенным платежом не через реализацию проводится?

    Reply ↓
  16. morik44

    (15) в данной разработке требовалось для заказа. Можете подменить под реализацию, код открыт.

    Reply ↓
  17. morik44

    Обновлен адрес подключения.

    Reply ↓
  18. lame

    Протокол у СДЭКа обновлен

    в программе нет.

    Скачивать или не советую.

    Или скачиваете — с дальнейшей сильной допилкой …

    Reply ↓
  19. lame

    для не УФ — нет заявленного механизма расчета доставки

    Есть опция — отправка текущего заказа покупателя на сайте СДЭК

    при этом — протокол обновлен и при текущих параметрах — работать не будет

    Есть опция — получения списка — Список пунктов выдачи заказов

    Есть опция — получение печатной формы заказа на бланке СДЭК … в пдф формате ( пока не дошел до этого .. но пдф выскакивает .. пустой -но выскакивает. Проверю — отпишусь)

    Reply ↓
  20. lame

    логика вообще не логичная .. уж пардоньте …

    Автор .. смотрите …

    есть таблица заказов. я отправляю их на сайт сдэк. он их там создал. нормально.

    при повтороной отправке он не отправляет уже созданные. Тоже нормально.

    Но! Печать ПДФ возможна только при первой отправке заказа.

    те взять и повторно распечатать форму пдф сдэка — в уже сформированном на сдэк документе — невозможно

    Reply ↓
  21. morik44

    (19) — для не УФ — нет заявленного механизма расчета доставки

    Для не УФ расчета доставки заявлено не было, читайте внимательно.

    По поводу протокола не в курсе, клиенты продолжают работать на

    используемой версии api.

    Reply ↓
  22. morik44

    если про УФ, то доп. реквизит должен быть у заказа;

    если про не УФ, то в тексте публикации написано — (необходимо создать такой реквизит у документа «ЗаказПокупателя»)

    Reply ↓
  23. lame

    (21)

    читаю внимательно

    Добавлена обработка для «Управление торговлей 11».

    2. Реализован рассчет доставки по выбраным тарифам.

    4. Функционал версии для обычного приложения сохранен.

    Отсюда делаю вывод — что и для НЕ УФ — данная опция пристутсвует

    Reply ↓
  24. lame

    (22)

    я не про допреквизит

    а про логику работы.

    попробуйте в своей версии распечатать документ пдф для заказа — который УЖЕ есть на сайте сдэка.

    не получится

    потому что печать пдф возможна только для только созданного заказа

    Reply ↓
  25. lame

    (21)

    и да .. если лень было делать не для УФ опцию — расчет стоимости

    то можно было в коде обработки не УФ выложить процедуру с УФ — закомментированную.

    чтобы можно было воссоздать..

    а то у вас одна стоимость работы- для УФ и не для УФ в 10 монет

    при этом урезан функционал

    Reply ↓
  26. lame

    и НИГДЕ не указано — что работа идет только по 2м тарифам

    Список.Добавить(«136 С-С»,»136 С-С»);

    Список.Добавить(«137 С-Д»,»137 С-Д»);

    Reply ↓
  27. lame

    такие переменные как — отправитель ФИО и отправитель Телефон — вы бы как-то закомментирвоали бы

    или вынесли б в общие переменные..

    Reply ↓
  28. lame

    Уважаемые программисты.

    Кто читает.

    Итоги такие

    — если руки не из ж. и есть время на прикручивание к вашей 1С — то скачивайте. У меня заработало через 1,5ч после сопоставления кода и описания протокола. Да и то … куча полей не данном протоколе не указана. Например, геометрические размеры груза SizeA SizeB SizeC

    те как наглядный вариант — работает!

    Reply ↓
  29. lame

    в типовой выгрузке — если скачивать — внести допреквизит и запустить

    самая первая ошибка — которую присылает сервер

    <?xml version=»1.0″ encoding=»UTF-8″?><response><Order Number=»000568″ ErrorCode=»ERR_NEED_ATTRIBUTE» Msg=»Отсутствие обязательного атрибута: Attempt/Date»/><Order Msg=»Добавлено заказов 0″/></response>

    Как показал метод проб и ошибок

    надо из запроса удалить блок

    <Attempt ID=»1″ TimeBeg=»10:00:00″ TimeEnd=»18:00:00″/>

    т.к. тут нет параметров Date и Number

    Reply ↓
  30. lame

    обработка ответ от сервера — не верная ..

    опять -таки, логически не верная.

    суть

    — вы обошли все строки таблицы на экране. сформировали 1 файл-запроса. хмл.

    отправили.(например, в запросе идет добавление 6 заказов)

    приходит ответ в виде 1 файла ответа, в котором перечислены статусы на все 6 заказов.

    и вы — судя по всему — последний ответ из этого хмл-файла ответа пишите во все строки — в которых участвует запрос.

    те если из 6 отправляемых документов 4 прошло, а 2 нет — то ВЕЗДЕ будет стоять последнее значение из массива ответа …

    ВЕЗДЕ !!!

    А по факту — это не так!

    Reply ↓
  31. lame

    Вот пример ответа на отправку 3х накладных .

    2 из которых с ошибкой

    <?xml version=»1.0″ encoding=»UTF-8″?><response><Order Number=»00000000381″ ErrorCode=»ERR_NOT_FOUND_RECCITY» Msg=»Отсутствуют параметры для идентификации города получателя: RecCityCode, RecCityPostCode»/><Order Number=»00000000380″ ErrorCode=»ERR_NOT_FOUND_RECCITY» Msg=»Отсутствуют параметры для идентификации города получателя: RecCityCode, RecCityPostCode»/><Order Number=»00000000382″ DispatchNumber=»1073414865″/><Order Msg=»Добавлено заказов 1″/></response>

    Reply ↓
  32. morik44

    (30) (31) уважаемый, Вы куда-то не туда смотрите: ошибки выводятся по номеру заказа.

    Выгрузка проходит корректно, без ошибок, днём были ошибки, но были связаны с нестабильной работой api СДЭК.

    Reply ↓
  33. lame

    я смотрю в ваш код.

    вы — наверное — за одну отправку не отправляли ни разу более 1 заказа.

    отправьте в своей тестовой базе 3 документа.

    1 из которых с заведомо явной ошибкой в данных.

    удивитесь выводимому на экран ответу.

    Reply ↓
  34. lame

    еще ..

    то место — где вы записываете документ заказ покупателя — с внесенным номеромтрека ..

    типа

    ДокОб.Записать(Режимзаписи.запись)

    делать правильно через

    Попытка

    Исключение

    конецпопытки

    надеюсь — объяснять не надо почему

    и если записать документ не удается

    то выводить информацию или в окно сообщений или в колонку — ошибка.

    И как-то думать — что делать в такой

    Reply ↓
  35. lame

    И как-то думать — что делать в такой ситуации ..

    те документ в сдэк отправлен. номер вашего заказа на на сайте уже присвоен. и у него есть этот номер.

    а в базе 1С — не зафиксирован нигде ..

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

    Т.е. — лучший вариант — делаем регистр сведений. с 2мя параметрами

    — заказ клиента

    — номер трека.

    все.

    Reply ↓
  36. lame

    или обрабатываем ситуацию — когда сдэк возвращает ошибку- что документ в системе уже зарегистрирован.

    в котором есть и номер заказа 1С , и номер трека …

    Reply ↓
  37. morik44

    (36) Дак кто ж Вам мешает всё это реализовать у себя. Я не претендую на «оскар».

    И хорош уже флудить. Я Вам обработку не за 10000 руб. продаю Это можно сказать «рыба», где реализованы определенные функции взаимодействия с api.

    Вам уважаемый сюда — http://1softbiz.ru/integraciya-1s-i-sdek/

    Reply ↓
  38. lame

    ну что вы .. я флудом не занимаюсь

    я описываю то — с чем придется столкнутся следующим ..

    страна должна знать своих героев и их косяки и быть готовым ..

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *