1С Предприятие и Новая Почта
Можно ли сделать такой документ как, например, «Доставка» в 1С Предприятие, в котором указав контрагента. адрес доставки и номер декларации, организовать небольшой узел логистики в организации?
Да, можно. Я такое сделал в конфигурации «Управление торговлей для Украины».
Заполняется документ «Доставка» на основании документа «Заказ покупателя» или «Заказ поставщику», если необходимо забрать или передать товар контрагенту через почтовые службы перевозчиков. Например, сейчас у меня работает только «Новая Почта». Имеется возможность проверки номера декларации на статус посылки, а также на сумму её доставки. В целом можно кучу разных параметров узнавать по номеру декларации, хотя они мне пока не понадобились, а это могло быть: адрес доставки или отправителя, инфо плательщика или отправителя, способ доставки, ориентировочное время прибытия, номер склада и все такое…
Этот документ можно встроить в любую конфигурацию 1С Предприятие, дополнив необходимыми функциями по желанию заказчика.
Вся проверка состояния посылки проверяется через API Новой Почты. Если кто не знает, это специальный интернет-сервис, которым можно пользоваться бесплатно и только при наличии доступа к Интернет. Также можно не только проверять посылки, но и создавать декларации не заезжая на представительство перевозчика. Курьер доставит Вашу посылку на отделение перевозчика, словесно сообщив созданный Вами номер декларации, а сотрудники Новой Почты сразу заберут Вашу посылку ничего не спрашивая и отправят куда по адресу… 🙂 Оплата происходит по безналичному или наличному расчету Легко и изящно! Но весь этот функционал нужно доделать в 1С, так как он мне не нужен, а значит его пока что нет в моем документе «Доставка».
Интеграция такой «Доставки» займет пару минут и сможет облегчить Ваш труд снова на несколько часов в сутки. 🙂 Оптимизировать можно даже логистику какой бы она не была трудной в Вашей компании…
Кстати, такое API надо сделать и для компании-перевозчика «САТ» и других… Но это на будущее.
Если Вы хотите такое сделать у себя в организации или может лучше, тогда пишите в комментариях заявки. Я могу Вам помочь сделать Вашу работу более удобной и технически простой, для того, что бы Вы могли использовать освободившееся время себе в пользу. Ведь зачем тратить драгоценное время на всякую мелочь, когда перед Вами ещё не раскрыты более интересные дали! 🙂 Здесь цена внедрения не имеет значения, если это поможет автоматизировать Ваш и без того сложный процесс работы…
Код проверки статуса посылки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
Источник = КаталогВременныхФайлов()+"send.xml"; Результат = КаталогВременныхФайлов()+"novapost.xml"; Запись = Новый ЗаписьXML; Запись.ОткрытьФайл(Источник, "UTF-8"); Запись.ЗаписатьОбъявлениеXML(); //<?xml version="1.0" encoding="UTF-8"?> Запись.ЗаписатьНачалоЭлемента("file"); Запись.ЗаписатьНачалоЭлемента("apiKey"); Запись.ЗаписатьТекст(СокрЛП(КлючПользователя)); Запись.ЗаписатьКонецЭлемента(); //Имя модели Запись.ЗаписатьНачалоЭлемента("modelName"); Запись.ЗаписатьТекст("InternetDocument"); Запись.ЗаписатьКонецЭлемента(); //Вызываемый метод Запись.ЗаписатьНачалоЭлемента("calledMethod"); Запись.ЗаписатьТекст("documentsTracking"); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьНачалоЭлемента("methodProperties"); Запись.ЗаписатьНачалоЭлемента("Documents"); Запись.ЗаписатьНачалоЭлемента("item"); Запись.ЗаписатьТекст(НомерДекларации); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьКонецЭлемента(); Запись.Закрыть(); Попытка Сервер = "api.novaposhta.ua/v2.0/xml/"; Соединение = Новый HTTPСоединение(Сервер,,,,,Истина); АдресСкрипта = "/v2.0/xml/"; Соединение.ОтправитьДляОбработки(Источник,,Результат); Исключение Предупреждение("Ошибка получения статуса посылки! Проверьте ключ пользователя или соединение с Интернетом!"); Возврат; КонецПопытки; ЕстьСтатус = Ложь; ЕстьСуммаПосылки = Ложь; Чтение = Новый ЧтениеXML; Чтение.ОткрытьФайл(Результат); Пока Чтение.Прочитать() Цикл ИмяУзла = Чтение.Имя; Если ИмяУзла = "StateName" и Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда ЕстьСтатус = Истина; Продолжить; КонецЕсли; Если ЕстьСтатус Тогда Статус = Чтение.Значение; ЕстьСтатус = Ложь; Продолжить; КонецЕсли; Если СуммаПосылки = 0 Тогда Если ИмяУзла = "Sum" и Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда ЕстьСуммаПосылки = Истина; Продолжить; КонецЕсли; Если ЕстьСуммаПосылки Тогда СуммаПосылки = XMLЗначение(Тип("Число"),Чтение.Значение); ЕстьСуммаПосылки = Ложь; Прервать; КонецЕсли; КонецЕсли; КонецЦикла; Чтение.Закрыть(); |