Загрузка заказов по API в Logsis

13.09.18

Учетные задачи - Оптовая торговля

Каркасная обработка для загрузки заказов по API в Логсис. Предназначена для магазинов, которым нужна курьерская доставка по городу Москва.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Загрузка заказов по API в Logsis:
.zip 9,21Kb ver:1.0.0.1
3
3 Скачать (10 SM) Купить за 4 550 руб.

Для работы обработки нужен шлюз для передачи параметров через PHP скрипт
Следующего содержания в папке logsys/index.php:

<?php
//phpinfo();
$str_input = file_get_contents('php://input'); // Получить строку из отправленных данных
//echo $str_input; // Вывод в браузер
$arr_input = json_decode($str_input,true); // Преобразуем в массив
//print_r($arr_input); // Вывод в браузер
$post_array = array();
foreach($arr_input as $key=>$val) {
  if ($key=='goods') {
    foreach($val as $key2=>$val2) {
      foreach($val2 as $key3=>$val3) {
        $post_array['goods['.$key2.']['.$key3.']']=$val3;
      }
    }
  } else {
    $post_array[$key] = $val;
  }
}
//print_r($post_array);
// set post fields
$ch = curl_init('http://cab.logsis.ru/apiv2/createorder');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array);
// execute!
$response = curl_exec($ch);
// close the connection, release resources used
curl_close($ch);
// do anything you want with your response
echo $response;

 

И еще один скрипт в папке logsys2/index.php:

<?php
//phpinfo();
$str_input = file_get_contents('php://input'); // Получить строку из отправленных данных
//echo $str_input; // Вывод в браузер
$arr_input = json_decode($str_input,true); // Преобразуем в массив
//print_r($arr_input); // Вывод в браузер
$post_array = array();
foreach($arr_input as $key=>$val) {
  $post_array[$key] = $val;
}
//print_r($post_array);
// set post fields
$ch = curl_init('http://cab.logsis.ru/apiv2/confirmorder');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array);
// execute!
$response = curl_exec($ch);
// close the connection, release resources used
curl_close($ch);
// do anything you want with your response
echo $response;

 

Поднимаем Apache + PHP или Nginx + PHP на локальной машине и пробуем отправить заказы:

Функция ПодтвердитьЗаказВЛОГСИС(НомерДокументаЗаказа,НомерЗаказаЛогсис) Экспорт
	СтруктураПараметровЗаказа = Новый Структура;
	СтруктураПараметровЗаказа.Вставить("key",ПолучитьПараметрыИдентификации());
	СтруктураПараметровЗаказа.Вставить("inner_n",СокрЛП(НомерДокументаЗаказа)); // Внутренний номер отправителя
	СтруктураПараметровЗаказа.Вставить("order_id",СокрЛП(НомерЗаказаЛогсис)); // Внутренний номер отправителя
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(,Символы.Таб));
	ЗаписатьJSON(ЗаписьJSON,СтруктураПараметровЗаказа);
	СтрокаJSON = ЗаписьJSON.Закрыть();
	//СтрокаВозврат = 
	Сообщить(СтрокаJSON);
	
	HTTPСоединение = Новый HTTPСоединение("127.0.0.1");
	HTTPЗапрос = Новый HTTPЗапрос("/logsys2/"); 
	HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json");
	HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

	Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	ОтветСтрока = Ответ.ПолучитьТелоКакСтроку("UTF-8");

	Сообщить("Код результата: " + Ответ.КодСостояния);
	Сообщить("Ответ: " + ОтветСтрока);
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(ОтветСтрока);
	ИмяСвойства = "";
	НетОшибкаЧтенияJSON = Ложь;
	
	Пока ЧтениеJSON.Прочитать() Цикл
		ТипJSON = ЧтениеJSON.ТипТекущегоЗначения;
		Если ТипJSON = ТипЗначенияJSON.Строка Тогда
			Значение = ЧтениеJSON.ТекущееЗначение;
			Если ИмяСвойства = "status" Тогда
				Сообщить("status "+СокрЛП(Значение));
				Если СокрЛП(Значение) = "400" Тогда
					НетОшибкаЧтенияJSON = Истина;
				ИначеЕсли СокрЛП(Значение) = "200" Тогда
					НетОшибкаЧтенияJSON = Истина;
				КонецЕсли;
			КонецЕсли;
		ИначеЕсли ТипJSON = ТипЗначенияJSON.ИмяСвойства Тогда
			ИмяСвойства = ЧтениеJSON.ТекущееЗначение;
		КонецЕсли;
	КонецЦикла;
	Возврат НетОшибкаЧтенияJSON;
	
КонецФункции

Функция ОтправитьЗаказыВLogsys(ДокументЗаказа,НомерЗаказаЛогсис = "") Экспорт
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
	               |	Заказ.Номер КАК НомерЗаказа,
	               |	Заказ.Дата КАК ДатаЗаказа,
	               |	Заказ.Адрес КАК АдресДоставки,
	               |	Заказ.Вес КАК ВесЗаказа,
	               |	Заказ.ГабаритВысота,
	               |	Заказ.ГабаритДлина,
	               |	Заказ.ГабаритШирина,
	               |	Заказ.ФИОКонтактногоЛица КАК Получатель,
	               |	Заказ.Телефон КАК НомерТелефона,
	               |	Заказ.ПолучитьСКлиента КАК СуммаКПолучению,
	               |	Заказ.ЭлектроннаяПочта КАК EMailПолучателя,
	               |	Заказ.СтраховаяСумма КАК СтраховаяСумма,
	               |	Заказ.КоличествоМест,
	               |	Заказ.Ссылка КАК Док,
	               |	Заказ.НомерСкладской
	               |ИЗ
	               |	Документ.Заказ КАК Заказ
	               |ГДЕ
	               |	Заказ.Ссылка = &ДокументОтгрузки";
	
	Запрос.УстановитьПараметр("ДокументОтгрузки", ДокументЗаказа);
	Результат = Запрос.Выполнить();
	Если Результат.Пустой() Тогда
		Возврат Ложь;
	КонецЕсли;
	
	ВыборкаЗаказы					= Результат.Выбрать();
	СтруктураПараметровЗаказа = Новый Структура;
	СтруктураПараметровЗаказа.Вставить("key",ПолучитьПараметрыИдентификации());
	Пока ВыборкаЗаказы.Следующий() Цикл
		СтруктураПараметровЗаказа.Вставить("inner_n",СокрЛП(ВыборкаЗаказы.НомерЗаказа)); // Внутренний номер отправителя
		СтруктураПараметровЗаказа.Вставить("delivery_date",Формат(ВыборкаЗаказы.ДатаЗаказа,"ДФ=yyyy-MM-dd"));  // Дата доставки (YYYY-mm-dd)
		СтруктураПараметровЗаказа.Вставить("delivery_time1",Формат(ВыборкаЗаказы.ДатаЗаказа,"ДФ=hh:mm"));  // Начальное время интервала доставки (min 10:00 )
		СтруктураПараметровЗаказа.Вставить("delivery_time2","22:00");  // Конечное время интервала доставки( max 22:00 )
		СтруктураПараметровЗаказа.Вставить("target_name",СокрЛП(ВыборкаЗаказы.Получатель));  // Получатель
		СтруктураПараметровЗаказа.Вставить("target_contacts",ПреобразоватьСтрокуВЧисло(ВыборкаЗаказы.НомерТелефона));  // Телефон получателя 7хххххххххх
		СтруктураПараметровЗаказа.Вставить("os",Формат(ВыборкаЗаказы.СтраховаяСумма,"ЧДЦ=2; ЧРД=.; ЧГ="));  // Оценочная стоимость заказа
		СтруктураПараметровЗаказа.Вставить("np","0");  // Услуга 'Прием наложенного платежа' (1 - да, иначе - 0)
		СтруктураПараметровЗаказа.Вставить("price_client","0");  // Величина наложенного платежа, руб
		СтруктураПараметровЗаказа.Вставить("price_client_delivery",Формат(ВыборкаЗаказы.СуммаКПолучению,"ЧДЦ=2; ЧРД=.; ЧГ=")); // Стоимость доставки для конечного получателя
		СтруктураПараметровЗаказа.Вставить("order_weight",Формат(ВыборкаЗаказы.ВесЗаказа,"ЧРД=.; ЧГ=")); // Вес отправления, кг
		СтруктураПараметровЗаказа.Вставить("places_count",Формат(ВыборкаЗаказы.КоличествоМест,"ЧРД=.; ЧГ=")); // Количество мест в заказе.
		СтруктураПараметровЗаказа.Вставить("dimension_side1",Формат(ВыборкаЗаказы.ГабаритВысота*100,"ЧРД=.; ЧГ=")); // Габарит заказа 1, см
		СтруктураПараметровЗаказа.Вставить("dimension_side2",Формат(ВыборкаЗаказы.ГабаритДлина*100,"ЧРД=.; ЧГ=")); // Габарит заказа 2, см
		СтруктураПараметровЗаказа.Вставить("dimension_side3",Формат(ВыборкаЗаказы.ГабаритШирина*100,"ЧРД=.; ЧГ=")); // Габарит заказа 3, см
		СтруктураПараметровЗаказа.Вставить("addr",СокрЛП(ВыборкаЗаказы.АдресДоставки)); // Адрес доставки
		СтруктураПараметровЗаказа.Вставить("sms","0"); // Признак услуги sms-информирования. Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("open_option","3"); // Признак возможности вскрытия заказа. Возможные значения: 1 - Вскрытие разрешено, 2 - Разрешено вскрытие только внешней упаковки, 3 - Вскрытие запрещено
		СтруктураПараметровЗаказа.Вставить("call_option","0"); // Дополнительный (тарифицируемый) звонок клиенту. Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("docs_option","0"); // Возврат накладных / документов, вложенных в заказ (опция тарифицируется). Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("partial_option","1"); // Признак возможности частичного выкупа заказа клиентом (не тарифицируется). Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("dress_fitting_option","0"); // Признак возможности примерки товаров (тарифицируется согласно договору). Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("lifting_option","0"); // Занос / подъем КГТ заказов (более 25 кг) до квартиры (тарифицируется согласно договору). Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("city","Москва");
		СтруктураПараметровЗаказа.Вставить("shk",СокрЛП(ВыборкаЗаказы.НомерСкладской));
		МассивТоваров = Новый Массив;
		ЗаказДокО = ВыборкаЗаказы.Док.ПолучитьОбъект();
		Для Каждого СтрТовары Из ЗаказДокО.Товары Цикл
			СтруктураСтрокиЗаказа = Новый Структура;
			Если СтрТовары.Товар.Пустая() Тогда
				Продолжить;
			КонецЕсли;
			
			СтруктураСтрокиЗаказа.Вставить("articul",СокрЛП(СтрТовары.Товар.АртикулПартнера));// Артикул товарной позиции / услуги
			СтруктураСтрокиЗаказа.Вставить("artname",СокрЛП(СтрТовары.Товар.Наименование));// Название товарной позиции / услуги
			СтруктураСтрокиЗаказа.Вставить("count",Формат(СтрТовары.Количество,"ЧРД=.; ЧГ="));// Название товарной позиции / услуги
			СтруктураСтрокиЗаказа.Вставить("weight",Формат(СтрТовары.ВесТовара,"ЧРД=.; ЧГ="));// Вес единицы товара, кг
			СтруктураСтрокиЗаказа.Вставить("price",Формат(СтрТовары.Цена,"ЧДЦ=2; ЧРД=.; ЧГ="));// Цена единицы товара, руб
			СтруктураСтрокиЗаказа.Вставить("nds",ПолучитьКодСтавкиНДС(СтрТовары.Товар.СтавкаНДС));// Вид налога на товар/услугу (передавать Int): 1 - HДС 18%, 2 - Без HДС, 3 - HДС 10%, 4 - HДС 18/118, 5 - HДС 10/110, 6 - НДС 0%
			МассивТоваров.Добавить(СтруктураСтрокиЗаказа);
			
		КонецЦикла;
		СтруктураПараметровЗаказа.Вставить("goods",МассивТоваров);
		
	КонецЦикла;
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(,Символы.Таб));
	ЗаписатьJSON(ЗаписьJSON,СтруктураПараметровЗаказа);
	СтрокаJSON = ЗаписьJSON.Закрыть();
	Сообщить(СтрокаJSON);
	
	HTTPСоединение = Новый HTTPСоединение("127.0.0.1");
	HTTPЗапрос = Новый HTTPЗапрос("/logsys/"); 
	HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json");
	HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

	Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	ОтветСтрока = Ответ.ПолучитьТелоКакСтроку("UTF-8");

	Сообщить("Код результата: " + Ответ.КодСостояния);
	Сообщить("Ответ: " + ОтветСтрока);
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(ОтветСтрока);
	ИмяСвойства = "";
	НетОшибкаЧтенияJSON = Ложь;
	
	Пока ЧтениеJSON.Прочитать() Цикл
		ТипJSON = ЧтениеJSON.ТипТекущегоЗначения;
		Если ТипJSON = ТипЗначенияJSON.Строка Тогда
			Значение = ЧтениеJSON.ТекущееЗначение;
			Если ИмяСвойства = "status" Тогда
				НетОшибкаЧтенияJSON = Истина;
			ИначеЕсли ИмяСвойства = "order_id" Тогда
				НомерЗаказаЛогсис = Значение;
			КонецЕсли;
		ИначеЕсли ТипJSON = ТипЗначенияJSON.ИмяСвойства Тогда
			ИмяСвойства = ЧтениеJSON.ТекущееЗначение;
		КонецЕсли;
	КонецЦикла;
	Возврат НетОшибкаЧтенияJSON;
КонецФункции

Тестировалось на платформе: 1С:Предприятие 8.3 (8.3.10.2561) Конфигурация самописная

обработка обмен данными API

См. также

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1, ФФД 1.2). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим и маркировку. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows

6000 руб.

27.02.2017    808459    5127    9736    

2923

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    22252    23    49    

39

Оптовая торговля Розничная торговля Обмен с ГосИС Бухгалтер Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Автоматизация учета ЕГАИС в 1С для оптовой торговли, производства и импорта. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

828 руб.

15.12.2015    171971    855    368    

404

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих, Вики Принт и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима. Поддержка пробития чеков с новыми ставками НДС 5% и НДС 7%.

5880 руб.

25.05.2015    340123    2041    3112    

1056

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

55778 руб.

24.04.2015    196480    157    244    

287

SALE! 20%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 1C:Бухгалтерия 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С.

6000 5100 руб.

09.11.2016    239805    1099    906    

1029
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Константин С. 674 13.09.18 19:00 Сейчас в теме
Поднимаем Apache + PHP или Nginx + PHP на локальной машине и пробуем отправить заказы:

воо заморочки, как-то не клиентооринтировано чтобы настроить обмен.
2. astracrypt 75 14.09.18 04:48 Сейчас в теме
(1) Лекгий путь - это не наш метод. :))
Оставьте свое сообщение